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

Syllabus

(Syllabus is subject to change.)

Date Topics Readings
in Nino & Hosch
Assignments
due in OWL 9am,
E.C. for 12am before
Lecture #0
Thur, Jan 27,
in ECSE 119
Course Introduction
Computers in the world, programs and languages, modeling the world, example snippets of Java, course outline and logistics. Questionaire. Handout.
Chapter 0
(Read Chapters 0 & 1, and install DrJava on your computer.)
Lecture #1
Tues, Feb 1
Data abstraction, naming & storing data
Objects, values and types, classes, primitive types, Strings, Counter.java briefly, references: objects as properties of other objects, primitive types in memory, identifiers and literals. Finding the OWL exercises for Exercise #1.
Chapter 1
all sections
Exercise #1,
due Feb 7, Monday.
Lab #1
Thur, Feb 3
Typing expressions & your first object
Interactively enter Java expressions in DrJava, declare & assign variables, modify HelloWorld, create a Person class, how to hand in assignments in OWL.
Programming #1,
due Feb 8, Tuesday.
Lecture #2
Tues, Feb 8
Defining a simple class
Clients and servers, specification vs implementation, Counter.java again in detail, simple arithmetic in Java, TrafficLight example.
Last day to drop the class with no record.

Chapter 2
sections 2.1-2.9

Exercise #2,
due Feb 10, Thursday.
Lab #2
Thur, Feb 10
Working with classes and methods
Design and create a class that supports queries and commands.
Programming #2,
due Feb 15, Tuesday.
Lecture #3
Tues, Feb 15

Designing interacting classes
Different classes for different types of objects, method calls for object interactions, Maze game example: Explorer/Denizen/Room, Shapes example: Point/Circle, local variables inside methods, the static main() method, the keyword final.

Chapter 3
the example in 3.2 is less important than those in 3.3 and 3.4
Exercise #3,
due Feb 17, Thursday.
Lab #3
Thur, Feb 17
Working with interacting classes
Point, Circle, Square, move, rotate.
Programming #3,
due Feb 22, Tuesday.
Lecture #4
Tues, Feb 22
Conditions
Conditional statements, boolean variables and conditions, else, many linked decisions.
Chapter 4
Exercise #4,
due Feb 24, Thursday.
Lab #4
Thur, Feb 24
Working with conditionals
Computational geometry: rect.intersectsWith().
Programming #4,
due Mar 1, Tuesday.
Lecture #5
Tues, Mar 1
Programming by contract, testing
Pre-conditions and post-conditions, using assert.
Chapter 5 & 6
Exercise #5,
due Mar 3, Thursday.
Lab #5
Thur, Mar 3
Working with testing, and Midterm review
...
 
Tues, Mar 8 MIDTERM EXAM
 
Lab #M
Thur, Mar 10
Get Midterm back
Go over problem spots, answer questions.
Programming #5,
due Mar 22, Tuesday.
Tues, Mar 14 SPRING BREAK
 
Thur, Mar 16 SPRING BREAK
 
Lecture #6
Tues, Mar 22
Text-based UI, and Iteration
...
Chapter 7
Exercise #6,
due Mar 24, Thursday.
Lab #5
Thur, Mar 24
 
Programming #6,
due Mar 29, Tuesday.
Lecture #7
Tues, Mar 29
Interfaces
...
Chapter 9
Exercise #7,
due Mar 31, Thursday.
Lab #7
Thur, Mar 31
 
Programming #7,
due Apr 5, Tuesday.
Lecture #8
Tues, Apr 5
Inheritance
...
Chapter 10
Exercise #8,
due Apr 7, Thursday.
Thur, Apr 7 SECOND MIDTERM EXAM
Programming #8,
due Apr 12, Tuesday.
Lecture #9
Tues, Apr 12
Lists
...
Chapter 12
Exercise #8,
due Apr 14, Thursday.
Lab #9
Thur, Apr 14
 
Programming #9,
due Apr 19, Tuesday.
Lecture #10
Tues, Apr 19
Arrays
...
Chapter 13
Exercise #9,
due Apr 21, Thursday.
Lab #10
Thur, Apr 21
 
Programming #10,
due Apr 26, Tuesday.
Lecture #11
Tues, Apr 26
Sorting and searching
...
Chapter 14
Exercise #10,
due Apr 28, Thursday.
Lab #11
Thur, Apr 28
 
Programming #11,
due May 3, Tuesday.
Lecture #12
Tues, May 3
Mystery Topic
...
Exercise #11,
due May 5, Thursday.
Lab #12
Thur, May 5
 
Programming #12,
due May 10, Tuesday.
Lecture #13
Tues, May 10
Lecture Review Session
...
  Exercise #12,
due May 13, Thursday.
Lab #13
Thur, May 12
Lab Review Session
...
   
Fri, May 13 READING PERIOD BEGINS    
??, May ?? FINAL EXAM
On material from the entire semester.