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.

This course is held fully online. There are no required in-person meetings, but there may be occasional live virtual meetings that you will be invited to attend. Any such meetings will be recorded if you prefer to watch them later.

Please consult the separate Winter 2024 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, please visit office hours or ask course staff on MS Teams. (Note that you must be a registered student in the course to access the MS Team for CS 106. Information about downloading a copy of MS Teams can be found here.)

For questions about marking, contact the ISAs first by sending email to cs106@uwaterloo.ca. They will consult with the instructor if necessary.

For questions about course logistics (including absences, accommodations, and course enrolment), contact the Instructional Support Coordinator, Patrick Roh.

Craig
Instructor: Craig S. Kaplan
email: csk@uwaterloo.ca
Enyu
Instructional Support Assistant: Enyu Pan
email: cs106@uwaterloo.ca
Fiacra
Instructional Support Assistant: Fiacra McCluskey
email: cs106@uwaterloo.ca
HassebA
Instructional Apprentice: Haseeb Ahmed
Alex
Instructional Apprentice: Alexander Caton
HaseebF
Instructional Apprentice: Haseeb-Ur-Rehman Faheem
Yudong
Instructional Apprentice: Yudong Luo
Patrick
Instructional Support Coordinator: Patrick Roh
email: proh@uwaterloo.ca

Office Hours

The instructor, ISAs, and IAs will hold regular office hours on MS Teams or in person where you can get live help on any topics relatied to the course, including questions about lectures, labs, assignments, and exams. Here is the weekly schedule for office hours:

Day Time (EDT) Communication Tool Staff
Mondays 9:00am–11:00am MS Teams Yudong Luo
12:30pm–2:30pm In Person (DC 2315) Craig Kaplan
3:15pm–7:15pm MS Teams Haseeb-Ur-Rehman Faheem
Tuesdays 9:00am–11:00am MS Teams Yudong Luo
12:00pm–1:00pm In Person (MC 4065) Haseeb Ahmed
1:00pm–2:00pm MS Teams Haseeb Ahmed
3:00pm–5:00pm MS Teams Enyu Pan
Wednesdays 10:00am–12:00pm MS Teams Alexander Caton
2:30pm–4:30pm In Person (MC 4065) Fiacra McCluskey
3:00pm–5:00pm MS Teams Craig Kaplan
Thursdays 11:30am–1:30pm In Person (MC 4065) Alexander Caton
Fridays 11:00am–1:00pm In Person (MC 4065) Enyu Pan
2:00pm–4:00pm MS Teams Fiacra McCluskey
8:00pm–10:00pm MS Teams Haseeb Ahmed

If you are unable to make it to any of these office hours, alternative options include posting your question to the "Questions and Answers" channel, emailing the ISAs directly at cs106@uwaterloo.ca, or requesting a one-on-one meeting time in the MS Teams Office Hour channel.


Course Schedule

Note: The course schedule may change due to unexpected circumstances. Announcements will be made on LEARN and in the General channel on MS Teams if there are any changes.

Week Date Lab Lab Due (11:59pm) Assignment or Test Assignment or Test Due (11:59pm)
1 Jan 8-12 None None None None
2 Jan 15-19 1 Tues Jan 16 1 Fri Jan 19
3 Jan 22-26 2 Tues Jan 23 2 Fri Jan 26
4 Jan 29 to Feb 2 3 Tues Jan 30 3 Fri Feb 2
5 Feb 5-9 4 Tues Feb 6 4 Fri Feb 9
6 Feb 12-16 5 Tues Feb 13 5 Fri Feb 16
Reading Week Feb 19-23
7 Feb 26 to Mar 1 6 Tues Feb 27 Midterm Fri Mar 1
8 Mar 4-8 7 Tues Mar 5 6 Fri Mar 8
9 Mar 11-15 8 Tues Mar 12 7 Fri Mar 15
10 Mar 18-22 9 Tues Mar 19 8 Fri Mar 22
11 Mar 25-29 None None Project Week 1
12 Apr 1-5 None None Project Week 2 Project due: Fri April 5th, 11:59pm
13 Apr 8 and on None None Final Exam (April 20th) Final Exam (April 20th)

Marking

A. Default Marking Scheme

Participation 6%
9 Labs (best 8 count) 8%
8 Assignments (best 7 count) 21%
Midterm Test (online) 15%
Final Project 10%
Final Exam (in person) 40%

B. Marking Scheme ONLY IF in person final exam is not allowable.

Participation 6%
9 Labs (best 8 count) 16%
8 Assignments (best 7 count) 28%
Midterm Test (online) 20%
Final Project 30%

NOTE: You do not get to choose between the two marking schemes above. By default, every student will be marked using Scheme A. If we are unable to hold an in-person final exam then we will switch to Scheme B.

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


Assignments and Labs

Throughout the course, you will complete labs and assignments. Each lab is a collection of short exercises (which used to be completed in a physical computer lab, in the in-person version of the course). They are intended to reinforce lecture material and prepare you for the corresponding assignment, which contains more significant programming problems. The labs and assignments can be found on LEARN along with the lectures.

The first page of every lab and assignment includes detailed instructions and policies. To submit a lab or assignment, you will prepare a PDF containing URLs for the sketches you created and saved on OpenProcessing. Then you will submit that PDF to a dropbox on LEARN. We are currently finalizing the process you will use this term to create PDFs. Please stand by for more information.


Resources

P5.js

  • The course is taught using the (P5.js) library, a simple way to create interactive graphical sketches in JavaScript that run in web browsers. When working on lab and assignment problems, the reference section will be especially useful.

Textbook

  • There is no required textbook, but there is one recommended textbook: Lauren McCarthy, Casey Reas, and Ben Fry. Getting Started with p5.js (Maker Media, 2015). An electronic version of the textbook is available through the University of Waterloo library. Anyone with an email address ending in uwaterloo.ca can access the link above. 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 to host lecture material, labs, and assignments, and for lab and assignment submission.
  • We use MS Teams for office hours, announcements, answering questions, and general discussion. When posting information on Teams, 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).

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