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).
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.
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 |
||
#1 | Lecture | 9/27 | Course Overview | 1,3,5,9 |
#2 | Lab | 10/1 | Java Review (see Pre-Class links)
Coding Style Eclipse IDE |
1,2 None |
Lecture | 10/2 | Objects, Using Class Libraries/Javadoc | 1,2,3,5,6,7,9,11,12 | |
Lab | 10/3 | Discuss/Start Program #1 | None | |
Lecture | 10/4 |
Writing Classes and Javadoc
Program Construction and Debugging |
2,3,6,14,21,22,23,24
None |
|
#3 | Lab | 10/8 |
Basics of the Eclipse Debugger
Work on Program #1 |
(in class)
|
Lecture | 10/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 |
|
Lab | 10/10 | Discuss/Start Program #2 | None | |
Lecture | 10/11 |
Interfaces
Simplification | 2,3,6,7,8,9
2-4 |
|
#4 | Lab | 10/15 |
JUnit Testing
Work on Program #2 |
(in class) |
Lecture | 10/16 |
Inheritance in Class Hierarchies
Abstract Classes |
1,3,4,5,6,7,10,11,12
1-3 |
|
Lab | 10/17 | Discuss/Start Program #3 | None | |
Lecture | 10/18 | Exceptions in Detail | 1-4 | |
#5 | Lecture* | 10/22 |
Analysis of Algorithms (big-O notation)
AA Lab: Solving More Problems + Measuring Sorting Algorithms |
1-4 |
Lecture | 10/23 | Collection Classes: Overview, Basics (including iterators) | 1-4 | |
  | Lab | 10/24 | Work on Program #3 | |
Lecture | 10/25 | Collection Classes: Stacks/[Priority]Queues | 1-4 | |
#6 | Lab | 10/29 | Work on Program #3 | |
Lecture | 10/30 | Collection Classes: Lists + Sets + Maps | 1-6,8,9 | |
Lab | 10/31 | Discuss/Start Program #4 | None | |
Lecture | 11/1 |
Collection Classes: Final Issues (Implementation via Hash Tables)
Collection Classes: Generic Class + Special Iterators |
None
None |
|
#7 | Lab | 11/5 | Work on Program #4 | |
Lecture | 11/6 | Review for Midterm Writen Exam | Worksheet | |
Lab | 11/7 | Practice Programming Exam #1 (and Work on Program #4) | None | |
Lecture | 11/8 | Midterm Exam | None | |
#8 | 11/12 | No Class: Veteran's Day | ||
Lecture | 11/13 |
Self-Referential Classes: Linked Objects
Linked List Processing |
1,2
2,3 |
|
Lab | 11/14 | Programming Exam #1 (Collections) | ||
Lecture | 11/15 | Recursion: Fundamentals (powerpoint) | Slide 26/Slide 27 (equals) | |
#9 | Lab | 11/19 | Discuss/Start Program #5 | None |
Lecture | 11/20 | Recursion: Linked Lists | 1 | |
Lab | 11/21 | Work on Program #5 | ||
11/22 | No Class: Thanksgiving | |||
#10 | Lab | 11/26 | Work on Program #5a or #5b | |
  | Lecture | 11/27 |
Trees: An Introduction
Tree Processing: Iterative and Recursive |
None
1,2,4,5 |
  | Lab | 11/28 | Work on Program #5b | |
  | Lecture | 11/29 |
Tree Processing: Iterative and Recursive (continued)
Special Trees |
1,2,4,5
None |
#11 | Lab | 12/3 | Practice Programming Exam #2 | None |
  | Lecture | 12/4 | Functional Programming | TBA |
Lab | 12/5 | Programming Exam #2 (Linked Lists & Trees) | ||
  | Lecture | 12/6 | Review for Final Exam + Last Day of Class | Handout |
Final Exams Week | 12/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 |