CS4102 - Algorithms

Introduction | Repository contents | Contributing to this repository | Course description | License

Final Exam Period Info:

For all info about quiz re-takes in the final exam period, see this page


The repository contains content for CS4102 - Algorithms at the University of Virginia.

Repository Contents

Note that the links below will not work correctly if you are viewing this online at github.com – you will need to clone (download) the repository first

Office Hours Description and Schedule

Office hours are held in various locations throughout the week and are of varying type. Information can be found below. There are two possible locations for office hours:

In addition, there are three types of office hours. These are described below:

Office Hours Schedule:

Faculty Office Hours

Day Time Type (Location)
Monday 11:00 - noon Horton (Rice 401)
Tuesday 10:30 - 11:30 am Horton (Rice 401)
Tuesday 11:00am - 12:30pm Floryan (Discord)
Wednesday 3:30 - 4:30 pm Horton (Rice 401)
Thursday 10:30 - 11:30 am Horton (Rice 401)
Friday 2:00 - 3:00 pm Horton (Rice 401)

TA Office Hours

Day Time Type (Location) Type (Location) Type (Location)
Sunday 7pm - 10pm General OH (OLS 001) Module 1 Topic-Focused (Discord) Module 6 Topic-Focused (Discord)
Monday 7pm - 10pm General OH (OLS 001) Module 2 Topic-Focused (Discord) Module 7 Topic-Focused (Discord)
Tuesday 7pm - 10pm General OH (OLS 001) Module 3 Topic-Focused (Discord) Module 8 Topic-Focused (Discord)
Wednesday 7pm - 10pm General OH (OLS 011 classroom) Module 4 Topic-Focused (Discord) Module 9 Topic-Focused (Discord)
Thursday 7pm - 10pm General OH (OLS 001) Module 5 Topic-Focused (Discord) Module 10 Topic-Focused (Discord)


Day Time Type (Location)
Monday 8pm - 10pm Group OH (Discord)
Tuesday 8pm - 10pm Group OH (OLS 120)
Thursday 8pm - 10pm Group OH (Discord)

Contributing to this Repository

Updates to the repository are restricted to approved individuals only, to prevent anybody from messing with the slides right before a lecture. However, others can still contribute to this repository – to do so, take the following steps:

  1. Create a github account, if you do not have one
  2. Fork this repository: you can click on the “Fork” link in the upper right
  3. Clone your forked repository on to your local machine
  4. Make any changes you want to your forked version, then commit and push your changes back to your forked repository
  5. Create a pull request, following the instructions here

At that point, we will receive a notice that a change has been submitted, and I’ll look at it and hopefully accept it into the main repository.

When you want to bring in the updates from the main dsa1 github repository into your forked repository, you will need to follow the instructions here.

Course Description

Introduces the analysis of algorithms and the effects of data structures on them. Algorithms selected from areas such as sorting, searching, shortest paths, greedy algorithms, backtracking, divide-and-conquer, and dynamic programming. Data structures include heaps and search, splay, and spanning trees. Analysis techniques include asymptotic worst-case, expected time, amortized analysis, and reductions between problems.


The material in this repository is released under a Creative Commons Attribution-ShareAlike 4.0 International License (CC BY-SA).