Department of Computer Science and Engineering
Wright State University

CS 400 Data Structures and Software Design

4 Credit Hours, Summer Qtr 1999, Wright State U
Instructor: Dr Prabhaker Mateti, Associate Professor
Office Hrs: 15:00-16:00 M W at 449 Russ, or by appointment
pmateti@cs.wright.edu  (937) 775 5114

1997-99 Catalog Data

[4 credit hours] Study of the implementation of data structures and control structures in professional computer programs. Introduction to the fundamentals of complexity and analysis. Study of common standard problems and solutions (e.g., transitive closure). Emphasis on high-level language software design. 3 hours lectures, 2 hours lab.

Prerequisites: CS 242, MTH 253, and MTH 257.

Text Books and Other Source Materials

Sartaj Sahni, Data Structures, Algorithms and Applications in C++, WCB McGraw-Hill, 1998, ISBN 0-07-109219-6. Source Code etc: www.mhhe.com/engcs/compsci/sahni/ See also Errata

Paul W. Abrahms, Bruce Larson (Contributor), Unix for the Impatient, Paperback, 824 pages, 2nd edition (September 1995), Addison-Wesley Pub Co; ISBN: 0201823764

Course Home Page: www.cs.wright.edu/~pmateti/Courses/400.html

Prerequisites by Topic

  1. Syntax and semantics of simple C++
  2. Program development tools: editors, compilers, linkers, debuggers.
  3. Data structures: arrays, stacks, queues, lists, binary trees
  4. Complexity analysis of simple algorithms for sorting and searching
  5. Matrices, linear equations and transformations
  6. Discrete mathematics: sets, propositions, and predicates.

Tentative Lecture Schedule by Week

  1. Introduction to Unix, and C++ on our Unix.   Read:  Abrahms, various chapters, Unix man pages, Unix Help web site.
  2. Threaded trees, Heaps, Binary search trees, Forests, Set representation   Read:  5.5-5.11
  3. Spanning Trees, shortest paths, transitive closure.   Read:  6.3-6.4
  4. Heap Structures
  5. AVL Trees   Read:  11.0-11.2
  6. Red-Black Trees   Read:  11.3
  7. B-Trees   Read:  11.4-5
  8. Depth first search on graphs, Connected, Biconnected components   Read:  12
  9. Splay Trees, Digital Search Trees, Tries   Read:  10.7-10.9
  10. Merge sort; Quick sort; Divide and Conquer   Read:  14.

Workload

4Programming Assignments; late -10*n*n% where n = days late40%
2Homework Exercises at 5% each; Late not accepted10%
1Midterm Examination20%
1Final Examination30%

Important Dates

Item Date
Programming Assignment 1June 23
Programming Assignment 2July 09
Homework 1 July 12
Midterm ExamJuly 14
Programming Assignment 3Aug 04
Programming Assignment 4Aug 11
Homework 2Aug 16
Final ExamAug 18

CS 600

Graduate students will study, in addition to all the above, a paper on algorithm design and implement it. The details of this will be announced later.

http://www.cs.wright.edu/people/faculty/pmateti/