Computer Science 409: Course Policies and General Information Spring 2001 - Prof. Joe Halpern

Staff and Office Hours

... can be found here

Prerequisites

The official prerequisites for the course are CS211 and CS280. If you are contemplating taking the course without one of these, please see me. In addition, you should be comfortable programming in Java. If you know C, C++, or some other high-level language you should be able to learn Java relatively easily. If you don't know Java or C++, you should seriously consider taking a 3-week 1-credit course in Java: CS202. You can also find pointers to Tutorials on Java on the links page.

Grading:

There will be one midterm, tentatively scheduled for March 6 in class, and a final, given at the regularly scheduled time (unfortunately, Thursday, May 17, 3-5:30 PM). If you have any conflict, please let me know as soon as possible. Given the class size, it is unlikely that I will offer makeups. Homework and exams will be weighted roughly as follows:

Homework:

There will be roughly 7 problem sets and 3 programming assignments. They will be due at the beginning of class. The programming language for the course will be Java. Programs must compile and execute correctly using Microsoft J++ in the CSUGLab (315/317 Upson). You will be expected to use good programming practices such as structured code and comments; this will be reflected in the grading. Information on how to use the undergraduate lab and J++ will be distributed.

Late Homework Policy: Homework will only be accepted in class and on time. Every day or part of a day that homework is late, 20% will be deducted from the grade. However, to cover cases of emergency or illness, one assignment will be accepted one lecture late without penalty. You do not need to inform me about late homework in advance or give me any excuses. Excuses for late homework beyond the first will be accepted only under unusual circumstances.

Academic Integrity: It's OK to discuss the problems with others, but you MUST write up solutions on your own, and understand what you are writing. You may not copy any part of someone else's code or written homework. To do so is a violation of the Academic Integrity Code.

Warning: The problem sets count for 25% of the grade; the programming assignments contribute another 15%. It is unlikely that you will learn the material in the course unless you do the homework. Those who skip a significant number of them almost always end up with a poor final grade.

Text and References

The course text is Introduction to Algorithms, by T. Cormen, C. Leiserson, and R. Rivest (McGraw Hill and MIT Press). (There are a number of errors in the text.

Other helfpul books include Sedgewick's Algorithms, Algorithms in C, and Algorithms in C++, Hopcroft and Ullman's Data Structures and Algorithms, Goodrich and Tamassia's Data Structures and Algorithms in JAVA, Tarjan's Data Structures and Network Algorithms, and Weiss's Data Structures and Problem Solving Using JAVA; all are on reserve at the Engineering Library.

Course Outline

See the first week's course notes (pages 12-13).

Newsgroup:

There is a newsgroup for the class: cornell.class.cs409. You should subscribe to the newsgroup. Post questions to the newsgroup regarding homework (or anything else relevant to the course), and one of the CS409 staff will try to answer it. If you don't know how to read newsgroups, there is information on the web site. (If you also don't know how to access the web site, see me or one of one of the TAs.)