Academic Wrap-up: Winter 2010

It seems to be becoming a BlogSquad tradition to do these wrap-up things… I’ll admit, whether out of sympathy or a common suffering, I love reading them. As I’ve said about a zillion times in the past, this hasn’t been the greatest term for me. However, the grades were finally released yesterday (most of them, at least) and, despite my crappy performance, my GPA didn’t move an inch since the grades I got in the end were actually pretty good, considering. That can be good or bad, depending on how you look at it, I guess… but as long as my average is higher than 80 (the approximate requirement for UBC’s computer science grad program), I’m fairly content. (All of the grad students and faculty I’ve talked to say that so long as you meet the threshold, no one really cares about grades after that… research is what counts.) Anyways. On to the classes!

CPSC 312 – Functional and Logic Programming
Professor Kurt Eiselt
Final grade: don’t know yet

Class average: don’t know yet

As of this writing, my grade hasn’t been posted on the SSC yet. I’ll update when I find it out, but barring a failing grade or some other bizarre happenstance, I doubt whatever I get will change my opinion of the course very much.

Alas, if it were not for how much I dislike Prolog, the combination of Kurt + programming would make this my favourite class. This was a class, similar to CS322 below, that I let fall by the wayside as a sacrifice to the gods of “oh lord please let me pass” for Math 223. This means that I did start the class on sort of a bad foot, but programming classes are great for being generally easy to pick up so long as you do a lot of practice coding… and I love coding of any sort so practice was a (d-dare I say it…?) joy. For Haskell, at least. Programming with Prolog was about as enjoyable as clipping my banshee cat’s nails.

Anyways. This class had four assignments, which were, for the most part, solving a few little puzzles each. No big deal, even though I missed a couple of them. They were only work around 1.3% each. There were also two larger projects: for one, we had to program a peg game called Oska, and for the second, we had to program a game that would assist with kicking butt at Clue. The most important point is that these projects were mandatory to be done in pairs… which, I guess, can be great in certain circumstances (so I’ve heard) but in my experience, pair/group programming very, very rarely works. I won’t go into it much here, but this was probably the least enjoyable aspect of the course. So, if anyone is taking this course with Kurt and he implements the pair project again, make sure you set up some guidelines and expectations from the beginning or you could find yourself in a sticky situation. However, I am pleased to say that our Clue project won our partner and I $20! Bernoulli’s Bagels, here I come…

The way to succeed in this class is hardly a secret… program and program a LOT. If you go through all of the little algorithms in the slides (for example, the Prolog interpreter can span 50+ slides but it’s important to trace through it for real so you understand the process), and then just do all of the assignments, given practice problems and (if needed) textbook problems, you should be a-ok. Beyond this, perhaps a little bit of textbook reading is necessary for cementing some of the more theoretical ideas, but in my experience with Kurt (both as a student and a TA) he tends to focus a lot more on the practical than the theoretical, which I much prefer.

CPSC 322 – Introduction to Artificial Intelligence
Professor Cristina Conati
Final grade: Above average. (Not bad at all, considering I thought I was going to fail.)
Class average: 70%

I went into this class having read the following review on RateMyProfessors: “I guess I was just disappointed that the course was not what I expected… ‘Where are the cool robots and stuff?'” “Pff,” I scoffed. I wasn’t so naive as to believe we’d get to be building hardcore robots (or even Roombas) or building neural nets… which was true enough. However, I didn’t think that CS322 would be so far removed from real-world applications as it was.

The first half of this class was studying search algorithms, divided up into uninformed search (things like depth-first search, breadth-first search… mostly review from CS221) and informed/heuristic search (like A* search, best-first search, etc.). We then got into constraint satisfaction problems, or CSPs. These are just what they sound like… solving a problem given a set of constraints, like scheduling classes. This was more interesting than just learning and tracing search algorithm and search algorithm, I’ll give you that. In fact, I would say that CSPs were my favourite part of the course, since it was easy to see how one could actually implement this and use this. We touched on a weird (and seemingly obscure) representation of problem solving using STRIPS (don’t ask) which was… weird. That sums up everything before our midterm.

Post-midterm, or pre-final depending on how you want to look at it, was three sections. First was a short section on logic (basic predicate logic like we learned in our second-year CS classes, combined with some proof strategies that would be easy if you’ve taken something like CS312). Essentially, we learned a Prolog-like language and used it to represent problems, or “worlds”. We then moved onto probability theory. I thought that this would be a piece of cake since I’d been taking Math 302 at the same time, but the way everything was presented was weird and unintuitive and it took me awhile to learn everything, even though in the end I already knew everything from 302 (which should tell you something about the presentation). This lead into stuff like Belief/Bayesian nets, which was interesting but it’s the sort of thing you could easily spend a whole class on to really get something out of it. Finally, we had a couple of lectures on decision theory. This last one, I taught myself the night before the exam so I really can’t remember enough to comment on it.

In fact, I’ll admit that I taught myself a lot of this course just for the final exam. I fell very behind in this class after my Math 223 fiasco, which was really dumb of me. The lectures followed the textbook very closely, so I falsely assumed that I could easily teach myself everything in a couple of days from the textbook alone. This might be true if the textbook were a little easier to read, but whenever I would sit down to tackle it, it felt like the sort of thing where you have to spend ten minutes processing each sentence because they are so dense and information heavy. (So, my somewhat praise-less exam is certainly coloured by this, but I stand by what I say.)

The midterm for this class was a strange experience. I studied reasonably hard (a lot of it was last minute memorization of search algorithms, etc. since a lot of this class is memorization) and came out of it feeling like I surely had gotten an A or higher. Surprise, surprise… I got my lowest grade on a midterm ever. Meaning, a bare pass. Woohoo…? To compound matters, the teaching staff decided not to post a solution guide, and instead told us to “just come to office hours” to discuss where we went wrong… where they promptly told us to “just read the book”. Hmm. In fact, the whole “omg, I did sooooo well” to “what… the… hell… THAT’S my grade?” thing was common across every student I talked to, all students who (including myself) are used to getting very good exam marks. So that’s something else to consider.

Professor Conati sticks to the book fairly closely, though I have a feeling you’d get this with any CS322 prof since (a) it’s a precursor to 422, with David Poole and (b) the textbook is written by David Poole himself. Some people like this and some people hate it; personally, I’m indifferent, though it can be useful when studying to know that everything will be in the textbook. I am grateful to Professor Conati for meeting with me when I was really sick and offering to help me in any way she could, and she is willing to give you extensions if you really need them. She also provides you four late days, to be used on any assignment you want, which I thought was great.

Anyways. Overall, I was disappointed with this course. As I’ve mentioned in the past, I’ve been toying with the idea of getting into AI research ever since learning about CS. (I love things like neural nets, machine learning, etc.) This class has made me reconsider that for sure, despite the fact that I know basing your career decisions on one introductory course is sort of a silly thing to do. If you do treat this as an introductory course, for the sole purpose of building the somewhat boring foundation you need for “cool robots and stuff”, then it’s a bit more palatable. I’m going to continue on with 422 next term to see if that’ll satisfy what I thought this course would have been. I wouldn’t not recommend this class to CS students, especially because it’s a pre-req for cool stuff and you do indeed learn things that will be useful to you, but while you’re in the thick of things, it’s hard to see it as anything beyond rote memorization and tedious assignments.


Math 302 – Introduction to Probability
Professor Michael Kozdron
Final grade: In the A range
Class average: 74%

This was one of those classes that I figured would be a necessary evil. I hated probability in high school, and so went into this class with indifference and a hope that I would just get through it with a decent grade since it was a prereq to bigger and better things. In the end, I lucked out with a really good professor and material that, lo and behold, was really interesting after all.

Michael Kozdron is a visiting professor from Saskatchewan- I can’t remember why he’s here at UBC, but I think he was only here for the term. Interestingly enough, he actually did his undergrad at UBC and had taken the very class he was teaching us. This is a shame, because I really would have looked forward to taking more classes with Professor Kozdron… damn those URegina students.

Anyways, Professor Kozdron prefaced the class with saying that the textbook was optional, and that even if we did get it, he wasn’t planning on following it. This immediately raised some red flags for me… for a no-textbook arrangement like this to work well, in my experience the teacher has to have either stellar lectures, in which you can’t miss a single one, or thorough slides. Of course, having the best of both worlds would be ideal, and this is exactly what Professor Kozdron gave us. His teaching style is such that he introduces a concept intuitively at first, generally through some sort of scenario you can understand without knowing anything formal about probability. (Drawing balls out of a bucket or whatever, for example.) He’ll then work us through deriving an equation from the example, and only then will he introduce a formal formula and terminology. This really made the material relevant and easy to stay interested in, especially when he took the time to make the examples pertinent to lots of disciplines, including computer science. His lectures were engaging (even though I think he inadvertently came across as condescending at times) and he typed up in-depth handouts summarizing each lecture.

We had a weekly assignment and, while they could be tricky at times, they were certainly doable. Professor Kozdron also made himself very available for hep… I must have met with him for five assignments, and I doubt I would have done as well on them had I not taken the time to do so. Hmm… what else. The class had two midterms- the average was very high for the first one (I forget what it was… maybe 78%?) and a bit lower for the second one. The final was challenging for me because it covered material that I hadn’t studied as thoroughly, but I guess I did ok on it… my final grade was a bit lower than I’d liked, probably due to the final exam (since my course grade leading up to that was pretty high).

So… I guess I really don’t have many negative things to say about this class. I’d say this was easily my favourite class of the term (sorry CS312, but Prolog sucks) and I’m actually looking forward to taking more classes in probability now.


Ling 101 – Languages of the World
Professor Strang Burton
Final grade: In the A range
Class average: 71%

I went into this class thinking that if I didn’t end up with at least a 95%, I would have failed myself. “A 101 arts class, come on.” However, I forgot that 100-level classes can actually be the most challenging, if not for content then for the sheer breadth of information one must learn in an introductory class. So, maybe in the end with two dear linguistics major friends helping me and a year of university under my belt, I should have gotten that 95%, but for an arts elective class that “doesn’t really matter” for my degree, I’m happy with my grade.

I’d say that the breakdown of this class was probably 80% phonology and the rest a little bit of syntax. (At least I think that’s right… I always get these ling disciplines confused.) We touched on language/sound systems for Hawaiian, German, English (naturally), Mandarin and a language called Halq’emeylem (which is a Salish language from around BC), so some of the material was about comparing and contrasting sound systems and how they arise. A good portion of the class was simply learning the IPA piece by piece and transcribing English words phonetically. The assignments, midterms and finals all followed this format quite closely. So long as you know the IPA (and can quickly scribble out a vowel chart after your exam starts) you’ve already achieved an easy C+ on a test.

I guess there’s not much that I can say about this course… Professor Burton is a really nice guy and has a knack for making lectures very interesting. I wouldn’t call him a super difficult professor insofar as testing and stuff goes, but his questions can often be a bit tricky and require a bit of thinking beyond the obvious answer. (“Pick the best answer when all are possibly right” sort of thing, for example.) I found the tutorials pretty boring and arduous and they felt a bit like high school all over again (I guess I’m not used to classes with lockers, dick drawings on the wall and seventeen year olds giggling anymore… such a curmudgeon) and could’ve done without them, even though they were unfortunately mandatory, as was the 9% participation mark (umm…). However, those things just come with the territory of taking a first year class and overall, it was pretty good.


Math 223 – Linear Algebra (Honours)
Professor Hendryk Pfeiffer
Final grade: W
Class average: Not sure. (Since I withdrew, the average doesn’t show up on my transcript.)

As I’ve detailed in other posts, I was super into taking this class since, at the time, I was keen on doing an honours computer science degree… which didn’t pan out well at all. This class was a terrible experience in feeling like a dumb bumpkin, though I guess I should thank it for forcing me to re-evaluate exactly why I wanted an honors degree (protip: I didn’t, really).

I wouldn’t consider myself terrible at math or anything, but I wouldn’t say that I am super intuitive at it and I don’t have a long history of super duper IB or honors math or anything. (Cripes, the last time I took math before last year was like… five years before that.) All I can say is thank God I learned how to do proofs in computer science because that’s all this class was… the assignments, the tests, that’s it. I actually did well on the assignments for the most part since I think they were marked quite leniently, and I wish I could say the same for the midterm but… I really, really can’t. I bombed that thing. With a capital B.

So… considering I only did half the course (I had to withdraw because the stress of it was both compounding some pre-existing health disasters I had at the time and screwing up my other classes majorly), am not amazing at math in the first place and am not particularly keen on proofs, take my advice with a grain of salt. But, unless you’re super duper into math or you really have no other choice but to take this class for a pre-req for something, go with Math 221. Someone actually advised me of this beforehand and I waved them off saying that I liked a challenge but… this is less of a challenge and more of a masochistic, self-imprisonment kind of deal. And that’s only a little bit of hyperbole.

4 Responses (Add Your Comment)

  1. Glad to hear that you enjoyed the lectures on probability theory. You might want to have a look at a free digital textbook on probability theory and statistics.

  2. Cool, thanks! I will definitely keep that in mind for my stats class this term. :)

  3. Wow. Sounds like a very mathy/computational term… XD

    Glad everything looked up in the end!

  4. All my terms are pretty mathy/computational, it seems. I can do with the latter, but the former is a drag. :/ But yeah! Turned out that it wasn’t so terrible after all. I hope your MICB marks come in soon and you’ll be pleasantly surprised. :)

Leave a Reply

Formatting: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Spam prevention powered by Akismet