BCS Term 2 review: CPSC 213, CPSC 221, ETEC 510, and MATH 221

The best lil study buddy.

Two study terms down in BCS, three more to go (… at least. And not including my work/co-op terms, of course). In December, I wrote a Term 1 review; it’s high time I give you a Term 2 review! In term 2, I took CPSC 213 and 221 (the two core CPSC 2nd-year courses apart from CPSC 210, from which I was exempted upon admission to UBC), MATH 221 (matrix algebra), and ETEC 510 (a graduate-level course on educational technology design).

The good news is that I found term 2 easier than term 1. I think this is largely thanks to the fact that I had acclimated to my new living situation and figured out how to manage my stress and workload a lot better. Probably also helped that multivariable calculus was behind me, too! This isn’t to say that my courses were easier this term. CPSC 213 and 221 are both known as tricky, busy courses. But in term 2 I spent a lot less time worrying about Millie and my landlady’s cat, or coming up with a grocery shopping routine, or getting lost on campus.

Interestingly, one of my favourite learning strategies fell by the wayside this term, too. Previously I had taken messy notes in class and then rewritten and reorganized those notes on my own time. I also made notes on all my readings. This term, I was a little more cut-throat about prioritizing my time — and that meant not rewriting all of my notes from class and even not doing all the readings (or at least being selective about them). To my surprise, I got better grades this term than last despite not doing as much ‘busy work’. Instead of writing notes, I focused on identifying weaknesses and drilling problems. I saved a lot of time this way, but this new method also required me to be much more aware of exactly when I started feeling lost in any course material — because as soon as that happened, I’d go out of my way to talk to a TA or professor about the content. Talking about my mental models of the course material with an expert helped me understand the material better and helped me correct my misconceptions much more quickly than reading or writing notes.

Anyway, without further ado, here’s my brief course review of the term.

CPSC 213: Introduction to computer systems

I really enjoyed this class and I’ve applied to be a TA this summer! In 213, you’ll get to learn a lot more about how and why a computer works at the machine code level. You also get to use C! (Yay, pointers…) The course’s main downside? CPSC 213 is a LOT of work! I recommend starting the weekly assignments as soon as they come out, doing the assignments all by yourself (no partner), and attending an office hour or the labs when you get stuck (and you will get stuck). Don’t bash your head against the wall for hours when you just can’t spot a tiny typo. I rarely read the textbook in this class, but the course companion is a godsend — sometimes the professors haven’t taught you everything you need to do the weekly assignment, so reading the course companion can clear things up. My last main piece of advice is take the time to get very comfortable with assembly in the first half of the course; if you can read and write assembly quickly and accurately, you’ll free up a lot of your time for the harder questions on the midterm and final.

CPSC 221: Basic Algorithms and Data Structures

CPSC 221 felt pretty similar to CPSC 121; once again it’s a smorgasbord of lots of different things (proofs! big-O! C++! data structures! algorithms!). Sometimes it felt less like a cohesive course, where one unit built on another, and more like a “Hey look at this cool thing! Now look at this unrelated cool thing! and WOW did you notice this third cool thing over there?!” Discovery Channel show. Unlike CPSC 213, where the assignments got harder and harder as the term progressed, 221 did the reverse: I found the coursework very heavy at the beginning (the labs and the first programming project were tough), and as the term progressed the theory assignments and programming projects got simpler. I did the readings more often in this course and found them especially helpful before diving into the labs. I had my first pair programming experiences with 221 and found it extremely helpful; although having a partner for the programming projects didn’t seem to save us much time, I think I learned much more from the assignments and realized just how enjoyable pair programming can be! The theory assignments, however, I did on my own. I think if you found CPSC 121 bearable, you will be just fine in 221 — the proofs build off of 121 pretty nicely.

ETEC 510: Design of Technology-Supported Learning Environments

This course came out of left field. Because my bridging module is “technology and education,” I was just mindlessly googling around when I found UBC’s Masters in Educational Technology. Not feeling very hopeful, I asked for special permission to be enrolled in this graduate course, and to my surprise they let me in! I was expecting a lot of research on current educational software best practices, but instead this course was very theoretical. Instead of writing a research paper, I formed a team with 3 other classmates (brilliant elementary school teachers, all of them) and we created our own contribution to ed tech where we shared coding resources with K-8 teachers online. While I enjoyed learning from my peers, overall I didn’t get very much practical use from the course content. I imagine that the theory has impacted my thinking on ed tech in ways I haven’t even noticed, though, and someday if I work in the field it will affect my practice even if I’m not aware of it.

MATH 221: Matrix Algebra

Never-ending row operations … Despite doing well in this course, I never really felt like I had the hang of it until maybe five days before the final exam. I had the opposite experience in MATH 221 versus MATH 200: in 221, I felt like the math itself was straightforward (a bit of factoring, mostly basic arithmetic), but conceptually I had no idea what was going on (null spaces? column spaces? dimension vs rank? spans? basis?!). In 200, I felt like I had a good grasp of the concepts but tricky computation like integration or differentiation escaped me. Fortunately, there were some great YouTube videos called Essence of Linear Algebra on the concepts, and then I just drilled problems from class and old exams. I didn’t find the textbook too helpful — too dry, not conceptual enough for me — but everyone else I know essentially taught themselves the course from the textbook rather than attending lectures. Overall, despite some panicky moments over the course of the term, MATH 221 really wasn’t that bad.

Millie’s got her fetch face on.

I’m a little under halfway done my spring break at this point, and trying to enjoy the sunshine with Mill while fretfully applying for my first co-op position. My only project for right now is to sample as much ice cream as possible, and maybe deploy our JavaScript game from the Vancouver Game Jam if I can get ahold of one of my teammates from the weekend.

Class resumes on May 14: CPSC 313, 322 and 320. That’s Hardware and Operating Systems, Intro to Artificial Intelligence (cooooool), and Intermediate Algorithms and Data Structures. Wish me luck!

Future BCSers, don’t hesitate to leave a comment with any questions you’ve got about the upcoming year.


“Oh, the places you’ll go…”

Millie looks proud with her obedience school certificate.
So regal! So proud!

Guess who graduated this week?!

No, not me…


She successfully finished Obedience Level 2 at a local dog training facility.

That’s basically the elementary school of dog training — “So it’s not a big deal,” you might conclude.

But you would be wrong.

For Millie, this is basically her PhD in Dog.

I adopted Millie from the Kingston Humane Society when she was somewhere between 8-12 months old. Little did I know that she had pretty severe dog reactivity.

This actually stems from fear and lack of confidence, not aggression, but it has been a long journey to get to the point where we can happily finish a group obedience class together (sure, she had maybe 3-4 minor meltdowns per class, but she’d pull herself together again after 10 seconds or so each time — and it was only ever if one of the other dogs started it, so I don’t think she was that bad).

So Millie and I are pretty pleased with ourselves!

Millie’s training saga got me thinking a lot about what dog and human learning has in common. For example, with both dogs and humans, we often approach learning all wrong:

  • We expect dogs to learn things on our terms, not theirs, and consider using dog-friendly motivators like treats as ‘bribery’ — while we also fail to connect what we’re trying to learn with our own personal goals and dreams.
  • We frighten dogs into avoiding the wrong behaviour (e.g. jumping up) as opposed to teaching dogs to choose the right behaviour (e.g. sit nicely) — while we are also terrified of failure, experimentation and learning from mistakes in our own education.
  • We get frustrated and angry when our dogs don’t perform as expected — and we get frustrated and angry at the teacher, course, or other circumstances when things don’t go as planned.

With my own dog, Millie, I’m committed to using scientifically-sound and humane training methods — namely positive reinforcement only, lots of regular treats, praise and happy voices, no punishment or fear required. It’s worked out pretty well for us so far.

But this blog isn’t about dog-training — it’s about how people learn! Here are a few tips I’ve picked up for my own studies after working with Millie for the past 4 months.

Milk what motivates me

Homework can be a real bummer. It’s demoralizing when I can’t figure it out, it often takes way more time than I thought it would, and there are always other, way more fun things I might be doing instead. When I’m teaching Millie a new behaviour, I have to consider what’s most motivating to her. (In this order: 1. Small furry moving prey. 2. The smelliest, meatiest treats. 3. Praise from me (a distant, distant 3rd…).

So what motivates me? What do I love? Delicious food. Going out with friends. What do I want to do when I graduate? A fun, challenging job. My choice of where to live. Working for a cause I believe in.

With this in mind, I’m careful never to work for too long without deciding on a fun reward, something to look forward to, at the end. I also keep my eye on the big picture when I’m feeling drained. Countdowns help — university terms are quite short (12-14 weeks), as is the degree itself in the long run. I like to purposefully choose these rewards and schedule them proactively so that I can see them coming up in the calendar.

Millie isn’t a machine; she needs to know what’s in it for her when it comes to training. Same goes for me and math homework.

Treat practice problems like play

Currently I’m blasting through Khan Academy’s Integral Calculus section. As a recovering perfectionist, I take it pretty personally when I’m on my nth practice problem and still getting most of them wrong. I have to keep reminding myself that these practice problems aren’t final exams, nobody is judging me, and it’s only by getting these wrong, staying lighthearted about it, and learning from the experience that I’ll actually learn the concepts.

Traditional dog training keeps the dog so scared of making a mistake, they’re afraid to do anything at all. These dogs seem well-behaved on the surface since they’re so calm and docile, but in fact they’re often pretty stressed. Dogs trained with positive methods burst with enthusiasm and good behaviours — you can tell they are having a blast as they zoom around the agility ring, for example. The way to get dogs like this? Reward good behaviours and treat every training session like a game!

I focus so much on my mistakes that I fail to notice my success, which means I often feel stressed and tired about my homework before I even start. That doesn’t feel good, and it also means I’m more likely to procrastinate doing the work. I’m trying to flip this dynamic — focus on what’s good, what am I doing right, and use that information to do better next time at the hard problems. My hope is that one day I’ll treat homework as a fun experiment without any fear of messing up.

Avoid the blame game

I hear a lot of dog owners say things like, “Well, my dog is just so stupid he could never…” or “My dog is so stubborn she could never …” I also hear students (and myself!) blaming the course, the teacher, the circumstances, etc. when things go wrong — a failed test, misunderstood homework assignment, bad grade.

What’s the use in that?

This isn’t to say that courses, teachers, and circumstances are never to blame for bad outcomes. Of course they are — sometimes. But most of the time, those elements are out of our control — in the same way that our dogs’ temperaments, histories and genetics are out of our control, too. I think those feelings of bitterness and blame only bring ourselves down without improving the situation at all. It might bring a short-term relief because the outcome is no longer my fault, but now I have to carry those negative feelings around with me. Gross!

Better, I think, to take responsibility for the parts that are in our control — “My reinforcement timing was off with the dog at that point,” “I didn’t think to check in with the teaching assistant before handing in the assignment” — and then just let go of the rest. Move on. Know better for next time.

All easier said than done, I know. Don’t blame me! 😉


School’s out! What I learned about learning this term

Millie snoozing on my sunny coffee table while I finish up a CISC 124 assignment.
Millie snoozing on my sunny coffee table while I finish up a CISC 124 assignment.

Sorry for my absence these past couple weeks! One of my original goals was to post weekly, but … oh, well. Another promise I made to myself was “feel no guilt”!

What have I been up to? Well, the final exam for CISC 124 was this past Tuesday, so I was finishing upthe course’s  last two assignments and studying for the exam. My time has been taken up even more, though, by really buckling down and working with little Millie.

(As some of you know, Millie is both the joy and bane of my life: she’s smart, athletic, hilarious, and sassy, but she is also recovering from leash reactivity toward other dogs, and her crazy smarts and energy get her into trouble on the daily. Now that school has come to a close and work is wrapping up for the summer, I’ve found a wonderful trainer to help me learn how to communicate better with my pup.)

More on that later!

Today, I thought I would list a few things I’ve learned from CISC 124 this term.

Weekly review really does make a difference

One of my initial goals for this course was to consolidate and review my lecture notes at the end of each. I did manage to do this more often than not, but I definitely noticed whenever I failed to do so — my understanding of the concepts suffered, so writing those assignments took longer. However, perhaps because I still found the course overall pretty easy, it was still tough to feel motivated enough to sit down and organize myself like this at the end of each week.

In Student Affairs, we talk a lot about “student development theory.” One popular theory is from Nevitt Sanford in 1966, who wrote about the need for a “support/challenge balance.” My experience in CISC 124 lacked sufficient challenge, so I didn’t feel as engaged in maintaining my learning strategies and habits as I could have been.

However, I do know that when I encounter a tougher course, I will really rely on this habit to keep me up-to-date and fluent with the course content!

Sit at the front of the class

During my (first) undergraduate degree, I always sat at the back of the auditorium, or at most very solidly in the middle of the room. Sitting at the front? No way! Too exposed. Too keen. Did not allow for whispering with my friend. (Each year during my undergrad, a different prof would reprimand me for somehow being disruptive. Very embarrassing.)

But these days, I’m not as interested in whispering with my classmates and I clearly do not worry about looking keen. I also can’t hear or see as well from the back of the auditorium. In fact, I have no idea how 17-year-old me could hear or see from back there, either. What was I thinking?? To be fair, I definitely jack up the volume on my earbuds when I go for a run, so maybe my hearing has declined. Either way, though, whenever I could leave work early enough to sit in the first 2-3 rows, I did so. My notes were always better, I drifted off less, and I didn’t miss anything.

Never buy the textbook

Okay, maybe “never” is too strong a word. But I’ve now taken two computer science courses and one mathematics course at Queen’s. Each time, the professor has recommended I buy the textbook. For CISC 124, the professor said “You definitely, definitely want the textbook.” So I dutifully went to the bookstore and spent hundreds of dollars, as requested.

Have I ever needed the books?


Call me naive, but when a prof says “You really need this textbook in the class,” I expect to actually need the textbook in the class. Nothing from the textbook couldn’t be gleaned from the lectures. We did not get tested on anything from the textbook. I’ve done very well in all these classes — and never needed to check the book.

Now, I get that I’m not just in school here to get good grades. I should be in school for the sake of learning! But when that extra textbook learning costs hundreds of dollars on top of tuition, well… No, thanks.

Coming from a humanities background, I found class readings were crucial. Assignments, essays and tests all depended on knowing the content of the readings as well as what happened in lecture. In a pinch, maybe you could check out Wikipedia or SparkNotes — but your grades would definitely suffer for it, and you certainly wouldn’t get your money’s worth in the course.

In other news, last week I received my acceptance from Simon Fraser University. I was also admitted to Queen’s computer science program some time ago. Hopefully I’ll hear back from the University of British Columbia in early May (like I’ve read online), since I gave my landlord notice that I’m moving out at the end of June!