Assignments

These assignments are designed to build on one another, allowing you to apply the concepts we've studied in lecture and experience the building of a larger system. Unlike ENGI 1020, these assignments are individual work — you must be able to say, "I did this myself".

Assignments will be posted on Monday mornings and, generally, will be due the following Monday at 11:59pm (Newfoundland time). Submission will be done electronically through the revision control system that you will learn about in your first lab. Note that this system keeps time more precisely than you or I do — one minute late is late.

As a computer security researcher, I want to encourage out-of-the box thinking via the grading of your assignments. I have intentionally left several flaws open in the auto-grader for you to attempt to exploit and trick the system. If you can find a way to trick the auto-grader, I will allow you to keep the mark you give yourself, provided that:

  1. you give yourself a mark of exactly 9/7,
  2. you tell me how you did it and
  3. you are the only one who's used that particular trick so far in the term.

Assignment 8 (due 2 Dec 2016)

Bonus: implement expression parsing code for last week’s calculator classes.

Assignment 7 (due 21 Nov 2016)

Implement polymorphic code for an expression calculator.

Assignment 6 (due 7 Nov 2016)

Continue our autumnal theme by creating a PumpkinPatch class.

Assignment 5 (due 31 Oct 2016)

A spooky Halloween assignment… with pointers! Boo!

Assignment 4 (due 25 Oct 2016)

Add more sophisticated methods to the Course and Student classes.

Assignment 3 (due 17 Oct 2016)

Add on to the Course class and create a Student class to go with it.

Assignment 2 (due 3 Oct 2016)

Implement a C++ class that represents a university course and its enrolment.

Assignment 1 (due 28 Sep 2016)

Implement two functions that are useful for playing a computerized game of Hangman.

Assignment 0 (due 23 Sep 2016)

Warm up your programming skills and make sure you can submit assignments though Subversion.