// you’re reading...

Ask Tony

Ask Tony: “special methods” to study comp sci courses to ensure success

Ask Tony — compsci.ca/blog

One of the blog readers, Chris, has recently emailed me asking:

I didn’t do as well as I thought I would when I entered university in comp sci. I study hard but I dont think I’m “studying in the right way”. I’m just wondering if you have any “special methods” to study or ways to study comp sci courses to ensure success?

I don’t think there’s any one method to ensure success. Studying, in it’s “study to pass a test” flavour, is simply a way to game the system and success of this route depends just on how well one has learned to cynically manipulate the system. I suggest reading the previous post and discussion on studying, and computer science tests.

The way to “study” for technical fields, like Computer Science, is to review your understanding of the material and practice to cover your weaker areas. [...] Crunch time, a week before final exams, does not form habits, or even offer understanding — it just artificially raises your “knowledge” of the test, for the duration of that test.

So taking learning as an ongoing process instead, what are some of the “special methods” to get the best result? Maybe not so special…

  1. Start with McKenzie’s advice: Now, this is pure gaming, but you need to customize how you prepare for your exams based on your instructor and the way he/she evaluates.
  2. Do your assignments in detail. Also do them all, and on time.
  3. Take note to understand the details of the assignments. It’s easy to skip over certain parts because a snippet of code was provided during the lecture, or in the assignment, or by a buddy who’s done this before…
  4. Be able to explain the concepts. You might be able to do a practice problem, but a lot more technical detail comes up as you try to explain the concept itself. Study groups are excellent for this, as you get to both practice explaining concepts and learning from what others are explaining.
  5. Be able to coherently explain the concepts on paper. A variation on the point above — you need to be able to explain things well on paper. It’s a medium different from verbal discussion and a digital compiler, but it’s quite important as most computer science tests in the educational system are done on paper.
  6. Also, keep on a lookout for intersections with previously learned material. Drawing those connections between different concepts is what facilitates stronger understanding of all the parts involved.

And as usual, wtd adds an excellent point:

Here’s a tip: you’ve done all of your assignments as assigned. Now, take some time, using the knowledge you’ve gained to revisit them all. Go back to that first assignment and approach it anew. Read the description of the problem and all instructions.

The focus here is on two things — get all assignments done on time (as they likely contribute to the course’s grade), but it’s the detailed understanding of the concepts involved that ensure the long-term strategy towards success. Pacing yourself, practicing on regular basis, and avoiding stressful cram sessions is likely a good strategy to follow. Though I suppose that none of this advice is really unique to Computer Science — draw connections to study methods with subjects you already do best in.

Have a CS question of your own? Send me a message

Read more


  1. Posted by spxtrader | April 29, 2008, 9:43 am

    The most important thing, in my experience, is that your objective when studying is to gain a _long term understanding_ of the underlying material and not just ace the test. Doing well one exams should be a consequence of your understanding, but not the point of studying.

    Reply to comment

  2. Posted by Prabhakar Ragde | April 29, 2008, 3:03 pm

    Does Chris have a hypothesis as to what went wrong? Perhaps his expectations were too high.

    Reply to comment

  3. Posted by Greg Wilson | April 29, 2008, 4:15 pm

    I’d start by reading http://www.igda.org/articles/erobinson_crunch.php — far too many students seem to think that pulling all-nighters is a badge of honor, when in fact it’s pretty much guaranteed to lower your grades. I’d then take a serious look at time management practices: one of my students used a stopwatch to keep track of how much of his “work” time was really spent working (as opposed to answering email or reading blog posts like this one), and came up with a rather depressing 28%.

    Reply to comment

  4. Posted by Tony | April 30, 2008, 10:18 pm

    High expectations might have been involved. Success and good marks are subjective, and it might not always be reasonable to be able to keep up the same average as in high school.

    @Greg — thx for the article. I especially like this point:

    In the short term, working over 21 hours continuously is equivalent to being legally drunk.

    Time management is a likely candidate for “best general habit to improve”. And if will power alone isn’t enough, there’s a bunch of software available to curb one’s distractions — from Firefox extensions to block or limit certain websites, to applications that shut off all internet access for set periods of time.

    Reply to comment

  5. Posted by Tony | May 1, 2008, 1:32 pm
  6. Posted by Mike | May 1, 2008, 7:40 pm

    One trick I’ve learnt over my years at university is that at undergraduate level you’re often being taught from set material. Most universities will point out what the class is being taught from, and often enough every answer you’ll ever need will be in these books.

    In the summer before I started at my new university I decided to go through all the recommended texts for my classes. I was recovering from an injury at the time so I spent all my days in bed reading these books and making notes. I eventually got through all the books and started university to find it a walk in the park. I’m now looking on reading next years set texts to make life as easy as possible for me. I spend at least one week of my summer holiday bored, so that time can be spent cramming.

    I guess it just adds to the theory that you should do things earlier rather than later.

    Reply to comment

  7. Posted by Davi | May 11, 2008, 5:57 pm

    Mike i agree to your point I guess it just adds to the theory that you should do things earlier rather than later.

    Reply to comment

  8. Posted by Prabhakar Ragde | May 11, 2008, 7:00 pm

    Nice theory, but it doesn’t work with first-year CS at UW. We go well beyond the set text in the first course, and the second course is more or less a synthesis from several places, with the required text playing a minor supporting role (teaching C syntax, as opposed to the real content of the course).

    Reply to comment

  9. Posted by JardTheGreat | May 12, 2008, 2:08 am

    Just want to drop a message here as the topic caught my attention. Nice tips on acing your comp sci courses. I survived my comp eng undergraduate course by using some of your methods. But i gotta agree with Mike.

    Reply to comment

Post a comment

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