3B CS Course Review/Retrospective
While I usually write my thoughts on the term after marks come out, I wanted to write one for this term a bit early while my memories are still somewhat fresh.
- CS 341 - Algorithms: The first half of the course covered algorithmic techniques such as divide-and-conquer, greedy, and DP, while the second half mainly covered graphs and P/NP/NPC/etc. Contrary to some of the comments on UWFlow, I personally liked the lectures for this course a lot, as the prof went into a fair amount of detail on how particular algorithms worked, in addition to proofs. This course also felt somewhat like a continuation of Math 239, given the style of the assignments involving very proof-heavy questions and the focus on graph theory post-midterm. Similarly to Math 239, the questions on assignments often left me stumped for several days at a time, only for complete solutions to come to mind and make me feel like a genius. While this made assignments interesting, this was somewhat of a problem for exams. While the midterm in this offering was relatively straightforward, the final has become one of the many reasons my expectations for grades are dropping every semester.
- CS 350 - Operating Systems: This course covered a lot of general aspects of operating systems, including concurrency (mutexes, cond. variables, semaphores, etc), processes, virtual memory, file systems, and scheduling. I was in the 8:30 lecture section, which made Tuesdays and Thursdays rather unpleasant. While I think our prof explained concepts from the course well, the slides had a lot of "random" information which I wasn't sure whether to keep in mind as testable material. This was made worse by the general ambiguity around what concepts could actually be on the exam (as technically, anything in the slides could be on the exams). Thankfully, both the midterm and final were relatively ok (especially the final, which re-used a bunch of in-class assignment questions). Finally, while the assignments could be pretty annoying, they never took more than 2 or so hours each, which definitely helped with my already light workload this term.
- PHYS 225 - Modeling Life Physics: This course covered probability and some physics around modeling biological concepts. I took this course to satisfy CS depth requirements (since I couldn't satisfy it with ECE 105 - ECE 106 - ECE 240), and while this course was pretty easy, this course probably had a fair part to play in killing any remaining interest I had in non-CS/math courses.
- PSYCH 101 - Introductory Psychology: I took this course online after deciding BET 580 would be too much work for the term. The class was a broad overview of concepts in the field of psychology, such as emotions, problem-solving, and personality. The material was cool in the sense that it helped me label a lot of the thoughts and feelings I've experienced, but the bi-weekly quiz structure made this course feel like a massive chore.
This term definitely didn't feel as exhausting as my 3A term (likely owing to the 4-month internship I did between terms), but it definitely felt a lot crappier compared to previous semesters, which was interesting. While I was working as a part-time marker for the term, I was still ultimately only taking 4 courses, so my coursework was relatively light. I also got into a relatively consistent routine of going to the gym, which was nice. In spite of having "more" time to relax and living a healthier lifestyle, I noticed I was in a generally worse mood a lot of the time. I'm hoping with my next school term being composed of 5 CS electives, it'll be a lot more enjoyable.