Part-Time Programs in Engineering and Applied Science, Johns Hopkins University  

Data Structures
605.202


Course Description
This course investigates abstract data types (ADTs), recursion, algorithms for searching and sorting, and basic algorithm analysis. ADTs to be covered include lists, stacks, queues, priority queues, trees, sets, and dictionaries. The emphasis is on the trade-offs associated with implementing alternative data structures for these ADTs. There will be four or five substantial Java programming assignments.
NOTE: This course DOES NOT count toward the Master of Science in Computer Science degree.

Syllabus

  1. Course Organization; Analysis of Algorithms
  2. Linked Lists; Recursion
  3. Stacks, Queues, Advanced Linked Lists
  4. Priority Queues, Heaps; Trees
  5. Tree Algorithms; Hybrid Data Structures
  6. Bubble, Insertion, and Selection Sort
  7. Midterm; Heap Sort
  8. Merge Sort, Quick Sort; Huffman Encoding
  9. Dictionaries; Search Trees
  10. B-trees; Bucket Sort, Radix Sort
  11. Hash Tables; Perfect Hashes
  12. Graphs
  13. Graph Algorithms; Advanced Graphs
  14. Final Exam
Prerequisites
Differential and integral calculus and 605.201 or equivalent.

Instructor
Paul E. Black is a Computer Scientist with the National Institute of Standards and Technology (NIST). Dr. Black holds a PhD in computer science from Brigham Young University, an MS in CS from the University of Utah in CS, and a BS in mathematics from SUU. He has almost 25 years experience in scientific and business software development, and has published in formal verification, software testing, and software engineering. He edits the on-line Dictionary of Algorithms and Data Structures.

Textbook
TBD


Return to Computer Science Courses | Computer Science  | Part-Time Engineering

Fall 2000-01