CMPS101-01: (Really) Introduction to Algorithms


Course Basics

Class: Tu/Th, 11:40 - 1:15 PM
Location: Thimann 3

Instructor: C. (Sesh) Seshadhri (sesh@)
Office: E2-347A
Office hours: Tu, 10-11

Sec01A: Mo, 8-9AM, (Matthew Gray, Matthew Rhea, Fahim) (E2 192)
Sec01B: Tu, 7:15-8:15PM (Matthew Gray, Cecilia, Pengyang) (E2 192)
Sec01C: We, 4-5PM (Matthew Rhea, Cecilia, Konstantinos ) (E2 192)
Sec01D: Fr, 10:45-11:45PM (Matthew Gray, Cecilia, Fahim) (E2 194)
Sec01E: Fr, 1:20-2:20PM (Matthew Rhea, Baiwen, Konstantinos) E2 194)
Sec01F: Tu, 8:30-9:30AM (Matthew Gray, Baiwen, Pengyang) (PhysSci 110)

TA 1: Fahim Hasan Khan (fkhan4)
Office hours: Wed, 12-1 (BE-119)

TA 2: Konstantinos Zampetakis (kzampeta)
Office hours: Mon, 12-1 (BE-119)

TA 3: Pengyang Zhou (pzhou15)
Office hours: Tue, 4-5 (BE-121)

TA 4: Matthew Gray (mtgray@)
Office hours: Mon, 3-4 (BE-119)

Piazza: https://piazza.com/class/jm86bvigtr965z


Course Description

This course is an introduction to the mathematical analysis of algorithms. We will begin with concepts such as big-Oh notation, loop invariants, and induction to prove correctness and argue about algorithm running time. Our first part will be a deeper dive into sorting and the divide-and-conquer paradigm for algorithm design. We will then focus on ``fancy" binary tree data structures, such as heaps and self-balancing trees. There will be significant focus on solving algorithmic problems using these techniques. The final topic will be an introduction to graph algorithms.

Course Textbook

We will follow Introduction to Algorithms, Third Edition by Cormen, Leiserson, Rivest and Stein. Course slides and additional handouts are available at the schedule.