Textbook references following lecture dates are reading assignments to be completed before the lecture.
Until everyone has a chance to obtain the text, alternate reading suggestions will be provided from:
Bleeding at the Keyboard: A Guide to Java Programming, abbreviated BATK
Learn Microsoft Visual J++ 6.0 Now, abbreviated LMVJN
During this time lecture notes will also be posted.
8/31.
Overview of the course and introduction to object-oriented
programming.
9/2: Chapters 1 and 2 (skip the section
on inheritance at the end of chapter 2 for now).
Objects, classes, and fields (instance variables).
BATK: chapters 1 and 2
LMVJN: chapters 3, 4, and chapter 6 through page 165.
Lecture notes for the first week
with applet containing text and
graphics.
9/7: No new reading this week!
More Java overview and review, and principles of
interactive Java.
Lecture notes for the
second week with interactive doodling applet in which
you draw by dragging the mouse. The first one just draw
dots when mouse motion is detected. An improved version connects the dots
with lines. Give it a try!9/9.
Listening to the Mouse.
9/9:
Interactive java, continued.
9/14:
Object references and field assignment. Wonderful
quotation of Lewis Carroll.
Lecture notes for the third week.
9/16:
Aliasing, coersion, and applet key recognition. An
applet that draws a responds
to s and c key presses by drawing a square or circle,
respectively, at the current cursor position:
9/21: Chapter 3.
Sharing of state between classes, introduction to
UML notation. Lecture 7
notes.
9/23:
Quiz in class. Unix®
overview, with notes and
a demonstration transcript. A
pocket reference
chart might help remind you of the key instructions.
A complete ASCII
chart is also available in one
compact form and another.
9/28: Chapter 4 (skip section on static
fields and methods, p. 204-5, until next week).
Unix, continued.
9/30:
Review of object concepts. Lecture 10 notes.
10/5: Chapter 5.
Static and final and other attributes, and hidden objects.
Lecture 11 notes.
10/7: start Chapter 6.
Logical operators, control flow.
10/12: finish Chapter 6.
Iteration. Lecture
13 notes.
10/14: Chapter 7.
Iteration, continued.
10/19: Chapter 8, up to the vector
section.
Arrays. Lecture 15
notes and revised Lecture 15-16
notes.
10/21:
First exam in class.
10/26: rest of Chapter 8.
Arrays, sorting, and algorithm analysis. Lecture
16 notes.
10/28: Chapter 9 up to garbage collection
(page 471).
Sorting continued.
11/2:
Quicksort. Lecture
19-20 notes.
11/4:
Parameter passing, garbage collection, vectors.
11/9:Chapter 10
Interfaces and polymorphism. Lecture 21 notes.
11/11:
Inheritance. Lecture
22 notes.
11/16:
Inheritance continued.
11/18:
Second exam in class.
11/23: Chapter 14.
Stream and File I/O. Lecture
24 notes.
11/30:
More on files and inheritance.
12/2: pages 563-565, chapter 16 to page
854.
Tasks and Synchronization. Lecture 26 notes.
12/7: Rest of chapter 16.
Network communication. Lecture 27 notes.
12/9:
Object-oriented design techniques and patterns.
Page 4: Three bits counts from 0 to 7, not 8.
The terms object and variable are dangerously confued (beginning on page 18). Objects are often stored in variables and often contain variables, but they are not themselves variables!
Page 130: The float declaration is incorrect: the literal -7.54 should be followed by the character F. "Floating point" literals are by default doubles in Java and double does not automatically coerce to float.
Page 170: Before or after the first double left arrow there should be a + sign (to concatinate the two strings divided by the line break).
Page 427: In Figure 8-14, first line, parenthesis are missing after readInt.
Numerous pages: In many places, the single quote character at the beginning of a character literal is printed as a blank space.
Page 711: In figure 14-2 substitue "Output" for "Input" in all classes under OutputStream.