CS 115: Introduction to Computer Science 1


Allowed Built-In Functions
Assignment 1 (due at 10:00 AM on Wednesday, September 20)
Assignment 0 (due at 10:00 AM on Wednesday, September 13 - ALL students must complete, but not graded)

General information

Assignments are designed to give you practice in the concepts and skills discussed in lecture, to prepare you for exams, and to give you feedback on your mastery of course material. You rob yourself of these benefits if you hand in work that is not your own. Please read the section below on Academic Integrity, including the linked UW Policies and Avoiding Academic Offenses. These apply to every course you will take at UW, and you should be familiar with them.

Preamble: Each assignment has a preamble which explains the assignment requirements and restrictions. Read carefully. Changes from one assignment to the next will be highlighted.

Help: Each assignment will have its own discussion board on Learn broken down by question. Use these forums to ask for clarification on assignment questions, lecture material, or Racket in general. If you are worried about whether or not your question is appropriate (Do not post code) you can make a private post.

Basic Tests: Click here to request a test of your submitted assignment files. Note that basic tests only check to see if your code will run on our marking server and that any required spelling of functions, parameters, etc. or number of parameters/arguments is correct. It does not generally do testing to verify the correctness of your code as per the assignment specifications; that is something you must check.

Accessing Files: To use any of the Racket files, you must save them from the webpage onto your computer by right clicking on the file name and seleting the option "Save Link as...". This will open a dialogue box that will allow you to save the Racket file on your computer and open it using DrRacket on your computer. Please do not use Internet Explorer to attempt to access files; the option to save the file does not exist. Any other browser is acceptable.

Interface Files: With every assignment, we will typically include an "interface" which contains the correct spelling of all functions and structures requested by the assignment. Since the markers will be running our tests of your code, spelling errors can result in loss of marks. Use the interface provided as a starting point for your own work.

Style guidelines: Your assignment submissions should conform to the guidelines laid out in the style guide. Some of the main points are summarized here.

  • The file for one question should have a file extension of .rkt.
  • Please do not submit code using the embedded Special Boxes offered by DrRacket, such as Comment Boxes or Test Boxes; these cause major problems for our marking procedures.
  • Use semicolons for comments, and check-expect tests as described in the style guide and in lecture.
  • Do not cut anything out of the Interactions window of DrRacket and paste it into the Definitions window. There is no need for you to do this, and because of the way DrRacket works, what you are pasting is not simple text; it also causes major problems with our marking procedures.

Submission: You will submit program files electronically through MarkUs as described in the Markus How-To; the markers will run your code through correctness scripts and grade your work on MarkUs.

Late assignments: Late assignments will not be accepted; consequently, you should aim to finish early, to allow for unexpected delays. You may submit a single question 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 still submit your work for feedback only (no marks) but you must inform the CS 115 ISAs by email so they are aware of your submission and request for feedback.

Missed work due to illness: With appropriate, authorized documentation, assignment work may be excused. If a missed assignment is excused, its weight is distributed over the remaining un-excused assignments. In the interest of understanding the course material for future assignments and exams, students who miss work are encouraged to do it, submit it and request feedback from the ISAs.

Marked assignments: Corrected assignments will be available on MarkUs, usually the week after the assignment is due. The Post-Mortems page will discuss common errors found on assignments. Complete solutions will be available online under the solutions tab. Review the feedback that is provided on the marked assignment and in the Post-Mortems.

Remark requests for assignments: If, after checking the marking on MarkUs, the post mortem comments and the solutions, you believe that errors were made in the marking, please email a ISA via cs115@uwaterloo.ca, preferably from your uWaterloo email account for verification of who you are, and state clearly what questions or components you feel were mis-marked and why. The subject for the email should be cs115 Assignment X Remark Request with the assignment number filled in appropriately. If you are not emailing from your uWaterloo email, then include your uWaterloo(Quest) username and student ID. The deadline for remark requests is 2 weeks after the marks are released on MarkUs. To ensure fairness and equality, remark requests are usually processed together after the deadline.


All work in CS 115 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.


Rules for group work: All assignments are to be done individually.

Valid XHTML 1.0 Strict Valid CSS!

Last modified on Monday, 11 September 2017, at 16:02 hours.

Course Supported by Instructional Support Group