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 to use the discussion features of Learn. This can be found under "Connect". You can also visit during office hours. For questions about marking, contact the Assistants first, who will consult with the Instructor if necessary. You can email them at "cs106@uwaterloo.ca". For questions about course logistics (particularly absences), contact the Coordinator, John.
Notes and sketches marked with "(2018)" are the materials that were used in a previous 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 |
07 January |
Administration [notes] Module 00: Processing Recap [notes, sketches] Module 01: Generative Art [notes, sketches] |
CS 105 lecture notes |
14 January | Module 02: Arrays and Strings [notes, sketches] | Learning Processing, Chapters 9 and 17; Online tutorial on arrays; Online tutorial on strings |
21 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 |
28 January |
Module 04: Advanced Shapes [notes, sketches] |
Learning Processing, Sections 14.3, 13.8, 13.9; online tutorial about the PVector class |
04 February |
Module 05: User Interfaces [notes, sketches] |
|
11 February |
Module 06: Geometric Context [notes, sketches] |
Learning Processing, Sections 14.1, 14.5, 14.7, 14.8, 14.9 (ignoring 3D) |
18 February | Reading week: no lectures | |
25 February | Module 07: Images and Image Processing [notes, sketches] |
Learning Processing, Section 13.11 Nature of Code, Chapter 8 |
04 March | Module 08: Video and Libraries [notes, sketches] | Learning Processing, Sections 13.3–13.6 |
11 March |
Module 09: Randomness [notes, sketches] Noise [notes, sketches] |
Nature of Code Introduction, especially I.6, "Perlin Noise (A Smoother Approach)" |
18 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 |
25 March | Module 11: Tables [notes, sketches] | |
01 April | Module 12: Tree-structured data [notes, sketches] |
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.