CS344
ALGORITHMS AND DATA STRUCTURES
SPRING 2009
Lecturer: James F. Lynch
Office: SC-381
Office hours: TuTh
10:00AM–11:00AM, 12:15PM–1:00PM, 2:15PM–3:00PM
Telephone: 268-2374
email: jlynch@clarkson.edu
Lecture hours: TuTh
1:00PM–2:15PM, SC–346
Text: A Practical Introduction to Data Structures and Algorithm
Analysis, 2nd edition
by Clifford A. Shaffer
Prentice-Hall, ISBN
0-13-028446-7
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 in-class, 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 Solutions |
Thursday, March 5 Solutions |
|
Thursday, April 9 Solutions |
|
|
Final exam date: |
Tuesday, April 28, 11:45AM–2:45PM, SC–356 |
PROGRAMMING PROJECTS
Program 1: Set ADT implementation
Program 2: Operating System Simulator
SYLLABUS
|
|
|
|
|
|
|
Introduction |
|
1.3 |
|
|
Mathematical foundations |
|
2.2,
2.6, 2.10, 2.17, 2.22, 2.23, 2.27 |
|
|
Algorithm analysis |
|
3.3, 3.4, 3.9, 3.10, 3.12 |
|
|
Lists, stacks, and queues |
|
4.4, 4.5, 4.6, 4.8, 4.9 |
|
|
Lists, stacks, and queues |
|
|
|
|
Stacks and Queues |
|
|
|
|
Binary trees |
|
5.12, 5.13 |
|
|
Binary trees |
|
5.18, 5.21 Solutions |
|
|
General trees |
|
6.1, 6.4, 6.5, 6.7, 6.9, 6.12 Solutions |
|
|
Internal
sorting |
|
|
|
|
|
|
|
|
|
Internal
Sorting |
|
7.4, 7.9, 7.12, 7.15, 7.16, 7.17, 7.19 |
|
|
Searching |
|
9.3, 9.9, 9.13, 9.14, 9.16 Solutions |
|
|
Graphs |
|
11.1, 11.4, 11.5 Solutions |
|
|
Graphs |
|
11.8, 11.9, 11.15 Solutions |
|
|
Review |
|
|