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. Review of Object-Oriented Principles and Some Basics of Java
  2. Analysis of Algorithms
  3. Linked Lists, Recursion
  4. Stacks, Queues, Dequeues
  5. Sequences, Bubble Sort
  6. Trees, Binary Trees, Trees Traversal
  7. Priority Queues; Insertion Sort and Selection Sort; Midterm Exam
  8. Heaps and Heap-Sort, Huffman Coding
  9. Dictionaries; Binary Search Trees
  10. AVL Trees
  11. Merge Sort, Quick Sort, Selection
  12. Hash Tables, Bucket Sort, Radix Sort, Sets; Selection
  13. Graphs and Advanced Topics
  14. Final Exam
Prerequisites
Differential and integral calculus and 605.201 or equivalent.

Instructor
Leonid Felikson received a B.S. in computer science and an M.S. in computer science from the Urals Polytechnical Institute, Russia. Mr. Felikson is currently the Senior Technical Analyst at the Freddie Mac, Corp. His areas of interest include distributed objects processing, object-oriented analysis and design, and systems integration. He has taught courses and seminars on the principles of operating systems and computer programming, and database concepts and design at a variety of public and private organizations.

E-mail the instructor.

Computer Lab Requirements
Students are expected to complete eight homeworks and four projects using Java. Unix laboratory facilities will be provided for all students. Students may complete assignments on any platform using the public-domain Java JDK 1.2.

Textbook
Data Structures and Algorithms in Java by Michael T. Goodrich and Roberto Tamassia

Further Information on Class Specifics


Return to Computer Science Courses | Computer Science  | Part-Time Engineering
Fall 99-2000