This is the home page for CS 106, a second-level introductory programming course at the University of Waterloo. The course explores the use of graphics in art, design and visualization contexts. It is a required course for students in the Global Business and Digital Arts program.
Please consult the separate course outline for more detailed information about many aspects of the course's operation, as well as course and university policies.
For questions related to course content, contact an instructor or an ISA. The best place to ask questions is on Piazza, but you can also send email (add "@uwaterloo.ca" to the addresses below) or visit during office hours. For questions about marking, contact the Assistants first, who will consult with the Instructor if necessary. For questions about course logistics (particularly absences), contact the Coordinator.
Notes and sketches marked with "(2017)" are the materials that were used last year. They can be useful for now as a reference, but we will replace them with updated files during the term.
See also Professor Kaplan's in-class sketch snapshots and a separate page with additional material made available by instructors.
Week of | Lectures | Suggested readings |
01 January |
Module 00: Administration [notes] Module 01: Processing recap [notes] |
CS 105 lecture notes |
08 January | Module 02: Arrays and Strings [notes, sketches] | Learning Processing, Chapters 9 and 17; Online tutorial on arrays; Online tutorial on strings |
15 January | Module 03: Input and Output [notes, sketches] | Learning Processing, Sections 15.1, 17.1, 17.2, 17.3, 18.3, 18.4, 21.3, 21.4 |
22 January |
Module 04: Advanced Shapes [notes, sketches] |
Learning Processing, Sections 14.3, 13.8, 13.9; online tutorial about the PVector class |
29 January |
Module 05: User Interfaces [notes, sketches] |
|
05 February |
Module 06: Geometric Context [notes, sketches] |
Learning Processing, Sections 14.1, 14.5, 14.7, 14.8, 14.9 (ignoring 3D) |
12 February | Module 07: Recursion [notes, sketches] |
Learning Processing, Section 13.11 Nature of Code, Chapter 8 |
19 February | Reading week: no lectures | |
26 February | Module 08: Randomness [notes, sketches] | Learning Processing, Sections 13.3–13.6 |
05 March |
TBA Module 09: Noise [notes, sketches] |
Nature of Code Introduction, especially I.6, "Perlin Noise (A Smoother Approach)" |
12 March | Module 10: Data Processing and Text [notes, sketches] |
The first part of Shiffman's online notes about data Learning Processing, Sections 17.1, 17.2 and Chapter 18 |
19 March | Module 11: Tables [notes, sketches] | |
26 March | Module 12: Tree-structured data [notes, sketches] | |
02 April | Wrap-up [notes] | Note: no lecture on April 04 |
Participation | 5% |
Labs | 5% |
Assignments | 30% |
Midterm | 20% |
Final | 40% |
Please see the bottom of the course outline page for more information about re-marking of assignments and the midterm.