CISC235/3.0 Data StructuresOriginal Authors: Mary McCollam and David RappaportLast Revised: October 15, 2009 Calendar Description Design and implementation of advanced data structures and related algorithms, including correctness and complexity analysis. Efficient implementation of lists, sets, dictionaries, priority queues, trees, graphs, and networks using arrays, hash tables, heaps, and hierarchical linked structures. String and graph problems, such as string matching and shortest path. External storage and inputoutput complexity. Prerequisites: CISC 124/3.0, CISC 203/3.0 Learning Hours 120 (36L;84P)Objectives This course is designed to teach students about ways that data can be structured and about algorithms for accessing and updating these structures efficiently. After completing the course, students will have a toolkit of data structures and algorithms that they can select from and implement when solving programming problems and developing software, and they should know how to analyze problems in order to judge which of these are most efficient and appropriate for use in a particular situation. They should also be able to develop their own variations and combinations of data structures to fit new situations and be able to analyse their efficiency and usefulness. Assignments will require implementation of data structures and related algorithms; the instructor should specify whether Java or Python (or either) is to be used for these implementations (starting in 2009). The courses to which this course is a direct prerequisite are:
This course is required in all Computing programs.
Topics Complexity Analysis
