BCS Terms 3&4 Review – CPSC 322, 313, and 320

On Friday, I’ll officially have lived in Vancouver for a whole year — wild! I begin my co-op next Tuesday (more on that in a couple days…) and, at this point, have just 12 months of work and then 8 months of school until I’ve completed this degree.

This summer I took 3 courses. In the summer term, courses are condensed; what would ordinarily be a 12-week course in the fall or winter turns into an accelerated 6-week course in the summer. Needless to say, this was pretty tough. I wasn’t able to enjoy Vancouver’s beautiful summer as much as I’d like, but I hope to make up for it in this last week or so of freedom before I join the working world. Here is my course review for what I took this summer.

CPSC 313: Computer Hardware and Operating Systems

This was a fun class! The first two weeks or so were simply an extension of what we learned in CPSC 213, just with a slight variation on the assembly language we used. But after that, the similarity ended. I learned a lot about memory and caching, file systems, and pipeline instructions. The assignments were tough, but we had fewer of them than in CPSC 213, so the workload didn’t feel as crazy. I wish I had taken this during the regular terms since I think we rushed through some content, but overall I found this course enjoyable and I especially liked learning about the caching and other factors that impact performance.

CPSC 322: Introduction to Artificial Intelligence

I was expecting a bit more philosophy in this course, but we spent most of the class learning a wide variety of search and constraint-solving algorithms. We practiced transforming situations into problems that our algorithms could resolve and talked a lot about the trade-offs between different approaches to a given problem. At the end, we got into some very basic Bayesian network and statistical stuff. This course felt a little light-weight; the assignments were pretty easy and I think we could have done more. The most fun part for me was when were were allowed to use any programming language we wanted to implement a constraint-solving algorithm for a given problem (naturally I chose Python).

CPSC 320: Intermediate Algorithm Design & Analysis

Well, this course was mildly disastrous… which was too bad, because I actually found this content the most fun and interesting out of everything I took this summer! I didn’t gel especially well with the professor’s teaching or assessment style. My partner and I did very well on all of the assignments, but the midterm was a total bust. We also had a group component on the final exam, and I didn’t enjoy that aspect very much, either. I don’t feel like my grade in this course reflects my understanding at all — dynamic programming and NP-complete proofs are really fun to me! Again, I wish I’d been able to take this during the year with one of the tenured professors at UBC, but hopefully I can redeem myself when I take CPSC 420 in a year.

Overall, the summer flew by too fast! Summer courses definitely aren’t ideal — too fast and stressful, don’t actually cover everything that the fall/winter terms do — but at least we managed to blast through 9 credits in just 12 weeks. Not bad.

I plan on writing three more blogs this week about my co-op interview experiences, my teaching assistantship (?) this past term, and the directed study I’ve signed up to do this fall.

Let me know if you have any questions!