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
- Course Organization; Analysis of Algorithms
- Linked Lists; Recursion
- Stacks, Queues, Advanced Linked Lists
- Priority Queues, Heaps; Trees
- Tree Algorithms; Hybrid Data Structures
- Bubble, Insertion, and Selection Sort
- Midterm; Heap Sort
- Merge Sort, Quick Sort; Huffman Encoding
- Dictionaries; Search Trees
- B-trees; Bucket Sort, Radix Sort
- Hash Tables; Perfect Hashes
- Graphs
- Graph Algorithms; Advanced Graphs
- 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