Lecture Schedule/Notes

Introduction to Computer Science II
ICS-22: Lecture A/Labs 1 and 2
Fall 2007


Lecture Expectations

Work Before and During Class

I expect students to read the required lecture materials before class, and work out solutions to the assigned problems (sometimes you can test/verify your solutions on the computer). During class, I will discuss this material, mostly by answering questions on the reading(s), asking you questions about the material, and amplifying on those topics that need further discussion. Class motto: "Those who are ashamed of asking are ashamed of learning. The only stupid question is the one left unasked."

I will randomly call on students to present their solutions to selected assigned problems, and discuss them as well (please be prepared). I may also ask students to solve, either individually or in groups, other problems relating to the material; we will then compare and discuss these solutions. Thus, I expect most "lectures" to be highly interactive, with students participating fully.

Note that doing the reading and working on the assigned problems before class is a critical step in the learning process: students must be familiar with the material to get the maximum benefit from the class discussions and problem-solving sessions. Solving the assigned problems is especially important, as it "proves" that a student has not only read the material, but "understood" it is as well. Here understood means "has used the information operationally to solve problems". If you have difficultly with a problem, it indicates that you should probably go back over the related reading -or certainly ask a question about it in class.

I will allow students to work together on these problems: to discuss them, to analyze how to approach solving them, and to collaborate on their actual solution. Such a discussion must go beyond copying another student's answer: it involves completely understanding the answer and the process whereby it was reached, which includes acquiring the ability to analyze and solve similar problems. In fact, students will be required to solve similar problems on (almost) weekly take-home quizzes, on which collaboration is prohibited. Don't cheat yourself in this aspect of the course.

TAs will hold help sessions almost every evening to aid you with understanding each reading and how to solve its problems (see the Help Schedule web page for details).

Class Attendance and Decorum

I expect students to attend class daily, arriving on time. The announcements made at the start of class are often very important; I reserve the right to give small pop-quizzes on the readings. I expect students to neither carry on private conversations, nor use their computers to answer e-mail, surf the web, day trade stocks, or perform any other activities unrelated to this course.

Unless you are responsible for someone's life, your cell phone should be turned off. Otherwise, you should set it to operate in some silent mode (as mine will be set); if it rings silently, please leave the class, with a minimum of disruption to the rest of the students, to answer it. If your cell phone rings audibly in class, you will be charged $1; this money will go towards a class doughnut fund. Finally, if you know that you must leave early, please sit by a door, so that you can exit quietly.

Overall, please strive to be a considerate class member, both to me and to your fellow students.


Schedule, Topics, Readings, and Problems


Week Activity Date Topic (read for this date/do problems) Problems
Pre-Class EBNF Chapter / Powerpoint
Tokens in Java Programs
Variables, Operators, and Expressions
Statements
More Java
1,2,4,8; Slide #24
1,2,3,10,11,12
2,3,5,6,7,8,10,13,23
1,6,7,12,18,19,26,31,38,39
1,4-6
#1Lecture9/27 Course Overview 1,3,5,9
#2Lab10/1 Java Review (see Pre-Class links)
Coding Style
Eclipse IDE

1,2
None
 Lecture10/2 Objects, Using Class Libraries/Javadoc 1,2,3,5,6,7,9,11,12
 Lab10/3 Discuss/Start Program #1 None
 Lecture10/4 Writing Classes and Javadoc
Program Construction and Debugging
2,3,6,14,21,22,23,24
None
#3Lab10/8 Basics of the Eclipse Debugger
Work on Program #1
(in class)
 Lecture10/9 1-d Arrays, the Object Class, and Simple Collections
Model Classes in the MVC Pattern
1,2,3,6,8,10,11
1,2,4,5,7
 Lab10/10 Discuss/Start Program #2 None
 Lecture10/11 Interfaces
Simplification
2,3,6,7,8,9
2-4
#4Lab10/15 JUnit Testing
Work on Program #2
(in class)
 Lecture10/16 Inheritance in Class Hierarchies
Abstract Classes
1,3,4,5,6,7,10,11,12
1-3
 Lab10/17 Discuss/Start Program #3 None
 Lecture10/18 Exceptions in Detail 1-4
#5Lecture*10/22 Analysis of Algorithms (big-O notation)
AA Lab: Solving More Problems + Measuring Sorting Algorithms
1-4
 Lecture10/23 Collection Classes: Overview, Basics (including iterators) 1-4
 Lab10/24 Work on Program #3  
 Lecture10/25 Collection Classes: Stacks/[Priority]Queues 1-4
#6Lab10/29 Work on Program #3  
 Lecture10/30 Collection Classes: Lists + Sets + Maps 1-6,8,9
 Lab10/31 Discuss/Start Program #4 None
 Lecture11/1 Collection Classes: Final Issues (Implementation via Hash Tables)
Collection Classes: Generic Class + Special Iterators
None
None
#7Lab11/5 Work on Program #4  
 Lecture11/6 Review for Midterm Writen Exam Worksheet
 Lab11/7 Practice Programming Exam #1 (and Work on Program #4) None
 Lecture11/8 Midterm Exam None
#8 11/12 No Class: Veteran's Day  
 Lecture11/13 Self-Referential Classes: Linked Objects
Linked List Processing
1,2
2,3
 Lab11/14 Programming Exam #1 (Collections)  
 Lecture11/15 Recursion: Fundamentals (powerpoint) Slide 26/Slide 27 (equals)
#9Lab11/19 Discuss/Start Program #5 None
 Lecture11/20 Recursion: Linked Lists 1
 Lab11/21 Work on Program #5  
  11/22 No Class: Thanksgiving  
#10Lab11/26 Work on Program #5a or #5b  
 Lecture11/27 Trees: An Introduction
Tree Processing: Iterative and Recursive
None
1,2,4,5
 Lab11/28 Work on Program #5b  
 Lecture11/29 Tree Processing: Iterative and Recursive (continued)
Special Trees
1,2,4,5
None
#11Lab12/3 Practice Programming Exam #2 None
 Lecture12/4 Functional Programming TBA
 Lab12/5 Programming Exam #2 (Linked Lists & Trees)  
 Lecture12/6 Review for Final Exam + Last Day of Class Handout
Final Exams Week12/11 We will have a comprehensive 2-hour written final exam on Tuesday, December 11th, 4:00pm - 6:00pm
(see the Final Exam Schedule, Fall 2007).

I will send when I have computed/entered final grades, which are due to UCI by Dec. 20 at 5pm.

None