Coder Social home page Coder Social logo

unofficial-cs6515-faq's Introduction

The unofficial FAQ for CS6515

Who is this FAQ for? What's the target audience?

Anyone planning to take, or taking, CS6515 at Gatech.

Why this FAQ is needed?

This course can be frustrating and frustration usually increases after the grades come out for the first few homeworks and peaks after the grades are out for the first exam.

A lot of people will go to student forums to vent, and/or on Reddit. From what I could understand from the outside, the TA team is accustomed to this happening almost every semester. It is frustrating to watch this back and forth and difficult to understand especially mid-way through the course.

Pre-requisites for reading this FAQ.

I assume you know what CS6515 is about. If not, read these first

  1. Read the official CS6515 page, https://omscs.gatech.edu/cs-8803-ga-graduate-algorithms
  2. Read the wiki: http://omscs.wikidot.com/courses:cs6515
  3. Optionally read this: https://www.kevinwang.app/omscs/cs-6515-graduate-algorithms/

By now, you'd have gathered, that

  1. There are three exams (plus a cummulative final exam in Fall/Spring), several homeworks, a few projects, and several polls.
  2. Homework problems are similar to Exam problems.
  3. Polls are similar to Exam MCQ.
  4. Each exam usually has 2 problems worth 20 points each (like homeworks) and several MCQs worth 20 points.

With that in mind, I will go over things that trip people over ... after the exam 1 grades come out.

Flawed ideas you MAY find on Ed during courses of the semester or on (now erstwhile) OMSCentral

  1. HW and exam aren't related - They are!
  2. This course is not important for the industry - It is!
  3. Leetcoding for this course is not helpful - It is helpful!
  4. Exams should be dropped and the course should be made more 'project centric' - It's a perspective.

Why is this course so exam centric? How/Why topics of GA are selected?

Take any graduate-level algorithm course from any of the top schools and you'll find that it's mostly taught like CS6515 and the topic selection is also similar.

Here is the one from Cornell (https://www.cs.cornell.edu/courses/cs4820/2021sp/syllabus/), the grading is as follows.

  • Homework: from 20% to 40%
  • Prelim 1: from 0% to 30%
  • Prelim 2: from 0% to 45%
  • Final exam (cumulative): from 20% to 55%
  • Completion of course evaluation: 1%

So, the questions about grading, topics, etc are more of an academia thing than really a CS6515 issue. All those outbursts about I hate exams (so do I) are just rants, Georgia Tech can't help you there.

Is this stuff used in the industry

Your mileage may vary based on your industry and your job assignment but usually, it's more common than one might think. Also, this stuff is heavily tested in job interviews. You'd have to delve much deeper than CS6515 for those FAANG jobs.

What makes this course hard?

  1. Problem-solving skills / Intuition
  2. Answer format
  3. Grading inconsistency

(1) makes the course hard which I believe is a good thing, while (2) and (3) get talked about the most. (2) is there to avoid biased grading and so whole team of TAs provide an almost uniform scores. (3) I found this wasn't really an issue, some people claimed it was due to 'hidden' rubric.

Why does the course have to be this hard?

Why do job interviews have to be that hard? Hard is not the problem.

What makes this course stressful?

  1. People taking this as the last course to graduate.
  2. Grading inconsistency

Again, if you can take this course earlier, it will just remove the extra stress. Although it is difficult to get in before, yet it is not unheard of people taking GA as one of their earlier courses. You can always try each semester.

I'm not sure if there is even substantial grading inconsistency but even if there was I don't see how grading inconsistency can cause a large number of students to fail an exam. Sure some people on the fringe with the overall score may get left behind but again how many people. This topic generates disproportionate amount of noise.

For all three exams in Summers 2022, I found that the grading was accommodating and a lot of partial credit was given. To my mind, the only reason to flunk an exam would be to screw up on the problems by selecting a wrong approach.

Do I need to study mathematical proofs to succeed in this course?

So, the thing I guess every semester there are a few mathsies and they can relate the material to their background and they think ... a ha, proofs, you gotta learn proofs. Is that right yes? After all the field of Algorithms, and problem-solving has deep mathematical roots [1]. However, I'm a CS guy and anyone doing this course wants to switch over to CS. To my mind, improving your problem solving skills will give you most return on your time invested while mathematical proof not so much.

How to prepare? How to develop problem-solving skills?

See the prerequisites at https://omscs.gatech.edu/cs-8803-ga-graduate-algorithms and if possible learn those things and try to do related LCs if you can.TODO: I wish I could arrange some LC easy questions (like a blind 75) that would help build some intuition around problem-solving for the prerequisite topics.

Leetcode is a very effective way to develop problem-solving skills, although not the only way. The course expects you already have developed problem-solving/algorithmic skills - "In particular, they should be familiar with basic graph algorithms, including DFS, BFS, and Dijkstra's shortest path algorithm, and basic dynamic programming and divide and conquer algorithms".

The rest of the stuff you can learn but developing basic problem-solving skills while possible to do for someone really smart may put you under a lot of stress, and if you fail to do so, your venting would probably put lots of others in stress.

Other than that, you can search the topics on youtube, checkout https://www.geeksforgeeks.com, the resrouces around these topics are innumerable.

How to study in study groups?

In my experience, form a small study group that is committed and consistent. Make a fixed schedule instead of leaving it on chat when to meet next, for example, every Monday, Wednesday and Saturday is one such schedule. Treat these study groups as if you are the student as well as the tutor. Everyone in the group picks up a topic and teaches it to others in the group, is a way to go.

I don't have the prerequisites or time to prepare - can I get a B in CS6515?

People have done it before but I won't have been able to. For me, it took me several years to develop problem solving skills, a peer of mine at school developed better skills than me in a matter of months but a majority of people I met took several iterations, say a couple of years to develop basic problem-solving skills (usually those two years were during their undergrad years or over the first few years of their job).

For most people, I noticed, it's about solving a lot of problems, such that when you do face an unknown problem, it triggers some problem solving patterns in your brain. On the other hand, some very smart people could develop these patterns by solving a lot fewer problems.

Why is this FAQ, why are you doing this?

The people venting and all that puts the teaching staff on a very slippery slope - Cheap wasn't enough, now they want it easy. I want to row, if I can, in the opposite direction.

This course is perfect?

Well, the course could be improved and I suggest you write those suggestions during the course and put them in the CIOS. Ranting about it on student forums will not just waste everyone's time but also scare off upcoming student batches.

Ok, level with me what's wrong with this course, besides the CIOS BS?

Well, no one has tried to teach algorithms at scale before. No one has ever tried to teach such a diverse cohort of students and no one has ever faced so much public scrutiny before.

Your typical CS Grad student: 70K in student loans [2], 1 of 100 students in class. Whatever, will not piss all over Reddit why a course sucks, no reason to screw with the brand.

Given this unprecedented situation, I think maybe the teaching team could try new methods. Maybe try to decrease the complexity in answering (just use pseudo code for all types of Qs) and increase the complexity of the novel problems. This is easier said than done and I do think it's a very good course as is.

Are you a TA? Then why are you doing this?

No. I seriously think the noise pulls everyone down and may pull down the course eventually. I suggest, improve your problem-solving skills when you still have time, you'd be able to figure out the rest of the class as you go along.

I tried to get an MS 20 years ago but failed as I wasn't smart enough to get a full free ride and not loaded enough to pay my way. In any case, I'm extremely grateful for this opportunity and I want, in my small way, to follow Larry Bird's advice when he says, "I tell young players to leave the game better than they found it". My two cents.

How to contribute?

  • Correction about grammer/clarity etc are welcome.
  • Questions you expect me to answer are welcome, I'll add them in and answer them.
  • Any questions/answers, are also welcome but I will be able to add them in only if they match, to my mind, with the overall spirit of this FAQ.

External sources

unofficial-cs6515-faq's People

Contributors

solidcode79 avatar awaiskaleem avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.