CS344 ALGORITHMS AND DATA STRUCTURES
SPRING
2009
Lecturer: James F.
Lynch
Office: SC381
Office hours: TuTh 10:00AM–11:00AM, 12:15PM–1:00PM,
2:15PM–3:00PM
Telephone: 2682374
email: jlynch@clarkson.edu
Lecture
hours: TuTh 1:00PM–2:15PM,
SC–346
Text: A Practical Introduction to Data Structures and
Algorithm Analysis, 2^{nd} edition
by Clifford A. Shaffer
PrenticeHall, ISBN 0130284467
Book Homepage
Relevant Algorithm
Animations/Visualizations
OBJECTIVES
The course will teach students how to use the fundamental data structures of computer science in a wide variety of applications. It will also cover methods for analyzing the advantages and disadvantages of different algorithms so that students can decide which algorithm to choose for a particular application.
ASSESSMENT
Grading will be based on
homework assignments and exams. Homework assignments will consist of programming
projects and written assignments that will serve as preparation for the
exams. Exams will be inclass, closed book. Missing an exam will result in a grade
of 0 for the exam, unless it was caused by circumstances beyond your control,
and you have notified me beforehand, if at all possible. For example, if you have an officially
sanctioned Clarkson activity such as an athletic event that conflicts with an
exam, you must discuss this with me before the event, so that we can
make other arrangements. If you are
going to miss an exam due to illness, you should contact me before the exam if
possible, and I will require certification from the Clarkson dean of student
life that you were ill. The
following are not acceptable excuses for missing
an exam: job trips, sleeping
through an exam, forgetting an exam, extending a break, and other possibilities
too obvious to mention.
Programming
projects 
24% 
Three
hourly exams: 
51% 
Final
exam: 
25% 
Hourly
exam dates: 
Thursday, February 5 
Thursday, March 5  
Thursday, April 9  
Final
exam date: 
PROGRAMMING
PROJECTS
Program 1: Set
ADT implementation
SYLLABUS





Introduction


1.3 

Mathematical
foundations 

2.2, 2.6, 2.10, 2.17, 2.22, 2.23,
2.27 

Algorithm
analysis 



Lists,
stacks, and queues 

4.4,
4.5, 4.6, 4.8, 4.9 

Lists,
stacks, and queues 

4.14,
4.19, 4.20 

Binary
trees 



Binary
trees 



Searching 



Searching 



Internal
sorting 







Internal
Sorting 

7.4,
7.9, 7.12, 7.15, 7.16, 7.17, 7.19 

General
Trees 

6.1,
6.4, 6.5, 6.7, 6.9, 6.12 

Graphs 

11.1,
11.4, 11.5 

Graphs 

11.8,
11.9, 11.15 

Review 

