Spring 2012

Welcome to the course web page for CMPSC 465!

Office | Phone | Email @psu.edu | Office Hours | |
---|---|---|---|---|

Prof. Adam D. Smith | IST 338K | 814-863-0076 | asmith+465 | MWF 11:15-noon and Friday 3:30-4:30pm |

T.A. Megan Heysham | IST 338E | meh339+465 | Wed 1pm-3pm | |

T.A. Yang Xiao | IST 351 | yux106+465 | Wed 3pm-5pm |

- January 9, 2012
- First lecture in 114 EES (Earth & Eng. Sci. building)!

- January 11, 2012
- We will be using piazza.com as a discussion board for this class. You can find the course discussion board in the Spring 2012 semester listings (under CMPSC 465).

Lec. | Date | Notes | Topics | Reading | Homework | |
---|---|---|---|---|---|---|

1 | Mon, Jan 9 | Introduction | CLRS Ch. 1,2.1 | HW 1 out: pdf | ||

2 | Wed, Jan 11 | Review of induction, loop invariants | CLRS Ch. 2.1, 2.2 | |||

3 | Fri, Jan 13 | Performance analysis, intro to asymptotic growth | CLRS Ch. 3.1 | HW 2 out: pdf, HW 1 due | ||

4 | Wed, Jan 18 | Asymptotic notation, common functions | CLRS Ch. 3 | |||

5 | Fri, Jan 20 | Wrapping up asymptotics | CLRS Ch. 3 | HW 3 out: pdf | ||

6 | Mon, Jan 23 | Recursion: exponentiation, mergesort | CLRS Ch. 2.3, 4.4 | |||

7 | Wed, Jan 25 | Divide-and-conquer: Karatsuba | CLRS Ch. 4 | Prog. assignment 1 out: pdf | ||

8 | Fri, Jan 27 | Divide-and-conquer, wrap-up | CLRS Ch. 4.1 | HW 4 out: pdf | ||

9 | Mon, Jan 30 | Recurrences: substitution | CLRS Ch. 4.3 | |||

10 | Wed, Feb 1 | Recurrences: master method, more examples. | CLRS Ch. 4.4, 4.5 | |||

11 | Fri, Feb 3 | Abstract Data Types | CLRS Ch. 10.1 | HW 5 out: pdf | ||

12 | Mon, Feb 6 | Backtracking: Weighted Interval Scheduling | CLRS Ch. 15 | |||

13 | Wed, Feb | More backtracking: Generating subsets | CLRS Ch. 15 | |||

14 | Fri, Feb 10 | Dynamic programming: Recurrences, WIS | CLRS Ch. 15 | |||

15 | Mon, Feb 13 | Dynamic programming: Segmented Least Squares | CLRS Ch. 15.1 and 15.3 | |||

16 | Wed, Feb 15 | Two-dimensional DP: Longest common subsequence | CLRS Ch. 15.4 | |||

17 | Fri, Feb 17 | Greedy algorithms: Interval Scheduling (a.k.a. Activity Selection) | CLRS Ch. 16.1 | |||

18 | Mon, Feb 20 | Greedy algorithms: Interval Partitioning, Minimizing lateness | CLRS Ch. 16.1 | |||

19 | Wed, Feb 22 | Exam review | ||||

Wed, Feb 22 | Midterm 1 at 8:15pm
in 110 Wartik (Practice exam 1: pdf) | |||||

20 | Fri, Feb 24 | Trees, heaps | CLRS Ch. 6.1 | |||

21 | Mon, Feb 27 | Heaps | ||||

- | Wed, Feb 29 | No lecture | ||||

22 | Fri, Mar 1 | Binary Search Trees | CLRS CHap. 12 | |||

23 | Mon, Mar 12 | Binary Search Trees | ||||

24 | Wed, Mar 14 | Red-Black Trees | CLRS CHap. 13 | |||

25 | Fri, Mar 16 | - | Augmented Data Structures: OS Trees (M. Heysham) | CLRS Chap 14.1-2 | ||

26 | Mon, Mar 19 | - | Augmentation: Interval Trees | CLRS Chap 14.3 | ||

- | Wed, Mar 21 | No lecture | ||||

27 | Fri, Mar 23 | Hash tables, combining data structures | ||||

28 | Mon, Mar 26 | How to Study for an Algorithms Exam, and review | ||||

29 | Wed, Mar 28 | Midterm review | ||||

Wed, Mar 28 | Midterm 2 at 8:15pm
in 111 Wartik | |||||

30 | Fri, Mar 30 | Graphs: introduction | CLRS Chap. 22 | |||

31 | Mon, Apr 2 | Graphs: representations, start BFS | CLRS Chap. 22.2 | |||

32 | Wed, Apr 4 | Breadth-first search and distances | CLRS Chap. 22.2 | |||

33 | Fri, Apr 6 | DFS | CLRS Chap. 22.3 | |||

34 | Mon, Apr 9 | DFS analysis, finding cycles | ||||

35 | Wed, Apr 11 | Directed Acyclic Graphs, Topological Sort | CLRS Chap. 22.4 | |||

36 | Fri, Apr 13 | Single-source Shortest Paths: Dijkstra's Alg. | CLRS Chap. 24 | |||

37 | Mon, Apr 16 | Dijsktra's Alg. (Analysis, examples, negative edge weights) | ||||

38 | Wed, Apr 18 | Bellman-Ford Single-Source Shortest Paths | ||||

39 | Fri, Apr 20 | Minimum Spanning Trees: Prim's Algorithm | ||||

39 | Mon, Apr 23 | Undecidability and the Halting Problem | ||||

38 | Wed, Apr 25 | Reductions, and the classes P, NP, EXP | ||||

39 | Fri, Apr 27 | NP-completeness |

- Course logistics pdf
- Homework 1: pdf
- Homework 2: pdf
- Homework 3: pdf
- Homework 1 solutions on Angel
- Programming assignment 1: pdf
- Homework 4: pdf
- Homework 2 solutions on Angel
- Homework 3 solutions on Angel
- Homework 5: pdf
- Homework 6: pdf
- Practice exam 1: pdf. Solutions on Angel.
- Homework 4 solutions on Angel.
- Homework 5 solutions on Angel.
- Homework 6 solutions on Angel.
- Homework 7: pdf
- Homework 8: pdf
- Homework 9: pdf
- Homework 10: pdf.
- Homework 10 programming question: pdf (data sets from the SNAP repository: ca-GrQc.txt.gz and web-BerkStan.txt.gz)
- Homework 11: pdf.
- Homework 12: pdf.

- Latex
- For tips on using latex to type homework, see these links. On Mac OS, I like emacs and Skim.
- Python
- See links to recent python interpreters on the Angel page.

Adam Smith Last modified: Thu Apr 26 12:32:09 EDT 2012 3