CS 136: Elementary Algorithm Design and Data Abstraction, Spring 2020

Home

This is the homepage for CS 136 (Spring 2020).

CS 136 builds on the techniques and patterns that you learned in CS 135. It introduces an imperative language (C) in parallel with continued study of a functional language (Scheme/Racket), and discusses issues surrounding the effective use of programming languages in "real-world" environments.

The primary focus of the course is the design, analysis and implementation of fundamental algorithms and data structures. This necessitates the use of computational models for both Scheme and C that more closely resemble what happens in actual implementations. The goal of CS 136 is to give students the tools and concepts necessary to solve computational problems in a robust, efficient and verifiable manner.

You can find the handbook description of the course here.

Announcements

Last update: Jun 30

  • Tutorial 7 has been released. [Jun 30]
  • Section 09 has been released. [Jun 30]
  • Quiz 8 has been released. [Jun 30]
  • We have granted an extension for Assignment 5. [Jun 26]
  • Tutorial 6 has been released. [Jun 24]
  • Section 08 has been released. [Jun 22]
  • Quiz 7 has been released. [Jun 22]
  • Assignment 5 has been released. [Jun 19]
  • By-value vs. By-reference and the Flow of Information: The Effect of By-value vs. By-reference Parameter Calls on Stack Memory [Jun 17]
  • Tutorial 5 has been released. [Jun 17]
  • Section 07 has been released. [Jun 16]
  • Quiz 6 has been released. [Jun 15]
  • Assignment 4 has been released. [Jun 12]
  • Pointers, part 2: A behind-the-curtain explanation of pointers in C using the memory model. [Jun 9]
  • Pointers, part 1: A high-level explanation of pointers in C. [Jun 9]
  • How to draw all five memory sections and what goes where. [Jun 9]
  • Tutorial 4 has been released. [Jun 9]
  • Section 06 has been released. [Jun 9]
  • Adrian's office hours for Tuesday, June 9, are moved from 9 - 10:30 am to 3 - 4:30 pm. [Jun 8]
  • Quiz 5 has been released. [Jun 8]
  • A Solution for Assignment 1 [q2-bakery] has been released. [Jun 7]
  • Reminder: Assignment 2 is due tonight! [Jun 7]
  • Section 05 has been released. [Jun 2]
  • Due to the ongoing CS server outtage, we extended the deadline for A2. The new due date is Sunday, June 7, 9:00 pm (Waterloo time). [Jun 1]
  • Due to the ongoing CS server outtage, we extended the deadline for A1 for a third time. The new due date is Tuesday, June 1, 9:00 pm (Waterloo time). [Jun 1]
  • Reminder: Assignment 1 is due tonight! [Jun 1]
  • Tutorial 3 and Quiz 4 have been released. [Jun 1]
  • Due to the ongoing CS server outtage, we extended the deadline for A1 again. The new due date is Monday, June 1, 9:00 pm (Waterloo time). [May 31]
  • Assignment 2 has been released. [May 29]
  • Due to the CS server outtage, we extended the deadline for A1 to Sunday, May 31, 9:00 pm (Waterloo time). [May 29]
  • A short refresher on Identifier Scope. [May 28]
  • A short video about Information flow and side effects. [May 27]
  • Section 04 has been released. [May 26]
  • Tutorial 2 and Quiz 3 have been released. [May 25]
  • Assignment 1 has been released. [May 23]
  • Section 03 and Quiz 2 have been released. [May 19]
  • Happy Victoria Day, everyone! The Quiz 2 release will be pushed back to tomorrow morning, since today is a statutory holiday. [May 18]
  • Tutorial 1 has been released. [May 15]
  • Assignment 0 has been released. [May 14]
  • A short video about the nature of Boolean in C. [May 13]

Week-one Guide

Here is a checklist of things you should do in the first week of CS 136:
Valid XHTML 1.0 Strict Valid CSS!

Last modified on Sunday, 10 May 2020, at 22:21.