| Name | Position | Phone | Office hours | |
| Matthew Harris | Instructor | mharris@cs.cornell.edu | 5-3495 | after his classes, til 12:30, Upson 5152 |
| Alexa Sharp | Instructor | asharp@cs.cornell.edu | 5-7421 | after her classes, til 12:30, Upson 5162 |
| Vincent Ng | TA | yung@cs.cornell.edu | 4-8830 | Tuesdays & Thursdays 6:30-7:30pm, Upson 328 |
| Richard Chung | Consultant | rc238@cornell.edu | Mondays & Fridays 2:30-3:30pm, Upson 304 | |
| Navin Kumar | Consultant | nsk8@cornell.edu | not yet decided |
Monday to Friday, 10:00-11:15, Phillips 203
Note: July 4 is a holiday, and classes will not be held.
Although the official textbook for the course is Java: An Introduction to Computer Science & Programming, Walter Savitch, Prentice Hall, 2001, we will not be using it much. Rather, all of the material will be given orally, on handouts, or as references to webpages to read. The above text is an excellent Java reference. If you feel the need for a reference then by all means buy it. A good text for the data structures portion of the course is Data Structures & Problem Solving Using Java, Weiss, Addison-Wesley, 1999. There are also some useful textbooks on reserve in the Engineering library, such as Java in a Nutshell (3rd ed), David Flanagan, O'Reilly, 1999 (on CS100 reserve list).
And it goes without saying that there are many useful online resources. You can find some of these on the course webpage, at http://www.cs.cornell.edu/Courses/cs211/2002su. You are responsible for reading the contents of the course webpage, and for checking it frequently for announcements, policy changes, etc.
We will be using JDK 1.3 as our official compiler. You are welcome to use any compiler you wish for your assignments, so long as it also compiles witha JDK 1.3. You may find Java development environments from many vendors. The CIT computer labs that support Java use CodeWarrior. Although we suggest that you use CodeWarrior for consistency, you may use any development environment that you wish. See the course webpage for some help on CodeWarrior.
Students are responsible for all material in the assigned readings, as well as material covered in lectures. There will be eight(ish) assignments, two preliminary exams, one final exam, and regular pop quizzes that we may or may not tell you about. The assignments will be a mix of programming and written exercises. Exams will cover material presented in class. The pop quizzes will test you on what you learned in the last day or so, and will not count. The remaining stuff will contribute to your final grade as follows:
| Assignments | Due date | Subject | % of grade | |
| Assignment 1 | 1 July | Recursion and Induction | 7% | |
| Assignment 2 | 6 July | OOP and Java | 7% | |
| Assignment 3 | 15 July | Searching and Sorting | 7% | |
| Assignment 4 | 17 July | ADTs and Binary Trees | 7% | |
| Assignment 5 | 19 July | Linked Lists, Stacks, Queues, Hashtables | 7% | |
| Assignment 6 | 26 July | Algorithm Analysis | 7% | |
| Assignment 7 | 29 July | Correctness of Algorithms | 7% | |
| Assignment 8 | 2 August | Graph Theory | 7% | |
| Exams | Date | Time | Place | % of grade |
| Prelim I | 8 July | in class | Phillips 203 | 14% |
| Prelim II | 19 July | in class | Phillips 203 | 14% |
| Final Exam | 6 August | 8am (ouch) | Phillips 203 | 14% |
The above table is, naturally, subject to change!
No late assignments will be accepted. This is because we will generally grade the assignments the same day they are due and return them immediately. They will be due at the beginning of lecture on the due date. The submission system will be disabled at that time, if the assignment is electronic. If there is a written portion, it should be brought to class and turned in before lecture starts. I know everyone always says this, but really, you should try to get started on your assignments (especially the programming ones) early. We will try to tell you which portions of an assignment you are able to do as the material is covered, incrementally, to help you start early.
If for some reason (such as illness) you are unable to complete an assignment or take a test, please talk to one of the instructors as soon as possible. We will handle them on a case-by-case basis.
In general, it is OK to talk with other students about the assignments, but you have to be very careful about how much you collaborate. A good rule of thumb is that you may talk to eachother so long as noone writes or types anything down. Please do not hand in work done with (or by) someone else under your own name. The course staff (conveniently) have a third eye for finding suspicious similarities in code, so please don't break the rules. The penalties for cheating at Cornell are severe, and include expulsion; see the webpage and the CS Department's Code of Academic Integrity. If you are unsure about anything, please ask.
We will sometimes have assignments that allow joint work with a partner. We will tell you when this is permissable, and we will outline the rules if and when that time comes.