CS4501: ADV. ALGO.
COURSE INTRODUCTION
ADVANCED ALGORITHMS AND IMPLEMENTATIONS
MARK FLORYAN
COURSE OBJECTIVES
2
COURSE OBJECTIVES
Students who complete the course will:
• Solve challenging optimizations by modeling problems as linear programs
and using / understanding linear programming algorithms.
• Take advantage of representation structures of data to more efficiently
store and retrieve data.
• Apply analysis concepts to determine the efficacy of approximation
algorithms where the optimal solution is unlikely to be found.
• Gain an understanding of common algorithmic ideas when working with
geometric problems including convex hulls, and large geometric data sets.
• Be exposed to numerous small but useful algorithms that can be used as
common sub-routines to solve larger problems.
COURSE INTRODUCTION
LECTURES
• Lecture Time
• MWF 9:00 – 9:50 am @ Olsson Hall 018
• Lectures will be recorded and posted on Canvas -> Lecture
Recordings
• Using Panopto, so no live broadcast
• A note about recordings…they are a privilege, not a right.
• Lectures will cover course topics, example code, etc.
LECTURES
Lectures are held in-person, MWF (well, some Fridays)
- Mon. / Wed.: Traditional in-person lectures.
Attendance required (more on that later). Recordings
available for review.
- Friday: Combination of homework labs (I’ll explain
verbally), quizzes (2 of them), and cancellations
- Last four lectures: Are reserved for final project
presentations (more on that in a bit as well).
GENERAL INFO
• See syllabus on course website for general information
• Pre-requisites:
• CS 3100 (DSA2) if you are in the new curriculum (most of you, probably)
• CS 4102 (Algo) if you are in the old curriculum (Does this apply to
anybody anymore?)
• Math topics: proof by induction, proof by contradiction, etc. (Basically
everything in DMT 1)
• Data Structures: General proficiency with everything from DSA1 and 2.
• Teaching Assistants
• Undergraduates (3)
• Both will hold office hours, which will start next week
• Locations and hours mostly set on course website
• Also, we’ll use Piazza for questions.
• Post all questions about HW, topics, etc. to Piazza NOT email to instructors!
COURSE WEBSITE
https://markfloryan.github.io/advAlgo/
Contains most of the important info for the course:
- Homework
- Slides
- Syllabus
- Etc…
OTHER COURSE TOOLS
• Piazza: Use for course discussion among students and Tas
regarding course content
• Gradescope: For submitting homework and seeing your
grades, etc.
• Possible Google Forms when necessary…
• All of these will be linked from Collab and from course
website
GENERAL EXPECTATIONS
EXPECTATIONS
I view a course as a social contract between you and me. Here
is how I view the contract for this particular course:
What I am asking of you: What I will give in return:
- Lecture attendance is required - Not too much homework (six auto-
graded programming assignments)
- This classroom is a no
technology zone (except for - Limited lectures where I talk the
the projector, and certain whole time (only Mon. and Wed.)
Fridays) - Help solving the HW in class (more
later)
- On homework Fridays, work on
the problem and actively - Multiple Friday classes cancelled
engage - No Final Exam (small final project
instead)
- Plus all the normal expectations
(be respectful to your peers, - Quizzes will be short and simple,
etc.) relatively low stress (and only 2 of
them)
COURSE STRUCTURE / OVERVIEW
TEXTBOOK?
Most of the material comes sporadically from two different sources
1) CLRS Algorithms Book ( a couple of selected chapters )
2) https://cp-algorithms.com/ (website of curated algorithms)
TOPICS
• The course is divided into 7 high-level
topics
• 1: Fenwick Trees
• 2: Segment Trees
• 3: Linear Programming
• 4: Computational Geometry
• 5: Van Emde Boas Trees
• 6: Approximation Algorithms
• 7: Little Algorithms (Your final project)
HOMEWORK
• 6 Programming Challenges (Warm-up + 1 per first five
topics)
• Programming HW:
• Is written in Java, Python, or C++
• ICPC style programming challenges. Will give problem statement
and sample input output.
• You need to:
• Design and implement a working algorithm
• Come up with your own test cases if your code doesn’t work
• Make sure your code is fast enough / works on the biggest test cases
HOMEWORK SCHEDULE
• 6 Programming Challenges (Warm-up + 1 per first five
topics)
• Friday Before Due Date: Problem is revealed in class
and we spend class time working on the assignment. You
can freely discuss with one another during this time and I
will walk around and help.
• Wed. After That: Programming challenge is due
• Mon. After That: Everyone gets auto-extension of 5 days
if you need it. NO extensions for ANY REASON after that.
HOMEWORK GRADES
• Homeworks will be graded on a traditional percentage
scale:
• Out of 10 points (or similar)
• Based on the number of test cases that you pass
• Gradescope will give you this feedback
QUIZZES
• Short assessments of your knowledge across 2-3 modules
• Meant to ensure you have knowledge of the individual topics from
lecture to a sufficient degree.
• Usually about two pages worth of traditional exam material.
• Quiz Schedule as of right now:
• Fri., Mar. 7 Topics 1-3 from previous slide
• Fri., Apr. 18 Topics 4-5 from previous slide
FINAL EXAM
• No final exam in this class. Final project instead (See
next slide)
FINAL PROJECT
• In small groups, you will:
• Select a small(ish) algorithm to study and implement
• Develop a few slides to teach it
• Create a homework assignment that applies it (including the solution to the
problem)
• Teach it to the class (during last few lectures)
• I will get the algorithm choices to you by Spring Break with more
details.
• Due date is last few days of lecture (that is when presentations will
happen)
ATTENDANCE / PARTICIPATION
ATTENDANCE IS REQUIRED
• Why: Because I feel that your presence is how I will “prove” that
you have been exposed to the material. This justifies fewer
quizzes and fewer Friday classes.
• How: 20 names will be chosen at random from the roster each
class. If you are chosen and not present, you lose 2 percent on
final grade.
• When: All classes (including Friday homework lab days)
• Exceptions: None except UVa officially recognized religious
observances and SDAC accommodations
GRADING OVERVIEW
GRADING OVERVIEW
• Final letter grade will be a weighted average:
• Homework: 40 percent (split over about 6
homeworks)
• Quizzes: 30 percent (15 percent each)
• Attendance: 12 percent (2 percent off for each
miss)
• Final Project: 18 percent
I THINK THAT IS ALL…
• Any questions…