Schedule
Monday + Wednesday, 9:40 am - 10:55 am, online
01. Introduction to the Python language
We will learn about the Python languages's basic syntax and language features.
- Practice Notebooks:
- Reading:
- PythonDS Book: Introduction
- Python tutorial - chapters 15, 9
- Slides:
- Labs:
- Lab 00 - Preliminaries
- Dates: 01/20, 01/25, 01/27, 02/01
02. Empirical algorithm timing & runtime complexity
- Practice Notebooks:
- Reading:
- Slides:
- Labs:
- Lab 01 - Basic Python
- Dates: 02/03, 02/08
03. Lists: Array-backed lists & Linked Lists
- Practice Notebooks:
- Reading:
- Slides:
- Labs:
- Lab 02 - N-grams
- Lab 03 - Searching and Sorting
- Lab 04 - Array-backed Lists
- Lab 05 - Linked Lists
- Lab 06 - Stacks & Queues
- Dates: 02/10, 02/15, 02/17, 02/22, 02/24, 03/01, 03/03, 03/08, 03/15, 03/17
04. Maps: hashtables & trees
- Practice Notebooks:
- Reading:
- Slides:
- Labs:
- Lab 07 - Hashtables
- Lab 08 - Heaps
- Lab 09 - Binary search trees
- Lab 10 - AVL-trees
- Dates: 03/22, 03/24, 03/29, 03/31, 04/05, 04/07, 04/12, 04/14, 04/19
05. Sorting algorithms
- Practice Notebooks:
- Reading:
- Slides:
- Labs:
- Lab 11 - Quick Sort
- Dates: 04/21, 04/26, 04/28, 05/03