CS 241 — Foundations of Sequential Programs
Supported by the Instructional Support Group.
University of Waterloo : Faculty of Mathematics : School of Computer Science
Piazza (Announcements) ⋅
Current Term ⋅
Additional Reference Material ⋅
Academic Integrity Policy
- Schedule of Classes
Instructional Support Assistant
- Mark Petrick
- Email: firstname.lastname@example.org
- Office: DC 3109
- Office Hours: Thursday 1:10 p.m. - 2:30 p.m.
- Kevin Lanctot
- Email: email@example.com
- Office: DC 2131
- Office Hours: Thursday 10 a.m. - 10:50 a.m.
- Wei Zhe Qin (Victor)
- Email: firstname.lastname@example.org
- Office: MC Tutorial Centre, MC 4065
- Office Hours:
- Monday 11 a.m. - 12 p.m
- Wednesday 1 p.m. - 2 p.m
- Friday 10 a.m. - 11 a.m
Instructional Support Coordinator
- Email: email@example.com
View Your Marks
- Gang Lu
- Email: firstname.lastname@example.org
- Office: MC 4008
- Phone: x38243
For your convenience, we provide a facility to check your unofficial marks online. As your assignment and exam marks are recorded, they will be made available on this website. You will need your WatIAM username (8 characters or less) and password in order to log in; your password is the same one that you use for Quest. Errors in the marks should be reported to the ISA.
Handmarking results are delivered via MarkUs.
Lecture Access Card
We reserve the right to check if a student is attending the correct lecture section at any time. A system of color coded lecture access cards has been set up to facilitate this in a quick and convenient manner. We require that you be ready to present your lecture access card at any time on a digital device or printed out.
Piazza provides a forum for students to discuss and ask questions about course material and assignments. A Piazza invitation should be sent to your UW email address shortly after the beginning of the term or the day after you enroll. We encourage you to use Piazza regularly. It is a handy and timely way for students to learn from each other and the course staff. Essential announcements will be posted to Piazza. Read the following rules on using Piazza.
Assignments must be submitted using the Marmoset Submission and Testing Server.
Read the following rules on Marmoset usage and instructions to submit to Marmoset from the command line.
Assignments will be added throughout the term.
You may go to any section, regardless of whether you're enrolled in it or not.
- Assignment 1 (due Monday, September 16th at 5:00pm)
- Assignment 2 (due Monday, September 23rd at 5:00pm)
- Assignment 3 (due Monday, September 30th at 5:00pm)
- Assignment 4 (due Friday, October 4th at 5:00pm)
- Assignment 5 (due Friday, October 11th at 5:00pm)
- Assignment 6 (due Friday, October 25th at 5:00pm)
- Assignment 7 (due Friday, November 8th at 5:00pm)
- Assignment 8 (due Friday, November 15th at 5:00pm)
- Assignment 9 (due Friday, November 22nd at 5:00pm)
- Assignment 10 (due Friday, November 29th at 5:00pm)
Useful Material for Assignment 1 (and beyond)
Material for Assignment 2 (and beyond)
Material for Assignment 3 and 4 (and beyond)
Material for Assignment 5 (and beyond)
Material for Assignment 6 (and beyond)
Material for Assignment 7 (and beyond)
Material for Assignment 8 (and beyond)
Material for Assignment 9 and 10
MIPS Assembly Language
The first two and a half chapters of the CS251 textbook Computer Organization and Design by Patterson and Hennessy gives an introduction to processors, machine language and the MIPS architecture.
Most books about compilers begin with materials about scanners and parsers, which we cover in the second half of the course. A textbook that is clear, concise, and available for free online is Basic of Compiler Design by Torben Mogensen.
For more information about the MIPS instruction set in greater detail see MIPS RISC Architecture by Gerry Kane and Joe Heinrich.
For more information about compilers see Compilers: Principles, Techniques, and Tools, 2nd Edition by Alfred V. Aho and Monica S. Lam or Modern Compiler Implementation in Java, 2nd Edition by Andrew W. Appel and Jens Palsberg.
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. [Check the Office of Academic Integrity for more information.]
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. When in doubt, please be certain to contact the department’s administrative assistant who will provide further assistance.
Discipline: A student is expected to know what constitutes academic integrity to avoid committing an academic offence, and to take responsibility for his/her actions. [Check the Office of Academic Integrity for more information.] A student who is unsure whether an action constitutes an offence, or who needs help in learning how to avoid offences (e.g., plagiarism, cheating) or about “rules” for group work/collaboration should seek guidance from the course instructor, academic advisor, or the undergraduate associate dean. For information on categories of offences and types of penalties, students should refer to Policy 71, Student Discipline. For typical penalties, check Guidelines for the Assessment of Penalties.
Appeals: A decision made or penalty imposed under Policy 70, Student Petitions and Grievances (other than a petition) or Policy 71, Student Discipline may be appealed if there is a ground. A student who believes he/she has a ground for an appeal should refer to Policy 72, Student Appeals.
Note for students with disabilities: AccessAbility Services, located in Needles Hall, Room 1401, collaborates with all academic departments to arrange appropriate accommodations for students with disabilities without compromising the academic integrity of the curriculum. If you require academic accommodations to lessen the impact of your disability, please register with AccessAbility Services at the beginning of each academic term.