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
Since all office hours are being organized online, we have created an online office hours booking page. Please visit
the following link: Book Office Hours
(the page might respond slowly, please be patient).
- Schedule of Classes
Instructional Support Assistants
- Nomair A. Naeem
- Email: firstname.lastname@example.org
- Office Hours: Wednesday 12:00pm(noon) - 1:00pm, Saturday 11:00am - 12:30pm
- Gregor Richards
- Email: email@example.com
- Office Hours: Thursday 10:00am - 12:00pm(noon) and 2:00pm - 4:00pm
- Michael McGovern
- Email: firstname.lastname@example.org
- Office Hours: Monday 10:30am - 11:30am , Tuesday 10:00am-11:00am,
Tuesday 1:00pm - 3:00pm, Wednesday 1:00pm-3:00pm, Friday 1:00pm-4:00pm
- Sylvie Davies
- Email: email@example.com
Instructional Support Coordinator
View Your Marks
- Edward Lee
- Email: firstname.lastname@example.org
- Office Hours: Thursday 4:00pm-5:00pm, Friday 10:00am-11:00am
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.
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 Piazza rules in the course outline before posting.
Information to be announced.
Assignments must be submitted using the Marmoset Submission and Testing Server. Read the section of the course outline on Marmoset usage before submitting.
The following instructions to submit to Marmoset from the command line may be useful.
Assignments will be added throughout the term.
- Assignment 1 (due Friday, May 22nd at 5:00pm)
- Assignment 2 (due
Friday, May 29th at 5:00pm Sunday, May 31st at 5:00pm)
- Assignment 3 (due Friday, June 5th at 5:00pm)
- Assignment 4 (due Friday, June 12th at 5:00pm)
- Assignment 5 (due Monday, June 22nd at 5:00pm)
- Assignment 6 (due Friday, June 26th at 5:00pm)
- Assignment 7 (due
Friday, July 10th at 5:00pm Sunday, July 12th at 5:00pm)
- Assignment 8 (due
Friday, July 17th at 5:00pm Sunday, July 19th at 5:00pm)
- Assignment 9 (due Wednesday, July 29th, at 5:00 pm)
- Assignment 10 (due Wednesday, August 5th, at 11:59 pm)
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)
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.