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:
- Problems sets: 25%
- Programming assignments: 15%
- Midterm: 20%
- Final: 40%
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.)