Assignments are where the rubber hits the road for CS135. Putting lecture content into practise is the best way for you to learn and one of the primary ways we assess your learning.

Please note, given the number of students in CS135:

  • We cannot accept late assignments.
  • Only files submitted to MarkUs will be marked. We cannot accept emailed assignments. If you’re having trouble, please see the Help FAQ.

Submit early and often. Once you have a partial solution, submitting it early will ensure you receive part marks in case of technical problems. Submissions spike near the deadline and submitting early also will avoid problems due to server load. ISAs will turn off the submission system after they return from lunch, so there is typically a grace period of ten minutes or so after the submission deadline, but you should not count on any specific amount of time. Once the submission system closes we do not accept further submissions for marks, so submitting early is always a good idea.

Submit with MarkUs.

Refer to the Style Guide.

Winter 2021

AssignmentNameDue Date (Waterloo time)Support Files
Assignment 00 MarkUs 2021-01-15 11:45 am
Assignment 01 functions, DR 2021-01-19 11:45 am No support files
Assignment 02 map, foldr, range 2021-01-26 11:45 am No support files
Assignment 03 cond, filter 2021-02-02 11:45 am
Assignment 04 lambda, foldr 2021-02-09 11:45 am
Assignment 05 recursive lists 2021-02-23 11:45 am
Assignment 06 recursive Nats 2021-03-02 11:45 am
Assignment 07 lists, dictionaries 2021-03-09 11:45 am
Assignment 08 trees 2021-03-23 11:45 am
Assignment 09 local; functions as values 2021-03-30 11:45 am
Assignment 10 abstraction; generative recursion 2021-04-06 11:45 am
Assignment 11 graphs 2021-04-13 11:45 am


  • In assignment 2, the harmonic mean is defined only for positive values.
  • In assignment 3, '(() ()) should be written (list empty empty). (The assignment has been updated.)
  • In assignment 3, best-word may consume a non-empty (listof Str).