Course Overview
Course Description
Prerequisites
CS310, CS330, and MATH125 (C or better in all)
Content
In this course we learn how to rigorously analyze the cost of
various algorithms and classes of algorithms. We learn how
to recognize the correct algorithmic tools to use for various
types of common computational problems.
Objectives and Outcomes
- Students will identify and solve classical problems in Computer Science.
- Students will recognize and apply classical algorithm design techniques.
- Students will assess solutions using classical algorithm analysis strategies.
- Students will design and analyze new algorithms to solve computational problems.
- Students will demonstrate an ability to reason
algorithmically.
Textbook
Title: Algorithms Illuminated: Omnibus Edition.
Author: Tim Roughgarden
Available at the campus bookstore.
Accompanying materials are available here.
Logistics
Blackboard
This course will use blackboard for the Fall,
2024 semester. It is primarily used for posting
grades, and not much else.
Office Hours
I will hold office hours on Mondays in my office at 1:30pm
and Tuesdays
on Zoom at
10am. Note that you must be logged into Zoom using your
GMU account, or you will not be able to join. Monday sessions
will be streamed on Zoom as well, and I will post
links to
recordings on piazza.
My office hours should be viewed as study sessions. All are
welcome at the same time! I'll take questions and we'll work through problems
together. For
students that expect to struggle with the material, I
strongly encourage you to attend at least one, and preferably both hours
each week. If you lose points on a homework, you should see
this as an indication that you need help, and you should try to
attend office hours. The TA will also hold hours, and he is
able to help you in the same manner. To speak to me privately, please
email me ahead of time so we can schedule something.
Piazza
I will answer all questions on Piazza.
My email inbox is typically swamped, and
anything sent there has a good chance of being missed.
If you do email me, put 483 in the subject line,
but better is to message me on piazza. Students are
encouraged to post homework questions on piazza! I realize that some posts need to be private,
but when in doubt, I encourage you to make your
posts public! Everyone will benefit from your
questions, and I prefer that we all learn from them.
Generally, I'm not that worried about questions that
give hints. (Within reason.)
Gradescope
Quizzes and homeworks will all be submitted through Gradescope.
You can find gradescope through Blackboard:
click on Tools, then gradescope. You should also be
able to access it directly from the gradescope website,
if you use your GMU login. When submitting an
assignment, please mark each question with the
appropriate question number, as this makes grading much
easier.
Overleaf
I will release some assignments on overleaf. This is a
web-based platform for writing latex documents. You do
not need special software, and I will not insist that
you use latex to write your answers. You can simply
view the PDF from the webpage, and submit answers to
Gradescope in whatever format you like. However,
I encourage you to use latex - it is fairly
easy, and produces nice PDFs. To do that, just copy
the project that I've shared, and edit.
Course Requirements
Grading
Quizzes -- 10%
Homeworks -- 30%
Exams -- 60%
Of two exams the highest score will count 35%, and the lowest 25%.
Homework
Homework will be assigned each week, typically assigned on Thursday and
due Wednesday when class begins. The two lowest homework
grades will be dropped.
Suggestions: It will be very hard to do well
in this course if you do not do all of the homework by yourself,
including any optional problems.
You are strongly encouraged to
do all of the problems, and to ask questions, in
class and in office hours, when you do not
understand any of them. Don't start the homework the day
before it is due!
Quizzes
Quizzes are short: 2-4 questions, multiple choice or
fill-in-the-blank. They will be administered through
Gradescope, so you will need a laptop or phone to
answer the questions. Each
single quiz is worth < 1% of your grade, and he lowest 2 quiz scores will be dropped.
They will be
due before the start of class each Monday.
Each will cover the reading that
is listed for the lecture to come. They mainly
serve to help me gauge what the students have understood from the
reading, and
what needs further explanation.
Exams
All testing is closed book, and notes are not permitted.
There will be one midterm and one final exam. The better score
will count more heavily towards your final grade. The final
mostly covers the 2nd half of the course. However, I may include some
material from the first half if I feel students did not
understand it sufficiently well. I will inform
you ahead of time if I choose to do this.
The midterm is in class on 10/16.
The final is Monday,
12/16, 10:30am - 1:15pm.
Common Course Policies
GMU has a set
of common
course policies pertaining to the handling of harassment, student privacy rights,
accommodations for disabilities, and academic dishonesty. If you have
any questions about these policies, please ask!
Tentative Schedule
| Week |
Topics |
Reading |
Homework |
| 8/26 |
Introduction and Asymptotic Analysis |
Chapter 1.1-1.5, 2 (no quiz) |
HW
1 due Wednesday 9/11 |
| 9/4 (no class Mon, 9/2) |
Divide and Conquer |
Chapter 3, 4.1-4.3 (3.3 optional) |
|
9/9 |
Master Method, and Quick Sort |
Chapters 4.4, 5.1-5.4 |
HW
2 due Wednesday 9/18 |
| 9/16 |
Sorting Lower Bounds, and Linear Time Selection |
Chapter 5.6, 6.1, 6.3 and 6.4 |
HW 3 due Wednesday 9/25 |
| 9/23 |
Graph Algorithms |
(optional) Chap 7, 8.1, 8.2, 8.4, 8.7
(required) Chap 8.3, 8.5, 8.6 |
HW
4 due Wednesday 10/2 |
| 9/30 |
Greedy Algorithms |
Chapters 9 |
HW 5 due Wednesday 10/9 |
| 10/7 |
Greedy Algorithms |
Chapters 13, 14.0-14.3 |
HW 6 due Monday, 10/14, midnight! |
| 10/16 (No class Mon, 10/14) |
Midterm, in class |
|
|
| 10/21 |
MSTs |
Chapters 15.0 - 15.7 |
HW
7 due 10/30 |
| 10/28 |
Dynamic programming |
Chapters 16,
17.1, string
align pt
1, pt
2 |
|
| 11/4 |
Shortest Paths revisited |
Chapters 18.1 - 18.2 |
HW 8 due 11/13 |
| 11/11 |
Network Flow |
Slides
1, Slides 2,
soln
1, soln 2 |
HW 9 due 11/20 |
| 11/18 |
Hard Problems (P vs. NP) |
Chapter 19 |
HW
10 due 12/4 |
| 11/25 (No class Wed, 11/27.) |
Hard Problems (P vs. NP) |
Chapter 22.1 - 22.5, 22.7 |
|
| 12/2 |
Approximation Algorithms |
Chapters 20.1 - 20.2 |
|
| 12/9 (No class Wed, 12/11.) |
Review. Bring your questions! |
|
|
| 12/16 |
Final Exam |
10:30-1:15 |
|