uwlogo CS247 - Software Engineering Principles

Home / Announcements
Assignments and Project
Exam Information

Course Outline
General Information

Design Patterns

RSS FeedRSS Feed

Assignments will be posted here throughout the term.

Assignments and Projects Due Dates

(All due dates for unreleased assignments are tentative and subject to change)


Assignments must be submitted using Marmoset.

After your solutions are submitted to the Marmoset automatic grading system available at https://marmoset.student.cs.uwaterloo.ca, Marmoset will run your solutions on a number of test inputs and grade them automatically. You may resubmit your solutions as many times as you wish prior to the submission deadline. The Marmoset portion of your mark is determined entirely by the number of test inputs for which your best submission generates the correct answer.


We will be using Measure of Software Similarity (MOSS) system from Berkley to compare this term's submissions with eachother and with past terms' submissions of similar assignments.

Group Work Policy

No group work is permitted on assignments. Students may work on the course project in teams of size 1, 2 or 3.

Collaboration Policy

Some degree of collaboration is beneficial:  you can learn a lot from others; you can avoid getting stuck; and teaching someone else can be the best way to cement your own understanding of a difficult concept. That said, your understanding of the course material will be deeper and more ingrained if you solve problems on your own. Thus, we permit and encourage discussion but not outright collaboration (except where explicitly permitted, such as teamwork on the course project).

Specifically, you are allowed (and even encouraged) to discuss course concepts, assignments, and projects with other CS247 students but only under the following restrictions.

  • No materials you bring to or take away from such meetings may be incorporated into your solution. In particular, you may not bring any of your code or solutions to the meeting.
  • You may only bring away information in your long-term memory. You must destroy any materials that you and others create during the meeting. Then, you must spend 30 minutes without thinking about CS247 (e.g., watching a mindless TV show). After that, you can use whatever you still remember.
  • You must write up anything you submit on your own. Your code (which includes tests and documentation), problem answers, etc. must represent your own understanding, as explained solely by you.
  • You may not view other people's code or solutions. You may not share any of your own code (including, as always, tests and documentation) with others, including bringing it to a meeting with others. You may not allow anyone except the course staff access to your CS247 course directory, and you must restrict access to any Git repositories containing your CS247 work, or any other location where you keep CS247 solutions. Don't post large amounts of your code (more than about 5 lines) to a public forum (i.e., in a public Piazza post, to a Facebook group, to reddit, etc.)
  • You must give credit where credit is due. Within each assignment/project submission, list everyone with whom you've had substantive discussions. Likewise, if you obtained a key idea from some other resource, such as a textbook or a website, then you should credit it (e.g., in comments at the top of your program submission).
  • You may not view and/or use any substantive material or solutions from similar assignments this term or previous terms at UW or elsewhere, including anywhere on the Internet, transcribing solutions from any other source, etc.

Late Policy

Up to one assignment and one project deliverable may be handed in, without penalty, up to 48 hours late. This late policy is meant to cover all minor reasons for missing a due date (e.g., minor medical illness, conflict with another assignment, etc.).  If you are intending to take your late days on your assignment please send an e-mail to cs247@uwaterloo.ca from your school e-mail and state which assignment you are taking the late days on, and your student ID.

Anything handed in after the late-policy due date without a pre-approved extension (see below) will receive a grade of 0. If more than one assignment/project deliverable is handed in after the late-policy due date, one of the late submissions will receive a grade of 0.

If you have a serious (multiple-day) illness or absence, then you need to consult with the instructor in advance to make alternative arrangements for fullfilling the assignment deliverables of the course.

Return Policy

Assignments will be returned online, via MarkUs.

Remarking Policy

Email the ISA ( cs247[at]uwaterloo.ca ), clearly stating the questions you want to be remarked. Include any supporting evidence for your case. Requests that include code changes to fix failing test cases will be ignored. You have two weeks after handback to deliver the request to the ISA. All requests will be processed after the deadline to ensure fairness and consistency in marking.

Notes: We will examine your entire assignment/midterm when remarking it. It is possible that you will receive a lower mark than your current mark.