|
CS 116x: Introduction to Computer Science 2 (GBDA Section)
This is the home page for CS 116x, the second-level introductory
programming course for students in the
Global Business and
Digital Arts program. In Winter 2015, it is being offered as
Section 002 of CS 116. Although this section is listed alongside
the other CS 116 sections, it is completely different. Students
cannot move back and forth between this GBDA section and the others.
Information for all non-GBDA CS 116 students can be found on the
main CS 116 web page.
Time and place
Lectures: Monday and Wednesday, 2:30pm–3:50pm, MC 4059
Lab: Friday, 2:30pm–3:50pm, MC 3003 and MC 3027
Course staff
For questions related to course content, contact Craig or Alyssa.
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.
|
Instructor: Craig S. Kaplan
Email: csk
Office hours: Mondays 4–5 in DC 2110 or by appointment
|
|
Instructional Assistant: Alyssa Jamal
Email: amjamal
Office hours: Mondays 1-2:30 in MC 4065, or by appointment
|
|
Instructional Assistant: Chrissy Schreiner
Email: lcschrei
|
|
Instructional Assistant: Aaron Voelker
Email: arvoelke
Office hours: Mondays 1-2:30 in MC 4065
|
|
Coordinator: Ahmed HajYasien
Email: ahajyasi
Office: MC 4012
|
Schedule
Below is an approximate timetable for the course.
When lecture notes and/or sketches are available for a module,
links are provided
along with the title of the module.
In the suggested readings, "GS" refers
to the Reas and Fry Getting Started book, and "LP" refers to
Shiffman's Learning Processing book.
Week of |
Lectures |
Suggested Readings |
Other announcements |
5 January |
Module 0: Administration and overview
Module 1: Processing review
Lab 0: Processing Recap
|
|
|
12 January |
Module 2: Input and output [notes, sketches]
Lab 1: Writing and Reading Files
|
GS: pp. 78–83, 164–167
LP: Sections 18.3, 18.4, 21.3, 21.4
|
13 January: Assignment 0 due
|
19 January |
Module 3: User interfaces [notes, sketches]
Lab 2: GUIs
|
|
20 January: Assignment 1 due
|
26 January |
Module 4: Physics and animation [notes, sketches]
Lab 03: Physics and Animation
|
|
28 January: Assignment 2 due
|
2 February |
Module 4 (continued)
Module 5: Geometric context [notes, sketches]
|
|
4 February: Assignment 3 due
|
9 February |
Module 5 (continued)
Module 6: Procedural content [notes, sketches]
|
|
11 February: Assignment 4 due
|
16 February |
|
|
Reading Week. No lectures/labs. |
23 February |
Module 6 (continued)
|
|
25 February: Assignment 5 due
|
2 March |
Module 6 (continued)
Module 7: Advanced types and Object-Oriented Programming
[notes, sketches]
|
|
|
9 March |
Module 7 (continued)
|
|
11 March: Assignment 6 due
|
16 March |
Module 8: Image Processing
[notes, sketches]
|
|
18 March: Assignment 7 due
|
23 March |
Module 9: Text processing
[notes, sketches]
Module 10: Structured data
[notes, sketches]
|
|
25 March: Assignment 8 due
|
30 March |
Module 10 (continued)
Module 11: Wrap up
[slides, sketches]
|
|
|
6 April |
|
|
No lectures or labs
6 April: Assignment 9 due
|
Assignments
Assignment handouts will be posted here, together with any additional
files required to complete them.
- Assignment 0: Warmup
- a00.pdf
- Solution posted on LEARN
- Assignment 1: Input/Output
- a01.pdf
- drawings.zip (for Question 1)
- image.jpg (for Question 2)
- Solution posted on LEARN
- Assignment 2: User Interfaces
- a02.pdf
- A02_1.zip (for Question 1)
- A02_2.zip (for Question 2)
- Demo video
- Solution posted on LEARN
- Assignment 3: Physical Simulation
- a03.pdf
- Solution posted on LEARN
- Assignment 4: The Fisica Physics Library
- a04.pdf
- A04.zip
- Assignment 5: Geometric Context
- a05.pdf
- A05_1.zip
- A05_2.zip
- Assignment 6: Recursion
- a06.pdf
- A06chair.zip
- A06pinwheel.zip
- Assignment 7: Object-Oriented Programming
- a07.pdf
- A07Logo.zip
- Demo video
- Assignment 8: Image Processing
- a08.pdf
- london.jpg
- Assignment 9: Data Processing
- a09.pdf
- KioskStarter.zip
Labs
Lab handouts will be posted here, together with any additional
files required to complete them. You are permitted to work on the
labs outside of the weekly lab time, but we encourage you to attend,
particularly when you need help.
- Lab 0: Processing Recap
- L00.pdf
- Lab 1: Writing and Reading Files
- L01.pdf
- ProvidedFiles.zip
- Lab 2: GUIs
- L02.pdf
- StarterCode.zip
- Lab 3: Physics and Animation
- L03.pdf
- MiniPutt.zip
- L03csk.zip (Craig's starter code)
- Lab 4: Physics and Animation (Fisica)
- L04.pdf
- pachinko.zip
- Lab 5: Geometric Context
- L05.pdf
- ProvidedFiles.zip
- Robot Demo Video
- Lab 6: Procedural Content Generation
- L06.pdf
- Starter Code
- Midterm Review Questions
- Lab 7: Advanced Types and OO
- L07.pdf
- ProvidedFiles.zip UPDATED: Thursday, March 12th at 2pm.
- Demo Video
- Lab 8: Image Processing
- L08.pdf
- ProvidedFiles.zip
- Lab 9: Text Processing
- L09.pdf
- Provided Files
- Final Exam Review
- Review Questions
- Review Solutions
Resources and links
- This course is taught using the
Processing programming environment.
When working on assignments, the
reference section
will be especially useful.
- The main book to use as a source of information on programming in
Processing is
Getting Started with Processing by Reas and Fry. It's a simple
and useful introduction.
- Two other books might serve as a great source of additional information
and inspiration. Reas and Fry have a much more comprehensive book
Processing:
A Programming Handbook for Visual Designers and Artists. We also
recommend Shiffman's book
Learning Processing: A Beginner's Guide to Programming Images,
Animation, and Interaction. It looks like there are new editions
of both of these books coming in Spring 2015, to coincide with
Version 3 of Processing.
- Andrew Glassner runs an online course on learning Processing at his
website The Imaginary
Institute. He also has another good book on Processing,
Processing for Visual Artists: How to Create Expressive Images and Interactive Art.
The course isn't free, but he has published an excellent series of
introductory
tutorials on bits of mathematics that artist-programmers should
know. Some of these might be useful refreshers on techniques we'll
use in CS 116x.
- We use Piazza for questions, discussions,
announcements, and other topics of interest to students in the course.
Visit The
course's Piazza page
for timely updates on course material. Feel free to use Piazza 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). If in doubt, you can always
make your post private, so that other students can't see it.
- Non-public aspects of the course (such as assignment submission and
marks) happen on LEARN. Please log in
there for information of that nature.
- The course uses iClickers for in-class
feedback and quizzes. The Faculty of Mathematics has a fairly
extensive iClicker FAQ if you have any questions. You will
need to register your clicker in order for your in-class responses to
be recorded.
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
The Office for persons with Disabilities (OPD), 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 OPD at the beginning of each academic term.
|
Last modified on
Friday, 17 April 2015, at 09:28 hours.