First things first, there is a FULL DISCLOSURE of my exam results, including scans of certificates and, where available, problem sheets and my answers over at the self-tracking section. Documentation of my studies has to be all‑out.
There is something soothing about revisiting the place where you used to work and not having to work and instead being presented with the opportunity to prove to yourself that the time spent studying has not been in vain, was worthwhile, and allowed you to attain sufficient mastery for passing the exams you had been working towards. Technopark, Zürich. Not precisely where I used to work—the offices of a certain e‑commerce business where I have been employed for some six months are in the building next door—but close enough for me to know where I have to go and have a slight feeling of déjà vu while I am walking from the tram stop to the back entrance. I have eaten lunch at the cafeteria a few times. The building is mostly empty; it's Saturday, and it seems that the only people inside are the distance university students ready to take their exams, and the cleaning staff quietly gliding about in their wipe-mobiles. COBOL, Fortran, Pascal—the rooms where the exams are to take place are named after programming languages. And programming in Pascal was what my first exam at the University of Hagen was all about.
Writing program code on a sheet of paper with a pen feels nothing like coding on a computer, as anyone who has had to do it knows. In my day‑to‑day work, I am spoiled in that I get to use the tools that make writing code as comfortable for the programmer as can be. Syntax highlighting, code completion, code analysis and generation, and a plethora of handy keyboard shortcuts that make moving about wads of source code smooth and quick. And, very importantly, the ability to delete what you have written and replace it with some new text, which is sorely missed when writing solutions to programming problems on paper. Make a mistake, strike through the line or block of code and write it again. Make another mistake... It really pays to think about how you lay out your routine beforehand. The actual problems were not very hard. A singly linked list here, a binary tree there, manipulate or evaluate them in certain ways. Nothing that should make anyone who has had some previous exposure to data structures uneasy.
Next up, the week after, was elementary number theory. There is some (Maple) program code involved here too, but most of the problems require you to prove statements about divisibility, prime factors and what else belongs to this domain. With elementary number theory, the problems that are often very simple in their presentation may depend on 'just seeing' a fact that will seem obvious in hindsight, which can be frustrating. Working through practice problems, I found that I got a bit better at spotting those facts, and also picked up a few problem solving patterns along the way that are specific to this domain, such as going from a number's unique prime factor representation when reasoning about its properties. What I have learnt here will be useful for the number theory proseminar in which I am participating in SS18, and maybe later for introductory cryptography, if that is what I am doing.
With the fundamentals of mathematics module finally completed, I feel like I have cleared a debt that I had brought upon me some ten years ago when I was struggling with Grundlagen der Mathematik at a different school. It seems funny how when you have heaps of time to do something—study maths in this instance—you still end up not doing it, whereas having only little time to allot can push you to use it for working on a task you have assigned yourself. Whatever may have been the underlying 'rationale' to my wastefulness, I am glad to have moved on from there, and officially having the fundamentals out of the way seems like a trophy for winning an inner battle. Obviously, most of what I am doing towards my bachelor's degree will be fundamentals; I just needed to be done with sequences and series, and with continuity and differentiability of functions in ℝ, and what else you usually find in this kind of module, for the dam to finally be broken.
I am still not sure how much I have actually understood of ordinary differential equations. Apparently all that is needed to pass is to be able to apply some methods of solving ODEs. I am not complaining; if I had been required to command much theory, I am not sure I would have passed. As it was, the most theory that was asked of me was that I verify the preconditions of the Picard-Lindelöf theorem are met. I also had to know that I can apply the superposition principle in solving a nonhomogenous equation, and at one point you had to prove by induction the limit of a sequence of Picard iterations. Other than that it was mostly performing symbolic calculations without making mistakes, because you do not have time to lose on mistakes.
What now? This year's exam phase is over. I am drawing a deep breath for the next term which
is just around the corner [EDIT: has just begun]. The new course materials have been released already, and I got a spot in the number theory proseminar for which I will be required to give a presentation—online, by teleconference. Slides and handouts need to be written in LaTeX, of which I know only little, so I will be acquiring a cultural technique of mathematics that no doubt will be put to much use later. This first semester has been a success. I have scored all the ECTS points I had planned for, and for the first time got to advance my progress bar, which does not have to be at a glaring zero anymore. My studies continue to be a source of profound joy, and to give me a sense of doing something worthwhile and making real progress in my life.