Course Information
- Instructor: Dr. Yao Xu, Assistant Professor from Department of Computer Science
- Office: IT 2321, Statesboro Campus
- Email: [email protected]
- Lecture: MW: 4:00 PM - 5:15 PM
- Office Hours: MW 11:30 AM - 1:30 PM, or by appointment (Please email me at least one day in advance to make an appointment.)
Course syllabus, slides, lecture recordings, assignments, and important announcements will all be posted in Folio. Please check Folio frequently for updates.
Prerequisites
- A minimum grade of “C” in CSCI 5330 (CSCI 4330 since 2019) - Algorithm Analysis and Design or Permission of Instructor.
- Students taking this course should be proficient in Java or C++.
Recommended Textbook
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein. Introduction to Algorithms, Fourth Edition. MIT press.
- Most of the topics that will be covered in this course can also be found in the Third Edition of the above book, with an e-version available online via University Libraries.
Assessments
Your performance in this course will be measured by the following.
| Assessment Type | Number | Percentage of Final Grade |
|---|---|---|
| Homework Assignments | 4 | 50% (12.5% * 4) |
| Term Project | 1 | 40% |
| Short Essay | 1 | 5% |
| Participation | 20 | 5% |
Course Schedule (Updated Weekly)
Abbreviations:
- Mx: Short for "Module x"
- HAx: Short for "Homework Assignment x"
- CLRS4: Short for "Cormen, Leiserson, Rivest, and Stein (Introduction to Algorithms, Fourth Edition)"
- CLRS3: Short for "Cormen, Leiserson, Rivest, and Stein (Introduction to Algorithms, Third Edition)"
| Dates | Prerequisite Topics (Background Knowledge) | Lecture Topics | Additional Materials |
|---|---|---|---|
| Week 1: - |
Sorting Algorithm:
Asymptotic Notations:
|
Classes begin: Monday, 1/12
M0: Course Introduction
|
CLRS4/CLRS3 Sections:
|
| Week 2: - | Monday, 1/19: Martin Luther King Jr. Holiday - No Class | ||
Sorting Algorithm:
CLRS4/CLRS3 Sections:
|
M1: Algorithm Foundations (cont'd)
|
Online Resources: | |
| Week 3: - |
Greedy Algorithms:
CLRS4/CLRS3 Sections:
|
M1: Algorithm Foundations (cont'd)
|
CLRS4/CLRS3 Sections:
|
| Week 4: - |
Dynamic Programming (DP):
|
M2: Greedy Algorithms vs DP (cont'd)
|
CLRS4/CLRS3 Sections:
|
| HA1 due on Sunday, 2/8 | |||
| Week 5: - |
Sorting Algorithm:
Binary Search Tree (BST):
CLRS4/CLRS3 Sections:
|
M3: Randomized Algorithms (cont'd)
|
CLRS4/CLRS3 Sections:
|
| Week 6: - |
M4: BSTs (cont'd)
|
CLRS4/CLRS3 Sections:
|
|
| HA2 due on Sunday, 2/122 | |||
| Week 7: - |
Graph Basics:
BFS and DFS:
CLRS4/CLRS3 Sections:
|
M5: DFS-Based Graph Algorithms
|
CLRS4/CLRS3 Sections:
|
| Week 8: - |
M5: DFS-Based Graph Algorithms (cont'd)
|
CLRS4/CLRS3 Sections:
|
|
|
Pproject teams and topics finalized on Wednesday, 3/4
Project Proposal due on Sunday, 3/8 |
|||
| Week 9: - | |||
Shortest Path
Heaps (for Dijkstra implementation)
CLRS4/CLRS3 Sections:
|
M6: Shortest Paths
|
CLRS4/CLRS3 Sections:
|
|
| HA3 due on Sunday, 3/15 | |||
| Week 10: - | Spring break | ||
| Week 11: - |
M7: Flow Networks
|
CLRS4/CLRS3 Sections:
|
|
| Submit Essay topic by Sunday, 3/29 | |||
| Week 12: - |
M7: Flow Networks (cont'd)
|
CLRS4/CLRS3 Sections:
|
|
| Week 13: - |
M8: Parallel Algorithms
|
CLRS4 Sections:
|
|
| HA4 due on Sunday, 4/12 | |||
| Week 14: - |
M9: NP-related Concepts
|
CLRS4/CLRS3 Sections:
|
|
| Week 15: - | Project Presentations | ||
| Week 16: - | Project Presentations | ||
| Short Essay due on Sunday, 5/3 | |||
| Week 17: - |
Last day of classes: Monday, 5/4
Project Presentations |
||
| Project final report with source code due on Tuesday, 5/5 | |||