Georgia Tech’s Deep Learning Course
As my 9th class as a graduate student at the Technology Institue of Georgia, I decided to take OMSCS CS7643 on Deep Learning. During this summer semester, I interviewed for and started a new role as a data engineering manager. If you’re also expecting to be working full-time during the week or going through a transition, this review may help you.
If you’re looking for a review of Machine Learning (CS7641) and Reinforcement Learning (CS7642), I wrote about these courses in a previous blog post.
Course Information
The goal of the course was to give students a better understanding of Deep learning, a sub-field of machine learning. In that sense, this course is wonderful. The lectures by the instructor were very well organized, taking students through the introduction and fundamental concepts discussing the underlying math and implementation details of deep learning. As a result, I came out of this course knowing more about deep learning than most ML graduates (before 2018) and practitioners in the space. The assignments in this course also get you more used to discussing and sharing the milestone findings that are deep learning viable in our world and work today.
The course consisted of assignments that I’ll discuss in greater detail.
Quiz (5) 20% — Submitted as a quiz via Canvas.
Assignments (3 for the summer, 4 for the regular semester): 55% — Based on Lecture Material programming assignments.
Discussions (3) 5% — Free form answers
Final Project 20% — Group project, open-ended.
Assignments Overview
The final project and assignments were given a 48-hour grace period, with no deductions or penalties for late submissions. Everything else had a hard deadline. And there was no curve as far as I know. I ended the semester with a 92.
The Quizzes
The quizzes were based on the lecture and reading material. You get two hours of proctored exam time (through Honorlock) to answer around 15–20 questions (true/false, select multiple, drop down, free form) related to the module. You get two sheets of blank white paper to take into the exam and a Desmos online calculator, nothing else. If you stay around the 70–80% range (at least one quiz in the semester that had a median score of 60), you’ll be fine, and you’re more than prepared for the programming assignments and course discussions. Take notes and be sure to pay attention to mathematical formulas. The earlier quizzes had a component involving computational problems. Some of the preparation material for the quizzes made by the course staff was useful in that sense. Course staff also provided an outline of the theoretical and conceptual material covered for the quiz. I would try to focus most of the time on concepts present in the programming assignments for effectiveness.
The Programming Assignments
In this 2021 summer semester, we had 3 assignments (Assignment 1, 2, and 4). Since it was a shorter semester, Assignment 3 was skipped. About 70 percent of the points came from Gradescope code submissions, so you’ll have most of the points just by completing the entire project. There wasn’t too much difficultly in the assignments because the code base is provided, and you fill out and complete the implementations necessary to create the deep learning models. If you’ve taken reinforcement learning, you’ll have come into some familiarity with Pytorch, which is most of the assignments. The report portion of these programming assignments involves filling out a slide deck. For answering the open-ended questions, I would try to write as if you’re completing the analysis portion of a research paper as the TAs seemed to be looking for that sort of analysis. I never lost more than 5 points for the writeups for context, so grading was pretty fair from my perspective.
The Discussions
The discussions were all based in Canvas and basically overlapped with programming assignment due dates. You’d be asked to pick one of two papers and share some thoughts around the presented material. A second portion of the points for this assignment involved responding to two student responses. The papers were great and relevant to the course and usage of deep learning. I found that I was sharing the research paper material with colleagues at work.
The Final Project
Finally, we have the final project, which asks students to form 2–4 student-sized groups to deliver a project alongside a written paper on any deep learning project. The course staff prep you throughout the semester to form said groups and to scope out the work. I ended up in a 2-person group, delivering about a 4-person sized group’s amount of work. I ended up with a 96% on the final project. The points and grading came from the write-up, so if you’re in a time crunch, move on getting the paper sorted out. You should also have no problems getting the grade if you’ve written papers for other machine learning courses in the past with little to no issues.
Time & Effort
Not too different from other courses, I found myself spending 35–45 hours a week on this course. I took this course during the summer, and it was a bit of a time crunch working on the assignments as there was always something due, even with the staff dropping one programming assignment. Expect on quiz due date weekends to be spending a lot of time reviewing and taking notes. There’s a lot of lecture material, and writing notes to remember concepts took beyond 30 hours.
If you’re too familiar with Pytorch or Python programming concepts, you’ll be ok, but doing poorly on the quizzes will probably mean you’ll be reviewing material for the programming assignment, which may take you beyond 30 hour weeks for assignment due dates. The writeups did not take too much time. I would set aside 1–2 hours for that. I spent 60 hours on the final project and took the week off, and I spent 2–3 hours for discussions while I was taking breaks working on the programming assignments.
Final Thoughts
This class is challenging! There’s so much material that’s been learned over the history of deep learning. The nice part is if you’re already familiar with the basics and intermediates of deep learning, you’ll also get to push yourself further with advanced topics (which weren’t covered through quizzes) through the final project and lecture material. I think this course is a must take if you see yourself in a machine learning capacity. You’ll also spend a lot of time learning about CNNs and how those work, which is great if you have a keen interest in computer vision.
That’s all for now. This coming semester I’ll be taking my final course, graduate algorithms. Let me know if this was helpful — best of luck to everyone out there taking this course.