UW Logo

CS246: Object-Oriented Software Development

Supported by the Instructional Support Group

University of Waterloo : Faculty of Mathematics : School of Computer Science : CS 246 Home Page

Current Term (Spring 2015)

General Information


Announcements are posted on piazza.


Component Weight Breakdown
Assignments 40a0:0%, a1:5%, a2:5%, a3:9%, a4:9%, a5:12%
Exam: Midterm20
Exam: Final40
A passing mark in the test portion of the final grade must be achieved to pass the course. The final grade is calculated using the following formula:
    if ( weighted_testing_average < 50% ) then
        final_grade = MIN( weighted_testing_average, normally_calc_grades )
        final_grade = normally_calc_grades
In other words, good assignment marks cannot get you a passing mark in this course. However, good assignment marks are needed to obtain a good grade in this course.


Assignments will be distributed through the course's git repository. To gain access to the repository, follow the directions given in assignment 0 which can be found on Piazza.

All assignments must be done individually, unless the assignment is explicitly designated as a group assignment. All members of a group receive the same grade (no exceptions). Only one member of a group submits the assignment. The instructors/staff do not arbitrate group disputes; group members must handle any and all problems. A group assignment may be done individually, but it must be understood that the amount of work is significantly greater and no extra marks are given for this additional work.

Students repeating the course must choose a different project from the one they chose when they previously took the course.

Note: you cannot get credit for assignments 1-5 until you have achieved 100% on assignment 0

Note: The final assignment is a project to be done in pairs. You may do the project individually, but you will be expected to produce the same output as a group of two. Part of the evaluation of your project will consist of a live demo in front of a TA. This is mandatory.

Late Assignments

Assignment Submissions

Assignments must be submitted using the Marmoset Submission and Testing Server

See this page to find out how to submit to marmoset through a shell using the command line, substituting all instances of CS 241 with CS 246. [You will see that this is the easiest way to submit.]

See this page to find out how to submit to marmoset through a shell using w3m, substituting all instances of CS 241 with CS 246.

Assignment Marking

Assignment Returning and Remarking Policy

Note: The entire assignment is examined when remarking; therefore, the assignment grade could receive a lower mark than the current mark.


There are multiple tutorials per week, each covers the same material. As long as there is adequate space, you may attend any one.

Tutorials offered in certain weeks might be considered must attend and include testable material. Prior notice will be given in class or through Piazza.

Tutorial material is available through the git/svn repository


Both the midterm test and the final exam are closed book.

A missed test/exam receives a mark of 0, unless there is a valid documented reason. If a documented reason is provided for missing the midterm, its weight is applied to the final exam. If a documented reason is provided for missing the final exam, a grade of INC MIGHT be given. For a missed final exam, upon the receipt of a valid doctor's note, the student's term work is evaluated to determine if a grade of INC (incomplete) is suitable. If an INC is granted, the student's grade will be calculated using the weightings of the course components from the term the student was regisered, the student's term marks from the registered term, and the mark from the final exam when it is written. The final exam should be written with the scheduled exam in the following semester. A copy of the documented reason must be given to the Instructional Support Coordinator for the course.

Unclaimed midterms are retained for one month after term grades become official in quest. After that time, they are destroyed in compliance with UW's confidential shredding procedures.

Exams: Midterm

Date: Thursday, June 25, 2015
Time: 16:30-18:20
Seat: Click here to view your exam seating
Marks: 20

The following previous midterm exam is available: Fall 2010

Note: every instructor is different and emphasizes different points and teaches at different speeds. As a result, some exams may have questions that you have not covered and/or might be missing other topics that are relevant for this term's exam.

Exams: Final

The final exam is scheduled by the Registrar's Office.


  1. General
  2. UNIX tools
  3. C++
  4. Design Patterns
  5. UML

Valid XHTML 1.0 Strict