CS 135: Designing Functional Programs

General Information about Assignments

Style and Survival Guide

Your assignment submissions should conform to the guidelines laid out in the style and survival guide for assignments (PDF).

Purpose of Assignments

Assignments give you a chance to practise using the concepts and skills discussed in lecture. The point is not to earn marks by any means possible; marks are a consequence of the understanding gained through practice. Please read the section below on Plagiarism, including the linked UW Policies. These apply to every course you will take at UW, and you should be familiar with them.

Due Dates and Late Policy

Unless otherwise specified, assignments are due at 9:00 pm on the deadline day (usually Tuesday). You will submit files electronically as described below; these files will be run through automated marking, with the results uploaded to MarkUs for further assessment and comments (annotations) by the markers.

Late assignments will not be accepted; consequently, you should aim to finish early, to allow for unexpected delays. You may submit your solutions as often as you wish; submitting a partially completed solution is a good idea, just in case you don't get back to it in time. After an assignment due date has passed, you may submit your work for feedback only (no marks). If you want feedback on a late submission, submit your work on MarkUs like normal, then email the ISAs to let them know.

Missed work due to illness: with appropriate, authorized documentation, term work may be excused. If a missed assignment is excused, its weight is distributed evenly over the remaining assignments. It is highly recommended that the assignment still be attempted for learning and understanding. Illness documentation and concerns should be sent to the Instructional Support Coordinator.

Assignment Submission and Basic Tests

Also see Markus How-To

You must submit your assignment on MarkUs before the due date. Make sure that you

  • do coding questions using DrRacket,
  • use the exact filenames given at the top of the assignment under "Files to submit",
  • use the Racket language level stated, and
  • check the Basic Test results.

You can submit an assignment as many times as you want before the due date. By default, we will mark the last submission that was submitted before the due date (see exception below in "Remarks concerning Correctness Marks").

Do not copy and paste from the Interactions Window into the Definitions window. Do not submit code using the embedded Special Boxes offered by DrRacket, like Comment Boxes. Doing these things will turn your file into a non-plain-text format, and the markers won't be able to read your file and you may get zero on the assignment. If you accidently did these things, save your file by going to DrRacket: File→Save Other→Save Definitions as Text.

A few minutes after you submit your assignment on MarkUs, you will get an email containing some feedback on your submission. The Basic Tests check your code for small mistakes, like misspelling the function name or listing parameters in the wrong order.

  • If you get 0 on a question in the Basic Test, you will get a very low score for that question when it's marked after the due date.
  • If you get perfect in the Basic Test, you may still lose marks when your assignment is graded after the due date. The Basic Tests only check for small mistakes; any "big" mistakes you make will be caught after the assignment is due.

You must take the Basic Test results very seriously. Failure to check the results, or ignoring the errors in the results, is not a valid reason for a re-mark request or special marking consideration.

It may take several minutes for you to receive the Basic Test email. If you submit the assignment at the last minute (for example, a few seconds before the due date) then by the time you get the Basic Test results, the due date will have already passed and you won't be able to fix any errors reported by the Basic Test. Try your best to start assignments early, and submit early and often because:

  • It serves as a backup in case something goes wrong with your code of your work. Just download it from MarkUs!
  • You have something for us to mark, even if something happens that prevents you from submitting before the deadline (e.g. your computer crashes, other commitments surface, etc.)
  • If you have a really weird problem, course staff may look at your submission and help you better.

Assignment 0 is Mandatory to Pass the Course

If you do not get perfect on Assignment 0, then you will get zero on every assignment and fail the course. You need to get a perfect mark on Assignment 0. Furthermore:

  • Completing Assignment 0 after the Assignment 1 deadline will result in a mark of zero on Assignment 1; same for Assignments 2 and onward.
  • If you get perfect on Assignment 0 after Assignment 0's deadline, but before Assignment 1's deadline, you can still earn marks for Assignment 1; same for Assignments 2 and onward.

Returning Assignments and Feedback

Your assignment will be marked by a computer and by a human (usually a graduate student or an ISA). It takes about one week to mark your assignment.

When your assignment has been marked, you can check your grade on MarkUs. Make sure you look at any annotations that the grader has left for you to read. See MarkUs Help for more information on viewing assignment feedback.

The Post-Mortems page shows common errors that students made on the assignment. You should read it, even if you got perfect on the assignment.

Assignment solutions are posted on the Solution Request page.


To request a review of your assignment mark, send an email from your uwaterloo email account to cs135@uwaterloo.ca no more than one week after the marked assignment is made available. Do not use Piazza for remarks. The email should contain the following information:

  • email subject heading: CS 135 Axx Remark Request (Change Axx to the appropriate assignment number)
  • email body: What (including specific question) you think was marked improperly and why

To help us verify your identity, your email must be sent from your uwaterloo email account. We may re-mark the rest of your assignment as well, which could result in other changes to your marks. Assignments are re-marked by the ISAs.(Midterms are usually re-marked by instructors).

Not getting the Basic Test email in time because you submitted right before the deadline is not enough reason for a re-mark. Again, start assignments early, submit early and often, and always run your code in DrRacket.

Rollbacks and Re-marks concerning Correctness Marks

By default, we will mark the last submission you made before the assignment deadline. However, if you mess up this particular submission, but you made a decent submission before that, we can mark that decent submission instead. Submit a re-mark request letting us know you'd like this and about what time the decent submission was made. Note that we will mark using only one submission; we will not merge work from two different submissions.

Assignments sometimes have restrictions on what built-in functions you may use, or what techniques you must use to do the question. If you don't follow these restrictions, you may get 0 on the entire question. We will not re-mark your assignment in this case, because the assignment clearly stated the restrictions. Make sure you read the assignment carefully.


All work in CS 135 is to be done individually. The penalty for plagiarism on assignments (first offense) is an assigned mark of 0 percent on the assignment and a 5 percent reduction of the final grade, consistent with School of Computer Science policy. In addition, a letter detailing the offense is sent to the Associate Dean of Undergraduate Studies, meaning that subsequent offenses will carry more severe penalties, up to suspension or expulsion.

To avoid inadvertently incurring this penalty, you should discuss assignment issues with other students only in a very broad and high-level fashion. Do not take notes during such discussions, and avoid looking at anyone else's code, on screen or on paper. If you find yourself stuck, contact the ISA or instructor for help, instead of getting the solution from someone else. Do not consult other books, library materials, Internet sources, or solutions (yours or other people's) from other courses or other terms.


Senate Undergraduate Council has asked us to post the following paragraphs:

Academic Integrity: In order to maintain a culture of academic integrity, members of the University of Waterloo community are expected to promote honesty, trust, fairness, respect and responsibility.

Grievance: A student who believes that a decision affecting some aspect of his/her university life has been unfair or unreasonable may have grounds for initiating a grievance. Read Policy 70 - Student Petitions and Grievances, Section 4.

Discipline: A student is expected to know what constitutes academic integrity, to avoid committing academic offenses, and to take responsibility for his/her actions. A student who is unsure whether an action constitutes an offense, or who needs help in learning how to avoid offenses (e.g., plagiarism, cheating) or about "rules" for group work/collaboration should seek guidance from the course professor, academic advisor, or the Undergraduate Associate Dean. When misconduct has been found to have occurred, disciplinary penalties will be imposed under Policy 71 - Student Discipline. For information on categories of offenses and types of penalties, students should refer to Policy 71 - Student Discipline.

Avoiding Academic Offenses: Most students are unaware of the line between acceptable and unacceptable academic behaviour, especially when discussing assignments with classmates and using the work of other students. For information on commonly misunderstood academic offenses and how to avoid them, students should refer to the Faculty of Mathematics Cheating and Student Academic Discipline Policy.

Appeals: A student may appeal the finding and/or penalty in a decision made under Policy 70 - Student Petitions and Grievances (other than regarding a petition) or Policy 71 - Student Discipline if a ground for an appeal can be established. Read Policy 72 - Student Appeals.


Last modified on Tuesday, 06 September 2016, at 16:43 hours.