CPSC 120 Principles of Computer Science Fall 2015

# CPSC 120 Syllabus

Reading is to be done for the class period where it is listed.

Assignments

### Week 1: 8/31-9/4

Topics: introduction; drawing pictures with Processing

Mon Slides: lab 0
laptop setup
due Mon 9/7

• Learning Processing, introduction sections "Take It One Step at a Time" and "Algorithms" (pages xv-xvii)
• Learning Processing, chapter 1
Examples:

• Learning Processing, sections 2.1-2.9
lab 1
Introduction to Linux and Processing
due Fri 9/11

### Week 2: 9/7-9/11

Topics: interaction and animation

• Learning Processing, chapter 3
Examples:

• Learning Processing, sections 4.1-4.4
Examples:

Fri lab 2
Active Mode
due Fri 9/18

### Week 3: 9/14-9/18

Topics: animation and representation, abstraction and modularity

• Learning Processing, sections 4.5-4.7
Examples:

• Learning Processing, sections 7.1-7.6
Slides and Examples:

Fri lab 3
Animation and Representation, Modularity and Abstraction
due Fri 9/25

### Week 4: 9/21-9/25

Topics: making choices (conditionals)

• Learning Processing, sections 5.1-5.5
Examples:

• Learning Processing, sections 5.6-5.7 (contrast "bouncing" with "following edge" examples in section 5.7)
Examples:

Fri lab 4
Making Choices
due Fri 10/2

### Week 5: 9/28-10/2

Topics: physically-based motion simulation

• Learning Processing, sections 5.7-5.8
Slides and Examples:

Wed
exam 1
Wed 9/30 in class

Fri lab 5
Physics
due Fri 10/9

### Week 6: 10/5-10/9

Topics: constrained and random motion, fancier drawing (transformations)

• Learning Processing, sections 13.6-13.9 (this is more mathematical and some of the examples use Processing constructs like classes that we won't cover in this course - focus on the idea that you can get more complex motion by deriving x and y coordinates from some other quantity that varies, and don't worry about the details if the math is unfamiliar)
Slides and Examples:

• Learning Processing, sections 14.5 and 14.7-14.8
Examples:

Fri lab 6
Complex Motion and Transformations
due Fri 10/16

### Week 7: 10/12-10/16

Topics: repetition (loops)

Mon fall break
(no class)

• Learning Processing, sections 6.1-6.4
Examples:
project 1
Rube Goldberg Sketch
due Mon 11/2 11:59pm

Fri Slides: lab 7
Repetition
due Fri 10/23

### Week 8: 10/19-10/23

Topics: repetition (loops)

• Learning Processing, sections 6.5-6.7
Examples:

Wed Examples: loop patterns

Fri lab 8
More Repetition
due Fri 10/30

### Week 9: 10/26-10/30

Topics: more of the same (arrays)

• Learning Processing, sections 9.1-9.5
Examples: loops and animation

Wed Slides and Examples:

Fri Slides:
lab 9
Arrays
due Fri 11/6

### Week 10: 11/2-11/6

Topics: more of the same (arrays)

• Learning Processing, section 9.6
Slides and Examples:

Wed exam 1 redo due

exam 2
Wed 11/4 in class

Fri lab 10
Modeling Nature
due Fri 11/13

### Week 11: 11/9-11/13

Topics: behavioral animation

Mon Slides and Examples:

Wed Slides and Examples:

Fri lab 11
Boids
due Fri 11/20

### Week 12: 11/16-11/20

Topics: self-similarity and fractals

• Learning Processing, section 13.10
Slides and Examples:

Wed Slides and Examples:

Fri lab 12
Fractal Nature
due Fri 12/4

### Week 13: 11/23-11/27

Topics: applications

Mon Slides:

Wed Thanksgiving break
(no class)

Fri

### Week 14: 11/30-12/4

Topics: images

• Learning Processing, sections 15.1, 15.5-15.8
Examples:
project 2
Capstone
due Tue 12/15 1:30pm

• Learning Processing, section 15.10
Examples:

Fri lab 13
Images
due Fri 12/11

### Week 15: 12/7-12/11

Topics: images - fancier filters, generating images; wrapup - principles of computer science

Mon Slides and Examples:

Wed Slides:

Fri

Sat

Sun

Mon Slides and Examples:

### Exams: 12/15-12/18

Tue exam 2 redo due

final exam
Tue 12/15 1:30-4:30pm