CS 312, Sections 001 & 002 |
Instructor: Eric Ringger
Class Page: http://faculty.cs.byu.edu/~ringger/CS312/
Schedule
Last updated: 2008 April 11
Topics, readings, and homework assignments will be fine-tuned as we progress through the semester. Hyperlinks will be added. Check this web page frequently.
Optional readings are enclosed in (parentheses).
Note: Keys to each homework assignment will be made available on Blackboard on or after the assignment's due date.
Date |
Lecture |
Topics |
Reading |
Projects |
Deadlines |
|
Week 1 |
||||||
1/7 |
1 |
--- |
|
--- |
||
1/9 |
2 |
Asymptotic notation: Duality, Limit rule; |
Chapter 0; Sections 1.1 and 1.2 |
(Light) Project #1: Simple Fermat Primality Tester (for small integers) |
Install Visual Studio (see directions in the course Syllabus) |
|
1/10 |
- |
Help
Session: Project #1 |
Project #1 Guidelines; |
|
--- |
|
1/11 |
3 |
Asymptotic notation:
Max rule; |
Section 1.3 |
|
HW #1: 0.1 (a-e, g, m), 0.3 (a,b) in the textbook |
|
Week 2 |
||||||
1/14 |
4 |
Section 1.4 |
|
HW #2: 1.25 in the textbook, then redo 1.25 using 126 for the exponent |
||
1/16 |
5 |
Section 1.4 |
|
HW #3: 1.9, 1.18, 1.20 in the textbook |
||
| Early #1 | ||||||
1/18 |
6 |
Divide & Conquer Multiplication; |
Sections 2.1 and 2.2 |
distro | Project #1 | |
Week 3 |
||||||
1/21 |
- |
Holiday: Martin Luther King, Jr. Day |
||||
1/22 |
- |
Help
Session:
Project
#2 |
Project #2 Guidelines |
|
--- |
|
1/23 |
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/25 |
8 |
Non-homogeneous recurrence relations (with geometric forcing function) |
HW #5: Part I (Section 1.2) Exercises in the RR Notes | |||
1/25 |
- |
Help
Session:
Project
#2 |
Project #2 Guidelines |
|
--- |
|
Week 4 |
||||||
1/28 |
9 |
|
HW #6: Part II (Section 2.3) Exercises in the RR Notes | |||
| Early #2 | ||||||
1/30 |
10 |
Theoretical and empirical analysis of mergesort and quicksort |
Section 2.3 |
|
Project #2 | |
2/1 |
11 |
Selection, Median; Matrix multiplication with Strassen's algorithm |
Sections 2.4 and 2.5 |
|
HW #7: Part III (Section 3.2) Exercises 1 and 2 in the RR Notes; |
|
Week 5 |
||||||
2/4 |
12 |
Section 2.6 |
Project #3: Graph Algorithms - Separating Vertices, Bridges, and Biconnected Components |
distro | Improvement #2 |
|
2/5 |
- |
Help
Session:
Project
#3 |
Project #3 Guidelines |
--- |
--- |
|
2/6 |
13 |
Graph
algorithms: Formulating problems as graphs; |
Chapter 3.1-3.2 |
HW #8: 2.11 in the textbook | ||
2/8 |
14 |
Section 3.3 |
|
Keep working on HW #9 -- get a head start! Here are some hints to keep you moving in the right direction. |
||
Week 6 |
||||||
2/11 |
15 |
Section 3.4 |
|
HW #9: 3.31in the textbook; this is critical for Proj. #3 |
||
2/12 |
- |
Help
Session:
Project
#3 |
Project #3 Guidelines |
--- |
--- |
|
2/13 |
16 |
Sections 4.1-4.5 |
|
HW #10: 3.4 (graph ii only), 3.10, 3.15 in the textbook |
||
2/13 |
- |
Engineering and Technology Career Fair [10am-3pm; Wilkinson Center ballroom] |
||||
2/15 |
17 |
Sections 4.6-4.7 |
|
HW #11: 4.1in the textbook |
||
| Early #3 | ||||||
Week 7 |
||||||
2/18 |
- |
Holiday: President's Day |
||||
2/19 |
18 |
Greedy algorithms: |
Section 5.1 |
|
Project #3 |
|
2/20 |
19 |
Representing disjoint sets; |
Section 5.1 |
|
--- |
|
2/22 |
20 |
Section 5.2; (Sections 5.3-5.4) |
distro | Improvement #3 |
||
Week 8 |
||||||
2/25 |
21 |
Dynamic Programming; |
Sections 6.1-6.2 |
HW #12: described in separate document |
||
2/26 |
- |
Help
Session:
Project
#4 |
Project #4 Guidelines |
--- |
--- |
|
2/27 |
- |
Review: Mid-Term Exam |
--- | |||
2/28 |
Mid-Term Exam in Testing Center |
|||||
2/29 |
||||||
3/1 |
||||||
Week 9 |
||||||
3/3 |
22 |
Section 6.3 |
|
HW #13: described in separate document |
||
| Early #4 | ||||||
3/5 |
23 |
Section 6.4 |
|
Project #4 |
||
3/7 |
- |
Follow-up: Mid-Term Exam |
--- |
HW #14: described in separate document |
||
Week 10 |
||||||
3/10 |
24 |
Chain Matrix Multiplication; |
Section 6.5 |
distro | Improvement #4 | |
3/11 |
- |
Help
Session:
Project
#5 |
Project #5 Guidelines |
--- |
--- |
|
3/12 |
25 |
Section 6.6; (Section 6.7) |
HW #15: described in separate document |
|||
3/14 |
26 |
Section 7.1 |
|
HW #16: described in separate document |
||
3/15 |
- |
College of Physical and Mathematical Sciences |
||||
Week 11 |
||||||
3/17 |
27 |
Section 7.2 |
HW #17: 7.1, 7.2 in the textbook | |||
| Early #5 | ||||||
3/19 |
28 |
Flows in Networks (cont.); Examples; Bipartite Graphite Matching |
Sections 7.3-7.4 |
|
Project #5 | |
3/21 |
29 |
Section 7.6; |
HW #18: 7.10 in the textbook | |||
Week 12 |
||||||
3/24 |
30 |
Section 8.2: pp. 243-247 |
Improvement #5 | |||
3/25 |
- |
Help
Session:
Project
#6 |
Project #6 Guidelines |
--- |
--- |
|
3/26 |
31 |
Back-tracking search: Graph
coloring, 8 Queens; |
Sections 9.1-9.2 |
|
Keep working on Project #6 -- finish early! |
|
3/28 |
32 |
Guided search; |
Section 9.1.2 | HW #19: described in separate document |
||
| Early #6 | ||||||
Week 13 |
||||||
3/31 |
33 |
Project #7: Solving the TSP with Branch & Bound | distro | Project #6 | ||
4/2 |
34 |
Solving the TSP with Branch and Bound (continued); Include-Exclude State Space |
Extra slides with hints on implementing Include-Exclude State Space |
|
HW #20: described in separate document | |
4/3 |
- |
(Rescheduled) Help
Session:
Project
#7 |
Project #7 Guidelines |
--- |
--- |
|
4/4 |
35 |
Best-first Search; |
Russell & Norvig 4.1-4.2 [available under Course Materials on BlackBoard] |
|
HW #21: described in separate document |
|
Week 14 |
||||||
4/7 |
36 |
Randomized Algorithms; |
"Virtual Chapter" (beginning with the gray box on p. 29) |
|
Early #7 | |
4/9 |
37 |
--- | --- | |||
4/11 |
38 |
--- |
|
HW #22: described in separate document |
||
Week 15 |
||||||
4/14 |
- |
Last
day of CS 312 |
|
Project
#7 |
||
4/15 |
- |
Last day of Winter Instruction (no CS 312) |
No late project reports accepted after this date | |||
4/16 |
- |
Reading days |
||||
4/17 |
||||||
4/18 |
- |
|||||
4/19 |
- |
|||||