CPSC 120 Principles of Computer Science Fall 2023

CPSC 120 Schedule

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

Assignments in light gray are not yet assigned and are shown for planning purposes; it is possible that dates may shift slightly.

 Assignments

Week 1: 8/28-9/1

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

 

Mon Class Materials: 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
Class Materials:
 

Fri Reading:
  • Learning Processing, chapter 2
lab 1
Introduction to Linux and Processing
 

Week 2: 9/4-9/8

Topics: creating scenes; interaction

 

Mon Class Materials:  

Wed Reading:
  • Learning Processing, chapter 3
Class Materials:
 

Fri Class Materials: lab 2
Drawing and Interaction
 

Week 3: 9/11-9/15

Topics: animation

 

Mon Reading:
  • Learning Processing, sections 4.1-4.5
Class Materials:
 

Wed Reading:
  • Learning Processing, sections 4.6-4.7
Class Materials:
 

Fri Class Materials: lab 3
Animation
 

Week 4: 9/18-9/22

Topics: abstraction and modularity

 

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()).
Class Materials:
 

Wed Class Materials:  

Fri lab 4
Modularity and Abstraction
 

Week 5: 9/25-9/29

Topics: debugging; making choices

 

Mon Reading:
  • Learning Processing, chapter 11
    As with last week's reading about functions, 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.
Class Materials:
 

Wed Reading:
  • Learning Processing, sections 5.1-5.7
Class Materials:
 

Fri
midterm exam
meet in Napier 102
lab 5
Making Choices
 

Week 6: 10/2-10/6

Topics: making choices; self-similarity and fractals (recursion)

 

Mon Class Materials:  

Wed 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.
Class Materials:
 

Fri  

Week 7: 10/9-10/13

Topics: self-similarity and fractals

 

Mon fall break

Wed Class Materials: exam 1 redo
due 10/25

Fri lab 6
Fractals
 

Week 8: 10/16-10/20

Topics: complex motion

 

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

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.
Class Materials:
 

Fri lab 7
Complex Motion
 

Week 9: 10/23-10/27

Topics: repetition (loops)

 

Mon Reading:
  • Learning Processing, chapter 6
Class Materials:
 

Wed Class Materials: midterm project
Rube Goldberg Sketch

Fri lab 8
Repetition

Week 10: 10/30-11/3

Topics: repetition (loops)


Mon meet in Rosenberg 009

Wed Class Materials:

Fri lab 9
Repetition, Again

Week 11: 11/6-11/10

Topics: more of the same (arrays)


Mon Reading:
  • Learning Processing, sections 9.1-9.5
Class Materials:

Wed Class Materials:  

Fri Class Materials: lab 10
Arrays
 

Week 12: 11/13-11/17

Topics: behavioral animation and emergent behavior

 

Mon Class Materials:  

Wed
midterm exam
 

Fri lab 11
Boids
 

Week 13: 11/20-11/24

Topics: using images

 

Mon Reading:
  • Learning Processing, sections 15.1-15.3
Images: (for the in-class exercises) Class Materials:
 

Wed Thanksgiving break
Fri

Week 14: 11/27-12/1

Topics: pixel-based manipulation

 

Mon Reading:
  • Learning Processing, sections 15.5-15.6
  • Learning Processing, section 15.10
Class Materials:
capstone project

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

Fri lab 12
Images

Week 15: 12/4-12/8

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


Mon Class Materials:

Wed Class Materials:

Fri Class Materials:  

Reading Period: 12/9-12/11

 

Sat  

Sun  

Mon Class Materials:
office hours 1:15-3:15pm
colloquium 3:30-4:30pm Napier 201 (extra credit)

Speaker: Julia Cowie
Title: Creating a Makeup Finder

I created a web application that matches a user with their perfect makeup products. The user can create an account to input their attributes, such as skin color, eye color, undertone, etc. and then search for a product that fits those attributes. The front-end web development is done using the Angular framework that connects to the Firebase database.

Speaker: Porter Johnson
Title: Finger Lakes Fishing Recommender System

Project was to build a recommender system that allows Finger Lakes locals to search for top locations and species of fish when fishing in the Finger Lakes. This is possible through a full stack application implementing a hybrid recommender system trained on user submitted and generated data. Once the user prompts as recommendation, the system uses current weather data from the area to determine the top locations or species at the time.

 

Final Exams: 12/12-12/15


Tue office hours 10am-noon  

Wed office hours 10am-noon  

Thu
final exam
12/14 8:30-11:30am
exam 2 redo
due 12/14 11:30am
end-of-semester deadline
no work accepted after 12/14 11:30am

Fri