[UW Logo]

CS 241 — Foundations of Sequential Programs

Supported by the Instructional Support Group.

University of Waterloo : Faculty of Mathematics : School of Computer Science


General Information

Current Term (Winter 2014)

Jump to: PiazzaMarmosetGeneral InformationAssignmentsResourcesTutorial MaterialsCheating Policy

Announcements

General Information

Assignments

Assignments must be submitted using the Marmoset Submission and Testing Server.

Read the following rules on using Marmoset.

Resources

Class Notes

Slides from lectures

Additional Notes

Course Handouts

Tutorial Materials

Week 2 Tutorial"Assembly Language Programming" Solutions
Week 3 Tutorial"Assembly Language Programming Pt. II" Solution  (with comments)
Week 4 Tutorial"Writing an Assembler Pt. I" Solutions
Week 5 Tutorial"MERL, Relocation and Linking" Solutions
Week 6 Tutorial"Formal Languages, DFAs" Solutions
Week 7 Tutorial"Regular Expressions, (ε-)NFAs" Solutions
Week 8 Tutorial"Scanning; Context-Free Grammars" Solutions
Week 9 Tutorial"LL and LR Parsing" Solutions
Week 10 Tutorial"Semantic Analysis" Solutions
Week 11 Tutorial"Code Generation" Solutions
Week 12 Tutorial"Extending WLPP" Solutions

Additional Material for assignment 1 (and beyond)

Material for assignment 2 (and beyond)

Material for assignment 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 beyond)

Piazza

We will be using Piazza in CS 241. Piazza provides a forum for students to discuss and ask questions about course material and assignments.

If you are enrolled in the course, a Piazza invitation should be sent to your UW email address. After you have signed up, you can access the Piazza forum for the course here.

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 as well as the announcements section of this webpage.

Read the following rules on using Piazza.

Additional Reading

The first two and a half chapters of the CS 251 textbook give an introduction to CPUs, machine language, and the MIPS architecture: Patterson, Hennessy. Computer Organization and Design.

Most books about compilers begin with material about scanners and parsers, which we cover in the second half of the course. One example of a book with clear explanations is: Appel. Modern Compiler Implementation in Java.

Various books document the MIPS instruction set in great detail. One example is: Kane, Heinrich. MIPS RISC Architecture.

Language-Specific Tutorials

Racket

C++


Academic Integrity Policy

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. All members of the UW community are expected to hold to the highest standard of academic integrity in their studies, teaching, and research.

The Office of Academic Integrity's website contains detailed information on UW policy for students and faculty.

This site explains why academic integrity is important and how students can avoid academic misconduct. It also identifies resources available on campus for students and faculty to help achieve academic integrity in - and out - of the classroom.

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.

Valid XHTML 1.0 Strict