Bonus points are available for doing anything that, in the staff’s opinion, is Awesome. What’s Awesome? A good guideline is the Three Laws of Bonusotics:

  1. A bonus-point accumulating activity (BPAA) goes above and beyond the standard expectations of the course.
  2. A BPAA contributes to the learning of the student who did it without detracting from others’ learning. Preferably, a BPAA contributes to the entire class’s learning. “Learning” is broadly defined.
  3. There is no other Law, but there have to be Three Laws.

The course staff has sole discretion over whether an activity qualifies for bonus points and how many to award. To calibrate, we will usually award one bonus point at a time and won’t award more than 4 at a time without national news coverage.


  • Noting an interesting connection between course material and general current events or an algorithmic development or application of interest.
  • Posting something especially scintillating on the discussion board, particularly if it gains acclaim from your peers.
  • Following up on an open question raised during class (by searching the literature, developing an algorithm, writing a proof, or performing experiments) and posting a summary of the results.
  • Posting an insightful and entertaining parody version of a popular song that centres around algorithmic concepts. (E.g., for inspiration, my grad school friend Sean Sandys’ post-Vietnam era tribute to balanced trees.)
  • Establishing a weekly, open 320 study period by reserving space and posting an open invitation.
  • Proving P=NP (or P≠NP) and sharing authorship with the instructional staff.
  • Anything else the course staff deem worthy.


Well, besides being good for you (like spinach), bonus points lead to the following fabulous rewards:

  • Upon earning your second bonus point, you earn the complexity rank of constant and receive a mildly amusing piece of schlock.
  • Upon earning your fourth bonus point, you earn the complexity rank of logarithmic and we drop your second lowest assignment/quiz mark. (Remember: we’re already dropping your lowest.)
  • Upon earning your eighth bonus point, you earn the complexity rank of linear and we add 1% to your midterm exam mark.
  • Upon earning your sixteenth bonus point, you earn the complexity rank of quadratic and we add 1% to your final exam mark.
  • Should you earn 32 or more bonus points, then you are exponentially awesome and receive… some more schlock (but better schlock).

Finally, the class as a whole will also accumulate rewards:

  • For every bonus point we accumulate, I will donate $1 (to a maximum of $512) in the class’s name to the UN Refugee Agency, who are solving one of the world’s most important network flow problems. (Donation will occur as a unit near the end of the term.)
  • If we reach 256 bonus points, I will throw an end-of-term party and perform the song of your choice (preferably an embarrassing algorithms-related parody song), subject (like all of my potentially nonsensical decisions) to veto by my wife Rachel Pottinger. For examples of computer science parody songs, see my parody songs or my old grad school’s CSE band. (The older version of the band’s page disappeared from the web sometime in early 2016. Oh, the humanity!)