ICS 21 Winter 2012
Course Schedule

Introduction to Computer Science I
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, the dates of the various exams, and when partner formations should occur and when partner evaluations are due. Readings in italics are found in the on-line (Web-based) Wiley-Plus version of the text (see the Course Reference, textbook section, for more details on the various versions of the text). "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 them as you find helpful to your study of course material.

We’ll stick to this schedule as closely as is reasonable, and announce any changes circumstances warrant.

Week
Date
Lecture Topic
Lab Activities & Notes
Horstmann Readings
CodingBat Practice
Problems
Suggested Latest Start
Times for Assignments;
Sample Progams
1
Jan 9 No course activities until first lecture    
Jan 10 First Lecture: Introduction to the course; compiling and executing Java programs
Find a lab partner
Chap. 1 Orientation to Lab
Jan 11 ICS 21 Help Center opens
Hours: M & W, 1 pm - 7 pm, ICS 183; closed University holidays
 
Jan 12 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; importing; assignment statements scan Secs. 2.1-2.7; 2.10; 3.1-3.5; 3.7, 3.8; Chap. 4; Special Topics 4.4, 4.5  
2
Jan 16      
Jan 17 A simple Java program, continued read topics in Chaps. 2-4 discussed in lecture  
Jan 18      
Jan 19 A simple Java program, completed read topics in Chaps. 2-4 discussed in lecture Lab 1 (Smiley Faces)
3
Jan 23      
Jan 24 Testing programs; print statements; Java basics in detail, part 1 2.9; 3.6; Random Fact 7.2; other sections in Chaps. 2-4 discussed in lecture Warmup-1  
Jan 25 Last day to register programming pair; one pair member to email members' names to 21-questions@ics.uci.edu    
Jan 26 Java basics in detail, part 2; random number generation complete detailed reading of Chaps. 2, 3, 4; Sec. 6.5 String-1  
4
Jan 30 Lab Exam #1   Lab 2 (Animated Smiley)
Jan 31 Decision statements Chap. 5; Special Topics 5.2, 5.4, 5.5 Logic-1, Logic-2  
Feb 1      
Feb 2 Loops and simple loop algorithms; nested statements Secs. 6.1-6.4, Special Topics 6.1-6.4 Warm-Up 2, non-array problems; String-2; AP-1, non-array problems  
5
Feb 6      
Feb 7 The List ADT; ArrayLists: basics, classic algorithms, using generics Secs. 7.2, 7.3  
Feb 8      
Feb 9 More on ArrayLists: as parameter and return types, clone(), shallow vs. deep copying, enhanced for loop; the class Object Sec. 7.4, 7.6, 7.7, 10.7  
6
Feb 13 Lab Exam #2   Lab 3 (Smileys at the Races)
Feb 14 Nested data structures, particularly involving ArrayLists; Introduction to fixed-size arrays Sec. 7.1  
Feb 15      
Feb 16 Midterm exam    
7
Feb 20 Presidents' Day: Help Center & other first floor labs closed; ICS 360 on holiday schedule    
Feb 21 Exception handling: basic concepts and approaches Secs. 11.2-11.6  
Feb 22 Lab Exam #3
Last day to register new programming pair; one pair member to email members' names to 21-questions@ics.uci.edu
  Lab 4 (A Donation to the Music Archive)
Feb 23 File handling: basic concepts and approaches, text files Secs. 11.1; Special Topic 9.2  
Feb 24 Partner Evaluation of Labs 1-3 pair programming partner due by 11:59 pm
email completed evaluation form to 21-questions@ics.uci.edu
   
8
Feb 27      
Feb 28 File handling: character encodings and end-of-line issues; .format(); Scanner Appendix B; Special Topic 4.6 TestGetScore.java
Feb 29      
Mar 1 Introduction to inheritance Secs. 10.1-10.5; Special Topic 10.1  
9
Mar 5 Lab Exam #4   Lab 5 (Revising the Music Archive Program)
Mar 6 Polymorphism; Reference and value parameters; Introduction to recursion Secs. 10.6; Special Topic 8.1; Secs. 13.1-13.3 Recursion-1  
Mar 7      
Mar 8 Access control; Abstract classes and methods; Interfaces Secs. 8.8, 8.9, Special Topic 8.5; Secs. 9.1-9.3
10
Mar 12 Lab Exam #5    
Mar 13 Introduction to graphics programming: applets, GUIs, event handling Secs. 2.11-2.13, Special Topic 2.2; 9.7, Special Topics 9.2, 9.3 MouseAppletListener.java
MouseAppletAdapter.java
MouseAppletAnonAdapter.java
MouseGUI.java
Mar 14      
Mar 15 Some theoretical results    
Finals Week
Mar 19-22 Help Center closed    
Mar 22 Final Exam, 4:00-6:00 pm, ICS 174
Partner Evaluation of Labs 4-5 pair programming partner due by 11:59 pm

email completed form to 21-questions@ics.uci.edu