General Information
CS409 - Spring 2000
Time and Place
- Tuesday and Thursday, 8:40 to 9:55am in Phillips 219
Prerequisites
- The programming language for the course will be Java. If you know some other high-level
language you should be able to learn Java without severe difficulty.
- The official prerequisites for the course are CS211 or CS212 or equivalent programming
experience. "Equivalent programming experience" means that you should be a good
and experienced programmer familiar with programming using recursion and pointers. If you
have any doubts about being prepared for the course, see the instructor.
- This course is normally not open to Computer Science majors. It is not
possible to get credit for both CS409 and CS410. A few students have gotten
permission, due to scheduling constraints, to take CS409 in place of CS410.
Grading
- There will be homework (both problem sets and programming), quizzes (roughly every other
week, in class), one midterm exam (given in class), and a final exam (given at the
scheduled final-exam time).
- Weighting will be roughly as follows:
- 25% homework (problem sets and programming)
- 20% quizzes (your lowest quiz score will be ignored)
- 25% midterm exam
- 30% final exam
Homework
- There will be weekly homework assignments, due at the beginning of class.
- Programming: Some of the assignments will be programming assignments. The
programming language for the course is Java. It is expected that assignments will
compile and execute correctly using Microsoft Developer Studio J++ in the CSUGLab (315/317 Upson). We also expect you to
use good programming practices such as structured code and comments. Information on how to
use the undergraduate lab and Microsoft Developer Studio will be distributed later in the
course.
- Late Homework Policy: It is expected that homework will be turned in in class
and on time. Late homework will receive a decreased 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.
- Warning: It is unlikely that you will learn the material in the course unless you
do the problem sets. Those who skip a significant number of them are likely to earn poor
grades on the exams.
Text
- Skiena: The Algorithm Design Manual, Springer-Verlag, 1998.
- Other Helpful References (on reserve at the Engineering Library):
- Aho, Hopcroft, and Ullman: Data Structures and Algorithms
- Cormen, Leiserson, and Rivest: Introduction to Algorithms
- Goodrich and Tamassia: Data Structures and Algorithms in Java
- Sedgewick (3 separate books): Algorithms; Algorithms in C; Algorithms in C++
- Tarjan: Data Structures and Network Algorithms
Course Information Resources
Academic Integrity
Students are allowed to collaborate on the homework to the extent of formulating ideas
as a group. Each student is expected to write up (and understand) the homework by herself
or himself. Students may not copy any part of someone else's code or written homework.