CS 250 (001) Algorithms
& Data Structures Fall 1997

Room: Peck 2412
Time: 6:00 - 7:15 p.m.
Text: Data Structures and Algorithm Analysis in C, Mark
Allen Weiss
Supp. Texts: compared to what, Gregory Rawlins
Data Structures and Algorithms, Aho, Hopcroft & Ullman
Algorithmics, G. Brassard & P. Bratley
Introduction to Algorithms, Cormen, Leiserson,
& Rivest
Instructor: Bernard Waxman - BLDG II, rm 2323 -
692-2386
Electronic mail address: bwaxman@siue.edu or bmw@mpr.cis.siue.edu
Department WEB page: http://www.cs.siue.edu/
My WEB page: http://www.siue.edu/~bwaxman
Office hours: Tue & Thur 1:30 - 3:30 p.m. or Tue 7:30 -
8:30 p.m.
(Check with me or the CS secretary for other times)
Grading: Assignments, Programs & Lab reports 35%
Two exams 30%
Final Exam 25%
Other 10%
- Policy:
-
Programming assignments must be written in C++ and run under UNIX.
Your source code must be placed in a subdirectory called CS250 under
your home directory on daisy.
Assignments are due at the beginning of class on the date specified. Points
will be deducted on assignments that are turned in after the due date.
Regular Attendance is expected.
- Topics:
- CS 250 will cover Chapters 1 - 7 and 9, 10 from the book by Weiss. You
will be expected to do the reading assignments before the topics are discussed
in class, and to be prepared to ask questions if there are things you do
not understand. Other reading material will be provided to supplement
reading assigments from the Weiss book.
COURSE CONTENT
- Analyzing algorithm performance
- Compare algorithm in terms of time complexity, space complexity,
understandability, and ease of implementation
- Definition and us of Omega, O, and Theta.
- Pseudocode and its use in analyzing performance
- Review mathematical induction and compare to recursive algorithms
- Searching, a comparison of binary and linear search
- Review of basic data structures
- Stacks, queues, lists
- Array and dynamic memory implementations
- Selecting and sorting
- Selection sort, insertion sort, quick sort, heap sort, and bucket
sort
- Merge sort and sorting large data sets in secondary storage
- Choosing the best sort
- Binary trees
- Acyclic connected graphs
- Binary Search trees (revisit binary search
- Using recursion with trees (height, counting, searching)
- Priority queues (2-heaps)
- AVL and Splay trees
- Graphs
- Nodes, edges, directed and undirected graphs
- Paths, connected, cycles, node degree, acyclic graphs, and planar
graphs
- Graph isomorphism
- Minimum spanning trees - Kruskal's and Prim's algorithms
- Shortest path trees and Dijkstra's algorithm
- Graph coloring
- Complexity classes and computability
- The Turing machine as a model of computation (the Church-Turing
thesis)
- Turing's halting problem and Godel's incompleteness theorem
- The classes P, NP, and NP-hard
Bernard Waxman
Tue Aug 19 14:41:14 CDT 1997