Introduction | Repository contents | Contributing to this repository | Course description | License
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.
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
- Course Logistics: The syllabus, introductory slide deck, grading policy, course schedule, Covid-19 policies, etc.
- Homeworks (md): The homeworks for the course, along with due dates and related things.
- Gradescope Info: Information on submitting programming assignments to Gradescope.
- Schedule and Slides (md): Contains the slides used in the course.
- Quiz Grade Info: Information on quiz grades, passing thresholds, etc.
- Sample Exams: Some sample old exams.
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-Person OH: Some OH will be held in-person (location TBD). See the chart below for details. These will function as traditional office hours.
-
Discord OH: Some OH will be held on our Discord Server. To attend office hours, simply join the office hours queue voice channel and you will be added to the office hours queue. When you are taken off the queue you will be automatically moved to a staging room to wait (it is called oh-up-next or similar). Soon after, a TA will manually pull you off that staging room into their office hours to help you.
In addition, there are three types of office hours. These are described below:
-
General OH: TAs will be available to help with the topic of the week, each week throughout the semester. These function as traditional office hours you would likely have in any other class.
-
Topic-Focused OH: Office hours dedicated to one of the ten topics of the course. The TA for these topics will focus on helping students with that topic ONLY all semester. Their goal is to be the best resource for their specific topic (as much as possible). These are meant for students who are ahead in the course or who fall behing in the course and get can't help at general office hours.
-
Group OH: These are two weekly discussion sections where a TA will answer general questions regarding homeworks, quizzes, algorithm intution, etc. to larger groups of attendees.
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) |
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) |
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:
- Create a github account, if you do not have one
- Fork this repository: you can click on the "Fork" link in the upper right
- Clone your forked repository on to your local machine
- Make any changes you want to your forked version, then commit and push your changes back to your forked repository
- 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.
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).