CSCI160
Algorithms
Instructor
Frederic Green, Mathematics/Computer Science, BP 334, ext. 7410.
E-mail: fgreen (at) black (dot) clarku (dot) edu.
Text
Data Structures and Algorithm Analysis in Java (Second Edition), by Mark Allen Weiss (Addison-Wesley).
Lectures
Tuesdays and Thursdays, 10:25 - 11:40 a.m., BP 326.
Labs
Thursdays, 1:25-2:40 p.m., BP 310.
Office Hours
Tuesdays and Thursdays 3 - 5, or by appointment.
Course Goals
To understand a variety of the algorithms and data structures fundamental to computer science. This is done by careful study of how existing algorithms work, implementing them, designing related algorithms, and by analyzing their efficiency.
Course Work and Grading Policies
There will be one midterm (20%) and one final (30%). The remainder of the grade (50%) is determined by graded labs (about 10) and homework assignments (about 7), most of them involving programming of some kind, and some mathematical proofs.
Concerning Late Work
Your best course is to hand in work when it is due (reasonable excuses such as illness are acceptable provided they can be documented). All graded assignments are due at the BEGINNING of the class period on the due date. Homework will be accepted after that time with a penalty (10% off for the first class, 20% for each subsequent class). If you find you just cannot finish an assignment on time, please hand in whatever you have done anyway. I would rather see evidence that you are trying than nothing at all.
If you are having trouble with any assignment, please do not hesitate to discuss it with me, either in person or via e-mail.
Some Words
on Academic Honesty
Work that you hand in as your own is expected to be done by you and no
one else. All work in this course is to be conducted in accordance with
the Clark
University
Academic Integrity Policy. All instances of plagiarism are,
following
University policy, reported directly to the Dean of Academic Advising.
Course Outline
We will follow the topics of the book in the order given (see the Table of Contents), omitting only some more advanced or less important topics, through chapter 9, with a little bit of chapter 12 and, time permitting, chapter 10 (omitting sections 6.8, some of 7.10, and 8.6.1). Syllabus, subject to change, includes [brackets indicating chapters in the text]:
- Introduction and Algorithm Analysis [1, 2]
- Elementary Data Structures [3]
- Binary Trees and the Search Tree ADT [4]
- Balanced and Splay Trees [4, 12.2]
- Hashing [5]
- MIDTERM (around week 7)
- Heaps [6]
- Sorting [7]
- Union/Find Algorithms [8]
- Graph Algorithms [9]
- Algorithm Design Techniques [Selected sections in 10]
Other Useful Links
- Code From the Text.
- Java 5 API,
- Labs.
- Assignments.
- There have been many algorithm animations over the years, but
this one for
binary search trees, and especially the one for
splay trees, have been around for a long time and remain among the best I've seen.
Here's another one that was probably inspired by the older
one, and is full
of great features.
- A nice applet for running
Dijkstra's Algorithm.
- Further links to be added as the course progresses.
Back to Fred Green's Home Page