CSE 143-Java
Autumn 2001

Course Calendar

This is the schedule of lectures and section topics, related readings, and homework and exam dates.  Lecture topics will be linked to the lecture slides as they become available; we'll try to make them available at least the evening before each lecture so you can take an advanced look.  The slides will be updated after a lecture if necessary to correct any errors.

This is the first offering of CSE143 in Java.  We will follow the rough outline given here, but please expect the details to change as the quarter evolves.

Lectures are held on Monday, Wednesday, and Friday.  On Tuesday and Thursday you will meet with your TA in a smaller quiz section. 

You can expect a homework assignment every week.  Programming assignments will normally be due electronically over the web Wednesday nights at 10:00 pm.  You will sometimes hand in written assignments in sections on Thursday.  Instructions for submitting homework will be provided on each assignment.  Assignments will be a combination of written problems, short programming exercises, and longer programming assignments.  Some of the later assignments may form parts of a larger project.

The last column indicates the chapters/sections of the textbook that are relevant to the lecture material. The textbook is a good source of additional explanations and examples.

Subject to change. Last revised 12/12/01 05:11 PM 

Week Day Date Topic Demo programs Textbook Reading
#1 M 10/1 Administrivia
Classes and interfaces
Customer.java
OrdinaryCustomer.java
PreferredCustomer.java

Review ch. 1-6, 12 as needed

  Tu 10/2 No Sections    
  W 10/3 Classes and interfaces
Programming by contract
HW1 out (small simulation)
StringList.java Sec. 6.1, 6.4 (pp 158-9), Ch. 7
  Th 10/4

First section: introduction
Classes and interfaces
HW1 topics

   
  F 10/5

Programming by contract; invariants, pre-, and postconditions

StringList.java Sec. 6.1, 6.4 (pp 158-9), Ch. 7
           
#2 M 10/8

Class relationships and inheritance

Animal.java
Cat.java  
Dog.java
Ch. 9 (class relationships), ch. 14 (inheritance)
  Tu 10/9 Inheritance
Last minute HW1 topics
   
  W 10/10

Inheritance: method overriding and dynamic dispatch
HW1 due (evening)
HW2 out (inheritance)

BankAccount.java
SavingsAccount.java
CheckingAccount.java
Ch. 14
  Th 10/11

No sections.  UW classes canceled

   
  F 10/12

Inheritance and interfaces 
HW1 accepted without penalty until 11:00 am

  Ch. 14 & 15
           
#3 M 10/15 Abstract classes & interfaces
Introduction to packages and Java standard libraries
 

Sec. 14.6, 14.7
  Tu 10/16

HW2 q&a; interfaces & inheritance

   
  W 10/17

Packages, static & scope
Introduction to Swing
HW2 due (evening)


Face.java

FaceTest.java
Sec. 14.6, 14.7
Sun Swing Tutorial
JDK 1.3 API docs
  Th 10/18

Inheritance, static, and scope

   
  F 10/19

Introduction to Swing
Models & Views (MVC)
HW3 out

SimThing.java (interface)
SimView.java (interface)
SimModel.java
Ball.java (a SimThing)
BallGraphicsView.java (a SimView)
BallSim.java (main program)
TestThing.java (text based test class)
TestView.java (text based test class)
TestModel.java (text based test program)
Sec. 14.6, 14.7
Sun Swing Tutorial
JDK 1.3 API docs
Ch. 20
           
#4 M 10/22

Event-Driven Programming

MouseTracker.java
MouseTest.java

Updated ball world:
SimThing.java SimView.java SimModel.java
Ball.java
BallGraphicsView.java
BallSimControl.java
SimButtonListener.java
BallSim.java

Ch. 19 & 20, particularly sec. 19.4.
  Tu 10/23

HW3 q&a; event-driven programming

   
  W 10/24

Exception Handling
HW3 due (evening)
HW4 out (drawing program) 

Version 3 of ball world (with erase/add tools)
SimView.java
SimThing.java
SimModel.java
Ball.java
BallGraphicsView.java
BallSimControl.java 
SimButtonListener.java
AbstractTool.java
ToolInterface.java
AddTool.java
EraseTool.java
BallSim.java
 
  Th 10/25 Midterm review; HW4 q&a    
  F 10/26 MIDTERM 1 in class    
           
#5 M 10/29

Streams

FileCopy.java Appendix A.2, particularly sec. A.2.2, A.2.4
  Tu 10/30

HW4 q&a; streams

   
  W 10/31

Streams & I/O exceptions; public key cryptography (no new slides; see hw5 for more)

   
  Th 11/1 Streams & files; HW5    
  F 11/2

NO LECTURE (homework 4 writeups will be collected at the beginning of the hour)
HW4 due (morning)
HW5 out (RSA cryptography)

   
           
#6 M 11/5 Overview of collections    
  Tu 11/6 Collections    
  W 11/7

List implementations - dynamic arrays

   
  Th 11/8

Dynamic data structures

   
  F 11/9

List implementations - linked lists
HW5 due

   
           
#7 M 11/12 Veterans Day - NO CLASSES    
  Tu 11/13

NO SECTIONS

   
  W 11/14

List implementations - linked lists

   
  Th 11/15

Midterm review

   
  F 11/16 MIDTERM 2 in class    
           
#8 M 11/19 Program efficiency and overview of computational complexity
HW6 out
   
  Tu 11/20

O( ) notation; execution time

   
  W 11/21

Program efficiency and overview of computational complexity

   
  Th 11/22 Thanksgiving - NO CLASSES    
  F 11/23 Thanksgiving - NO CLASSES  

 

           
#9 M 11/26

Maps and hashing

   
  Tu 11/27

HW6 q&a; maps

   
  W 11/28

Maps (hashing); Searching and sorting (binary search)
HW6 due

   
  Th 11/29

maps

   
  F 11/30

Divide & conquer algorithms - quicksort

   
           
#10 M 12/3 Trees
HW7 out (optional)
   
  Tu 12/4

HW7 q&a; trees

   
  W 12/5

Trees (wrapup); survey of stacks and queues

   
  Th 12/6

data strictires

   
  F 12/7

Encryption technology and public policy

  Links to some sources
           
#11 M 12/10

HW4 best of show
Survey of networking
HW7 due

   
  Tu 12/11

Wrapup

   
  We 12/12

Networking; final thoughts

   
           
#12 Tu 12/18 FINAL EXAM 2:30-4:20; regular lecture room, Kane 220