Preamble
Feel free to skip this part
On this page I will discuss my personal thoughts on some of the courses I’ve taken. For the most part, I find university to be a depressingly inneficient way to learn. At least for a field like computer science. It may be less gloomy for other fields, but the delta between useful knowledge, skills, and actual understanding versus what is taught and what shows up on exams is … scary !
Take a traditional compiler course for instance. About 1/3 of these courses tend to be spent on formal theory for lexing and parsing. You learn four or five different techniques for parsing, all with their own formal theories. You must be able to compute them. Pen and paper, old school. But if you ever want to write your own compiler you quickly realize lexing and parsing accounts for maybe 1/20 of your struggle and pain. And heres the kicker. The approach you end up using, and almost everyone else ends up using, is not one of the four or five you so diligently learnt to compute by hand. Very few, if any, of the struggles you face writing your compiler was made any easier by taking the compiler course. Sad, but true, and symptomatic for a lot of my experience at university.
On Ranking
Feel free to skip this as well
There are many ways to learn. Taking a university course is one of those. For a course to be worth your time (with respect to learning. If we are honest for a second, perhaps the greatest value of taking a course at university is the piece of paper and stamp of approval you get after passing) it should provide means to teach its subject better or at the minimum equal to what you could’ve done by other means. Pitted against the entirety of the internet, youtube, books, etc, this becomes a difficult task. Yet many courses succeed.
So when ranking a course I will consider how well it teaches its subject. This includes what parts of the subject it teaches, what it does not teach, what it emphasizes, etc., but also how it is taught. Another important aspect is the subject itself. If the subject is uninteresting in its nature, subjectively uninteresting, or seemingly irrelevant for industry or further study, I will rank the course poorly, irrespective of how well it was taught.
For fun, I will give each course a rating between S to F.
S-Tier
TDT4260 - Computer Architecture
TDT4255 - Computer Design
A-Tier
TDT4258 - Low-Level Programming
B-Tier
TDT4230 - Graphics and Visualization
TDT4200 - Parallel Computing
C-Tier
TDT4195 - Visual Computing Fundamentals
D-Tier
TDT4205 - Compiler Construction
E-Tier
TDT4265 - Computer Vision and Deep Learning
TDT4165 - Programming Languages
Lorem ipsum! Some words on each course is coming …