Review: CPSC 189

Posted on July 17, 2012 in ubc • 2 min read

CPSC 189 is a relatively new course and is only worth 1 credit, but it sounded interesting enough that I decided to take it during summer session. I've always wanted a formal grounding in Python, and while I was somewhat disappointed to realize that the purpose of CPSC 189 wasn't to teach students Python per se, it was still an interesting and engaging course in my opinion.

CPSC 189:

In a nutshell: [ Language: Python ] – [ IDE: Wing IDE 101 ] – [ Prereqs: CPSC 110 ] – [ CPSC 189 Website ]

Basically, this is CPSC 110, except you'll be designing programs with the Python programming language (which is a fairly popular interpreted language), instead of Racket. The same design principles are followed; you'll be re-using the HtDF, HtDDD, and HtDW recipes you learned in CPSC 110. So, you may ask, why should I take CPSC 189 then?

The answer lies in the differences between 110 and 189. While 189 is a very short course (1 month during the regular winter session, 3 weeks during summer), you cover additional material that you haven't explored (at least, not in-depth) in 110. I think the most notable difference would be the fact that 189 puts a lot more emphasis on iteration over recursion. In 110, you learned about recursion very early on and integrated it in your design recipes, while iteration was only briefly covered in the last unit (along with mutation and scope); in Python (and in most other languages), the preferred method of dealing with lists is not recursion as you've seen it in 110, but rather iteration. And once you've seen the simplicity of e.g. list comprehensions, you'll never want to go back (does anything remotely similar to list comprehensions even exist in other languages)?

You also learn about three useful third-party libraries: pygame (which you'll use for applying the HtDW recipe), matplotlib (a powerful plotting library), and numpy (for manipulating large amounts of data; in 189 you'll only work with numpy's arrays).

Overall, I enjoyed the course. I liked my prof (Dr. Paul Carter); he's very knowledgeable in the material that you'll learn in CPSC 189 and he's effective at teaching and communicating with students (he's also quite fast at replying to questions via Piazza). I do think that the course was a bit too short; the material was easy enough to absorb within the rushed schedule of a summer course, but I sort of wish we covered more material.

Workload in this course is manageable, but you do have to keep up. Mark breakdown is 65% final, 15% labs (spread between 5 labs during summer session), and 20% for in-lab quizzes at the start of each lab.