ICS 21 / CSE 21 Summer 2012
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/26
  • Course introduction
  • What is Java?
  • Compiling and executing Java programs
  • Ch. 1
Th 6/28
  • 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.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 7/3
  • Our first Java program (continued)
Suggested start date for Lab 1
W 7/4 University Holiday: Independence Day
Th 7/5
  • Our first Java program (continued)
Week 3
Tu 7/10
  • Testing programs
  • print and println
  • Working incrementally
  • Ch. 2.8
  • Ch. 3.6
Th 7/12
  • 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/17
  • Decision statements
  • Ch. 5
Th 7/19
  • Decision statements (continued)
  • Loops and simple loop algorithms
  • Ch. 6.1 - 6.4
Week 5
Tu 7/24
  • Loops and simple loop algorithms (continued)
  • Nested statements
  • More details about scope
Th 7/26
  • Lists
  • ArrayLists
  • Using generic classes
  • Ch. 7.2 - 7.3
  • Ch. 7.5
  • Lab Exam 2
Week 6
Tu 7/31
  • MIDTERM: regular lecture time and location
  • Suggested start date for Lab 3
Th 8/2
  • Classic list algorithms
  • The enhanced for loop
  • Ch. 7.4
  • Ch. 7.6
Week 7
Tu 8/7
  • More about ArrayLists, as parameter and return types
  • Classic list algorithms (continued)
  • Cloning
  • Shallow vs. deep copying
  • Nested data structures, particularly involving ArrayLists
Th 8/9
  • An introduction to fixed-size arrays
  • Reference and value parameters
  • Ch. 7.1
  • Lab Exam 3
  • Suggested start date for Lab 4
Week 8
Tu 8/14
  • Background on Lab Assignment 4
  • Introduction to recursion
  • Ch. 13.1 - 13.4
Th 8/16
  • Introduction to recursion (continued)
  • Exceptions
  • Exception handling: basic concepts and approaches
  • Ch. 11.3 - 11.6
Week 9
Tu 8/21
  • Exception handling: basic concepts and approaches (continued)
  • Files
  • Text vs. binary files
  • Reading input from text files
  • Scanners and FileReaders
  • Ch. 11.1 - 11.2
  • Lab Exam 4
Th 8/23
  • An extended example of text file input and formatted output
Week 10
Tu 8/28
  • Final Exam Review Session
Th 8/30
  • FINAL EXAM: regular lecture time and location