CS211 Computers and Programming

Summer 2002


Course Staff

Name Position Email 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

Lectures

Monday to Friday, 10:00-11:15, Phillips 203
Note: July 4 is a holiday, and classes will not be held.

Course Materials

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.

Course Requirements

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.

Joint Work

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.