CS 106 Winter 2016

Course outilne


CS 106 (currently listed as CS 116X, Introduction to Computer Science 2) is second-level introductory Computer Science course being offered to students in the Global Business and Digital Arts program. This information on this web page is tentative and will be frozen at the beginning of the term; see the course website for current information.

Course Description

This course will eventually be named CS 106 and I will refer to it that way in this document. Together with CS 105, it offers a comprehensive introduction to practical computer programming for students with no background in the subject, and who will not normally go on to further study in computer science. The course is currently being taught exclusively to students in the GBDA program, we ultimately plan to enlarge it to encompass other non-math students.

The course is taught using the Processing programming environment. When working on assignments, the reference section will be especially useful.

While the main theme of CS 105 is to develop basic skills in imperative programming (variable declarations, control flow, defining functions, basic object-oriented programming), in CS 106 we explore more general applications of programming in contexts of interest to visual artists and designers.

Course Objectives

The goal of CS 106 is to apply programming idioms in a practical context, using functionality available in built-in functions, libraries that come shipped with Processing, and libraries that can be added on to it. Topics include input/output, user interface programming, physics and animation, procedural content generation, object-oriented programming, and text and structured data processing.

Textbooks

Course schedule

Lectures
CS 116 LEC 011: Mondays and Wednesdays, 2:30–3:50, MC 4061
Labs
CS 116 TUT 115: Mondays and Wednesdays, 4:00–5:20, MC 3003
CS 116 TUT 116: Mondays and Wednesdays, 4:00–5:20, MC 3027
Midterm
Monday, February 29th, 7:00–8:50, rooms TBA
Final Exam
TBA

Course staff

All email addresses are @uwaterloo.ca.

Instructor: Craig S. Kaplan
DC 2110
Email: csk Office hours: Thursdays, 1:00pm–2:00pm
Instructional support assistant: Chrissy Schreiner
MC 4065
Email: lcschrei Office hours: Fridays, 1:00pm–2:30pm
Instructional assistant: Marta Kryven
DC 2303
Email: mkryven Office hours: Fridays, 2:30pm–4:00pm
Instructional support coordinator: Victoria Sakhnini
MC 4011
Email: vsakhnin

List of planned topics

Processing recap
A review of programming concepts from CS 105, in terms of the basic structure of the Processing language: types, declarations, expressions, statements, and functions.
Input and output
Loading files in various formats (text, images, illustrations) into Processing, writing files.
User interfaces
The model-view-controller architecture. Direct manipulation interfaces. User interface toolkits. The ControlP5 library in Processing.
Physics and animation
The basic principles of naturalistic physical motion through Newton’s laws of motion. Inertia, acceleration, drag, collisions. The Fisica library for rigid body dynamics in Processing.
Geometric context
The use of translate(), rotate(), and scale() to modify a program’s coordinate system. Building a hierarchy of transformations using pushMatrix() and popMatrix(). Order of operations.
3D Graphics
Basic APIs for loading and displaying 3D models in Processing.
Image processing
Querying individual pixels. Simple colour manipulation. Filtering. Halftoning. Using webcams as a source of input.
Text processing
Decomposing text into tokens. Regular expressions. Unicode. Working with dates and times.
Structured data processing
Dealing with table-structured (CSV) and tree-structured (XML) data. Processing live data acquired from web APIs (JSON).

Student expectations

Assignments
There will be 10 assignments (roughly weekly, due Monday mornings via LEARN), consisting primarily of programming questions. All assignments must be completed individually by students. Absolutely no late assignment submissions are permitted, but the final assignment mark will be computed from the best 9 out of ten assignments.
Labs
There will be approximately 10 labs (roughly weekly, due Friday afternoons via LEARN), consisting of smaller exercises and coding walk-throughs. All labs must be completed individually by students, though students are invited to discuss lab questions and share ideas.
Exams
A 110-minute midterm is scheduled for the Monday, February 29th at 7:00pm. A 150-minute final exam will be scheduled during the exam period at the end of the term.
Marking scheme

Participiation: 5% (via responses to clicker questions)
Labs: 5%
Assignments: 30%
Midterm: 20%
Final exam: 40%

Students must pass the exam portion of the course separately in order to pass the entire course.

Policies

Late assignments

Late assignments will not be accepted; consequently, you should aim to finish early, to allow for unexpected delays. After an assignment due date has passed, you may still submit your work for feedback only (no marks) to the late folder and you must inform the CS 106 ISAs by email so they are aware of your submission and request for feedback.

Missed assignments due to illness

With appropriate, authorized documentation, assignment work may be excused. If a missed assignment is excused, its weight is distributed over the remaining unexcused assignments. In the interest of understanding the course material for future assignments and exams, students who miss work are encouraged to do it, submit it request feedback from the ISAs. Please see the Verification of Illness Form.

Remarking

If you have problems with the marking of an assignment, please contact the ISAs within two weeks of the date the assignment's mark was made available on LEARN. The email must include your name, student number, Quest user ID, and assignment number. We also require that you list the questions you feel were marked incorrectly, and, for each of those questions, why you feel your mark should be changed. Please be aware that the assignment will be remarked in its entirety.

If you have problems with the marking of a midterm exam, please fill out a re-mark request form. Bring a paper copy of the filled-out form to the Course Coordinator or the ISA within two weeks of the day when your marked exam became available.

Group work

Group work is disallowed unless otherwise specified.

Academic integrity and grivances

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 the Office of Academic Integrity’s website, www.uwaterloo.ca/academicintegrity/, for more information. All members of the UW community are expected to hold to the highest standard of academic integrity in their studies, teaching, and research. This site explains why academic integrity is important and how students can avoid academic misconduct. It also identifies resources available on campus for students and faculty to help achieve academic integrity in – and out – of the classroom.

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, http://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, to avoid committing academic offenses, and to take responsibility for his/her actions. A student who is unsure whether an action constitutes an offense, or who needs help in learning how to avoid offenses (e.g., plagiarism, cheating) or about rules for group work/collaboration should seek guidance from the course professor, academic advisor, or the Undergraduate Associate Dean. For information on categories of offenses and types of penalties, students should refer to Policy 71, Student Discipline, http://www.adm.uwaterloo.ca/infosec/Policies/policy71.htm. For typical penalties check Guidelines for the Assessment of Penalties, http://www.adm.uwaterloo.ca/infosec/guidelines/penaltyguidelines.htm.

Avoiding Academic Offenses: Most students are unaware of the line between acceptable and unacceptable academic behavior, especially when discussing assignments with classmates and using the work of other students. For information on commonly misunderstood academic offenses and how to avoid them, students should refer to the Faculty of Mathematics Cheating and Student Academic Discipline Policy, http://www.math.uwaterloo.ca/navigation/Current/cheating_policy.shtml.

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

Note for students with disabilities: AccessAbility Services (AA), 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 the AA at the beginning of each academic term. See http://www.studentservices.uwaterloo.ca/disabilities for more information.