Rensselaer Polytechnic Institute
Department of Computer Science


CSCI 2300: Data Structures and Algorithms

Spring 2009

ANNOUNCEMENTS

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

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