ICS 21 / CSE 21 Summer 2010
Schedule


This schedule is a work in progress and will be updated throughout the quarter; check in before each lecture for updates. In general, I'll try to keep the schedule at least a week or so ahead, so that you can anticipate where we're headed.

All assigned readings are from the Horstmann text. It is a good idea to skim the assigned reading before the lecture for the main ideas, attend lecture, and then to go through the assigned reading again to fill in the details that you missed, both in your initial skim of the reading and in the lecture.

Not all lectures have reading corresponding to them. This is generally because a block of reading corresponds to more than one lecture. Occasionally, the material covered may not be in the textbook.

Date Lecture Topics Readings Lab Work
Week 1
Tu 6/22
  • Course introduction
  • What is Java?
  • Compiling and executing Java programs
  • Ch. 1
Th 6/24
  • Our first Java program
  • Data abstraction
  • Classes and fields
  • Objects
  • Defining and calling methods
  • public vs. private
  • Parameter passing
  • Return values
  • Accessors and mutators
  • Local variables
  • Scope
  • Constants
  • Importing classes written by others
  • Assignment statements
  • Ch. 2.1 - 2.7 (scan)
  • Ch. 2.9 - 2.10
  • Ch. 3.1 - 3.5
  • Ch. 3.7 - 3.8
  • Ch. 4
  • First lab meeting
  • Suggested start date for Lab 0
Week 2
Tu 6/29
  • Our first Java program (continued)
Suggested start date for Lab 1
Th 7/1
  • Our first Java program (continued)
Week 3
Tu 7/6
  • Testing programs
  • print and println
  • Working incrementally
  • Ch. 2.8
  • Ch. 3.6
Th 7/8
  • Additional Java basics
  • Named constants
  • Strings
  • Generating random numbers
  • Expressions
  • Operators and precedence
  • Shorthand operators
  • Chs. 2, 3, and 4 in detail
  • Lab Exam 1
  • Suggested start date for Lab 2
Week 4
Tu 7/13
  • Decision statements
  • Ch. 5
Th 7/15
  • Loops and simple loop algorithms
  • Nested statements
  • Ch. 6.1 - 6.4
Week 5
Tu 7/20
  • Lists
  • ArrayLists
  • Using generic classes
  • Ch. 7.2 - 7.3
  • Ch. 7.5
Th 7/22
  • Classic list algorithms
  • The enhanced for loop
  • Ch. 7.4
  • Ch. 7.6 - 7.7
  • Lab Exam 2
  • Suggested start date for Lab 3
Week 6
Tu 7/27
  • MIDTERM: regular lecture time and location
Th 7/29
  • More about ArrayLists, as parameter and return types
  • Classic list algorithms (continued)
  • Cloning
  • Shallow vs. deep copying
  • Nested data structures, particularly involving ArrayLists
Week 7
Tu 8/3
  • An introduction to fixed-size arrays
  • Reference and value parameters
  • Ch. 7.1
  • Ch. 8
Th 8/5
  • Introduction to recursion
  • Ch. 13.1 - 13.4
  • Lab Exam 3
  • Suggested start date for Lab 4
Week 8
Tu 8/10
  • Exceptions
  • Exception handling: basic concepts and approaches
  • Ch. 11.2 - 11.6
Th 8/12
  • Files
  • Text vs. binary files
  • Reading input from text files
  • Scanners and FileReaders
  • Ch. 11.1
Week 9
Tu 8/17
  • An extended example of text file input and formatted output
  • Lab Exam 4
Th 8/19
  • An introduction to inheritance
  • Ch. 10.1 - 10.5
Week 10
Tu 8/24
  • Final Exam Review Session
Th 8/26
  • FINAL EXAM: regular lecture time and location