CPSC 120 Principles of Computer Science Fall 2016

CPSC 120 Syllabus

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

Dates for things in light gray are tentative and may shift slightly.

 Assignments

Week 1: 8/29-9/2

Topics: introduction; algorithms, decomposition, and incremental development; building blocks: coordinates, shapes, and colors; writing and running sketches

   

Mon Slides and Examples:
  • slides (course info)
  • handout (imagine giving instructions about how to draw the picture to someone who can't see it - or try it with a friend!)
lab 0
laptop setup
 

Wed Reading:
  • Learning Processing, Introduction (especially the sections "Will this be on the test?" and "Take It One Step at a Time")
  • Learning Processing, sections 1.1-1.5
Slides and Examples:
 

Fri Reading:
  • Learning Processing, sections 2.1-2.4
  • Learning Processing, sections 2.8-2.9
lab 1
Introduction to Linux and Processing
due Fri 9/9
 

Week 2: 9/5-9/9

Topics: creating scenes; interaction

 

Mon Examples:  

Wed Reading:
  • Learning Processing, chapter 3
Slides and Examples:
 

Fri lab 2
Drawing and Interaction
due Fri 9/16
 

Week 3: 9/12-9/16

Topics: animation

 

Mon Reading:
  • Learning Processing, sections 4.1-4.5
Slides and Examples:
 

Wed Reading:
  • Learning Processing, sections 4.6-4.7
Examples:
 

Fri lab 3
Animation
due Fri 9/23
 

Week 4: 9/19-9/23

Topics: abstraction and modularity (functions); debugging

 

Mon Reading:
  • Learning Processing, sections 7.1-7.6
    This reading skips ahead a bit in the book so some of the examples contain constructs (like if statements) that we haven't covered yet - don't worry about understanding those parts. Also, our use of functions will be limited to a very specific purpose - drawing complex shapes. (The book contains a more general treatment.) Focus on the examples of functions that contain only drawing-related statements (e.g. drawBlackCircle(), display(), drawCar(...)) rather than those that update variables (e.g. move(), bounce()).
Slides and Examples:
 

Wed Reading:
  • Learning Processing, chapter 11
    As with Monday's reading, the examples in this chapter contain constructs and syntax we haven't covered yet. Don't worry about the details of what the particular examples are doing, but instead focus on the ideas presented in the four tips.
Slides and Examples:
 

Fri lab 4
Modularity and Abstraction
due Fri 9/30
 

Week 5: 9/26-9/30

Topics: self-similarity and fractals (recursion)

 

Mon Reading:
  • Learning Processing, section 13.11
    The text makes some references to "loops" and "iteration" (which we haven't covered yet) and also includes an example involving returning values from functions (which we won't cover) - don't worry about those parts! Focus on the concepts of "self-similarity" and "recursive" and the various drawCircle() examples.

Slides:

  • slides (functions - more about working with parameters)
 

Wed Slides and Examples:  

Fri -- meet in Gulick 206B --

exam 1
   

Week 6: 10/3-10/7

Topics: fractals; making choices

 

Mon Slides and Examples: lab 5
Fractals
due Fri 10/14
 

Wed Reading:
  • Learning Processing, sections 5.1-5.7

Slides and Examples:

 

Fri  

Week 7: 10/10-10/14

Topics: making choices

 

Mon fall break
(no class)

Wed Slides and Examples:

Fri lab 6
Making Choices
due Fri 10/21

Week 8: 10/17-10/21

Topics: complex motion

 

Mon Reading:
  • Learning Processing, sections 13.6-13.7
  • Learning Processing, section 5.8

Slides and Examples:

 

Wed Reading:
  • Learning Processing, sections 13.9-13.10
    These sections get more mathematical, involving trigonometry. It's OK if you aren't familiar with sin, cos, polar coordinates and the rest of the math discussed - the key points to get out of the reading are the ideas that complex motion paths can be created by having the right equation, and the pattern in example 13-6 of local variables x and y whose values are computed using some equation.

Slides and Examples:

 

Fri lab 7
Complex Motion
due Fri 10/28
 

Week 9: 10/24-10/28

Topics: repetition (loops)

 

Mon Reading:
  • Learning Processing, sections 6.1-6.5, 6.7

Slides and Examples:

 

Wed Examples: project 1
Rube Goldberg Sketch
due Wed 11/9

Fri lab 8
Repetition
due Fri 11/4

Week 10: 10/31-11/4

Topics: repetition (loops)


Mon Slides and Examples:

Wed Examples:

Fri lab 9
Repetition, Again
due Fri 11/11

Week 11: 11/7-11/11

Topics: more of the same (arrays)


Mon Reading:
  • Learning Processing, sections 9.1-9.5

In Class:

Slides and Examples:

Wed In Class: Examples:  

Fri lab 10
Arrays
due Fri 11/18
 

Week 12: 11/14-11/18

Topics: behavioral animation and emergent behavior

 

Mon
exam 2
 

Wed Slides and Examples:
  • slides (boids and behavioral animation)
  • videos (in addition to those listed in the slides)
    • how Massive works (software used in Lord of the Rings): part I, part II
  • boids in Processing
    • wander (one behavior)
    • wander + seek (multiple behaviors active at once) - seeks the mouse position
    • wander or seek (choosing between behaviors) - seeks the mouse position when near the mouse
 

Fri lab 11
Boids
due Fri 12/2
 

Week 13: 11/21-11/25

Topics: using images


Mon Reading:
  • Learning Processing, sections 15.1-15.3

In Class:

Slides and Examples:


Wed Thanksgiving break
(no class)

Fri

Week 14: 11/28-12/2

Topics: pixel-based manipulation


Mon Reading:
  • Learning Processing, sections 15.5-15.6 and 15.10

Slides and Examples:

project 2
Capstone
due Tue 12/13

Wed Reading:
  • Learning Processing, sections 15.7-15.8
  • Learning Processing, section 15.9 (optional)

Slides and Examples:


Fri lab 12
Images
due Fri 12/9

Week 15: 12/5-12/9

Topics: more advanced image filters and image generation; principles of computer science; wrapup


Mon Slides:
  • slides (convolution filters, generating images through 3D raytracing)

Wed Slides:
  • slides (principles of computer science, applications, where to go from here)

Fri

Reading Period: 12/10-12/12

 

Sat

Sun

Mon

Exams: 12/13-12/16


Tue
final exam
Tue 12/13 7-10pm
end-of-semester deadline
no work accepted after 12/13 10pm

Wed    

Thu    

Fri    

Valid HTML 4.01!