Rensselaer Polytechnic Institute
Department of Computer Science
CSCI 2300: Data Structures and Algorithms
Spring 2009
ANNOUNCEMENTS
- Welcome to DSA! We will meet on Mondays and Thursdays at noon in DCC 330. The first meeting will be on the 12th of January. Please note that there are several changes from last year's version of the course, including one of the textbooks.
OVERVIEW
This is a foundational course in the design and analysis of algorithms
and the data structures they are coupled with. While we will
concentrate on the theoretical design and analysis of algorithms and
data structures, we will reinforce the theory with examples,
laboratories, and applied homework questions.
The goal of this course is to provide a strong foundation in
algorithms and data structures in preparation for jobs in industry or
for more advanced courses. Algorithms are the basic language of
computer science. After taking this course, you should be able to
prove the correctness of and analyze the running times of different
algorithms. You should also be able to use different algorithm-design
techniques to solve particular problems. Data structures and
algorithms also form a major component of any software system. After
taking this course you should be able to make intelligent decisions
about alternative techniques in the context of practical problems,
choosing from existing data structures and algorithms or designing
your own when necessary.
STAFF
Instructor: Sanmay Das
Office: Lally 302
Phone: x2782
Office hours: Mondays from 1:30-2:30 PM, or by appointment.
TA: Eyuphan Bulut (email: bulute at cs dot rpi)
Labs: W 2-4 and 4-6
TA: Ashok Sukumaran (email: sukuma at rpi)
Labs: W 10-12 and 12-2
POLICIES
TEXTBOOKS
There are two textbooks for this class
- DPV: Algorithms
by Sanjoy Dasgupta, Christos Papadimitriou, and Umesh Vazirani, McGraw-Hill, ISBN 0073523408.
- CLRS: Introduction to Algorithms (2nd Ed) by Thomas
H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford
Stein, McGraw-Hill, ISBN 0070131511.
PROGRAMMING
This is not a programming class. The labs involve programming,
but you are expected to be a competent C++ programmer coming in -- the
lectures will not discuss any code. The TAs and UTAs can provide some
help on programming issues in lab. Neither of the textbooks deals with
programming issues at all. You may want to consult your textbooks from
CS2, or Stroustrup's The C++ Programming Language.
LECTURES
Lectures will be on Mondays and Thursdays from 12pm to approximately 1:30pm
in Darrin 330.
The "Mathematical Background" appendix of CLRS is background reading for
the whole class.
| Date |
Topics |
Readings |
Extras |
| Jan 12 |
Introduction. Course policies. Course overview. Fibonacci numbers. Max subsequence sum. |
DPV Chapter 0 |
|
| Jan 15 |
|
|
|
| Jan 22 |
|
|
|
| Jan 26 |
|
|
|
| Jan 29 |
|
|
|
| Feb 2 |
|
|
|
| Feb 5 |
|
|
|
| Feb 9 |
|
|
|
Feb 12 |
|
|
|
| Feb 17 (Tue class) |
|
|
|
Feb 19 |
|
|
|
| Feb 23 |
|
|
|
| Feb 26 |
|
|
|
| Mar 2 |
Midterm. |
|
|
| Mar 5 |
|
|
|
| Mar 16 |
|
|
|
| Mar 19 |
|
|
|
| Mar 23 |
|
|
|
| Mar 26 |
|
|
|
| Mar 30 |
|
|
|
| Apr 2 |
|
|
|
| Apr 6 |
|
|
|
| Apr 9 |
|
|
|
| Apr 13 |
|
|
|
| Apr 16 |
|
|
|
| Apr 20 |
|
|
|
| Apr 23 |
|
|
|
| Apr 27 |
|
|
|
LABS
Jan 14: No lab
Jan 21: Lab 1
Jan 28: Lab 2 (Files necessary for Lab 2 are here (gzipped tarball))
HOMEWORKS