In April 2008 I suddenly grew overly ambitious and decided to add four extra courses for a total of eight courses and two labs when I was required to add only one by my program. People called me nuts. Now there might be some truth to that remark, but I'd like to still argue otherwise and encourage you to read the earlier post on Hidden Depths to see my rationale. Nonetheless, I had a stash of peanuts hidden away in my cupboard to remind me that I might be nuts all the same.
The term is over now and I passed all eight courses. And I did exceptionally well in both labs. And my average dropped only 6.5% which isn't too shabby considering how bad the profs were and how bad one of the labs was. Here I propose a post-mortem.
- I do bad when I have 3 exams stuffed into a period of 24 hours. I did poorly on all 3 exams.
- I do really well when I have 2-3 full days to study for just one exam.
- Consequently, the best exam schedule for me is to have an exam at the very first and very last day of the exam session and then to evenly spread the remaining n-2 exams in between so I can focus on just one exam at a time. (This is similar to what the linspace function does in MATLAB.) This of course will never happen because UW's examination scheduling algorithm isn't all that smart and has bigger constraints to worry about than students doing well.
- Consequently, my marks are reflective not just of my knowledge but also how well I can cope with Waterloo's insane exam schedules.
- I generally do well in all courses that count toward the "fundamental science" component of engineering. Not because I'm good at science or anything, just that the science courses are so "linear" and therefore easier. Definition of "linear" vs. "non-linear" left for a different post.
- I do poorly in courses with no assignments.
- I do better at courses that have 10-11 small assignments rather than 4-5 large assignments.
- Brand-new courses are in general taught pretty badly. Adapted courses are much better.
- There's been a good positive correlation between poor performance on a course and the course being taught exclusively using Powerpoint slides. Or maybe I'm just bad at courses for which teaching using slides is most effective.
- I seem to do better at courses taught by non-PhDs.
- Full blown lab reports, the kind they make you do in traditional science courses, are a complete waste of time. I can learn just as much in quarter the time by reading Wikipedia.
- Open book exams are sweet. I don't care if the exam is harder so long as the questions aren't all taken from a single source. And if you're going to have an open book exam, make sure you announce it at the start of the term, not the end.
- Everything said in Steve Pavlina's Do It Now! article actually works. I tried every single one of the strategies mentioned in the article this past term. They are all true and actually work in practice. Yes ladies and gents, there is no secret. All I did was implement what Steve had in his article to the minutest detail.
Explaining the NE 344 Massacre
The entire 3A nano class was massacred by the NE 344 Electronic Circuits and Integration final exam. I still passed but I got a horribly disastrous mark that stands out quite ostentatiously on my transcript. I'm going to have a tough time explaining that line on my transcript to my interviewers next term.
It's really challenging to explain a failure without sounding like you're fishing for excuses. Nevertheless, here I make a feeble attempt.
- I was taking eight courses that term.
- I had two other really rough exams to study for that were within 24 hours of NE 344's exam: PMATH 332 Applied Complex Analysis and NE 344 Statistical Thermodynamics. I did poorly on both of those exams too.
- Both the TA and the prof lied to us saying that if we could do the tutorial problems, we should be fine. I could do all tutorial problems with my eyes closed. But the exam was nothing like the tutorial problems.
- The prof stated in class that there would be a problem involving diodes. I consequently studied this topic so well that it was going to be a sure 20%. I scanned the exam paper twice in the first 2 minutes and found not the slightest inkling of a diode.
- I actually still don't understand how BJTs and MOSFETs work properly (properly as in the way I understand determinants and eigenspaces). I only know how to play with the equations.
- The course was stuffing 2.5 ECE courses into one. When you're learning cascode-opams and node-voltage in the same course, you know something's up. All the microelectronics stuff should've been a course on its own.
- The course had no assignments. Or at least none that were worth marks. There is no motivation then to study except one day before the final exam.
- 40% of the final exam was based off a concept that was taught in one lecture (current mirrors and active loads) and that too towards the end of the term.
Explaining the MATH 239 Success
Now that the bad news is out of the way, let's move on to the good news, i.e. MATH 239 Introduction to Combinatorics. This course is supposedly hard and a lot of CS students for whom this course in mandatory often have to take it twice. It was so hard that when I finally managed to get perfect on the very last assignment of the term, it was the best thing that had happened to me that week. I loved the course because it taught me how to think. It forced blood into parts of my brain I didn't know existed.
Software companies like Yahoo, Google, Amazon and Microsoft all love to ask questions during their interviews that draw from concepts taught in this course. Questions like 'how do you detect cycles in a graph' or 'how do you find the shortest cycle in a graph assuming one exists' or 'what is the probability of a candidate winning an election if there are n other candidates also running' become so easy to answer after you've taken this course.
This course covered a lot of topics (~100), perhaps the most I've ever covered in a course before. My satisfaction for this course is the highest in all the 36 courses I've taken so far at Waterloo because I can't think of even a single thing that was bad about this course. Educators, learn from these guys on how to deliver a course correctly!
I managed to do really well in MATH 239 (96%) for which I had 3.5 days before the final exam to basically memorize the entire course left to right.
Let's take a look at the algorithm I followed:
- Struggle through the course notes the day before every lecture.
- Read the lecture slides the night before every lecture.
- Come to class 5-10 minutes early and review what was taught in the previous lecture. Optionally chat with the prof about edge-cases of proofs and algorithms.
- Come home and re-read the course notes and go through all proofs in my head once again.
- Do all practice problems proposed at the end of each lecture.
- Struggle through every single assignment problem on my own. Don't work with anyone. Don't discuss with anyone except the TA and that too only after I've spent at least half-an-hour whacking my brains.
- Read the assignment questions thoroughly the day they're put up and commit them to memory.
- Think about the problems on my way to class, while waiting for the bus, while brushing my teeth, while taking a shower, while waiting between classes, etc.
- Go over the assignment solutions carefully the day they come out — line-by-line.
- Make sure I can do each and every assignment problem with my eyes closed by the night before the final exam.
Definitely not an easy algorithm to adhere to, at least not persistently, but I tried it and it worked better than Flitwick's charms. That's what matters at the end.