My CS Studies
School
2~3 Years of CS Ed, 2h per week.
Bubblesort, 3NF, etc. Rather theoretical.
I was good but not able to program on my own.
I generally had very good grades.
2016-2019: Cooperative Degree Business Informatics (Duales Studium Wirtschaftsinformatik)
"Duales Studium" := half the time studying at university of applied sciences
(Fachhochschule), half the time working in company.
Roughly a third of the degree was dumbed down CS.
During studies I learned Java, Algos like Dijkstra, a bit of Web Programming,
1~2 hands on programming projects.
At work, I learned a lot:
- First HTML, PHP, JS; Learning Effectiveness
- then Java Backend + Angular Frontend; Learning Structure
- then ABAP; Learning A weird Language and the Value of Tool Mastery
- then Hadoop / Sysadmin Stuff; Learning Scripting
2019-2022: RWTH Aachen
Could not get into the good CS Master Programs with my BizInf degree, thus a
second B.Sc. it was.
I Considered KIT, Darmstadt, Aachen due to perceived prestige. TUM was not a
consideration due to Munich's high rent.
The Basics / "Grundstudium"
Besides the studies, I worked in Industry for semesters 2, 3
and at the Symbolic Execution Group of Faculty IV for semesters 4 and 5, where
I also wrote my thesis.
Skipped
Since I already had a degree, I was able to skip the following courses:
- Introduction to Programming
- Software Engineering
- Minor (e.g. Business, Math, Physics, Chemistry, ...)
Math
I was doing (comparatively) fine but did not enjoy them.
- Analysis (Calculus?)
- Discrete Math (LA0)
- Linear Algebra
- Stochastics
Theoretic CS
The first three where interesting, the last one too math-y.
- Data Structures and Algorithms
- Formal Languages, Automatons and one Lecture about Petri-Nets
- Computability and Complexity
- Mathematical Logic
Scientific Writing & Presenting
I did well. I enjoyed reading scientific literature and presenting, writing was
a bit of a chore.
Practical CS
I often disliked the teaching style (Way too little programming IMHO), but
very much liked the contents.
- Technical Foundations of CS
- Operating Systems and Systems Programming
- Communication Protocols
- Databases and Information Systems
Programming Projects
I loved these courses.
- Systems-Programming Project
- Software Project
The Electives
- Computer Graphics 1: Nice but too much Linear Algebra
- Compiler Construction: Not-so painful theory and nice programming exercises <3
- Communication Systems Engineering: Wow, they mention Linux Kernel stuff <3
- Implementation of Databases: sadly it was mostly theory (i.e. categorizations of concepts)
Courses I dropped:
- Computer Vision: Too many greek letters, I don't understand the Hessian,
not so good programming exercises.
- Advanced Internet Technology: Not that interesting
- Concurrency Theory: painful theory
Thesis
I chose an implementation-heavy topic.
I loved the programming, evaluating was a bit stressful, writing still a chore.
Tried to extend into part of publication, but the results didn't work out.
2022-2025: Master's at TU Berlin
I wanted to leave Aachen after my B.Sc. since I had little connection to the
city due to the pandemic.
My girlfriend studied in Magdeburg, Berlin was the closest TU9.
The course-offering looked nice.
I also liked that Apache Flink was from DIMA.
I was also able to move in with a friend, i.e. finding a flat was not a
blocker.
I continued to work at Aachen until 2024-02.
Starting to work at DIMA on 2024-04.
In the following, the courses are ordered by how much time I spent with them.
1. Semester
- Robotics 1: Very cool robots, and I understood the LinAlg / Jacobian (a bit).
- BsPrak (Implement mini-OS on ARM): Loved it, as soon as I didn't have to
read the ARM manual anymore.
- DBTLAB (Implement mini-DBMS, DIMA): I loved it.
- ACA (Advanced Computer Architecture / How a modern CPU-Core works):
Suboptimal lecture, but interesting. Could have been more hands-on /
programming.
I dropped Machine Intelligence 1. I didn't have the time to fight the greek letters.
2. Semester
- IISC (Implement service for A/D-CTF): Loved it, but don't know much
about security.
- CARE (CompSec Seminar): Got a very good topic related to my B.Sc. thesis,
loved reading literature, writing was fine, presenting nice.
- Sociology 2: Loved it. Though-provoking. Shit I now quote way too often.
- DMH (Data Management on Modern Hardware, DIMA): Fitted nicely after ACA,
was really interesting.
- IsabelleLab (Proof-Assistant Theory and Practice): Liked it, but was only
interesting in the practical parts.
- TUB4F (Lecture series on climate): Very interesting, easy 3 CP.
I also considered Fog Computing, but liked the other courses more.
3. Semester
- ROC (Research oriented Course on Databases, DIMA): Loved it. Technically
even contributed to the eval of a publication.
- WSoz (Sociology of Science): Loved it.
- ADS (Algorithms for Distributed Systems): Was ok. Felt a bit like eating
my veggies.
- Sociology 1: Like Soc2: Loved it.
- TUB4F: same as last semester
Stuff I considered / started but dropped:
- Sociology of Knowledge
- Sociology of the Anthropocene
- Cloud Computing
4. Semester
I only have "Freie Wahl" (free electives) left.
I intend to do more Sociology seminars and maybe TUB4F.
5. Semester
Thesis, probably at DIMA.
Summary
Follow the fun but plan ahead.
- I like programming, especially systems programming.
- I always checked out more courses than I intended to do at the beginning of
the semester.
- I dropped courses to manage my workload.
- I got jobs at the chairs where I intend to write theses.
- Step by step I got into databases, now considering a PhD.
Alternatives academic Areas I might have gotten into, given the offerings:
Programming Languages, SymEx / Fuzzing / Systematic Testing, Systems Stuff.
Else I'd have probably focused on finding a nice student job in industry for
my masters.
Btw: check the statistics on how long people usually take for their degree.
Aaaand here's a list of all Chair