CS Department   Mt. Holyoke College
CS 101
Problem Solving and Structured Programming

Course Schedule

The following publications are referred to on the schedule below:

Adams
Joel Adams, Alice in Action: Computing through Animation, Thomson Course Technology, 2007.
Bruce
Kim Bruce, Andrea Danyluk and Thomas Murtagh, Java: An Eventful Approach, Prentice Hall, 2007.
Jan. 31: Introduction to Alice and Objects
Readings: Adams, Chapter 1
Feb. 5: Methods
Readings: Adams, Chapter 2
Examples
Feb. 5/6: Alice Lab 1
Feb. 7: Variables and Functions
Readings: Adams, Chapter 3
Examples
Feb. 12: Flow control
Readings: Adams, Chapter 4
Examples
Feb. 12/13: Alice Lab 2
Demo
Feb. 14: Lists and Arrays
Readings: Adams, Chapter 5, excluding 5.2
Examples
Feb. 19: Event Handling
Readings: Adams, Chapter 6
Examples
  • Skaters - demonstrates reacting to keyboard and mouse input
Feb. 19/20: Alice lab 3
Demo
Feb. 21: More Alice Practice
Readings: None
Examples
  • Random cow walk - demonstrates use of random number function and random boolean function
  • Helicopter simulation - simulator we developed in class, just goes up, down and forward so far
Feb. 26: Randy Pausch, the creator of Alice, speaks on Really Achieving Your Childhood Dreams
Alice Test Program
Feb. 26/27: Work on test program.
Feb. 28: Graphics and Event Handling in Java
Readings: Chapter 1
Slides
Examples
Mar. 4: Variables and Numbers
Readings: Chapters 2 and 3
Slides
Examples
  • Stick figure - Drawing graphical shapes, using named constants, mouse event handling
Mar. 4/5: Java Lab 1 - Drawing and Event handling
Handout
Demo
Mar. 6: Conditionals and Primitive Types
Readings: Chapters 4 and 5
Slides
Examples
Mar. 11: Colors, Randomness, Classes
Readings: 6.1-6.3
Slides
Examples
  • MysteryDrawing - Draws lines with a shared endpoint as the user drags the mouse
  • ColorfulMysteryDrawing - Draws lines with a shared endpoint as the user drags the mouse. Each line has a randomly chosen color.
  • RedGradientMysteryDrawing - Draws lines with a shared endpoint as the user drags the mouse. Each line uses a different shade of red.
  • Scribble - Allows the user to make free-hand drawings.
Mar. 11/12: Java Lab 2 - Conditionals
Handout
Running program
Mar. 13: Classes
Readings: 6.4-6.7
Slides
Examples
  • MysterProgram - Demonstrates use of random number generation to generate colors and locations
  • DraggingTrain - Shows how to use abstraction and delegation to drag a train object
  • MovingTrain - A smarter way to drag a train. This one stays on the track.
Mar. 25: Declarations and Scope
Readings: Chapters 8
Slides
Examples
  • ClassySnowman - Demonstrates use of local variables, instance variables and parameters. Also shows how to define a class to create an abstraction and to use delegation to implement the methods inside a class. (Very similar to the DraggingTrain example.)
  • ColorChangingCircles - Shows the declaration and use of a private method.
Mar. 25/26: Java Lab 3 - Classes
Handout
Running program
Mar. 27: While Loops
Readings: Chapters 7
Slides
Examples
  • ContainedBall example - Pay attention to thte use of parameters, instance variables and if-statements
  • Railroad example - Demonstrates a while loop to draw railroad ties
  • Fireworks example - Demonstrates while loops to draw an individual firework and to count the number of fireworks in a finale. Also, uses an instance variable to count the fireworks before the finale.
Apr. 1: For loops
Readings: Chapter 13
Slides
Examples
Apr. 1/2: Java Lab 4 - While loops
Handout
Running program
Picture.java - You need to import this class into your project. You should not modify this class!
A photograph to manipulate
Apr. 3: Arrays
Readings: 14.1-14.5
Slides
Examples
Apr. 8: Strings
Readings: Chapter 16
Slides
Examples
Apr. 8/9: Java Lab 5 - Arrays
Handout
Running program
Apr. 10: Strings
Slides
Apr. 15: Midterm review
Slides
Apr. 15/16: No lab - Study for midterm.
Apr. 17: Midterm
Sample questions
Sample answers
Midterm
Midterm solution
Apr. 22: Strings
Slides
Apr. 22/23: Java Lab 6 - Strings
Handout
URLReader class
Apr. 24: Debugging and Interfaces
Readings: Chapter 10
Slides
Drawing Program example
Apr. 29: Swing -- Graphical User Interfaces
Readings: 11.1-11.4
Slides
Apr. 29/30: Java Test Program
Handout
Photos and Picture.java in a zip file
May 1: Graphical User Interfaces
Readings: 11.5-11.8
Slides
Basic buttons example - Shows how to create buttons, but the buttons have no action associated with clicking on them.
Basic buttons example - This version creates a Text object when a button is clicked.
Drawing Program example - Shows how to place more than one button in one of the 4 compass directions.
Drawing Program example - Shows how to nest panels within each other
May 6: Exam Review
Readings
Sample questions
Sample answers