ICS 45J Fall 2012
Course Schedule

Programming in Java
Norman Jacobson, Instructor

This course schedule gives lecture topics and associated readings, sample programs and programming practice problems, the suggested times by which to start lab assignments and when they are due, and when partner formation should occur and when partner evaluations are due. When the readings say to read a sequence of sectinos, also read all the speial sections between them; for example, if the reading is "Secs. 6.1-6.4," also read the syntax, productivity hint, common error, special topic, quality tip, how-to and worked example sections between sections 6.1 and 6.4. "CodingBat is a free site of live coding problems to build coding skill in Java...[the] problems give immediate feedback, so it's an opportunity to practice and solidify understanding..." [codingbat.com/java]. ...and strictly optional; do the problems you find helpful. The online version of the text (through WileyPlus) has, connected to each chapter, animations, examples, and other reference and tutorial material you may find helpful.

We’ll stick to this schedule as closely as is reasonable, but it is an ambitious one, so we'll adjust it if circumstances warrant and announce any changes in lecture.

Week
Date
Lecture Topic
Lab Activities & Notes
Horstmann Readings
CodingBat Practice
Problems
Due Dates
Sample Progams
1
Oct 1 First Lecture: Introduction to the course; compiling and executing Java programs
Find a lab partner
Chap. 1 Start Orientation to Lab ("Lab Assignment 0")
Oct 2      
Oct 3 A simple Java program: data abstraction; classes & fields; objects; defining & calling methods; public vs. private; parameter passing; return values; accessors and mutators; local variables; scope; constants; assignment statements; importing scan Secs. 2.1-2.7; 2.10; 3.1-3.5; 3.7, 3.8; Chap. 4.1-4.4  
2
Oct 8 A simple Java program, continued previously listed sections in Chaps. 2-4 corresponding to topics discussed in lecture  
Oct 9 Last day to register programming pair; one pair member to email members' names to 45J@ics.uci.edu    
Oct 10 A simple Java program, completed previously listed sections in Chaps. 2-4 corresponding to topics discussed in lecture Complete Orientation to Lab
3
Oct 15 Testing programs; print statements; Java basics, introduced in the simple Java program, revisted in detail 2.9; 3.6; Random Fact 7.2; previously listed sections in Chaps. 2-4 corresponding to topics discussed in lecture Warmup-1  
Oct 16      
Oct 17 More Java basics, in detail: random number generation; Strings; pass by value and by reference; introduction to the Java API documentation previously listed sections in Chaps. 2-4 corresponding to topics discussed in lecture; Secs. 2.8, 4.5, 6.5; Special Topic 4.5 String-1  
Oct 18     Lab Assignment 1 Due
4
Oct 22 Decision statements; recursion in Java Chap. 5; Secs. 13.1-13.3
Logic-1, Logic-2
 
Oct 23      
Oct 24 Loops and simple loop algorithms; nested loops; nested statements; Enum Secs. 6.1-6.4; Special Topics 5.3, 10.7 Warm-Up 2, non-array problems; String-2; AP-1, non-array problems  
Oct 28     Lab Assignment 2 Due
5
Oct 29 Inheritance and polymorphism; the Object class Secs. 10.1-10.5; 10.6, 10.7 through Special Topic 10.6 Special Topic 8.5; Secs. 9.1-9.3  
Oct 30      
Oct 31 Midterm exam    
6
Nov 5 Abstract classes and methods; interfaces; Comparable; access control Sepcial Topic 10.1; Secs 9.1-9.2  
Nov 6      
Nov 7 Graphical user interfaces, applets and events: basics of GUIs, graphics and event handling; inner classes; introduction to the AWT and SWING Sec. 2.11-2.13; Special Topic 2.2; Sec. 3.9; Sec. 9.5; Special Topic 9.2; 9.7-9.11; Special Topic 9.3; Chap. 18 MouseApplicationInterface.java
MouseApplicationAdapter.java
MouseApplicationAnonAdapter.java
MouseApplet.java
7
Nov 12 Veterans' Day Holiday: No lecture; labs on holiday schedule    
Nov 13      
Nov 14 GUIs, graphics, events, and applets: more details same as for Nov 7 KeyBoardApplicationAnonAdapter.java
Nov 15      
Nov 16     Lab Assignment 3 Due
8
Nov 19 Lists as abstract data type, generic types; ArrayList: structure and basic methods, as parameter and return types, clone(), shallow vs. deep copying; using with enhanced for loop; LinkedList: structure and basic methods, as parameter and return types, iterators; fixed-size arrays Secs. 7.2-7.4; Syntax 7.3; Secs. 15.1-15.3; 7.1, 7.5-7.6, 7.8 Partner Evaluation of Labs 1-3 pair programming partner due by 10:59 pm
email completed evaluation form to 45J@ics.uci.edu
Nov 20      
Nov 21 Exception handling: basic concepts; try, catch, throws, rethrowing, finally; catching multiple exceptions; introduction to threading Secs. 11.3-11.7; 20.1-20.3  
9
Nov 26 File handling: basic concepts;, sequential access; text files; .format(); Scanner(); try-with-resources Special Topic 4.6; Secs, 11.1-Worked Example 11.1; 11.8  
Nov 27      
Nov 28 File handling: character encodings; end-of-line issues; relative access; binary files Secs. 11.1; Sec. 4.6 TestGetScore.java
Nov 29     Lab Assignment 4 Due
10
Dec 3 Internet Networking: TCP/IP, IP addresses; DNS; introduction to sockets; URL connections Chap. 21 ChatClient.java
ChatServer.java
Dec 4      
Dec 5 Introduction to the Collections Framework Secs. 15.4; 16.1-16.3, 16.7; Appendices: Instructor-Provided Chapter 15, Parts A and B*  
Finals Week, Dec 10-14
Dec 10     Lab Assignment 5 Due
Dec 11      
Dec 12 Final Exam, 10:30 am - 12:30 pm, DBH 1200    

* This Chapter 15, in two PDF files, is from another Horstmann text,
and is available from the ICS 45J Wiley Plus Web site. Go to the Read,
Study & Practice tab, choose Appendices from the menu; click on Go.
You'll see links to the two parts of the chapter under INSTRUCTOR-PROVIDED.
Click on the links to download the PDFs.