Department of
Computer Science

# CS 350 Algorithms & Complexity

Course Description

Weekly Schedule

Course Overview

Required Textbooks

Computer Accounts for new students

Class Piazza Page

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
(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

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

5 Brute Force Algorithms §3–3.2

Thursday 24 Jan

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

w
e
e
k

4

Tuesday
29 Jan

7

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

§4.0–4.3 HW2:
Topological Sort, Compare sorts

Thursday
31 Jan

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

w
e
e
k

5

Tuesday 5 Feb

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

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

12
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

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