CMPUT 379 - A review
At the time of writing CMPUT 379 was a course at the University of Alberta titled "Operating System Concepts." Professor Jonathan Schaeffer was the course lecturer. It was personally the most interesting class of the semester. I've had a fascination for the Linux operating system ever since my first Arch Linux install. Fortunately, CMPUT 379 had a strong focus on the Unix family of OSes. We learnt several topics in operating systems including:
- shells
- scheduling
- deadlock
- networking
- multi-programming
- memory management
These are all core topics when it comes to writing efficient code. A lot of the topics taught in this course were (personally) self-evidently applicable. And even when they were not, the professor made a great effort in providing examples. Professor Schaeffer was an excellent lecturer. Even with the limitations of online classes, he made the majority of lectures quite interesting by providing analogies and well thought out slides.
The course workload included three assignments, one midterm and a final. The assignments were well balanced, and we had ampule finish each one (2 weeks). Much of the concepts needed to complete the assignments were provided in lecture notes and the labs. And even if the lab and the slide are not enough, Google and StackOverflow are always helpful. The first assignment got me though, I went overboard in my attempt to add syntax highlighting to what should have been a simple shell program: Shell379. That said, the assignments do require some solid knowledge of the C/C++ language. Fortunately, my prior experience with C++ from CMPUT 350 (Advanced games programming) made it much easier.
The midterm and final for this course were brutal. Since exams were online this semester, they had a different format from prior years. The final exam was especially gruesome with two long answer questions, a drag-and-drop question (or rather 64 drag-and-drop questions), and 55 multiple choice questions, all in the space of 2 hours 😬. Despite both exams being open-book, the averages were still very low.
All things considered, CMPUT 379 still remains one of my favourite undergrad courses. Despite only getting a B (I'm not bitter 😝), I'm glad to have learnt as much as I did from it and I can't wait to apply the concepts to my next projects. (multithreaded game of life? 👀)