We don’t learn from experience, we learn from reflecting on experience [John Dewey]
Another year has passed at university. This is my third year I partook in, and my second year on paper. Three down, one to go. I have done quite a lot this year, and I wish to reflect on a few things. For this meditation, I reflect on my favorite thing I learned for each subject this year. One abstract thing, and one concrete thing. With a total of 17 subjects taken, I will go over each one only briefly. I’d also like to give a grade to each course based on how useful and interesting the course was (scale 1-5).
Functional programming was a new programming paradigm for me. Abstractly, it taught me to connect more in depth the mathematical ideas I have learned in maths with the coding structures I have learned in computer science. This has helped me look for new ways in which maths can pop up in computer science, and has also given me a new way to reason about my program and be more aware of its side effects as a result.
Concretely, the most useful thing I have learned is how to deal with lambda functions and case-matching. These principles have helped me out in a lot of other programming endeavors, and are my biggest take-away from the Haskell programming language as of now. Using Monads and Functors is also really cool, but something I have found less use for to be honest.
Grade: 4
In terms of thinking, this course has taught me to look for design patterns in my code, and to reason about abstracting out in an object oriented manner. This way of thinking about my code has taught me to care more for structure in the things that I create, and it extends even beyond coding.
In terms of concrete things I learned, decoupling your classes by using design patterns like commands or event queues has to be my favorite. This way of thinking has untangled a lot of the spaghetti in my code, and makes it a little more fun to write code as well.
Grade: 4
This course has taught me to describe physics using models with certain (statistcal) assumptions, and how to look at real world problems through the lens of physics. This course worked with quite some problems about gasses, particle systems and molecular interactions, and translating these into models from which we can calculate useful results is an incredibly useful skill I learned.
In terms of concrete things, I really liked learning about different canonical ensembles, how they differ and how you can actually use them to model problems.
Grade: 5
Abstractly, this course has actually taught me to stick with things when I don’t really like/intuit the mathematics behind it, and to in part trust the process of your proofs to build something bigger from them.
Concretely, working with lagrange multipliers is something that can be useful in all fields of science in order to find local minima/maxima of a constrained function. This is something I have used throughout the year, and it is quite nice to have in my toolkit.
Grade: 2
In this course, we learned about linear programming and optimization problems. It also came with a large project that did not go all too well. In part, I felt like I was overshadowed by the people I worked with, but looking back, if should have had more confidence, as I would have actually been able to write some pretty good code if I really given it my all. Therefore, this course has actually taught me to work on things, even if you believe they may be above your level in fields you are not all that familiar with.
Concretely, solving optimization problems using linear programming techniques is a valuable skill that has popped up once or twice. For example, in using word embeddings, the word mover’s distance is calculated using techniques in this course.
Grade: 3
This course has taught me abstractly to start from (near) zero and work up in an abstract system of mathematics. This course was far from intuïtion, and learning to deal with that has expanded my way of thinking quite a bit.
Concretely, the way quotient topologies are useful to create interesting topologies from known algebraic structures is very interesting to me, and it is something both useful in further topology study as well as in understanding abstract algebra and its applications.
Grade: 3
This was a course on complex analysis. Abstractly, it has taught me to take a more mathematical approach to computations, first looking into my toolkit before just mindlessly storming off to solve a complex integral for example.
Concretely, I really liked Cauchy’s theorem, and how it can be used to solve complex path integrals. This is something that I have used a lot in physics, and it saves my ass quite a few times.
Grade: 4
This course has taught me to view real world interactions in terms of their equations of motion, and how to view a system in terms of the degrees of freedom it has.
Concretely, it would be impossible for me not to mention the Euler-Lagrange scheme of solving optimisation problems for the Lagrangian of a system. This is useful in physics itself, but also a very powerful construct in which many other problems may be cast.
Grade: 3
This course has taught me to look at physics in a different way, looking more at the symmetries of the problems we deal with, and how we can derive much from little. It has given me a whole new perspective on how seemingly simple assumptions can shape a lot of what we know about a problem.
In practical terms, working with tensors and tensor calculus has been my main take-away, as it is a powerful system that can help make these symmetries even more apparent.
Grade: 3
This course has taught me to reason more mathematically about the algorithms that we use in programming, so that I can see much more clearly why and how different programs are effective.
In practical terms, constructing a dynamic program systematically and working with graphs in code are the two main take-aways I have from this course.
Grade: 4
This course has taught me to link hardware and software, and how to reason about systems that may not be very reliable. It has given me a whole new appreciation for the technologies we use on a day to day basis.
In terms of concrete things, I mainly liked working with internet protocols, and learning about how different protocols work and can be used in your IoT implementations. This would be very extendable to other parts of my study, and is a nice basis for when I start working on more interconnected software.
Grade: 4
This course has taught me a lot, as it may have been one of the most difficult courses I have taken. Firstly, it taught me to rise to the occasion and follow through on things. Multiple times during this course, I thought about quitting, but I persevered and pulled through. Secondly, it has taught me to think even more abstractly about mathematics, and I have learned to play with these abstract concepts more. This course showed me a lot of the fun in abstract mathematics.
Concretely, working with topological cells and constructing topologies using these properties is very interesting to me, and of course the Fundamental Group of a topology is something that I really like working with as a way to easily classify and compare topologies. I hope that I may be able to apply some of this knowledge in some way towards other fields like physics.
Grade: 5
This course has taught me to demystify some seemingly complex software by working out logically the smart tricks and steps they take to achieve their goals. This I have already managed to extend to unrelated fields like game design, which is very rewarding to me.
Concretely, I really liked learning about setting up a linear regression model using feature design, and working with word classifications and text cleaning in order to achieve this has been very rewarding and insightful.
Grade: 2
This course has taught me to think more structurally about code, and it has helped me open my eyes a bit to the usefulness of testing in software development.
The favorite thing I learned in this course is the results on productivity a structured working space with structured plans and people can have. Setting up tests and automating them has been very useful and rewarding.
Grade: 2
This course has taught me to explain macro-level phenomena based on quantum mechanical principles. The power of modelling a problem with a set of assumptions and constraints.
Concretely, working with the density of states in order to make observations about the nature of materials through for example band structures was very rewarding to me.
Grade: 1
The course statistics has taught me a lot about thinking about data, and what we can infer from it. This has given me a better view on probability and how it surrounds us in our day to day life, and it has in part recontextualised quite a bit of what I’ve done in my course in statistical physics.
Concretely, hypothesis testing and actually UNDERSTANDING how and why they work has given me more confidence (hehe) in working with statistics.
Grade: 3
Finally, graphics was a piece of cake. The theory did not teach me anything valuable. Luckily, the practicals were the opposite, and were very useful. They have taught me how computers work in a more low-level way (not VERY low-level, but I can see it as a bridge), and also how computer programs can model physics in quite accurate ways.
Concretely, working with Open-GL and shaders in general has been very valuable in my opinion, and I also really liked building some components of a ray-tracer.
Grade: 3
So, that was everything I wished to share with you today. As you can see, there was a lot to learn this year, and this small article is in no way enough to cover everything that I learned. I wanted to write this reflection as a way to learn some more about these subjects, a way to express my gratefulness towards the opportunities I had to learn this year, and as a way to be proud of how far I came this year.
Concretely, I am learning less and less with each course as overlap starts to increase and my own learning power increases with it. I am curious to see what next year (my final year) has in store for me. I am certain that it will be quite different from previous years - I will be doing a lot of self-studying this year and will also be writing my theses. Once again, I am excited and exalted.