Overview: This course provides a survey of fundamental data structures and algorithms needed to implement
efficient, scalable programs. Upon successful completion of this course you will have mastered the material
needed to analyze a computing problem and to select the data structure that solves the problem with
predictable and appropriate use of computing time and memory resources.
This course covers the following topics: arrays, sorting, stacks and queues, linked lists, recursion, binary trees,
hash tables, heaps, and graphs. A significant part of this course involves actually writing Python programs that
implement the above topics – in labs, for homework, and on exams. However, this course is not a Python
programming course, so students must have already mastered Python programming through prior coursework
or independent study.
Prerequisites: COMP 1300C, and competence in Python programming, including the ability to define new
classes and methods, and to use inheritance.