Term: Spring 2023
Instructor: Prof. Jonathan Clark
Course Objectives:
- Write programs in python using imports, functions, and object-oriented programming.
- Compare data structures and algorithms based on time and space complexity and choose the correct ones for a given problem.
- Implement abstract data types (stacks, queues, deques, mappings, priority queues) using various data structures (lists, linked lists, doubly linked lists, heaps, trees, graphs) and algorithms.
- Use recursive algorithms to solve problems.
Textbook: A First Course on Data Structures in Python
Module Topics:
- Basic Python (Ch 1-2)
- Object-Oriented Programming & Testing (Ch 3-4)
- Running Time Analysis (Ch 5)
- Linear Data Structures (Ch 6-8)
- Recursion & Dynamic Programming (Ch 9-10)
- Searching and Sorting (Ch 11-12)
- Divide-and-Conquer (Ch 13-14)
- Mappings and Hashing (Ch 15)
- Trees (Ch 16-18)
- Priority Queues & Heaps (Ch 19)
- Graphs (Ch 20-21)