Department of
Computer Science

Course Description

Weekly Schedule

Course Overview

Required Textbooks

Grading Policy

Computer Accounts for new students

Academic Integrity Policy

Class Piazza Page

Advice on Testing

Up to Course Page

Weekly Schedule

This schedule will be changed. Slides will be updated and readings will be added. The schedule will also change as we see how much time we need for particular topics.



Date

Lecture
Description
Reading
(before class)
Homework


w
e
e
k

1


Tuesday
8 Jan

Slides


1

Introduction

- course overview and organization
- what's an algorithm?


HW0:
Prerequisites

A note on Proof formats


Thursday
10 Jan

Slides


2

Analyzing an algorithm's run-time

- asymptotic ("Big Oh") notation

Ch 1, Ch 2–2.2













w
e
e
k

2

Tuesday
15 Jan
Slides



3

Analysis of Iterative Algorithms

§2.3, Appendix A, HW0 due.


Thursday
17 Jan

Slides

4 Analysis of Recursive Algorithms §2.4, §2.5, Appendix B HW1: Asymptotic notation, summations, recurrences









w
e
e
k

3

Tuesday
22 Jan

Slides



5 Brute Force Algorithms §3–3.2


Thursday 24 Jan

Slides


6 Brute Force Algorithms (continued); Exhaustive search §3.3, §3.4 HW 1 due.



w
e
e
k

4


Tuesday
29 Jan

Slides


7

Decrease & Conquer Algorithms — Insertion sort, Topological sort, and generating combinations

§4.0–4.3 HW2:
Topological Sort, Compare sorts


Thursday
31 Jan

Slides
Medians


MIT video


8 Decrease & Conquer Algorithms — Decrease-by-a-constant-factor & variable-size-decrease
§4.4, §4.5











w
e
e
k

5


Tuesday 5 Feb

Slides



9
Master Theorem.
Divide & Conquer
Mergesort, Quicksort, Binary Tree properties.
§ 5.0–5.2 HW2 due


Thursday
7 Feb




10
Review Class












w
e
e
k

6

Tuesday
12 Feb




Mid-term exam.  The exam will cover everything in Levitin up to the end of §5.2. Books, calculators, cell-phones and computers are prohibited, but you may use a single 8.5" × 11" “crib sheet” (double-sided, hand-written or typeset), as a personal reference for definitions and formulae.



Thursday
14 Feb

Slides


11 Divide & Conquer (continued):
Karatsuba multiplication,
Strassen's Algorithm, Closest-Pair, Quickhull
§ 5.3–5.5
Project Proposals

w
e
e
k

7


Tuesday
19 Feb

Slides


12
Space & Time tradeoffs
Boyer-Moore String Searching
§7–§7.2


Thursday
21 Feb
Slides

13 Space & Time tradeoffs, cont.  Hashing, B+-Trees
§7.3, §7.4 HW3
Project Proposals Due

w
e
e
k

8

Tuesday 26 Feb
Slides


14 Dynamic Programming §8–8.2, 8.4

Thursday 28 Feb
Slides


15 Dynamic Programming, cont.  Greedy Techniques §9.1–9.4
§6.4
HW3 due











w
e
e
k

9


Tuesday
5 Mar



16 Greedy Techniques
HW4

Thursday
7 Mar

Slides


17 Introduction to Complexity Theory: the limitations of algorithmic power §11.1–11.3

w
e
e
k

10


Tuesday
12 Mar
Slides


18 Proving Correctness of Programs Axiomatic Basis
Proof of Quicksort
HW4 due



Thursday
14 Mar


19 Review Class
Projects due




Tuesday
19 Mar
10:15–12:05


Final Exam

The exam will cover the whole of the course. The use of books is not allowed, but you may use a single 8.5" × 11" “crib sheet” (double-sided, hand-written or typeset), as a personal reference for definitions and formulae.





Most recently modified sometime in the past

Andrew P. Black