CS 312, Sections 001 & 002 |
Instructor: Eric Ringger
Class Page: http://faculty.cs.byu.edu/~ringger/CS312/
Schedule
Last updated: 2009 April 21
Topics, readings, and homework assignments will be fine-tuned as we progress through the semester. Hyperlinks will be added. Check this schedule frequently.
Optional readings are enclosed in (parentheses).
Note: Keys to each homework assignment will be made available on Blackboard on or soon after the assignment's due date.
Date |
Lecture |
Topics |
Reading |
Assignment Due Dates |
Week 1 |
||||
1/5 |
1 |
--- |
--- |
|
1/7 |
2 |
Asymptotic notation: Duality, Limit rule; |
Course Syllabus and Schedule; |
Install Visual Studio (see directions in the course Syllabus) |
1/8 |
- |
Help
Session: Project #1 |
Project #1 Guidelines; |
--- |
1/9 |
3 |
Asymptotic notation:
Max rule; |
Section 1.3 |
HW #1: 0.1 (a-e, g, m), 0.3 (a) in the textbook; |
Week 2 |
||||
1/12 |
4 |
Section 1.4 |
HW #2: 1.25 in the textbook, then redo 1.25 using 126 for the exponent |
|
1/14 |
5 |
Section 1.4 |
HW #3: 1.9, 1.18, 1.20 in the textbook |
|
| Early #1 | ||||
1/16 |
6 |
Divide & Conquer Multiplication; |
Sections 2.1 and 2.2 |
Project #1: Simple Fermat Primality Tester (for small integers) |
Week 3 |
||||
1/19 |
- |
Holiday: Martin Luther King, Jr. Day |
||
1/20 |
- |
Help
Session:
Project
#2 |
Project #2 Guidelines |
--- |
1/21 |
7 |
HW #4: 1.27, 2.1, 2.5(a-e) in the textbook; for 2.5 (a-e), only find bounds using the Master Theorem |
||
1/20 |
- |
Help
Session:
Project
#2 |
Project #2 Guidelines |
--- |
1/23 |
8 |
Non-homogeneous recurrence relations (with geometric forcing function) |
HW #5: Part I (Section 1.2) Exercises in the RR Notes | |
Week 4 |
||||
1/26 |
9 |
Recurrence
relations: change of variable; |
HW #6: Part II (Section 2.3) Exercises in the RR Notes | |
1/28 |
10 |
Section 2.3 |
HW #7: Part III (Section 3.2) Exercises 1 and 2 in the RR Notes; |
|
| Early #2 | ||||
1/30 |
11 |
Selection, Median; Matrix multiplication with Strassen's algorithm |
Sections 2.4 and 2.5 |
|
Week 5 |
||||
2/2 |
12 |
Section 2.6 |
Project #2 on-time submission until noon |
|
2/4 |
13 |
Graph
algorithms: Formulating problems as graphs; |
Chapter 3.1-3.2 |
HW #8: 2.11 in the textbook |
2/5 |
- |
Help
Session:
Project
#3, part A |
Project #3 Guidelines |
--- |
2/6 |
14 |
Section 3.3 |
HW #9.1: 3.31 a-f in the textbook; critical for Proj. #3; |
|
Week 6 |
||||
2/9 |
15 |
Section 3.4 |
HW #9.2: 3.31 g-h in the textbook; critical for Proj. #3; |
|
2/10 |
- |
Help
Session:
Project
#3, part B |
Project #3 Guidelines |
--- |
2/11 |
16 |
Sections 4.1-4.5 |
HW #10: 3.4 (graph ii only; start the SCC-finding algorithm at a vertex other than A -- we already did that in class), 3.10 (this one is important for project #3 as well), 3.15 -- all in the textbook |
|
2/13 |
17 |
Sections 4.6-4.7 |
HW #11: 4.1 in the textbook |
|
| Early #3 | ||||
Week 7 |
||||
2/16 |
- |
Holiday: President's Day |
||
2/17 |
18 |
Greedy algorithms:
Coins; |
Section 5.1 |
Project #3: Graph Algorithms - Separating Vertices, Bridges, and Biconnected Components |
| Vista and x86 only: ArticulationPoints assemblies for x86 Vista | ||||
2/17 |
- |
Help
Session:
Project
#4 |
Project #4 Guidelines |
--- |
2/18 |
19 |
Representing disjoint sets; |
Section 5.1 |
HW #12: 4.2, 5.1 a-b in the textbook |
2/20 |
20 |
Section 5.2; (Sections 5.3-5.4) |
HW #13: 5.2a in the textbook |
|
Week 8 |
||||
2/23 |
21 |
Dynamic Programming; |
Sections 6.1-6.2 |
HW #14: described in separate document |
2/25 |
22 |
Section 6.3 |
HW #15: described in separate document |
|
| Early #4 | ||||
2/27 |
23 |
Section 6.4 |
||
Week 9 |
||||
3/2 |
24 |
Chain Matrix Multiplication; |
Section 6.5 |
HW #16: described in separate document |
3/3 |
- |
Help
Session:
Project
#5 |
Project #5 Guidelines |
--- |
3/4 |
- |
Your (optional) notes sheet for the mid-term exam (to be handed in with exam) | ||
3/5 |
Mid-Term Exam in Testing Center |
|||
3/6 |
||||
3/7 |
||||
Week 10 |
||||
3/9 |
25 |
Section 6.6; (Section 6.7) |
HW #17: described in separate document |
|
3/11 |
26 |
Section 7.1 |
HW #18: described in separate document | |
| Early #5 | ||||
3/13 |
- |
Follow-up: Mid-Term Exam |
--- | |
Week 11 |
||||
3/16 |
27 |
Section 7.2 |
HW #19: 7.1, 7.2 in the textbook | |
3/17 |
- |
Help
Session:
Project
#6 |
Project #6 Guidelines |
--- |
3/18 |
28 |
Flows in Networks (cont.); |
Sections 7.3-7.4 |
HW #20: 7.10 in the textbook |
3/20 |
29 |
Section 7.6; |
HW #21: Formulate problem (part 1) of Project #6 | |
3/21 |
- |
College of Physical and Mathematical Sciences |
||
Week 12 |
||||
3/23 |
30 |
Section 8.2: pp. 243-247 |
Early #6 | |
3/25 |
31 |
State-space search and Back-tracking: Graph
coloring, 8 Queens; |
Sections 9.1-9.2 | Project #6: Linear Programming (no code distribution) |
3/26 |
- |
Help
Session:
Project
#7 |
Project #7 Guidelines |
--- |
3/27 |
32 |
State-space search and Bound functions; |
Section 9.1.2 | Improvement Proposal |
Week 13 |
||||
3/30 |
33 |
HW #22: described in separate document |
||
4/1 |
34 |
State spaces; Solving the TSP with Branch and Bound (cont.) |
Extra slides with hints on implementing Include-Exclude State Space | HW #23: described in separate document |
4/3 |
35 |
Best-first Search: A* Search and Admissible Heuristics; |
Russell & Norvig 4.1-4.2 [available under Course Materials or Course Documents on BlackBoard] | HW #24: described in separate document |
| Early #7 | ||||
Week 14 |
||||
4/6 |
36 |
A* (cont.); |
--- |
|
4/8 |
37 |
Randomized Algorithms; |
"Virtual Chapter" (beginning with the gray box on p. 29) | No homework due -- make progress on your improvement! |
4/10 |
38 |
Bonus lecture #39: Numerical Probabilistic Algorithms and Las Vegas Algorithms |
HW #25: described in separate document |
|
Week 15 |
||||
4/13 |
- |
Last
day of CS 312 |
Early: Improvement Report |
|
4/14 |
- |
Last day of Winter Instruction (no CS 312) |
||
| No late project reports accepted after this date | ||||
4/15 |
- |
Reading days |
||
4/16 |
||||
4/20 |
- |
|||
4/21 |
- |
|||