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.



Staff

For questions related to course content, contact an instructor or an ISA. The best place to ask questions is to use MS Teams. For questions about marking, contact the Assistants first by email, 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, Scott King.

Kevin
Instructor: Kevin Harrigan
email: kevinh@uwaterloo.ca
Jennifer
Instructional Support Assistant: Jennifer Phovixay
email: cs106@uwaterloo.ca
Jiaxin
Instructional Support Assistant: Jiaxin Zhang
email: cs106@uwaterloo.ca
Scott
Instructional Apprentice: Jeremy Hartmann
Instructional Apprentice: Scott Larter
Ludwig
Instructional Apprentice: Ludwig Wilhelm Wall
Sangho
Instructional Apprentice: Sangho Suh
Scott
Instructional Support Coordinator: Scott King
email: sfking@uwaterloo.ca

Office Hours

Office Hours

The following outlines the schedule of online consulting hours for the Winter 2021 term. These chat hours provide you with an opportunity to to ask the Instructor, ISAs or IAs any questions you may have pertaining to assignments, exams, or course content. If you are unable to make it to any of these online office hours, alternative options include posting your question to the discussion board, emailing the ISAs directly at cs106@uwaterloo.ca or requesting a time in the MS Teams Office Hour channel.

Day

Time* EDT

Communication Tool

Staff

Mondays 9:00am-1:00pm
2:30pm-4:00pm
4:00pm-5:00pm
MS Teams Time slots rotate between:
Jeremy
Jiaxin
Jennifer
Tuesdays
9:00am-12:00pm
2:00pm–4:00pm
8:00pm–10:00pm
MS Teams Time slots rotate between:
Kevin
Scott
Wednesdays 12:00pm-4:00pm MS Teams Sangho
Thursdays 9:00am-12:00pm
12:00pm-3:00pm
MS Teams Time slots rotate between:
Jiaxin
Jennifer
Fridays 9:00am-1:00pm
12:00pm-3:00pm
3:00pm-5:30pm
MS Teams Time slots rotate between:
Ludwig
Jennifer
Jiaxin

Schedule

Week of Lectures Labs Assignments Suggested readings
Mon Jan 11 - Fri Jan 15 Week 1: Open Processing and Recap [notes] Lab 1: Fri Jan 15, 11:59 pm CS 105 lecture notes
Mon Jan 18 - Fri Jan 22 Week 2: Arrays and Strings [notes] Lab 2: Tue Jan 19, 11:59 pm Assignment 1: Fri Jan 22, 11:59 pm
Mon Jan 25 - Fri Jan 29 Week 3: Input and Output [notes] Lab 3: Tue Jan 26, 11:59 pm Assignment 2: Fri Jan 29, 11:59 pm
Mon Feb 1 - Fri Feb 5 Week 4: Advanced Shapes [notes] Lab 4: Tue Feb 2, 11:59 pm Assignment 3: Fri Feb 5, 11:59 pm
Mon Feb 8 - Fri Feb 12 Week 5: Introduction to HTML and CSS Lab 5: Tue Feb 9, 11:59 pm Test #1: Fri Feb 12, 11:59 pm
Mon Feb 15 - Fri Feb 19 Reading week: no lectures
Mon Feb 22 - Fri Feb 26 Week 6: Randomness and Noise [notes] Lab 6: Tue Feb 23, 11:59 pm Assignment 4: Fri Feb 16, 11:59 pm
Mon Mar 1 - Fri Mar 5 Week 7: Data Processing and Text [notes] Lab 7: Tue Mar 2, 11:59 pm Assignment 5: Fri Mar 5, 11:59 pm
Mon Mar 8 - Fri Mar 12 Week 8: Tables [notes] Lab 8: Tue Mar 9, 11:59 pm Assignment 6: Fri Mar 12, 11:59 pm
Wed Mar 17 - Fri Mar 19 Week 9: JSON Part 1 [notes] Assignment 7: Fri Mar 19, 11:59 pm
Mon Mar 22 - Fri Mar 26 Week 10: JSON Part 2 [notes] [extra example] Lab 9: Tue Mar 22, 11:59 pm Assignment 8: Fri Mar 26, 11:59 pm
Mon Mar 29 - Thu Apr 1 Week 11: Geometric Context [notes] Week 1 of Final Project
Mon Apr 5 - Fri Apr 9 Week 12 Week 2 of Final Project: Fri Apr 9, 11:59 pm
Mon Apr 12 - Wed Apr 14 Test #2: Fri Apr 14, 11:59 pm

Marking

Weekly Participation 5%
9 Labs (best 8 count) 20%
8 Assignments (best 7 count) 30%
2 Tests (15% each) 30%
Final Project 15%

Please see the bottom of the course outline page for more information about re-marking of assignments and the tests.


Assignments

Before submitting code for assignments, you should familiarize yourself with the code style guidelines and read the instructions on how to submit code on LEARN.

Labs

Labs will be submitted as pdf files with links to Open Processing sketches following this template.

Resources

Practice

  • A set of practice programming exercises will be provided before the tests to help you build your skill at writing short functions.

JavaScript p5

  • The course is taught using the ( JavaScript p5 ) programming environment. When working on assignments, the reference reference section section will be especially useful.

Textbook

    No required textbook, but there is a recommended textbook: Lauren McCarthy, Casey Reas, and Ben Fry. Getting Started with p5.js. Published October 2015, Maker Media. Paperback. An electronic version of the textbook is available through the University of Waterloo library at: https://ocul-wtl.primo.exlibrisgroup.com/permalink/01OCUL_WTL/5ob3ju/alma999986579998305162 Anyone with an email address ending in uwaterloo.ca can access the above link. If you are asked to select your institution, then select “Not Listed” and log in using your uwaterloo.ca email address.

Course technology

  • We use LEARN for questions, discussions, announcements, and other topics of interest to students in the course. Visit LEARN for timely updates on course material. Feel free to seek help with assignments from the course staff or each other, but keep academic integrity in mind. Don't post anything publicly that might constitute an academic offence (e.g., a partial solution to a programming question).
  • Non-public aspects of the course (such as assignment submission and marks) happen on LEARN. But for the most part, all other course-related documents will be posted publicly here.

Other documentation

  • There are a few general documents that will help you get through this course, which are identical to the ones we made available to you in CS 105. Make sure you've read the Survival Guide for starters. Then, before submitting code for assignments and labs, make sure you're up to speed on our suggested code style guidelines and that you know how to submit code on LEARN.

Policies

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 www.uwaterloo.ca/academicintegrity/ 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, www.adm.uwaterloo.ca/infosec/Policies/policy70.htm. 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 [check www.uwaterloo.ca/academicintegrity/] to avoid committing an academic offence, and to take responsibility for his/her actions. 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, www.adm.uwaterloo.ca/infosec/Policies/policy71.htm. For typical penalties check Guidelines for the Assessment of Penalties, www.adm.uwaterloo.ca/infosec/guidelines/penaltyguidelines.htm.

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) www.adm.uwaterloo.ca/infosec/Policies/policy72.htm.

Students with Disabilities

AccessAbility Services (AAS), located in Needles Hall, Room 1132, 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 AAS at the beginning of each academic term.

More Information

Academic Integrity and Students with Disabilities