Georgia Tech OMSCS: CS6515 Graduate Algorithms

Graduating with my Master of Science in Computer Science degree!

Course Content and Information

The goal of the course is to give students a graduate-level introduction to the design and analysis of algorithms. The main topics covered in the 16-week course include dynamic programming; divide and conquer, including FFT; randomized algorithms, including the RSA cryptosystem, graph algorithms; max-flow algorithms; linear programming; and NP-completeness.

Assignments Overview

Each assignment was due on Monday, 8 am Eastern time zone, no late submissions were accepted.

The Homework

The homework assignments included two problems that you’ll submit into Gradescope for grading by the course staff. Grading was straightforward and any deductions on the homework were meant to course correct any mistakes or bad habits for the exams. I never scored below an 85% on any of the assignments, given I had a solution that founded the examples shared by course staff.

Polls

Not much to share here, these were 1–2 question Canvas quizzes related to the course material. You are given two attempts per quiz, with unlimited time and access to materials. The highest score is taken, and the questions were fill in the blank, multiple-choice, select all that apply, or true/false.

Coding Assignments

We had three coding projects which included boilerplate drivers and tests to program knapsack, a search problem(with linear programming), and finding an MST using Kruskal’s algorithm. I would use Piazza, the course forum platform, to source additional test cases. This work is auto-graded so just be diligent with testing to get all the points.

Exams

The exams are the most significant part of your final grade, so you’ll feel pressure to review all the material. I spent an entire week studying to get through all the relevant and available course material, which not everyone will be able to do. If you had to prioritize, I would go over the TA notes, practice problems, and then homework in that order to study for the exam. If you are extremely short on time, skip the practice problems. If you have extra time review the office hours where they share poll content or host an exam prep.

The Final Exam

This final exam replaces the lowest of your exam score. If your score on the final exam lowers your grade, it will not count towards your final grade. After taking the third exam, students with an A in the course are not legible to take the final. I did not need to take the final exam, so I used this time to book work travel to AWS re:Invent. From what was shared by course staff, this exam is cumulative. I also noticed that the averages for the exam were consistent with the ranges I shared.

Time & Effort

I found myself spending at most 30 hours a week on this course. I took this during the fall semester and can imagine it might be higher for those taking it in the summer semester. The exams weeks were the most intensive and I worked hard to verify and practice my understanding of the course material prior to the exams.

Final Thoughts

Like every other course, this one was challenging! I’ve taken two other algorithms courses in my undergraduate program and I still learned quite a bit. I was pleasantly surprised with the course content, covering topics in Dynamic programming and RSA, which I find practical for anyone applying for SWE jobs at companies who are known to ask about these topics such as Facebook or Capital One.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Tiffany Jachja

Tiffany Jachja

Software Engineering Manager covering topics on software, personal development, and career.