CSE-6040 - Computing for Data Analytics

Search for a Course:

    Toggle to Select Spcific Semesters

    Reviews


    Semester:

    In this course you will not learn Python, you will learn how to survive, so if you have no experience in Python, you must prepare yourself before registering, otherwise you will fail all the exams.


    Semester:

    This was my first class in the OMSA program. I’m a practicing analytics professional and a daily python user, so take my ratings and review with that context. Overall I enjoyed the class and thought it was a nice way to transition back into academic coursework. With that said, if you’re a regular python user who’s trying to get the most you possibly can out of the program, you’re probably best served by opting out to take an extra elective.

    The class is roughly split into thirds, with the first third focused on learning base python, the second on data wrangling, and the third on implementing basic analytics algorithms. The math involved in the last third is not trivial, though you don’t ever need to do it by hand. Understanding of intro-level linear algebra and calc 1 is definitely necessary for an intuitive grasp of what’s happening.

    The homework notebooks are very well put together and engaging. The lecture videos are minimal, and often match text in the notebook cells verbatim. I didn’t mind this, as I thought continuously looking at the notebooks provided a more consistent experience. I did need to check the lecture videos more thoroughly for some of the latter math-heavy topics though. Professor Vuduc’s videos were clear and helpful. The TA’s also seemed to be quite responsive.

    Ultimately this is very much an intro class, as described. If you are confident in your knowledge of python, and you’re familiar with applying it to data analytics problems, then ~70% of the class will be review. I personally am happy to have an easy A and a smooth transition back into fitting coursework into my life. If you’re in a similar situation and want to learn as much new material as possible, then you should feel secure in opting out. At the very least I wish I had taken ISYE 6501 at the same time.


    Semester:

    Good intro class for someone new to Python. If you’re already familiar with it, this class will be a piece of cake. Even so, the material still felt engaging and the homework assignments were interesting.


    Semester:

    A very good intro to Python and some foundational data manipulation and analytic methods. Course material is interesting, homework assignments are well structured and leave lots of room for self exploration while not leaving you high and dry without any guidance, and tests are challenging but fair if you’ve been keeping up with the homework. A great course.


    Semester:

    Healthcare worker over here, with a moderate background in data analytics. Certainly no CS degree bearing computer wiz! The first midterm is the hardest. Once you take that and learn what failure looks like, you should be able to slap together enough time to do ALL the practice problems you can.

    How to get an A: The notebooks are helpful but if you want an A: do whatever it takes to complete the notebook, and spend the remainder of the effort/time into studying the practice exam material. They include around 20 past midterms/finals to review and those are your best possible bet into nailing an exam for full points. Do all of them and try to start from the oldest before doing the most recent and current exams. Additionally, make sure to save at least one exam to time yourself per problem. My recommended time breakdown for a 3-4 hr exam: Do the 1 pointers first (15 mins each), then 2 pointers (25 mins), and THEN attempt a 3 pointer. The 3 pointers are downright mean problems. It’s okay if you don’t fully grasp the notebook concepts as long as you learn how to recognize and defeat the problem in an exam setting, and the practice problems will get you there.

    Warning: Several students didn’t monitor their time per problem, hit a hard question, and ended up spending so much time into it that they outright failed the first exam. DON’T DO THIS! If it’s hard, skip to the next. Don’t get bogged down!

    May the Force be with you. Prepare to learn Python and have fun <3


    Semester:

    I came into this course with an engineering degree (non-CS/DS). The extent of math learned in the degree was multivariate calculus and linear algebra. I had also completed the three GTx edX courses in full (Intro to Python, Intro to OOP in Java, and Data Structures & Algorithms).

    I was comfortable with nested data structures in Python before starting the unit, that I had picked up through a few basic personal projects. I had never used NumPy or Pandas prior to this unit.

    I found CSE6040 challenging, but the difficulty depends on how much depth you apply to the material. Rote learning is subconsciously encouraged here, unfortunately. You can implement math via code without actually understanding what’s going on, and still do well in the program. Though I think this is short sighted and will lead to long term pain in other units that I plan to do (DO/CDA/HDDA/DL).

    Overall the material was descriptive, useful and practical. The SQL/Pandas/NumPy/SciPy experience is very handy and can be directly applied in the industry. Self-learning is required in some instances as the lecture videos may not cover things in enough depth, but this is anticipated in CS related material. The internet is hands down the best resource, and it’s beneficial to get into the hang of becoming a resourceful web-searcher.

    The exams were challenging, but I think OMSA suffers from grade inflation. Maybe I think this because “curves” are uncommon in my part of the world. I expected a graduate level course to be much more difficult… Some of the reviews below are either grossly over-estimating what they think they know, or have no prereq knowledge. Without trying to sound pretentious, toughen up. There are constant reminders of the importance of math and coding prerequisites.

    Overall, I scored 100%. I enjoyed the unit and have been applying what I’ve learned in personal projects. I hope later units in the program are more rigorous.


    Semester:

    Background: Economics undergrad where we used R for statistics, self-taught in Python (pandas) for a work project.

    I thought the course was fair in outlining course expectations and meeting them when it came to exam time. I prepared for this class by auditing the recommended intro to computing class at GT and drilling in Codewars. I got up to 5 kyu - not because I’m a spectacular programmer, but I tried to do at least 2 6-8 kyu problems everyday. Building up the muscle memory allowed me to focus on the linear algebra throughout the course. In this sense, the programming is a PRE-requisite. Can you imagine trying to do a cross-country roadtrip and learning how to drive on day 1?

    To me, what made the class challenging was the format of the exams. This is a credit to Dr. Vuduc and the TAs - even though the notebooks almost spoon-feed the analytics to you, the exams make you slow down and think critically through a problem. Reading them from top to bottom is also an amazing example of how to build an analytics project from start to finish, it already does a lot of the hard work for you.

    Overall, great class. It’s structured well, makes you think, and I’m a better analyst for it.


    Semester:

    After seeing some of the recent reviews for the Fall 2021 version of this class, I am kind of saddened that these people are graduate students (though this is likely part of the admissions process problem that allows many people in even if they do not meet the required prereqs…or they are lying on their applications, idk). Note I took this in Spring 2021 but I doubt much has changed.

    If you know how to program as expected for admittance to the program (once again RE: program prereqs) then this course is pretty simple. Understand that this is not a course that will teach you data structures or loops, if you do not know what an array is then you will likely find this course difficult.

    The course is essentially applying Python to a series of simple ML problems to get people comfortable with the thought process behind programming for ML or maybe to dust off some of the rust for people who know how to program but have not done so for some time, nothing more, nothing less.

    I think this course could be made more challenging/interesting but because of the mentioned complaints it probably errs on the easier side.


    Semester:

    It’s really frustrating to see some of the previous reviews because this is such as well structured class in how it approaches programmatic problem solving. The notebooks are also very well set up to give you a really nice way to tie the code and the underlying linear algebra together. I thought it was a great introduction to data analytics through the lens of computing.

    That said I really feel bad for my classmates who entered this course without thorough Python experience (or a CS degree, etc.). Please, please, please make sure you have done your linear algebra and Python pre-reqs (ideally, the ones offered by GT through edX) before taking this course.

    I think one of the biggest (and only) pitfalls of this class is that you don’t get much of a chance to try things out before implementing it in your HW notebooks. Constructing an algorithm is difficult for someone who is newer to programming because it’s difficult to “see” the full results of what you’re doing. The HWs are set up in a way that requires some really precise debugging skills, and I do agree that’s a little unfair to expect that from the get-go.

    But it is a graduate-level class (unlike ISYE 6501, in my opinion…), and you get free reign to browse the web during exams. I think, as long as you’ve done your due diligence with pre-reqs, this course is not asking for too much.


    Semester:

    Why this course is in a graduate program is beyond me. It held my hand more than my 9th grade English teacher did.

    Why students admitted to a prestigious university in an analytics program complain about the difficulty of this course is beyond me. If you can’t handle this course then you’re just not cut out for data science and analytics. Go back to Excel formulas.

    I must be the stupid one then I guess.


    Semester:

    Here are some hard truths to keep OMSA going.

    The class is focused 100% on people with a computational background. However, the program has three tracks.

    Well ISYE 6501 is focused on the Analytical track and MGT 6203/8803, while the A/C-trackers hate it, is focused on the Business track. We can’t cherry pick so why would you be able to?

    This class does NOT belong to the list of CORE classes. It must be, at best, an ELECTIVE for the COMPUTATIONAL track.

    This is an interdisciplinary degree, deal with it.

    But how many classes do you see where drop out rate is that high - last semester 27% withdrawal rate, semester before that 22%.

    Because they think the pre-requisites given by the program advisors are a joke. Therefore, they think they could easily skive by in the Bussy track without putting in the hard work after reading them in Reddit. To me, it’s better to get weeded out now than to get screwed with your group-mates at CSE 6242 and/or ISYE 6740.

    I work in Python for living.

    Every Tom, Dick and Harry could now easily claim in LinkedIn to work in Python for a living with import pandas as pd. This is obviously not sufficient for a class that brings you a Masters degree.

    Exams are created new for each semester, and the level, in my opinion varies too much.

    Erm, if it is the same exam, wouldn’t it be just copy and paste? Then what is there learning on the examination? It’s not pure regurgitation.

    TAs will not help you because of the “no debugging policy.”

    There’s a reason why employers look up to Georgia Tech for their graduates. Hopefully are able to work independently without being a nuisance to our line managers and bosses.


    Semester:

    Overall I enjoyed the class, but struggled with some of the concepts.

    My background: business undergrad 15 yrs ago, have worked in finance for >10 years. I program at work frequently, but not in python before this class. I took the Joyner python pre-req before taking this class (highly recommended).

    Pre-reqs: I had limited linear algebra knowledge going in, but had all other pre-reqs done.

    I found the material very well constructed in this class, and it was challenging to me. It was satisfying to complete all the material in the weekly notebooks and was overwhelming in the first few weeks. I found if you do research outside of the provided materials, and pay attention to the Piazza, the notebooks are all doable, and you should get >90% on each of them

    I really struggled in the first midterm, but the next 2 tests weren’t as bad. I had to work hard to get my B. In the last few notebooks of the class, I didn’t understand what they were getting at with all the complex linear algebra notes. Somehow I got full marks on the notebooks through looking on Piazza (I don’t know how in the last few weeks). It wasn’t very rewarding completing those last few notebooks, as I was just lost. I would recommend completing 1 or 2 linear algebra classes BEFORE starting this class (look for Gilbert Strand OCW from MIT for free stuff that is excellent). Due to family commitments, I was unable to do this beyond the first few weeks of a Linear Algebra class.

    The pandas/numpy/python material was excellent in the first 2/3 of the class, and this was the reason I enjoyed it. I honestly got nothing out of the class after midterm 2, and I doubt I’ll ever apply that material in my job. It was very abstract and theoretical.

    Overall though, my python/pandas/numpy skills are light years ahead of where they were before the class. I am already applying it in my career and am able to do complex tasks I couldn’t even attempt before. I gained very practical knowledge from this class.


    Semester:

    I work in Python for living. I hated this class. The level of homework and exam expectations have far exceeded my Python knowledge and expectations. According to omsa.ga you need an average 10 hours per week, I ended up putting more closer to 35. I didn’t get good exam grades and I was 4.0 student in this program so far (3 semesters including coding). Most of what the course teaches is really not practical, i.e. how to code what’s going on inside Python libraries. Yes, its good to know, but making this class a core in Analytics program and not even teaching more practical use of Python in Analytics didn’t make sense to me. Most Jupiter Notebooks are full of math formulas and long winded theory. You on your own most of the time some extra tutoring offered by GT undergrads. Professor only showed up in the beginning, and after midterm to share grades distribution. Also, exams are created new for each semester, and the level, in my opinion varies too much, some I finished in 30 mins, but in our semester I kept running out of 4 hours limit. The issue, as I see it, there are 2 types of people attending this class - those who already know Python and those, like me, who thought they knew Python or didn’t know well. The first group aces the course, thus pushing course averages to high As and Bs. But how many classes do you see where drop out rate is that high - last semester 27% withdrawal rate, semester before that 22%.


    Semester:

    Background: business background with some occasional Python experience. Good knowledge of SAP and other packaged solutions. Analytical track. Work full-time.

    Foundation: Education consists of three parts: instruction of a particular topic + practicing what you have been taught + being tested on what you have been taught and practiced. This class ultimately FAILED this definition and purpose. Why? Because it tests you on something that is not taught. Because you practice on something that you have not been taught. Finally, because there is no instruction for a student to succeed in this class. You are thrown into a strong current in an attempt that you learn to swim on your own and there is no safety or instruction. You are only told that the river consists of water with (in some cases) a strong current. This is my OPINION.

    Good things about this class:

    1. Very good Notebooks with clear practical implications.
    2. Tutors (AI/ML undergrads) do a great job most of the time by EXPLAINING and TEACHING some Python coding.

    Bad things about this class:

    1. The effort was substantially more than expected. I had to spend 30 hours per week. I have some Python experience while it was more of an occasional hobby to me. I also took intro IDX and Coursera courses.

    2. From the syllabus: it “assumes some prior programming experience (does not have to be Python) but asks you to review and extend that experience..”. It is a complete MISREPRESENTATION. The degree of difficulty is at least AVERAGE (if not higher). Indeed, it is not “some prior experience (does not have to be Python)”. Even an intro class on EDX and having some prior experience are not even close to what this class needs. The existing coding gap could not be overcome by going through extra online resources. To be prepared for this class, one must have at least 3-6 months of daily Python coding experience.
    3. The class is focused 100% on people with a computational background. However, the program has three tracks. There are two other tracks with people not having extensive coding experience. This class does NOT belong to the list of CORE classes. It must be, at best, an ELECTIVE for the COMPUTATIONAL track. A new Python class with a lower degree of difficulty could be a good replacement.
    4. Exercise descriptions in mid-terms and final exams were extremely verbose and vague, with a lot of information that is not needed. The verbosity made understanding what is required substantially more difficult. Instead of simply stating tasks, providing input and output examples, and briefly describing the conditions, the exercises tried to tell some abstract story. Frequently it took me more time to understand what is requested than to write a code—a very unfriendly writing style. Looking at a typical Technical Requirement Document should give the right idea about writing style.

    5. Frequently, instructors read the notebooks (code) on videos. No explanations. However, that does not help a student to understand the code (multiple examples in lectures: e.g., Regex). The code must be explained. I saw only one good explanation in the practical problem videos where an instructor explained a “group_by” use.
    6. I often felt that as a student, I was a nuisance to TAs. Typical response: “go and figure out from the context.” If I could, I would not have asked the question, would I? What is the point of education if there is no teaching?
    7. Vocareum environment is very poor. It must be replaced entirely or upgraded. The kernel keeps dying in 5 minutes or less. The final exam dev environment was unacceptable.

    8. Prerequisites:

    I solved all kuy6s exercises. Not in one minute but inside of 5 minutes. I looked at kuy5s, considered them too academic, and did not try them. As it turned out, I still had a large coding gap.

    The prerequisites should have been some tasks to extract the data from the list of lists into the list of dictionaries, dictionary of lists, or something similar. This is a comparable level of skills and complexity. I would have taken a boot camp if I had seen such a prerequisite. It is not the knowledge of the lists, dictionaries, dataframes, or arrays. It is an ability to use them using comprehensions for data extraction purposes.

    Recommendations to students:

    1. You need a non-beginner coding experience to get a C in this class. Unless Python coding is your daily job or you have a GOOD experience, postpone this class and take 1-2 boot camps. Think about this as if you have finished your Algebra class and jumped straight to Calculus BC. With no help: “you have to figure it out on your own from online resources.”
    2. Complete Notebooks at a 100% rate. It will not get you a C grade. But at least you will have some room for an error. It is doable because you will have at least one week to complete a weekly notebook. No time pressure as opposed to the exams with time limits.
    3. Lectures are useless except for the ones where some code for Notebooks is provided. You will not be tested on the material in lectures. Unfortunately, there are no live resources to help you with coding.
    4. Go through all past exams and practical problems. It is helpful, while not sufficient, to get a passing grade unless you understand the coding.
    5. Count only on yourself. TAs will not help you because of the “no debugging policy.”
    6. Use tutors. They are AI/ML undergrads. At least, they explain the code. Kudos to all Tutors!
    7. Manage inevitable frustration and stress if you are not a Python programmer already. Plan and prepare for both. Focus on data extraction methods to/from different data structures and comprehension (list, dataframe, list of lists, dictionaries, etc.). This will help but you must work hard on your own.
    8. Class only allows using Python libraries that are loaded into Vocareum. It is very different from working in other environments (e.g. Pycharm, Anaconda, Homebrew, etc.). The class is very focused on NOT using many already developed libraries (e.g. for KMeans) but rather developing them. Math foundation and some code will be provided. This is a COMPUTATIONAL class from a CS Department (CSE).

    I passed the class (barely). I learned a lot. I can take on practically any project now (I will still use StackOverflow in many cases and no time pressure:)).

    But I taught myself (with the help of some great Tutors-Undergrads). I could have taken the notebooks and have achieved the same result.


    Semester:

    The notebooks for this course are world-class, and they’re worth your $1000 or so. You will come out with a strong understanding of Python and a decent understanding of a range of data analysis tools.

    I came in with a lot of Python background and thus found the first 2/3 of the class quite easy. I had nearly 0 linear algebra background, though, and found the last 1/3 of the class very difficult as a result (despite that the code in the last set of notebooks is really simple… When in doubt, np.dot()). I would take both prereqs equally seriously, though the course is better positioned to teach you Python along the way than it is to teach you linear algebra concepts.


    Semester:

    It had been a few years since I’d coded in Python, and boy this class got the rust cleaned right off. From the beginning your python chops are tested and it doesn’t really let up.

    Overall, this class is really good at testing your ability to create compact solutions to different aspects of computational data. My favorite topics were pandas and numpy. While studying for the final exam, I really grew fond of each and I feel confident in using them outside of the class.

    The weekly notebooks usually weren’t that bad. I finished most in a day or two, working a few hours a day. And for me, I didn’t have too much trouble with the exams. Being able to confidently program in Python is key to these exams. There were a lot of people who failed the first midterm because their Python chops simply weren’t up to far.

    If you’re thinking about taking this class, make sure you are confident in your ability to use different data structures, loops, etc in Python. This class will test you.

    In summary, this was a great class and I feel like I learned a lot in a short amount of time. And this class also prepares you to tackle new subjects and tools and become confident in them rather quickly.

    Also, Dr. Vuduc is really funny.


    Semester:

    This is a pretty challenging class. I came in having completed the Intro to Python class and a solid background in engineering mathematics. I did not refresh on linear algebra or calculus based stats before the class, and I’ve really suffered because of that.

    The leap in this course from Joyner’s “Intro to Python” is significant. Not impossible, but a big leap. If you’re new to programming, go beyond the Joyner class and learn things like comprehensions, Lambdas, and many of the common functions like enumerate, map, etc.

    The harder part of this class is that this is really a “coding advanced concepts in linear algebra, calculus and stats” class. It is true that you don’t need to be super fluent in these topics to pass. I pass my homework every week. The problem for me is that while I’m passing, in the second half of this class I really have no idea what I am doing. It’s really painful and personally disappointing to put in all this time and not be getting great benefit out of this.

    If you want the most out of this class, you should REALLY, THOROUGHLY brush up on your differential calc, linear algebra and stats. You will building models of things like linear regression, logistic regression, principal component analysis, etc. and the math is RIGOROUS.

    Yes, you can futz through the weekly problems without understanding the math. To me, what is the point in that? I am unable at the end of this class to confidently apply Python to solving these kinds of problems independently. A huge miss on my part for sure. I was overconfident in my skills. Even as an engineer, I found the combination of the math skills very unusual and new to me, and super difficult to gain fluency with the pace of the class.

    Overall the class is fantastic. There is tremendous learning and insights here, and I do have a whole new view of how to look at data and the tools I can use to do that. I just can’t do it myself right now.

    Don’t sleep on the pre-req’s. Know your stuff before you come in. This is a tremendous opportunity in this class but you will for sure miss it if you’re not well prepared.


    Semester:

    I found this class easy to get an A even though I had not had any real exposure to python. I had previous coding experience though. This class is interesting and the tests are very well done. They are open book/internet which is like coding in the real world.


    Semester:

    Amazing class, very well designed, assignments helped prepare for exams. Structure was solid and material built on itself.


    Semester:

    I rated this course difficulty as ‘Medium’ because I found it very challenging in the beginning of the course, although it felt much easier after the first exam.

    This course is great for someone who is looking to improve their basic python skills. The exams focused on data transformations, which is a useful skill in any type of data analyst/science position.

    I had experience with using python as well as R and some other tools previously, but I still managed to learn about a new few relevant topics. I feel more confident saying that I am ‘proficient’ in python data transformations after this course.


    Semester:

    This could be a very difficult course if you do not know Python and/or some concepts of Linear Algebra. I prepped a little for this course and I used Python in my workplace, which helped a little. But before this course, I knew Python, after this, I KNEW Python. In my experience, it was my first time taking a course where the concepts learned were immediately applicable to the work I was doing. Unlike 6501 (the only course I had taken before this), where I learned the concepts, but other than the assignments, the real world application for me was fairly abstract (I’ve only really used trees and regression in my career so far), 6040 did not have that issue. The assignments were interesting, but the midterm and the final were not only engaging, but also extremely fun to work on.


    Semester:

    Phenomenal course. Excellent course materials. The Jupiter notebooks are fantastic.

    Do not fall behind or procrastinate on the homework. The homework are excellent preparation for the exams so do the most. Practice exams are provided of many past semesters. There is ample opportunity to be prepared here.


    Semester:

    My background: BA in business, entire professional career on the business analytics and leadership side. Came in with, let’s say, 3 months of Python experience, mostly from a boot camp experience, just before the class I took an audited version of Joyner’s 1301 (and really liked it). Despite all that I’d say I was hardly proficient.

    I’d say the workload to do the notebooks was 10 hours a week for me. The last 4 notebooks would be outliers on the higher end. If you are coming in w/o Python experience prepare to put a lot more time in upfront in order to be able to hold your own in the midterms and final. I felt the course speed was slow enough at the start to give you time to do that. Take advantage of it if you lack the prereq. That said in the beginning I was putting in 20 sometimes 30 hours a week to get up to speed on Python, that was my own doing for being lean on experience.

    The tests weren’t necessarily tricky but they did test your mastery, you’re given a week to take it so pick a time when you can dedicate 3-4 hours to be in it. Peak times leave the environment being buggy and in the first test the lag was notable and was adding delays of seconds at a time. While they’re open note/internet it’s a false sense of security that you don’t have to master algorithmic thinking and the code before sitting for it, you will drown if you don’t have a good command on how to solve questions with code. Maybe it’s my business background but I found the tests to be overly wordy and detailed. If I had more than 4 hours, perhaps I would have read and studied the verbiage more to truly appreciate the thought and nuance put into the exams but in the moment I just focused on answering questions and locking in points.

    The pros: Very generous tutoring sessions offered. Amounted to 4 hours M-Th with 4 different tutors so you can pick your own time/style. A few of them were really very helpful especially coming in relatively green. Eventually, a Sa and Su session were added. Very generous sample problem set released prior to the tests to help get reps in and get your mindset ready for the tests. I learned more from working on the practice problems than any of the actual lectures. The admin type communication from the TA’s and professor was top notch, they anticipate a lot of the questions/issues upfront and in test environments were very prompt on any exception communication. The official class slack channel was great, far better than piazza.

    The con’s: I, maybe foolishly, expected lectures to mimic how many credit hours the class is. I was underwhelmed that nearly every lecture was 30 mins in length and gave either enough info to confuse or a false sense of understanding. This leaves you on a largely open-ended additional learning quest. The stretch between the lectures and the ensuing notebooks just meant a lot of time grinding, trial and error, and googling to solve. I only attended a handful of office hours and really didn’t find much value in them due to the size and scattershot approach. Piazza was a quick turnoff (sans official/pinned communication from the TAs/Professor), piazza thread/question layout is clunky and on top of it the sheer volume of repeat or vague questions for things either answered in the pinned threads or found just by searching becomes too much noise for there to be value in it.

    At the end of it, I’m a bit neutral, I did well, I worked for it, but for the price and the lack of real teaching, I feel like I ultimately just paid to teach myself.


    Semester:

    • very high quality notebooks
    • interesting and up to date test tasks
    • the professor attended the office hours - it was very nice
    • the TA’s offered tutoring sessions (I never attended them), but the fact it was offered is very nice
    • I never attended a single office hour, but I did solve practice tasks for exam. It helped a lot. P.s. I am a bit shocked with my B grade, because I expected an A, but oh well. I was so confident in my knowledge in Python that I wanted to opt out of this course, but stayed thinking it would be an easy A for me. lol


    Semester:

    Superb! I wish all the other professors learn from Prof. Vuduc how to make teaching great again! I enjoyed every notebook given to us. All meticulously prepared.

    CONS: Some of the recorded videos are totally incomprehensible (even the close captioning can not decipher what that girl with Indian accent is saying) For a top notch University like GaTech, probably would be more efficient to hire a girl from local high schools to read the scripts. Really, it’s not that much to ask.


    Semester:

    Me: Analytics track with just ISYE 6501 under my belt. Have coding experience but not too much in Python.

    Overall a great class because of the Python skills you develop from the homework and exam. I came in with only about 15 hours of Python experience, and the learning curve was steep. But as the course goes on, things get much easier.

    The exams were actually pretty straightforward. They are basically more comprehensive homeworks, and the ability to test/submit/Google your code helps immensely. I honestly didn’t feel the need to study after Midterm 1 - they don’t try to trick you!

    Lecture videos were pretty unforgiving in terms of math and stats, but I found that minimally impacted my Python implementation because the Homeworks were explained so well. And TAs were not as responsive or helpful than expected.

    Bottom line: great course because of the homework and exams. But don’t expect anything stellar from the Professor or TAs; it’s definitely a couple steps below ISYE6501.


    Semester:

    The prerequisites are there for a reason. If you have never coded before, you are going to struggle and have to put in a lot of hours getting up to speed with Python. If you are strong at Python and weak in Math, you can probably pass the course. I am weak in the higher levels of Math, never have taken Linear Algebra. However, having a decent grasp of interpreting formulas and matrices helps.

    Lecture videos can be hit or miss depending on your preferences or the content that week. The homework assignments are top notch. The exams ( two mid-terms and a final) are equally as good. They both have you apply your skill set to real world challenges

    I potentially could have opted out of the course, but felt that this course could provide value based on the reviews here and the feedback from other students. They are right, I am walking away with having spent a semester of applying and developing skills to real world things. That is something that I feel is worth the $1,000 price tag.


    Semester:

    As a background, I had no programming experience aside from Professor Joyner’s Computing in Python course on edx. That course provided me with all the necessary knowledge I needed to get started on this one. The concepts taught and exam topics were quite interesting. The course overall was structured quite well. My only criticism is that some of the questions and answers for the homework can be quite vague in what they were looking for.

    Marks were very generous as 50% was from homework and 50% from the split between 2 mid-terms and a final.


    Semester:

    Personal preference, I did not care for this course and the teaching style. Didn’t work for me. Minimal videos/actual instruction or teaching. You will learn via completion of workbooks—and that’s it. I could do that on my own!

    Class: Notebooks were unnecessarily wordy and convoluted. They were annoying at times. The notebooks felt like lengthy riddles. It seemed like someone wasn’t able to distill what they were trying to convey. I didn’t care that the videos were done by students vs the actual professor; I would prefer to be taught by the actual professor/expert. (Also had a hard time understanding one of the students in the videos due to a strong accent.)

    Professor: My general impression of the professor was super arrogant, and I did not care for being called/referred to as “kids.”

    TAs: At times unable to help with certain questions (and really didn’t seem to care) and often cryptic in their responses (I am not looking for the answers, just to learn!)


    Semester:

    It’s just okay. From difficulty perspective, if you never coded before in your life, this is gonna be a very difficult class. If you use Python everyday for work, this is gonna be a breeze. I fall somewhere in the middle where I’m new to Python, but have used other programming languages. Exams are hard because of the timing, homeworks are harder in the beginning and get significantly easier past midterm 1. Overall, I had higher expectations than what the course delivered, but did end up learning a lot.

    Pros:

    1. Homework notebooks are very well designed, and really makes this class.
    2. Plenty of resources provided (Python tutoring, TA office hours)
    3. Class goes through almost all important areas of using Python for data analysis

    Cons:

    1. Lazy attitude: Videos are poorly edited, a lot of repeated audio that clearly were mistakes, there was even one part where the girl speaking made a strange sound in the middle of the video. Errors in slides should be easy to fix, but instead they post where the errors were in text instead of just fixing the slides. This is inexcusable for a core class that’s taken by thousands of people paying millions each year.
    2. Piazza response: TAs give poor responses or no responses at all. This is in contrast to ISYE 6501 where most questions had a response within a couple of hours. In this course however, many questions go unanswered for weeks.
    3. Exam timing: hard to beginner coders to do well under the time constraints, but given that it’s only 50% of your grade, its doable, but if you’re a beginner coder, you might have to be okay with a B just because programming fluency takes time to build up.
    4. Linear Algebra portions were explained very poorly, heavy on notation, very little intuition built.


    Semester:

    Posted multiple questions on Piazza that TAs ignored, even after following up.

    New concepts that you have to learn and use are introduced during TIMED exams.

    Homework assignments leading up to mid-term 2 were all a breeze, but MT2 was far harder than the assignments. Homework and test questions routinely blindsided myself (and others in my study group_ based on what was in the lectures. Final exam used a module that was not taught to us. We were given advanced notice, but had to teach ourselves to use it - which was a recurring theme throughout the class.


    Semester:

    This course is Python-first (& rightly so IMO). Those who ignored the coding pre-requisites when applying to GT will pay for it here. Not saying that it’s impossible to catch up – there are plenty of resources for beginners, but it can take 10-20 extra hours per week.

    But you definitely don’t need a CS bachelors or full-time programming job to ace CSE 6040. Being somewhere on the lousier side of “intermediate” Python proficiency is fine. It’s also fine to be rusty on linear algebra & stats – the course usually spells out the final formulae & all you have to do is code it out.

    Course content is really interesting & a good, broad introduction to data analytics, covering Python basics, regex, web scraping, data cleaning, visualization, SQL, regression, clustering, compression & PageRank. Assignments & exams themselves are really interesting & entertaining to solve. Because of the large cohort & basic content, questions on Piazza are usually answered relatively quickly by students themselves. TAs are usually helpful & Prof Vuduc himself also chips in.

    Many students underestimate the importance of attention to detail. Exam questions can be quite long & information-heavy, plus marking is completely automated, so your answer must match the model answer to the letter.

    Negative aspects: 1) It’s truly a pain to download all the course files off Vocareum. It’d be nice to have a downloading process that isn’t ~O(n), even if it’s made available for just a short window.

    2) There are some notebooks where we’re tasked to do certain calculations on multiple data sources, but the notebook doesn’t actually show what the data looks like beforehand, then you gotta dig it out from the test code & print it yourself. But this is a minority, & exams are designed much more carefully.

    3) Quite a few people experienced problems with the exam software. All TAs are based in the US so if you encounter bugs/crashes during exams & you live across the world, good luck with your stress levels. But when the teaching staff wake up they usually do make things better for you.

    4) Piazza’s interface is really not great.

    Comments:

    I’ve always found it odd that the lectures ask us to flip to the notebooks & solve one small part before flipping back to the lectures. For me & me only, it really breaks momentum to code a bit then stop, so when I get on a notebook I just complete the whole thing without watching the lectures at all, then go back to the lectures at x1.5 speed just to get the green tick.

    The suggested solutions aren’t always optimal, but to be fair the TAs were probably sparing themselves from additional questions on Piazza by just writing immediately understandable solutions.

    After every test, Piazza will be flooded with complaints about how difficult the course/exam was. These are opinions & they are wrong. For max GPA you only need 80% in tests, which ≈60% of the cohort accomplishes each exam. (Also there’s much less selection bias here because this course is a core module). So CSE 6040 is exceedingly doable if you’re not new to coding, & even so those beginners who were willing to put in the hours still saw big improvements eventually. Massive props to Prof Vuduc for standing ground against calls to make everything easier.


    Semester:

    I started the OMSA program fall 2020 and took this course with ISYE 6501. Never took Linear Algebra, took calculus about a generation ago, and was able to finish the course with 98/100 points.

    Material covers the basics of Python and then ramps up into some material that actually overlaps with ISYE 6501 (linear regression, logistic regression, PCA). I found Dr Vuduc to be highly engaging and genuinely interested in his material and also very active on the message boards, unlike a certain 6501 professor. The weekly homework assignments were not only (in most cases at least) good representations of solving “real world” problems but I found them to be truly fun. The coding is done in Vocareum and you will know if you got it right because the result will say “Passed”. They range in difficulty from “pretty easy” to “say what? I have no idea what this is asking or how to do it.” But perseverance will pay off.

    I think the key to my success in this course was having taken Dr Joyner’s intro Python class on edX a few weeks prior to this course. That class and this class do a great job of providing examples (again, very different from 6501 where Sokol dryly shows abstract formulas) and the way to “think” about problems Pythonically (I think that’s a word, sort of at least). So….if you’ve got no familiarity with Python and are wondering how this class is going to be, I think if you take Dr Joyner’s class you’ll be really well prepared, and I’m in no way shilling for GA Tech. I tried several different online (and even one in person) Python prep courses and his is far and away the best. Starting the course with a basic understanding of lists, dictionaries, loops, and functions will give you a solid foundation to build on.

    The exams pose very long questions that require you to really think. I enjoyed this and I thought the exams overall were very fair. My ONLY, and I do mean only, suggestion for improvement in the course is to address issues with ProctorTrack which needlessly added to the stress level on exams. Simple scrolling up and down was difficult to impossible and when you have to refer back to earlier parts of a long problem this is a much bigger deal than it seems. If not for this and some other quirks with ProctorTrack, I would say the time limits were fair. With it, I think another 30 min would have helped, just to take a breather for a few minutes here and there from the annoyances caused.

    On the whole, though, I really can’t say enough good things about Dr Vuduc and this course. I learned a lot and was inspired to learn more. Kudos to all involved!


    Semester:

    Background: Business/Econ undergrad, Finance/Accounting work exp

    I really enjoyed this course as someone without a formal CS background. I’ve taken a couple intro to programming courses in other languages before but this class was my first time dabbling in Python. Ended up with a 100% in the course.

    Course starts off with a nice bootcamp in Python and gradually grows from there, touching various topics including Pandas, Numpy, Scipy, and various ML models.

    Homeworks were actually fun and interesting to do and could be challenging at times especially without experience in linear algebra, but still doable. Exams felt fair given the time constraints and numerous people having issues with Proctortrack and Vocareum. The way it works is there’s X amount of points available but you don’t need all the points for 100%.

    My recommendation for people without a programming and/or math background prior to starting is at the very least take an intro to Python class (the GT edx courses, Runestone, any book, etc) and a linear algebra course (LAFF, OCW, etc). Doing that will prepare you for an A while also learning something useful.


    Semester:

    Solid course. Good intro to a lot of Python concepts and tools.

    The interactive nature of the programming notebooks was great. Really loved that the notebooks were 50% of the grading. I’m a mechanical engineering undergrad and I had a far better experience in this class than in my undergrad intro to programming class (I don’t think interactive notebooks like this existed 14 years ago…).

    Thought the exams were fair and scoring is fairly forgiving. If you’re struggling, they provide a mountain of practice problems along with solutions (these are exam problems from previous years). Just go through every single one and take notes. That way, if you get stuck on the exams (which are essentially open everything), you can check your notes and even pull up the solution to a similar practice question. Read the instructions in the exam notebooks very carefully and take your time. Be careful of special cases you’re asked to handle.

    I had essentially no prior programming experience before applying to OMSA beyond taking some Python MOOCs and having done some self-study, but I found the class to be very straightforward.

    If you’re coming in without much of a programming background, you can do well. However, I’d recommend trying to do some studying on your own before the class starts. Read through and understand both of the Jake Vanderplas books in the syllabus (A Whirlwind Tour of Python and Python for Data Science), which are both free and available online.


    Semester:

    My background: Physics major, Computer Science minor

    I am swiching from OMSA to OMSCS next semester, but I am really glad that I took CSE6040 this semester because it is only available in OMSA. This was my first course in OMS program, but it was a good introductory course for data analytics using Python. I took CSE6040 and ISYE6501 simultanesouly and could manage my time without any problems.

    This is a pure coding course and most of your grades come from notebooks. I learned a lot about Python (numpy, scipy, pandas) and it was worth taking it.

    • Notebooks: 50%
    • Midterm 1: 10%
    • Midterm 2: 15%
    • Final exam: 25%


    Semester:

    I took CSE 6040 as part of my first semester in the OMSA program, and I really enjoyed it. The lectures were (mostly) good, although I found the ones led by Professor Vuduc to be MUCH more informative and engaging than those led by the TA’s.

    I came into the course with basic “Hello World” capability in Pythong, and can now factor, compress, loop through, and reconstruct MATRICES of “Hello World”s! In all seriousness, the course definitely feels like it improved my familiarity with Python and Numpy.

    The exams aren’t terribly difficult, although I’ve used all the time allotted for them. If you don’t need to go to stack overflow every time you forget how to slice dictionaries or how referencing numpy arrays is different than lists, it’ll probably be faster for you.

    You can definitely get an A without REALLY understanding the underlying math in many of the later modules, but I suspect that will come back to bite you in later courses. After having gone through this course, I’m moved to do a more thorough refresher of linear algebra and calculus. There’s no way the math gets easier from here, and college was a long time ago.


    Semester:

    This is a very well prepared and well run class, and as one of the three introductory requirements it does a very good job at introducing the computer science part of the program.

    As many other reviews have noted, how you will feel about and perform in this class will depend heavily on your background. If you are fluent in python, work in or have a CS background or otherwise coming from that direction in the near-term past, this will likely be relatively straight-forward course, at least until the heavier math kicks in late in the syllabus. And this review really isn’t for you.

    If you are, like me and several other reviewers, many years out of school and from a more business-oriented background or your programming experience is limited or something you are trying to pick up now for the first time, this course will be extremely difficult and time-consuming, as it is no doubt intended to be. There is a reason this course ranks among all OMSA courses at the top of withdrawals and drops and among the bottom for B or above and overall average grades. A solid 40% will fail or struggle their way to Cs and Ds. This may read as a “3.3” in difficulty on this site, but in reality it is probably a 1.5-2.5 for those with a complementary background and 4-5 for those without.

    So take the pre-requisites seriously. The python background and knowledge is a must. I took CS1301x on edx immediately before this course as recommended and I have to say the course would have been impossible without it. As it was, it was still like taking Spanish I and then suddenly finding yourself suddenly discussing physics in Spanish. CS1301x wasn’t enough, and I spent a solid 20 hours a week struggling to stay afloat in the early “basic” (read: Spanish II-III) python notebooks before recovering a bit in the middle part of the syllabus (pandas) before getting completely lost again at the end when the heavy math kicked in (50 hours of Linear Algebra on Khan and other sources was also not enough).

    Exams are interesting and clearly well designed, and there really aren’t any gimme questions. Many will spend 30-60 minutes trying to read through the overall intro and premise and then staring at and trying to tackle even the first question. Many in the non-CS background group will spend 3 hours only to attempt and pass fewer than half (of ~7-8) questions on early midterms. For study tips, spend as much time as you can working through and repeating the first 50-60% of the available practice midterm problems and HW notebooks. Because of the 3 hour time limit, it is probably better to practice (and thus be stronger) at more of these front-end “easier” parts of problems than it is to work through fewer problems all the way to the end. It will help you actually get to later problems on the exam and achieve a higher score in the end.

    Still a good experience though, even if I do think they probably should have a separate (and slightly less difficult) version of the course for those on the OMSA side of the fence. It is a true test of “do I really want to be in this program?” for those with my type of background, as again it was no doubt intended to be. It does complement well the business and IYSE core courses, which I have also taken and found to be much more straightforward than this course. If IYSE6501 is how to drive the car, and MGT8803 is why and where you are driving, CSE6040 is building and servicing the engine and other components in the body shop.


    Semester:

    Background: Business undergraduate degree and currently working in analytics but not using Python a ton before this class.

    Overall, a great class in which you will likely learn a lot. This is especially true if you are not an expert in Python. On average, I would say that I spent around 15 to 20 hours a week on this class. Exam weeks I would spend 20 to 25 hours per week.

    This class is a programming class first; linear algebra, stats and calculus come second. In my opinion, it is far more important to be comfortable with Python or programming in general over linear algebra if you only have time to focus on one before taking the class. Speaking of linear algebra, you will be doing a fair amount of matrix manipulations in the second half of the class. If you have time to get a head start understanding NumPy and SciPy (broadcasting rules, distance norms, etc.) that can help you later.

    The exam format changed recently to a timed proctored exam. I felt like the exams were fair in their content and did allow enough time IF you understand the concepts in the lectures, HW assignments and practice problems. I feel as though the timed format of the exam is less forgiving to those who are not as comfortable programming, so if you fall into that category, be prepared to put in a few extra hours a week to do well.


    Semester:

    This was an excellent course. The most amazing thing about this course is how much the professor and the TAs care about this. Chris, the head TA was always extremely responsive and would encourage students with great tips before the exams.

    The course material exceeded my expectations. You are looking at amazingly written Jupyter notebooks that breaks down black box concepts into easily digestable portions every step of the way.

    While the exams may seem stressful now that it is a timed proctored examination, the grading is generous enough that you can do well as long as you are willing to put in the work into the assignments and the practice problems that come before the examinations.


    Semester:

    This course was great. The notebooks are fantastic, and I enjoyed the lecture videos as well.

    With regard to math: prior to the course I recommend brushing up on Linear Algebra. You could get away with reviewing Statistics and Calculus on the fly during the course. The math introduced can at times feel overwhelming but ultimately you only need to understand the concepts introduced to do the homeworks and succeed in the exams.

    If you have little or no programming experience I strongly recommend taking a beginner course in Python. I think most of the folks who struggled came into the course without programming experience.

    Early on in the course, there are optional notebooks offered - I strongly recommend that you do these. Also, do all of the practice exam problems.

    If you fall behind, it would be difficult to catch up. Stay on top of things.

    I spent more time on the course (15 hrs/week) early on, then no more than 10 hrs/week as it progressed. During the exam review periods I spent upwards of 20 hrs/week.

    They provide you every opportunity to succeed in this course. I learned a lot.


    Semester:

    This is a great course and my favorite so far in the program. I had zero python experience at the beginning of the course and now after completing it I feel comfortable working with python and already applied many of the algorithms I learned in the course in my work/research. The course is very well structured and the notebooks were a lot of fun to go through. While challenging and very time consuming, the grading system of this class makes it possible to not only get a high score, but to even score 100%. The professor was great and engaging, and the TA’s were very responsive.

    On the other hand, I have two criticisms. First, the lecture videos were not very well designed and the difference between their quality and that of the notebook was huge. I ended up not even watching the lectures and going straight to the notebooks (except for Dr. Vuduc lectures on machine learning algorithms during the last few weeks that I found extremely interesting). The second issue might be a natural consequence of having a very large foundation class (almost 1000 students) with different backgrounds. Piazza forum receives tens of questions each day with many of which are repeated, which makes it impossible to follow or to participate in any constructive discussion other than how to solve some homework problems.

    That being said, it is very important to know in advance that the reviews and amount of work that reviewers post depend a lot on their background. Although I started the class with no python experience, I was experienced with C++/JAVA/MATLAB/R and therefore, managed to catch up quickly. I also had a decent knowledge in linear algebra that made my life a lot easier during the last 3-4 weeks. However, if you never had programming experience and lacked the basics in linear algebra, expect to put a lot more work that might exceed 20 hours per week and might even exceed 30 hours before exams. On the other hand, if you are experienced in python and have a strong background in programming, then you might find this class disappointing with not much new stuff to learn, and might consider opting out unless you want to have some refresher with fun and challenging exercises.


    Semester:

    The lectures are great for the first part of the course. The second exam is much more difficult than the first relative to the supporting homework. You had better come in with a solid foundation of Linear Algebra, if you don’t you will suffer a bit.

    You can think of this question as similar to an introductory programmign class. You learn a bit, then get asked to solve a problem which can be solved with the tools you’ve learned about so far.

    I came in with practically zero python experience. But I had done some coding in Java, VBA, and C++.

    Having said that, there were some people with almost no programmign experience. I made videos to explain concepts for a few friends in the class after exams and some homework that didn’t rely on mastering (what were to me) newer concepts. Here are the vids I made for particular questions.

    https://www.youtube.com/playlist?list=PL-M9Z8ZGzTtfaolsXzdSVFXeRpQKP6MFw

    Good luck, I would use the Piazza more than Slack.

    The course was open note, open internet on exams, although we did have a few people get caught posting questions online (don’t be that person) so I don’t know if that will cause the to change the practice. We did get much less time to work on exams after that happened but could still use the internet to work out solutions.


    Semester:

    Context: I took CSE 6040 and ISYE 6051 together as my first classes in OMSA. Took my last calculus class decades ago and my linear algebra was a bit spotty going in. My programming background (from school) was all Java, not Python or R other than a short MOOC course, and I got a bit confused trying to keep Python and R straight in my head while learning to program in both.

    Course breakdown 50% homework (Python notebooks) / 50% exams

    Overall a great introduction to data-science related programming work. A reasonable amount of work but productive and I learned a lot.

    Pros: Generally I found the course to be well organized and the Vocareum platform, though troublesome at times, was well suited to online learning.

    Cons: Software tools are about a bit out of date: mid-2019 rather than current stable releases. Keep that in mind when Googling how to do something with Pandas, Numpy, etc. Also, the code in some of the assignments and some of the solutions are dated using deprecated functionality that won’t be supported going forward - which should be corrected. Autograders at times were annoying. In a couple cases, they used random test data generators that would at times trigger edge cases that your code didn’t account for. But then when you try to troubleshoot - everything is working. Also in an assignment with 5 dependent tasks, tests for the first 4 tasks passes and only the 5th fails but the problem is really with that first, because a failure condition is only tested in that last test case - pointing you unnecessarily in the wrong direction.

    Content: The course was dominated with data wrangling tasks, taking raw data, parsing HTML & JSON, data cleaning and restructuring, etc. to get it ready for analysis. So there was a fair amount of regex and lots of manipulation of Pandas and Numpy data structures. The course also included hand coding of some basic analytical models like k-means clustering and video compression.

    Similar to ISYE 6501, CSE 6040 is a survey class - touching on all the different areas of programming that a data scientist is likely to get into - giving you a good general sense of the landscape knowing that there is a lot more depth out there. I felt like I got a solid introduction.

    About 10-15% of the homework assignments and exam prep involved calculus and linear algebra, which were somewhat challenging given my rusty/spotty math skills, but doable. NOTE - none of the math heavy stuff made it into the timed exams.

    Homework took time but all doable. The final was much easier than the other exams and homework, and curved.


    Semester:

    I think the way the class is laid out makes a lot of sense and I appreciated that the HW was such a heavy component of the class. It was helpful in developing programmatic thinking more than just learning python.

    The professor is clear and understanding and provides a lot of resources for you to think through questions on your own.


    Semester:

    Backgroud:

    • Master in Management
    • Learned Python on my own and use it a bit at work.

    Videos

    Very well prepared lecture vidoes, they are packed with information. I am a bit weak at math, so I had to watch the videos about different machine learning models several times. A bit of supplimentary Youtube videos also helped me to understand the lectures.

    Homework

    Loved all the notebooks, they are prepared with great effort, and in my opinion they are the best part of this course.

    I usually spent 2/3 hours on each notebook, since there is almost always one notebook to hand in each week, I failed to catch the deadline a few times.

    Exams

    I personally think the exams are easier than the notebooks, and 4 hours are a very reasonable time for the exams. I finished them well before the time is over.

    Also, if you have done all the homeworks, revision shouldn’t take too much time.

    Piazza

    TAs and Prof. are all very active on Piazza. I always find useful information on Piazza.

    On the other hand, students sometimes ask same questions without searching for their question beforehand, useful post/questions get burried this way. Piazza also doesn’t have super sophisticated searching funtion, which makes it harder.

    What could be improved

    Each notebook / exam breaks down a big problem into small chuncks, and students are asked to tackle each small questions. Of course this is the way to go, but I also believe students don’t learn the most important skill - how to break a big problem into addressable small ones - this way.

    That being said, I am overall very satisfied with the course!


    Semester:

    Background: BS Mathematics, CS minor

    Didn’t know python before, but have taken 5 programming courses with Java, SQL, Matlab. So the biggest learning curve for me was getting savvy with the data structures in python.

    If you have test anxiety or any sort of learning disability and you have documentation to prove it, then I would HIGHLY recommend that you investigate getting a time extension on the tests before the semester starts. I’m not sure if it is possible with the OMSA, but I’d look into it

    To put it into perspective, you have 7 days to complete weekly coding assignments. You then have 3 hours to complete tests that are objectively more difficult than the home works (and yes I understand that it is a grad program at an top 10 engineering school). The tests require a fair amount of reading to understand what is being asked of you conceptually and then you must design the code to solve the problems all within 3 hours. I minored in computer science and I haven’t made a B on either mid term in this course and I do, in fact, know the material and spent about 20 hours a week preparing. I have a friend who took one CS course in undergrad who has made A’s on both midterms. It just depends on how you perform under pressure.

    If you crumble under pressure and/or take time to write code solutions (me and me), then the tests will be difficult for you. It is especially frustrating after learning previous semester classes had an entire weekend to complete the tests.

    Like I said, I’m in the minority here because it seems most people in the course make A’s. Just my .02 cents.

    Other than the tests, the material and topics are very cool and makes you feel like a fancy data analyst.


    Semester:

    I liked the course overall.

    The content starts with basic python programming exercises continues into using pandas/numpy for data manipulation and finally ends with you implementing a ton of machine learning algorithms from scratch using mostly linear algebra libraries. The class itself is split into: homework, optional prep work and exams.

    Overall style is explanation of a problem followed by a short coding section that has embedded pass/fail tests that add to the final score. You can run the tests as many times as you want and only the latest score is counted. It kind of feels like paint by numbers for Data Science (lots of explanations of what to do etc). All assignments, prep and exams work this way.

    Assignments: 4-5 coding exercises weekly Prep: 10 4-5 coding exercise sections before the exam Exam: 4-5 4-5 coding exercise sections over a 48-hour time-span Final: 2 sets over 12 hours after someone was caught cheating on the mid-term.

    Lot of people whining about the format change, because they can do all problems in 20+ hours, but aren’t strong enough at programming to figure things out in 12 hours. I just think they didn’t prep enough pre-requisites is all.

    The amount of effort this class will take you will be highly correlated with your familiarity with programming with it becoming much easier if you have Python experience. You need to know logarithms, derivatives and basic Linear Algebra operations or be able to look them up for certain problems. Though the later won’t completely kill you if you don’t know.

    Expect 6-8 hours a week if you have coding experience (including optional content) and 12-20+ hours if you do not (not including all optional content). Content is fun overall and class is interesting enough.


    Semester:

    The class was good up until people cheated on the second midterm (posting full questions on stackoverflow and chegg), which led to the instructor changing the final exam format from a 36-hour unproctored exam to 2 separate 3-hour proctored exams. I couldn’t finish the second portion of the final exam within the allotted time. My grade went from low A (91 ish) to high C (79 ish). I was not the only person this happened to. There were many Piazza posts from active, smart students that suffered the same issue on the same problem (final exam portion 2). The instructor said he would round up the grades, but I guess that only happened for some students.

    Overall, the change in the exam format was super detrimental for me. I am a pretty decent Python programmer, but a slow problem solver, so the short exam format killed me. I took this course knowing that the longer exam format would be really good for my style, and it sucked to have it changed after 2/3 of the class was completed. With more time, I would have been able to figure out the problem or at least a good portion of it. And since the final was worth 25% of the grade, not be able to complete the second portion of the final obviously impacted my grade negatively.

    I put in a lot of time and work throughout the semester to keep my grade high, and my ultimate grade was not representative of my abilities or the effort and grade I had going into the final.

    If the exam format stays the same, I do not recommend taking this class until you are really fast at problem solving.


    Semester:

    I really enjoyed this course. The notebooks, practice exams, and exams, which are all jupyter notebooks, are very well designed. Each notebook is pretty much like a lesson in itself and walks you through various concepts while challenging you to implement what you learned into python code. There aren’t very many lectures in this course, and I think I actually liked that part. I had a decent amount of python/pandas/numpy exposure coming in so the material wasn’t super difficult. The most difficult part of the course was understanding the various mathematical derivations that are thrown at you, but you don’t need to fully understand them to complete the python implementations. Overall I think this course really beefs up your python/computing skills through a lot of practice.


    Semester:

    This was a very strong course in terms of what it teaches you, albeit in the form of lab notebooks rather than lectures. Although I have used Python over a year now, learning from Udemy/EDX/HackerRank/work, I still felt the course was challenging. I ended up doing very well, but it absolutely forced you to think on how to solve problems from a CS perspective. I definitely recommend to do some python coding before starting the course. This course seems to assume you’ve done python programming at a minimum of CS 101 level before starting.

    I thoroughly enjoyed the questions posed and the challenges in order to solve them. At first, it was review for me, but then it got into more challenging concepts, mainly the linear algebra related portions, pandas, and essentially using your brainpower to create a well known algorithm as they “attempt” to walk you through it. I definitely feel I will need to brush up on Linear Algebra before my future courses, thanks CSE 6040 for pointing out a weak point in my data science knowledge! I also thoroughly enjoyed how it was based off of real life, where you are allowed to use google/stack overflow while completing the exams.

    Keep in mind that the midterms were complete marathons. The first took me a solid 9-10 hours, the second around 13 hours. The final was changed because a student was caught cheating, so he made it timed with ProctorTrack, 6 hours. I have read that some students haven’t been able to finish the final within the time limit; he typically gave 36 hours to complete each midterm to not penalize students with lesser programming experience. But, for the final, he ABSOLUTELY made the problems easier than the previous midterms, or homeworks for that matter.

    The course was graded as the following: 50% for homeworks and remaining 50% on the three exams. The first two exams were heavily curved, students typically did well. We haven’t been given the distribution for the final yet. Finally, the TA’s were extremely strong for this course, just like for ISYE 6501. I highly highly recommend pairing the course with ISYE 6501; it showed me that I lean more towards CS rather than statistics for the data science/analytics realm. I’ll now be looking forward to DVA/ML4T/CDA/AI courses! I also like how this course is more of the math testing style; you either know it or you don’t. The ISYE courses seem to be more vague in their testing style, trying to trick you with wordings for questions by giving multiple choice exams.


    Semester:

    This class was taught by Rich Vuduc and I was incredibly impressed with the approach. I’m not a great programmer, but have a decent amount of experience with Python, and had some weeks where the homework seemed very easy and some weeks where it was a bit more challenging. In generally, the homeworks were test-driven, meaning that you had to satisfy the autograder in a jupyter notebook in order to get full points.

    The great thing about that is that you always know how well you’re doing, and you always know when you’re making a mistake.

    Tips:

    1. Learn to love the tester. It’s your friend and you can use those code snippets to become a better coder.
    2. Ignore opinionated people in Piazza. There is always one who will try to make you feel stupid or give wrong answers. Stay confident and ignore those people.
    3. Get on Slack, make friends, and ask for help from the people who are helpful. We all have our strengths and we are better when we collaborate.

    The slight downside is that some people can game the system a bit, which is effectively cheating, but that didn’t impact my learning or course experience at all.

    The lectures are helpful and straightforward, and the content consists of things I actually do on a day to day basis in my work as a data scientist.

    I had no complaints about this course other than the occasional ‘brilliant jerk’ brogrammer in Piazza. The course itself was fantastic.


    Semester:

    This was my first time coding in Python (and my previous programming experience was in C++, oh, say a dozen-odd years ago). Coming into this course, the first few weeks are really a huge ramp up in the language. The professor drops in sometimes to the online TA office hours (though those are not well organized for a class of this size). The midterms are manageable, the notebooks take a lot of work but are fun in a way (started looking forward to the dopamine hit on ‘Passed!’ much like Pavlov’s dogs). I am glad I took this after Intro to Analytics Modeling since there is no straight connection to a model - for instance there is a notebook on association rules, but no clear cut on how that applies to a business case solution.


    Semester:

    I liked this class, for a non programmer I really enjoyed it! The exams were tough (long and challenging) The homeworks were very interesting, I strongly recommend this course


    Semester:

    I loved this course. The way that it leverages Jupyter Notebooks is brilliant. The exams were tough, and a bit grueling (full day code marathons!), but I loved every second of them. They were like giant puzzles, and the whole course setup kept me so motivated and engaged. This is a great first course to take for OMSA.


    Semester:

    tl;dr – Prior programming experience (doesnt have to be Python) is HIGHLY recommended. Homework is guided & pretty simple most of the time. Exams are RIDICULOUS… Given 24/36/36 hours for MT1/MT2/Final… spent 6.5/13/16 hours respectively on those exams.

    Class is 100% focused on your ability to code and problem-solve — very limited math & statistics required.

    Piazza was a great resource – Lots of whining – but the TAs were active and other students were pretty good about helping each other via resource links.

    There is a bit of statistics sugar-coated in the lessons on the fact that you’re learning statistical models, how to implement them, and what they are great at doing. However you’re going to be so caught up in how to program them correctly, that you will miss the point of the statistical model was delivering because you’ll just be so happy you’ve finally made a pretty graph that the auto-grader accepted.

    Exams weren’t too difficult in the grand-scheme of things – There are practice exams of like 12 example problems while the exams themselves were 5 problems. It’s just the fact that you’ll be thrown into a situation where you probably haven’t been taught the same exact thing, but something similar. You’re tasked with going to google to figure out how to do this new, slightly different, method to achieve the same goals. That or, sometimes they had some fun and told you to program a game of sorts then run some statistics on it —> This is why it took so long for the exams. Lots of “What do i need to do?” into “Lemme google that” into “How do i use this correctly?” into “Wait, i how do i work with this new pandas object that it created”.

    All in all, I had basic programming background in VBA and I got over 100% in the class because the professor gave extra credit due to mishaps in MT2 and Final where the exam wasn’t fully prepared at the point of delivery.


    Semester:

    I really enjoyed how CSE 6040 was formatted. In spring ‘19 the format was as follows- 50% weekly homework workbooks, 10% Midterm 1, 15% Midterm 2, and 25% for the Final exam.

    The best part of this class is that it’s run the way you would code in a professional environment. The homeworks are Jupyter notebooks where it tells you to write a function or code that does x, and then there is an evaluation cell that tells you if you got it right. This lets you work through problems without fear of getting things wrong and getting a 0. Homeworks should be an easy 100% (50% of grade).

    I personally found the exams to be pretty straightforward, although many complained about the length and difficulty. MT1 was a 24 hour exam period, of which I used ~6 hours. MT2 was a 36 hour exam, of which, I used ~9 hours. The final was also 36 hours, and I used about 10, but didn’t finish (just did a bit more than enough to get an “A”).

    This is a pretty easy class to get an “A” in, especially if you’ve done any sort of programming before. I have several years of on and off coding experience, mostly Matlab and a bit of python/SQL.

    Workload was super manageable, I spent <2 hours per week on homework, with the exam weeks taking a bit more time (as stated above).


    Semester:

    Prior to this course I used Python professionally maybe once in a blue moon (primarily an R and SQL developer here). It so happened nicely that as I was wrapping up this course, I had the opportunity to re-write alot of our reporting code in Python and the pandas module in particular saved me quite a bit of time and.

    Compared to every course I’ve taken in my undergrad, this was an absolute walk in the park. They literally walk you through every hw notebook by teaching you how to fish via the videos, then take you to a barrel full of fish called the Vocareneum environment where you go and practice fishing. I really felt like I learned python programming, but felt like I faked learning all the statistics and only have a surface level knowledge still.

    As long as you are already a developer accustomed to looking things up on stackoverflow and debugging via print statements, even if you had no prior python experience you will do very very well in this course and breeze through it.

    Highly recommend as a first course. I would also strongly recommend you buddy up with a friend to do homework assignments. When your stuck >30 mins on any one cell, you probably read the instructions wrong and if you ping your buddy they’ll let you know right away where you messed up instead of being stuck in tunnel vision.

    Due to the academic honor code, I unfortunately did not use this same strategy for the exams. The only reason this course averaged 5 hours a week instead of 2, was that each exam of the 3 exams took me 6 to 8 hours of hard core coding to finish.

    Most of the time was because of some small step in the instruction that I missed until the 3rd iteration of me reading over the prompt. That said, the final was brutal and one of the questions was largely unrelated to any of the materials on the notebooks (much more like leetcode/ hackerrank problems). Still unsure why the professors decided to add that one on. Fortunately, prior to the final exam, I had a 100, so I decided to go to sleep after I completed enough of the exam to get an A and skipped those hard questions.


    Semester:

    This was my first course at GA Tech for the OMS in data analytics. Even though the assignments and exams were hard (my programming was rustic as it had been almost 15 years since I wrote a program), I thoroughly enjoyed this course. The TAs were extremely helpful and the Piazza and Slack channels were a life saver. My only gripe is that the solutions to the finals were not provided. Me and several others asked for this several times, but got radio silence. Since the final was so challenging, I wanted to see to solutions to the problems that I could not complete. Hopefully we will get it at some point


    Semester:

    I thought it was a fairly useful class. I came into it with little practical Python experience, but I did understand the syntax and the basics (I took the EdX intro class and studied a bit before starting OMSA). I was also proficient in some other languages. The class would be pretty time consuming if you did not have any experience.

    I watched all of the lectures and did the homework on Sundays. I would say the homeworks (notebooks) took 2-6 hours to finish each week. I usually depended on other people working ahead and posting questions on Piazza. Tests were VERY time consuming. I spent ~10 hours straight on every test. That being said, you can work as long as you want to get the grade that you want. It’s definitely possible to get a 100% in the class. In fact, one complaint I have is that the exams were curved too much. Over 70% of the class got an A on the last exam because of the curve.

    Overall, I thought the iterative homework and test format was very conducive to learning Python quickly. The tests are a bit unreasonable in length considering most people have full time jobs, travel, have families, etc. Definitely a good intro course.


    Semester:

    I believe I took this the first semester it was run by Dr. Turnitsa, not Dr. Vuduc but I’m not 100% sure.

    I generally agree with the other reviews - it’s a lot of useful knowledge, if you go in knowing literally no Python it’s probable doable, but difficult (I wouldn’t know, though I wasn’t an expert I came in with some level of comfort), the online lectures aren’t too helpful. The last few weeks, which were the math behind various models like regression and k-means, are interesting but I see no practical reason you’d ever need to know this since there are Python modules you can use instead.

    The first exam was quite easy IMO, the second one more difficult, the third one insanely difficult. There was a generous amount of bonus points on all the exams, but the issue is that the bonus points weren’t always announced in advance, making it harder to manage your time, figuring you only need X grade on an exam so no need to stress yourself further, etc. The practice exams that were posted also had little overlap in terms of what you can study/practice, especially for the final exam where perhaps not coincidentally, the class average was about a 50% before bonus points.

    All-in-all I enjoyed the class but think it could use some fine-tuning with how class logistics are communicated, and especially the online lectures. By week 5 or 6, I don’t think I even looked at the them.


    Semester:

    The course was very challenging as it helps you to build a strong and deep foundation in python. The exams are endurance tests usually takes about 10 - 12 hours to complete. Recommend taking prerequisite courses in python before venturing this course.


    Semester:

    Took class as a Micromasters student. I had not coded, in any language, for almost a decade+, and only had a few days of elementary Python before taking the class. Though I wasn’t a proficient coder, I had taken computer science classes in undergrad and the theoretical knowledge helped me quite a bit, especially when it came to data structures and basic coding philosophies.

    All the homework and tests were Autograded, which I really appreciated because I could work on them on my schedule and submit as many times as I wanted.

    The tests were extremely difficult, and ramped up each time. For the second test, I required the full 36 hours to get a 100%. I didn’t attempt a 100% on the final, but it was extremely difficult.

    I greatly enjoyed the data sets we got to play with and learning the various algorithms and techniques. This class was a great intro to the program. I highly recommend participating on the Piazza board and the Slack message board, the TA’s and the other students were really helpful.


    Semester:

    6040 is absolutely great course, I loved it and wish there were something like that later in the program. It felt relatively easy, and I managed to get my 103% A without coding work experience (only some classes back at the college, 10+ years ago)

    Areas for improvements:

    • there should be no optional or ungraded content, or free points
    • video lectures should not show solutions for homework, instead ideas should be provided at ‘whiteboard level’ , otherwise we learn little
    • ‘pandas’ and ‘re’ modules could be explained more in-depth in video lectures

    Recommendations for the students:

    • take CS1301X on EdX to prepare, this is absolutely the best online course I’ve seen so far, with great structure and lots of coding problems to master the basics
    • google often, stackoverflow.com is your best friend for homework and exams
    • with pandas, use ‘numpy.vectorize’ instead of ‘apply’
    • don’t worry about Midterms and Final, everything is doable, though sometimes quite intense


    Semester:

    This course gave a really good introduction to using Python for analytics and some of the mathematics behind the standard models. It also spent some weeks going over key programming concepts/packages that everyone needs to know such as: regex, SQL, numpy and pandas. The weekly homework assignments were fairly straightforward and based on the weeks lectures. However, those who are not confident in Python may struggle with them.

    The lecture videos varied in quality with the worse ones just watching someone code up an assignment with no explanation of the reasoning. The better ones were more high level and explained the key concept and mathematics behind it, leaving the code to the student in the assignment. The students who really struggled with the content were those with weak linear algebra knowledge. Without sufficient understanding of matrix algebra you don’t really understand why calculations are done and the coding up of assignments is difficult.

    Finally the exams which were 2 midterms and one final. The first midterm was 24 hours and the second midterm and final were 36 hours. There was ample time to complete them and your answers were graded with near-instant feedback. Oddly, for the second midterm and final you were given bonus points of 5 marks and 7 marks respectively. Personally, I would have preferred if they had just removed that number of marks from the assessment as I think asking students (who have jobs and children) to take 12 hours (or more for some) to take a test is too much.

    All in all, the course teaches you a lot and is well run. The TAs and professor were generous with marks and tried to accommodate student needs. For example, they extended the period of time to take the exams and released assignments well ahead of their deadline. You will struggle if you don’t know Python or linear algebra. Otherwise, you should be fine.


    Semester:

    The course was a great way to force you to learn Python especially numpy and pandas. Lectures were pre-recorded videos that basically walk you through the homework. Weekly homework wasn’t too difficult. Being newer to Python I didn’t find it difficult, but I used Google a lot.

    Tests were a different story. 24-36 hour exam windows and I used as much time as I could. Questions were not always clear, likely you couldn’t use built-in Python packages and typically the information was new and you hadn’t studied it previously.

    Office hours were available, I never used them. After sitting in one with 100+ people I didn’t see the value of waiting and hoping we could get to my question. Forums were useful when you need it. Slack was very helpful!

    Overall the class was good. If you haven’t used Python before take an intro class and be prepared to put in the time and effort to get a good grade. Start homework early and try to stay ahead. You’ll be happy you did when the exams come around.


    Semester:

    The course is a good way to force you to work through some data concepts using Python. If you have minimal programming experience, you’re going to have a bad time.

    My #1 recommendation is to avoid Piazza as many students who were not prepared will complain and whine that the course is too hard. They will also bad mouth the instructor and TAs because they can’t get their code to work and it is somehow someone else’s fault.

    The exams are a little ridiculous in my opinion and had time frames of 24, 36, and 36 hours. I enjoy programming, and I was not looking forward to the exams.

    Overall, it’s a decent course and you have to take it anyway, so just embrace it. :)


    Semester:

    The course operates on a race to * letter grade, where every point you gain puts you one step closer to your final grade. Course consists of 13 projects that familiarize yourself with various useful data types, libraries, and ML algorithms, and tests take the form of LONG timed projects. All grading is automated and you can keep making attempts until the time runs out. I went in with an AS in Comp Sci (so approximate skill level of a 3rd year undergrad in CS) and had no problems handling any of the tasks. Most weekly assignment took me less than 7 hours to complete, though the exams were an all day ordeal. Plan accordingly.


    Semester:

    This is a great class if you have a decent background in Python but are still not very experience as a programmer. The class covers a lot of concepts, and the assessment style is extremely fair. There were some complaints about the length and difficulty of exams, which were held over a 24-36 hour window, but honestly they were open book and quite reasonable, and were not intended to take the full window to complete.


    Semester:

    I knew virtually no python coming in, but through putting in 15+ hours a week, was able to keep up, and eventually get ahead. If you’re diligent with scheduling and inducing genuine interest in the topics, not terrible. The tests were difficult; they took me 12-14 hours each. I thought they were a lot of fun though.


    Semester:

    I took this along with ISYE6501 and MGT6754 in the first semester of my OMSA program. It was more time-consuming than the other courses because I was new to python although I had experience with other computer languages. I don’t have a computer science background but took some classes when I was in school many years ago.

    The course was an excellent introduction to python, and the homework assignments using Jupyter notebooks were very effective. All problems were broken into small parts and auto-grading helped students make progress step by step. The videos and other reference materials were helpful. As with any programming, a lot of time was spent debugging. Some problems require a good understanding of math, e.g. linear algebra, and some computational algorithms. I could see how non-CS students having more difficulty sometimes.

    The two midterms and final exams were open book but timed (24 hours). They were auto-graded just like the homework. Some of the questions were difficult but most of them were reasonable if you did all the homework. For students like me, 24 hours was barely enough. I used as much of the allowed time while still getting some sleep. It helped that the homework was 50% of the final grade. So it wasn’t too hard to get a good grade.

    The professor and TAs were helpful in answering questions. Given the fact that the homework and exams were graded by computer, the TAs had more time helping students learn.

    The course covered enough topics and really prepared me for the later courses that used python.


    Semester:

    First half was easy if you’re familiar with Python. Second half ramped up pretty quickly analysis techniques.


    Semester:

    If you have experience with Python, this class will not be too difficult. I took this class with ISYE 6501 and felt the workload for both courses was manageable, but I do have Python experience.

    The exams are lengthy and difficult but if you’ve completed all the homeworks and put in the time to do the practice problems before the exams, you can do pretty well.


    Semester:

    Background: Took 1 semester of college calculus, one semester of linear algebra from a non-STEM program outside USA over 18 plus years ago. Took some Python training from Coursera prior to entering the program.

    Phase 1: I went through stressful time catching up with Python programming. My Coursera training was not adequate for the course. In spite of that, I handled the 1st mid-term exam fine, with minimal Googling.

    Phase 2: The homework appeared easier than phase 1, but still time consuming. The 2nd mid-term exam was surprisingly harder. I should have gone deeper in Numpy and Pandas groupby details.

    Phase 3: The programming part of the homework was on the same level as phase 2, but the math part was killing me, and the final exam was way harder than the homework.

    Overall: I like this class a lot. The homework assignments were beautifully designed, and helped a student learn by doing it. The lecture videos were concise and focused, and the professor was super articulate. I did almost zilch participation in the forum discussions, online office hours, or the practice exams. So much time was spent on studying and catching up on every aspect of the class. Tremendous amount of effort was put in, but the experience was rewarding.


    Semester:

    Really enjoyed this class. A lot of people reported having issues with this course’s difficulty level, but I can’t agree with that assessment. By the end of this course you will have a very solid base in Python and its analytics libraries. There is exposure to concepts in linear algebra or calculus, but let’s be honest, it’s not like we were writing out proofs or needed to do anything by hand. You needed to understand the applied concepts, enough to be able to recreate them in a tested setting.

    If anything, this course tested your cleverness in thinking algorithmically. You needed to think about how to do something, using both what you know now and what you can find out doing some basic research. These are way more important skills than the shallow amount of linear algebra we get exposed to.

    The prof was amazing, on piazza all the time and answering most questions within hours. TAs were courteous and helpful. The tests and homeworks did a great job of giving you enough rails to get you started. Rarely did I look at something and think “I’m not sure what this means or where to start finding out”.


    Semester:

    I came to this course with three years of Python programming having used the language for data science projects (using pandas, Numpy…). Consequently, 6040 was easy for me.

    However, based on the grade distribution and students comments I’ve seen, there were two kinds of people taking the course: those who have a strong programming experience (or who are naturally gifted), and those with little to no experience. So, a lot of people from the latter group were complaining about the exams (that should be seen as “big homework,” and not “real exam”) being too difficult. I understand those complaints since there is a big discrepancy between the lectures’ content and what is being asked during the exams.

    So, here is my advice if you don’t have a good programming background: go do courses on platforms such as DataQuest and DataCamp (I recommend DataQuest). Make sure you cover topics such as pandas, Numpy and SQL. Then, when you take this course, you’ll have a good time.

    I estimate that spending about 40 hours learning/practicing Python before this course would be enough. If you can, try to use Python at work (e.g., use pandas instead of Excel).


    Semester:

    This class was good in the sense of teaching some python skills. However questions where confusing and the lack of material made this course harder than it needed to be.


    Semester:

    I really enjoyed this class. Coming into it, I had some basic Python experience, and I’d say it likely doubled by the end of the course. People without ANY programming experience at all may struggle - take the prereq seriously. You’ll also want to feel comfortable reading math notation. I found the notebooks and even the tests enjoyable - there was no better feeling than getting it right and seeing (Passed!) pop up in Vocareum. The lectures weren’t super helpful, nor were office hours - this is the weak point of the class. Some lectures gave answers to parts of the homework, so if you take it that way, they’re “useful,” but they were too concise to give a full understanding. Much of it was sorted out through trial and error. Regardless, I’m really glad to have taken this class and feel so much better about my Python skills and understanding of some key algorithms.


    Semester:

    This was a great course! You can tell a lot of thought went into the planning and execution. The homework and exams were difficult (homeworks took me 5-8 hours per week and exams took me 10 hours on average) but I think they were the best part. They didn’t force you to memorize anything. You needed to do real work - interpret the problem, research, plan a solution, debug, etc. You could submit as many times as you wanted within the time restriction. This is why the homework and exams took so long but, if you were willing to put in the work, you can get an A. It was really satisfying to put that much time into an exam (midterm 2 took me the longest: 14.5 hours) and finish with 100.

    One negative thing - I didn’t find the lectures added a ton of value. They were typically about 30 minutes long each week but they were just there to set up the basics of the homework. The homework is what really taught me.

    Still, this was an excellent course. I wish more courses were taught this way.


    Semester:

    This is my favorite class I have ever taken. I had very little python experience before and now I feel extremely comfortable and confident with the language and various packages within it. There is one jupyter notebook per week, which is very manageable. Lecture videos are 20-25 minutes per week, and can be a little weak at times.

    One thing people on Piazza tended to complain about was the length of the exams, and how much harder exam problems were, compared to homework problems. I loved the exam format (24 or 36 hour time limit - with 4-6 jupyter notebooks to complete). To me, it was the best way to learn and apply the course material.

    If you work hard (and google a lot), you will succeed in this class.


    Semester:

    I took this course my first semester in the GT OMSA program. My background is in chemical engineering, and I hadn’t done much coding prior to joining OMSA. I listened to the advice of others and went through CS 1301x prior to taking this class, which was extremely helpful. If you aren’t up on your Python, you need to do this. The course does a great job introducing you to the Python structures & tools that are used in data science.

    The tests are the hardest part (24-36 hour windows) and I spent 12+ hours on the first two. If you are better at coding, it will be faster. Stack Overflow and you will develop a close relationship during the exams. Homeworks are not too bad, but the exams are harder, so try to do some reading on the side and actually understand the concepts of the homework rather than just finishing the notebooks. If you put in consistent hours throughout the semester, the class is do-able. Be mentally prepared to put the time in.


    Semester:

    I took this course with ISYE 6501 for my first semester at Georgia Tech. I read that the two ‘nested’ together well and I agree with that analysis. CSE 6040 is much more programming heavy than ISYE 6501 and I recommend having taking at least one class in Python before trying this one (although some students picked it up on the fly). Topics covered include Pandas, Numpy, MySQL, basic machine learning, Regex, and Binary Encoding among a few other topics.

    Tests are entirely open note but are basically I giant homework set with a 24 (sometimes 36) hour deadline. I recommend trying the practice exam questions to study.

    Vuduc is a great lecturer but the biggest weakness of the course are the videos where the teaching assistants just read off the homework problems.


    Semester:

    I would not recommend taking this course first if your programming skills are rusty. It was 10+ years for me and it took me a few weeks to catch up. Lectures were good, but definitely not enough to be able to do homework. I had to spend a lot of time on internet and piazza. I found supplemental programming sites (like datacamp) to be pretty helpful. I thought the topics covered were pretty wide and really interesting. I feel like i could have gotten even more out of the course if i was better at python coming in. the first two Tests took me a long time to complete (you have a 24 hr window and I spent almost all of it), but by the final I think they found a good balance of exam length and difficulty.


    Semester:

    Good introductory course for the OMS A program. Provides the foundations for coding in Python and some introductory concepts in data science.


    Semester:

    I like this class quite a bit as a reintroduction to python. I would be a tough class for those with little programming experience, but if you have a moderate amount you should be able to do well. The assignments are very manageable. I think i averaged around 4 or 5 hours per assignment. The test can take a long long time. I spent 8 hours on one of the midterms. The way both the assignments and tests are structure, you know when you have an answer wrong and you can adjust your answer as may times as you want to get it right. If you want a perfect grade, its only a matter of spending the time.


    Semester:

    This course was really good. The production value is high; the lectures are polished; and the assignments are well-thought. That said, the assignments are long and can get really tedious if you don’t clearly see the path forward. One exam took me 21 of the 24 hours available, and I spent 11 of those hours actually working the problems. I did my undergrad at GT and consider myself fairly well-prepared for this type of coursework, but I can see why folks who did not come from a STEM undergrad experience struggle here. My only other complaint is that the lectures by the TAs were far less polished and clear than those by the professor. But, compared to some other courses in the program, the material is still good. “Learning by doing” is definitely the method here.


    Semester:

    Overall this was a decent course. The lectures were pretty weak in my opinion, some weeks it was just a TA giving you the answers to the homework. The homework assignments were pretty solid and the format of using Jupyter notebooks was really nice.

    The worst part of the course were the exams. They were quite lengthy and exhausting. It felt like the homework didn’t prepare you at all for the exam so there was a lot of trying to research and learn stuff during the exam which adds to the amount of time needed to complete it. That said, the final was relatively easy compared to the midterms so that was nice. One thing that I didn’t figure out until the final that might have been helpful for the midterms: instead of spending an entire work day (8 hours) on the exam, work 4 hours one night, then go to sleep, work 4 hours the next day. The only down side to this is that if you need all 24 hours to complete the exam, you waste some up front (note, the longest I spent on an exam was only 13 hours or so).


    Semester:

    BLUF: This course is intro to Python and it goes really well with ISYE 6501.

    My biggest qualm with the course was the length of the midterms. For my class, our 2 midterms each took an average of upwards of 15 hours (we got 24 hours, but it was still quite absurd). Surprisingly, the final only took me 6, even though we got 36 hours to complete it. The exams and homeworks were open book/note with no online proctoring. The only restriction was that we couldn’t ask our classmates for help, so I must say that despite my complaint, I can’t really say anything was unfair.

    I took the course together with ISYE 6501 (Introduction to analytics modeling) and it was kind of neat because we would code up a lot of the algorithms discussed in the modeling course.

    This course is comprised of lectures and Jupyter notebooks. Lectures are well designed as well as homeworks (You get 1 per week and each one took me a few hours to complete with the tv running in the background, nothing crazy). As far as autograders go, I’ve had much worse experiences than the one in this course. Learning to debug is extremely important, and you will certainly gain some experience in this course.

    In terms of course content, this is what I imagine is taught at the Python 101 level, with a sprinkle of harder topics. Many of the weeks went something like: “Here is an analytics technique/algorithm. Code it in Python. Python already has a built-in function for it, this is how that call goes…” This is actually a pretty good way to learn, because you essentially teach yourself the way that some of Python’s functions work by coding them manually thus giving yourself a good introduction to Python, programming in general and the analytics models.


    Semester:

    This is excellent course with well thought structure, assignments and exams. Everything (assignments and exams) was done in same online grading system in jupyter-notebook, so there won’t be any logistical issues during exams, since basically exams are just like assignment with 24hours-36hours time limit.

    This course use python language, and despite my many years experience using python on daily basis, I still learned a lot in this course, so yeah its absolutely highly recommended course regardless of your experience.

    For new to python students, this course will teach you from basic, but it getting tough quickly, so its better to gain some familiarity with numpy/pandas lib in python beforehand.


    Semester:

    Fantastic class - it’s basically an intro to python with an emphasis on coding efficiently and coding for data sets. While its primary focus was more on the underlying mechanism of commonly-used packages in python, the course was nonetheless effective when getting students to think about what was required to succeed in the space.

    As stated before, during the Spring 2018 semester there was a massive disconnect between the homework assignments and the exams. There were three exams, all of which were open-source barring collaboration with people (but open-google, short of posting your ask on stackoverflow). However, the exams consisted basically of 6 homework assignments for you to complete in as much detail as possible. Exam 1 (24 hour max) was quite reasonable as the first few homeworks were very easy and were more on the programming, but Exams 2 (24 hour max) and 3 (36 hour max) ended up being harder variants of the homework problems to be done in a shorter period of time. I still aced the class, but the exams were definitely marathons (Exam 1: 4-6 hours, Exam 2: 18 hours, Exam 3: 10 hours, but only did enough to get 80% since I’d already guaranteed my A). Future iterations of this course will probably see updated exam logistics.

    Nonetheless, nobody said it would be easy, and all things considered it was a deep enough course to justify an intro to programming for data science at the graduate level. For this student at least, a lot was learned.

    Background: Proficient in coding in other languages such as MATLAB, SQL, some other object oriented programming languages, took Regression/6501 prior to or during this course, strong calculus/linear algebra/diff eq background from engineering days.


    Semester:

    This course is okay. It gave me some exposures to Python but I don’t feel the exposure is in-depth enough. I would actually prefer to have a proper introductory course into Python itself, rather than applications from the start. As I encounter business problems in work, the need for a solid foundation on Python would become obvious.


    Semester:

    Great class! Has been my favorite so far. The videos are excellent and the HW and exams are fair and a fun challenge.


    Semester:

    Great class, I loved it! I don’t have a programming background, so although I had taken GT’s Python Introduction (1301) and Introduction to Modelling (6501) before, this course was a challenge. I spent an average of 15 hours per week over the 15 week period on this course (including time spent on the exams, which is significant). Grading is very straightforward, with a graded homework assignment almost every week (13 in total); these count for 3-4% each, or 50% in total. The homeworks are beginner friendly, because you have an unlimited number of submissions. Midterm 1 counts 10%, Midterm 2 15%, and 25% for the Final. This term MT2 was the most challenging of all. They gave us a 24h window for MT1 and MT2, and even 36 hours for the Final; if you are a slow coder, you will use most of these time windows. After some negative feedback for MT2, my impression was that the Final was slightly easier.

    So this course was hard, but I had a tremendous learning curve, I am amazed by all the stuff I know how to do with Python now, and I feel well prepared for the coming CS classes in this programme. I’m sad it’s over!


    Semester:

    This is class is only difficult due to the insane exams. If you come into this class with some experience programming in Python the homework assignments should be pretty easy. The video are well done but many of them are just walkthroughs of your homework assignment that week. The exams are insane. For the two mid terms you are given 24 hours to complete the exam. However, unless you are a very experienced programmer, you can expect to spend between 12 and 15 hours of work to complete each mid term (based on the results of slack polls). Again, if you are python pro, you’ll finish the exams in like 6 hours, but if you’re not, plan on clearing your schedule for 24 hours because you will most likely need the time. The mid term was also like this although we were given 36 hours to complete the exam instead of 24. An improvement to be sure but still a very stressful and intense 36 hours. To give some perspective, someone pointed out in Slack, 18 hours is the length of the California Bar Exam administered over 3 days. It’s not out of the realm of possibility that you’ll spend that much time on each exams over one 24 hours period.


    Semester:

    I found this course to be very enjoyable in general. The lectures were a bit hit or miss, but the assignments were usually good about guiding you through the problems. I came into the course with some programming experience but only very little exposure to Python, and I thought it was a great introduction to Python including Pandas, NumPy and SciPy. The later assignments focused more on mathematical theory and concepts useful to data analytics such as optimization problems and algorithms, which were very math-y but also very helpful to reinforce my understanding of the workings behind these methods. It helped that there was a refresher on the linear algebra and calculus included as part of the instructional materials.

    The fact that the assignments are autograded with unlimited submissions means you have as much time as you need to test your solutions and get as much credit as you can. The assignments are released well ahead of time so if you need to get a head start and give yourself some time off between assignments that’s totally feasible. Some assignments were much easier than others, so I’d say the avg workload was about 4-8 hours per week.

    The exams worked much the same way homework did, open note/internet with no proctoring, but were much longer than the typical homework assignment and with a time limit (both midterms were 24 hrs, the final was 36 hrs). I spent about 5-8 hours with each of the three exams, but I know other students struggled with the amount of time they needed to complete the tests. The professor and TAs were responsive and made some changes to the exam format to help accommodate the students who had issues though, which I appreciated even though it didn’t impact me much.

    Overall, highly recommended course. As someone who had a programming background, I think it’s still worthwhile to take unless you’re already very comfortable using Python, Pandas, NumPy and SciPy.


    Semester:

    Others in this thread have mostly said everything there is to say. A quick summary of my experience:

    Good

    • Multiple Submissions: So good for learning. I was more willing to try things without help knowing that if I couldn’t figure it out alone I could get help online later.
    • Can work ahead: So important for an online class for people with full-time jobs.
    • Midterm 1 and Final: Both were definitely challenging, but if you put in the work, it was certainly possible to get a 100%.

    OK:

    • Lectures: Sometimes didn’t go into enough detail for me. But overall, the lectures combined with supplementary googling usually had me in a comfortable place with the material.

    Bad:

    • Midterm 2: The drama surrounding this is well known. We had a 24-hour time limit, and many (if not most) required the enitrety of that time. I took 18 hours straight including coding from sunset to sun up to finish with an 84%. I think this was a miscalculation by the staff, and I think they learned from the experience and it probably won’t happen again.

    My Background:

    • 22 years old, soon to be married, graduated undergrad in May 2017.
    • Coding Experience: Minimal (light experience with non-Python coding languages)
    • Statistics Experience: Moderate (4 undergrad level stat courses)
    • Math Experience: Moderate (peaked at 2nd year Calculus)


    Semester:

    I’ll not repeat what others have said regarding the Spring 2018 offering.

    Infinite Submits One of the great features of this course was the auto-grader feature that allowed for an “infinite” number of submits, taking the highest grade. This completely negated the pressure to “get it right the first time” and fostered a “let’s just try this” workflow that is very similar to how “real” programming gets done. Contrast this with other courses that have a “first submit == only submit.”

    Honor Code Homeworks were open-everything, including some conceptual collaboration. Exams were open-note, open-course-materials, open-Stack-Overflow, everything but collaboration with other students. Again, contrast this with the use of ProctorTrack® in other classes that wouldn’t even let you you leave your chair during an exam.

    Jupyter Notebooks Just an example of how well thought out everything in this course was, in terms of “ramping up,” Jupyter notebooks were used via Vocareum for both homework and exams. Downloading of notebooks for local (or other cloud) use was permitted. I now see “Jupyter notebooks” offered everywhere online, and Jupyter Lab was easily integrated into my personal workflow, as well.

    CSE 6040 Slack Was the primary means of sanity and mutual support. Much better than the Piazza mess.

    Pairing with ISYE 6501 The two courses nested nicely. Early on, learning R and Python simultaneously was a bit hectic, but as ISYE 6501 used Python pulp for an optimization homework, and I was able to merge both learnings using reticulate and rpy2. Also, as 6501 backed off the coding and entered the “case study” phase, 6040 entered the “application to models” phase, implementing models that I learned in the beginning of 6501.


    Semester:

    I came into this class with very minimal coding experience (just blitzed through about 2/3rds of 1301 in the month before this class began). As a result, I found this course to be very difficult. Many people in the class had significant programming experience, so probably didn’t have as much difficulty. But even for these, there were challenges.

    As has been mentioned before, you have a weekly jupyter notebook with roughly ten exercises to complete. These aren’t too bad and one can often google their way through them. In fact, for all of the homeworks, I only missed one exercise. In the end, my homework score was 99.5%+. Homework counts for 50% of the grade.

    The workbooks are released two weeks before they are due. So get yourself a bit ahead in the beginning and make a habit of turning them in early. Much less stress that way, for me at least. It was common to see people on Slack, Sunday night before homework is due, asking questions about the first exercise. Not sure what they were thinking.

    The exams, though, were a different animal. For those, you’d get about twice as many exercises (usually 20-25) and could be significantly harder than the homework. AND, you had 24 hours (for the midterms) and 36 hours for the final to complete them. This resulted in marathon work sessions for most of us. In fact, in a poll we created in Slack, the average time spent on midterm 2 was about 17 hours. In my case, I did absolutely terribly on them, but, with the homework counting for so much of the grade, I was able to at least pass the class with a mediocre grade.

    If you have significant coding background (or a strong natural aptitude) you’ll be fine. But if you’re like me, get ready for a lot of work and stress.

    Indeed, my biggest criticism is that I’ve never been in a class where there was such a disconnect between homework and exams in terms of performance. Usually, if one is doing well with homework, one should likewise expect to succeed on the tests. That is definitely not the case here.

    Good luck


    Semester:

    The other reviews got it right. Very Python heavy. I had a couple introductory courses under my belt. One from Coursera’s Python for Analytics and the other was Udacity’s Data Science course. That was my strong point going in. My weak point was definitely the mathematics and linear algebra. I would definitely recommend learning the basics of matrix multiplication and getting comfortable with that. The tests are long. People have been averaging between 10-16 hours actively working, but most people are making A’s on them and there are only 3 of them.


    Semester:

    If you want to learn Python at a very fast pace and ready for grueling 24 hours exams then you would like this course. Just be prepared to put in a lot during the exam. Few things I wish were better: Lectures can be more intuitive with helpful examples, talk in more detail about the logic explained in the videos. Homeworks are easy as compare to the exam. So I feel there is a gap which can be filled by making homework little more challenging. I strongly feel exam format needs to be less lengthy than current.


    Semester:


    Semester:

    Agree with most reviews so far. Better if you have some python experience and linear algebra refresher before you start. That said it does build up slowly on the coding side. It got very intense for me the last 4-5 weeks through the final trying to follow math (mostly linear algebra) I should have known once upon a time but probably didn’t learn properly and would have now forgotten at any rate. Completing it and mostly following the math was very satisfying. That said, the homework was reasonably easy to do without following the math, it was laid out step by step with the final destination not necessarily well in focus; I would actually have liked a bit less hand holding along the way (it was pretty much routine to get 100 on homework). 24 hour exam format was a winner, it gave those of us who don’t code for a living a chance to demonstrate what we had learned. The final question on the final exam was great; I wish there’d been a couple more like that along the way.


    Semester:

    I had zero programming experience going into this course, so as others have said it was EXTREMELY difficult. However with the high value of homework assignments and extension of the test taking window (test 1 was 2hrs, test 2 and the final were 24hrs) I was able to succeed in this course. However, I still lack a great deal of basic Python skills, so I highly recommend a good working knowledge of coding prior to taking this course.


    Semester:

    Like others have said the difficulty of this class is highly dependent on your previous Python experience. I’ve programmed in Python for several years, so I was able to complete the programming assignments with little strain. However, even with my previous experience I still found valuable kernels of insight in this thoughtfully prepared course. You can tell professor Vudoc has a passion for the material and a careful approach to the pedagogy of teaching a mixed-level, program-required class. If there is one criticism I share with the other respondents it’s that the class seems a little rushed just when it starts to get really good towards the end. If the early material could be compacted a bit and the later material expanded I think this class would be a must-attend, even for those more experienced with CS. However, I understand the need to accommodate those who are not as far along on their analytics journey, so I don’t hold it against the staff.


    Semester:

    I really enjoyed this class, not only because of the gradual learning curve, but also because the assignments were real-world applications of what you were learning.

    The class applied a “learn by doing” philosophy to it that worked well with programming. Your homework assignments occur within a Jupyter Notebook that has test cells that determine whether or not you completed the exercise correctly. Having an issue with something? Then just copy the test cell data into a new cell and use that to debug you code. The set-up of the homework made it feel like they wanted you to succeed and were giving you the framework to do so. I wouldn’t take it without some background in code, though - you need to have a foundation that this class builds on.

    The part that challenged me the most was the last few weeks when we dove into the deep end with linear algebra. For someone who does pretty well with math but has never taken a linear algebra course (and thought it was a good idea to skip it…which wasn’t in fact a good idea), I got to the point where I was able to complete the assignments, but I’m still a little hazy as to the WHY behind what I was coding. So, I’ll be taking the Udacity Linear Algebra refresher suggested by another reviewer.

    The midterms/final were discussed by other reviewers for I won’t hash them out. I’ll just say that once they got the format figured out (24 hours to complete, open everything), they weren’t too bad. It’s a challenge for sure, but they were doable.


    Semester:

    I really enjoyed this class. At first it didn’t seem clear what level of linear algebra we’d need to be successful in the course—as someone who hadn’t studied matrix manipulation in about 20 years, I was apprehensive. But the ramp-up was gradual, and they did a good job of explaining sophisticated concepts while providing surface-level challenges.

    I started the class having just taken CS1301x, also available on edX. I highly recommend students take this course (or similar) before embarking on CSE6040. I also took the GA Tech linear algebra primer on Udacity. I feel like I would have been playing an exhausting game of catch-up if I hadn’t. If you don’t have Python experience, get some before enrolling.

    I found the challenge balance very satisfying. It definitely broadened and stretched my understanding of the math side of data manipulation. There were times when I thought I was finally in hopelessly over my head, but a bit of research or just plain staring at the code eventually led to (very satisfying) breakthroughs.

    I appreciate how responsive the instructor was to changing the test format from two proctored hours to 24 unproctored. It much better measured our ability and concept absorption—and was also confiding to know the staff were listening to our concerns in real time. That’s a big deal in an online course.


    Semester:

    Found this to be hard due to a relative lack of Python exposure (came at this from an R background). Would absolutely recommend having working knowledge of Python prior to starting. Was able to pick up enough as I went along; I started breezing through Datacamp Python tutorials by the end (when the concepts in the class become a bit more involved). Spent 10-15 hours a week at first covering basic Python stuffs, slimmed down as the semester went on and I became more familiar with the syntax.


    Semester:

    This class should be fairly easy for anyone who knows python already. It is possible to complete the class if you have a programming background but little python knowledge, you just need to get up to speed in the beginning. Overall I felt I learned a lot and was challenged in different ways throughout the course.


    Semester:


    Semester:

    You need to have taken some amount of Python basics before coming into the course, and having a programming background in another language would also make it easier. I had a strong non-Python programming background as well as an intro Python class and I found the class pretty easy. However, people with less experience found it had a very steep learning curve and could be very difficult.

    Assignments are released weekly but you have two weeks to do them. The first programming exam was timed (2 hours), but after feedback from students they decided to change it to a 24 hour exam that must be completed within a 7-day window. I found the exam still only took me 2-3 hours to complete. The final was also 24 hours in 7 days, so they will likely keep that format going forward.

    Assignments and exams are in Jupyter notebooks that walk you though the exercises. Lectures correspond to most of the notebooks, but if you’re a quick learner you can get almost all the material just from the notebook. Instead of writing the entire large program, the notebook includes some code written by the instructors and you write code to fill in the blanks.

    Overall, I found it pretty easy, and it paired well with ISYE 6501 (Intro Analytics). The instructors had some trouble with getting assignments up on time, class organization, and responding to Piazza in a timely manner, but I think most of that had to do with the fact it was the first semester the course was offered online.

    My one course content complaint would be that the end of the course, which seemed like the whole point/the culmination of the course, was extremely rushed at the end (3 shorter assignments due within 2 days of each other). I wish less time had been spent on the Python basics at the beginning and more time was spent on that actual analytical modeling methods.


    Semester:

    Good intro to Analytics concepts. Make sure you know Python going into the class, and it’ll be VERY easy. I think the class is fairly difficult if you’re trying to learn Python along with the class concepts, though.

    Very forgiving grading structure as well.


    Semester:

    Challenging but not unreasonable expectations.