CMPSCI 121
"Introduction to Problem Solving with Computers" using Java

Department of Computer Science
University of Massachusetts Amherst

Home
Resources
Grading
Weekly Schedule
Syllabus
Homework
Exams

Bulletin Board
Staff

OWL

Syllabus

(Syllabus is subject to change.)

Lecture slides
Date Topics Readings
in Moll's E-Book
Lecture #1
Tuesday, January 24,
in Hasbrouck Lab 20
Course Introduction
Computers in the world, programs and languages, course outline and logistics. Lecture slides.
Lecture #2
Thursday, January 26,
in Hasbrouck Lab 20
Typing expressions, println
Modify HelloWorld, how to hand in assignments in OWL. Lecture slides.
E-Book Chapters 0 and 1
Lecture #3
Tuesday, January 31,
in Hasbrouck Lab 20
Naming & storing data
Objects, values and types, classes, primitive types, Strings, references: objects as properties of other objects, primitive types in memory, identifiers and literals. Lecture slides.

E-Book Chapter 2
Lecture #4
Thursday, February 2,
in Hasbrouck Lab 20
Practice with objects, classes, and primitive types
Declare & assign variables, create a simple class. Lecture slides.
Lecture #5
Tuesday, February 7,
in Hasbrouck Lab 20
Classes, Strings, and IO
Lecture slides

E-Book Chapter 3
Lecture #6
Thursday, February 9
in Hasbrouck Lab 20
Objects, Scanners
Lecture slides
Lecture #7
Tuesday, February 14,
in Hasbrouck Lab 20
Looping and Conditionals
Lecture slides

E-Book Chapter 4
Lecture #8
Thursday, February 16
in Hasbrouck Lab 20
More Loops and Math
Lecture slides
Lecture #9
Tuesday, February 21,
in Hasbrouck Lab 20
Methods
Note that InvestmentAccount.java and InvestmentSimulator.java are the complete class definitions. The other java files are intermediate (incomplete) versions.

InvestmentAccount1.java InvestmentAccount2.java InvestmentAccount3.java InvestmentAccount4.java InvestmentAccount5.java InvestmentAccount6.java InvestmentAccount.java

InvestmentSimulator1.java InvestmentSimulator2.java InvestmentSimulator3.java InvestmentSimulator4.java InvestmentSimulator5.java InvestmentSimulator6.java InvestmentSimulator7.java InvestmentSimulator.java

E-Book Chapter 5
Lecture #10
Thursday, February 23
in Hasbrouck Lab 20
Classes
InvestmentAdvisor.java RIA.java
Lecture #11
Tuesday, February 28,
in Hasbrouck Lab 20
While Loops, Wrappers, and Graphical I.O.
Lecture slides

E-Book Chapter 6
Lecture #12
Thursday, March 1
in Hasbrouck Lab 20
Graphical User Interface
Lecture slides
Lecture #13
Tuesday, March 6
in Hasbrouck Lab 20
Arrays
Lecture slides

BouncingBallApplet.java
Midterm
Wed, March 7,
see Exams page
7:15 PM to 8:45 PM

Lecture #14
Thursday, March 8,
in Hasbrouck Lab 20
More with Arrays
Lecture slides

E-Book Chapter 6
Lecture #15
Tuesday, March 13
in Hasbrouck Lab 20
Examples with Arrays

BarPanel.java Dice.java DiceGraph.java
Lecture #16
Thursday, March 15,
in Hasbrouck Lab 20
Introduction to the Snake Game

E-Book Chapter 7
Spring Break
Sat, March 17 - Sun, March 25
Spring Break

Lecture #17
Tuesday, March 27
in Hasbrouck Lab 20
Inheritance
Lecture slides
Lecture #18
Thursday, March 29,
in Hasbrouck Lab 20
More Inheritance
Chance.java DeckOfCards.java

E-Book Chapter 8
Lecture #19
Tuesday, April 3,
in Hasbrouck Lab 20
Even More Inheritance
Card.java DeckOfCards.java Hand.java Poker.java
Lecture #20
Thursday, April 5,
in Hasbrouck Lab 20
File I/O and Exceptions
Lecture slides
Lecture #21
Tuesday, April 10,
in Hasbrouck Lab 20
File I/O and Exceptions (continued)
Lecture slides
E-Book Chapter 9
Lecture #22
Thursday, April 12,
in Hasbrouck Lab 20
Interfaces
Lecture slides
NO LECTURE
Tues, April 17, (Monday class schedule)
NO LECTURE (Monday class schedule)

Lecture #23
Thursday, April 19,
in Hasbrouck Lab 20
More Interfaces
Lecture slides

E-Book Chapters 11, 12 (read before Exam)

Lecture #24
Tuesday, April 24,
in Hasbrouck Lab 20
Interfaces, Sorting, Timing and Abstract Classes
Lecture slides
Lecture #25
Thursday, April 26,
in Hasbrouck Lab 20
Intro to Graphics
Lecture slides
Lecture #26
Tuesday, May 1,
in Hasbrouck Lab 20
Final Lecture
Java program to rotate picture of the earth
Point3.java RotateCube.java Seg.java SpherePoint.java
Final Exam
Tuesday, May 8, 1:30 PM
in Totman Gym
FINAL EXAM
On material from the entire semester.