CPSC 120 Principles of Computer Science Spring 2010

CPSC 120 Syllabus

Readings are to be done before the class period where they are listed. Dates for assignments shown in gray are tenative and are subject to change.

 AssignmentsImportant Dates

Week 1: 1/20-1/22

Topics: introduction

     

Wed        

Fri   lab #1: introduction to Linux
due Fri 1/29
   

Week 2: 1/25-1/29

Topics: HTML

   

Mon — meet in Gulick 208 today —

Reading:

How to read this material: Don't worry about memorizing all the details of exactly how to write particular tags - you can always look up the details when you need them. Focus instead on the terms that are introduced (what are tags?), the structure of an HTML document (what's the title? the head? the body? how do the elements fit together?), and what kinds of things can be done (e.g. bold, various ways to align paragraphs).

Reference:

  • HTML Tutorial - the long list of things under "HTML Tutorial" and "Formatting Tags" provides reference and examples for many things you can do in HTML
  • The Bare Bones Guide to HTML - a quick reference, useful if you are familiar with HTML and just need to look up a particular tag

Examples:

   

Wed — meet in Gulick 208 today —

Reading:

Reference:

Examples:

   

Fri Reading: lab #2: Web Pages
due Fri 2/5

(comments)

   

Week 3: 2/1-2/5

Topics: creating interactive pictures with Processing

   

Mon Reading:
  • Learning Processing, chapters 1 and 2 [available on Blackboard]

Examples:

   

Wed Reading:
  • Learning Processing, chapter 3 [available on Blackboard]

Examples:

When you view the demos and sample solutions, you may need to click inside the drawing area in order for the mouse tracking to start.

   

Fri   lab #3: Introduction to Processing
due Fri 2/12
   

Week 4: 2/8-2/12

Topics: representation and animation

   

Mon Reading:
  • Learning Processing, sections 4.1-4.5 [available on Blackboard]

Examples:

   

Wed Reading:
  • Learning Processing, sections 4.6-4.7 [available on Blackboard]

Examples:

   

Fri   lab #4: Representation and Animation
due Fri 2/19
   

Week 5: 2/15-2/19

Topics: making choices

   

Mon Reading:
  • Learning Processing, sections 5.1-5.5

Examples:

   

Wed Reading:
  • Learning Processing, sections 5.6-5.8

Examples:

  • in-class demo (conditionals, mousePressed)
  • in-class demo (conditionals, mousePressed, mouseClicked)
  • in-class exercises (conditionals, mousePressed, mouseClicked)
  • code for #1 (colored square when mouse button is being pressed)
  • sample solution (part of #4 - colored square when mouse button is being pressed, color gets darker and then resets with each click)
project #1: Space Invaders
due Wed 3/3

Fri   lab #5: Making Choices
due Fri 2/26

(sample solution for #1)

 

Week 6: 2/22-2/26

Topics: more complex animation and interaction

 

Mon Reading:
  • Learning Processing, sections 5.7-5.8 (review this from last week's reading)

Examples:

 

Wed Examples:
  • in-class demo (more complex animation: bouncing ball with gravity, air resistance)
  • in-class demo (more complex animation: sliding down a ramp, then across the bottom of the window)
  • in-class demo (more complex animation: moving in a circle)
  • in-class demo (more complex animation: swinging pendulum - moving in a circle, gravity, air resistance, and mousePressed)
 

Fri   lab #6: More Complex Animation
due Fri 3/12 3/5
 

Week 7: 3/1-3/5

Topics: modularity and reuse

 

Mon Reading:
  • Learning Processing, sections 7.1-7.6

Examples:

 

Wed     midterm #1
Wed 3/3 in class

(review information)

solutions: #1, #2, #3
(use View->Page Source when viewing #1 to see the HTML)


Fri   lab #7: Modularity and Reuse
due Fri 3/12
   

Week 8: 3/8-3/12

Topics: modeling the natural world

   

Mon Reading:
  • Learning Processing, section 13.6
  • Learning Processing, section 13.10
    (focus on what it has to say about recursion; try to ignore the mentions of loops and iteration, and the unfamiliar syntax in some of the examples)

Examples:

   

Wed Reading:
  • Learning Processing, sections 14.1, 14.5, 14.8
    (focus on what it has to say about 2D; also, some of the examples use syntax that we haven't covered yet - just try to concentrate on how translate(), rotate(), pushMatrix(), and popMatrix() are used)

Examples: (click the mouse to increase the maximum depth)

   

Fri   lab #8: Modeling Nature
due Fri 3/26
 

Spring Break


Week 9: 3/22-3/26

Topics: repetition

     

Mon Examples: lab #8: Modeling Nature
due Fri 3/26

(continued)

   

Wed Reading:
  • Learning Processing, sections 6.1-6.4

Examples:

   

Fri   lab #9: Repetition
due Fri 4/2
   

Week 10: 3/29-4/2

Topics: repetition, again

   

Mon Examples:    

Wed Examples:    

Fri   lab #10: More Repetition
due Fri 4/9
   

Week 11: 4/5-4/9

Topics: more of the same

   

Mon Reading:
  • Learning Processing, sections 9.1-9.5
    (don't worry about the examples where things like Car and Human are used as types or when it talks about objects - just think of them as another type like int or float)

Examples:

   

Wed   project #2
due Wed 4/21
midterm #2
Wed 4/7 in class

(review information)

solutions: #1, #2, #3


Fri      

Week 12: 4/12-4/16

Topics: more of the same

   

Mon Reading: review sections 9.1-9.5

Examples:

   

Wed Reading:
  • Learning Processing, section 9.6

Examples:

   

Fri   lab #11: More of the Same
due Fri 4/23
 

Week 13: 4/19-4/23

Topics: images

 

Mon Reading:
  • Learning Processing, sections 15.1, 15.5-15.8

Examples:

 

Wed Reading:
  • Learning Processing, section 15.10

Examples:

   

Fri   lab #12: Images
due Fri 4/30
project #3
due Sun 5/9
 

Week 14: 4/26-4/30

Topics: principles of computer science; what computing can (and can't) do

 

Mon Slides from class: (PDF)

Examples:

 

Wed Slides from class: (PDF)

Examples:

 

Fri      

Week 15: 5/3-5/4

Topics: what computing can (and can't) do

   

Mon Slides from class: (PDF)

Examples:

   

Exams: 5/8-5/11

   

Sat      

Sun   end-of-semester super deadline
no work accepted after 5/9 10pm
final exam
Sun 5/9 7-10pm

(review information)


Mon        

Tue        

Valid HTML 4.01!