Computational techniques needed for data analysis; programming, accessing databases, multidimensional arrays, basic numerical computing, and visualization; hands-on applications and case studies.
Syllabus
Syllabus not available.
Textbooks
No textbooks listed.
V
vital-puma-0519
November 19, 2025fall 2024
Decent "intro to programming" course. Not that difficult if you already have a background in Python. I didn't know SQL from before, but easy to pick it up during the course. Just make sure you understand the concepts well enough that most things come to you "automatically" during the (timed) exams.
I'm a Mathematician who's been working as a Data Scientist in the past 4 years, and even with my background I still learned a lot. The classes/notebooks were really interesting and challenging, specially the first ones. Don't be scared if you struggle a bit at the beginning, cause things get a little bit easier in the end (and the TAs were super helpful during the whole course).
This course starts off beginner-friendly but quickly accelerates, requiring strong Python skills and a solid grasp of ML math like linear algebra and probability—or at least the ability to search and apply it effectively. Exams have become progressively harder, so thinking and coding efficiently is essential. I was entirely self-taught and never finished an exam (60%, 80%, 90%), but improved steadily and earned an A—gaining real confidence in Python for data analysis. This course gives you a strong foundation for data analytics programming and independent work. Never give up—and ignore any “easy” comments; those who found it easy likely should have opted out.
This is my first course in OMSA. I've enjoyed it so much and learned so much that I'm recommending it to all my friends and colleagues.
The class can become challenging and push you to think and work hard at times through its course. But that's a good thing - that's how we can truly learn.
This is a talented, energetic and enthusiastic team. Prof Vuduc and the entire team really delivered. The course content is designed and structured very effectively. Due to the competing events happening in my life, I only had time to read/watch the course content published at Canvas and the recorded Bootcamp videos. But there are plenty of materials for you to digest and absorb there already. On top of those, make sure to allocate time to practice all the past exams - to me, that is the most exciting and valuable part in the course. And Piazza is a great resource as well - all the questions posted are addressed very promptly by instructors, and students are helping each other, as well.
Take it, and enjoy!
This course is exceptionally well-structured, with clear and detailed instructions available on the course website. I truly appreciate the extensive resources/notebooks. The exam design is particularly effective, striking a great balance between testing our understanding of fundamental concepts and challenging us to apply problem-solving skills to unfamiliar functions—all while ensuring clarity in instructions.
The course support is commendable, with fantastic TAs, but Katie truly stands out. Her clear teaching style and structured approach to explaining computational problems have been invaluable. Her guidance has significantly improved my understanding of both the problems and the solution strategies.
The difficulty and time commitment in this class will highly differ depending on your python comfortability going into it. Take the pre-req seriously and go through the CS 1301 class they provide and make sure you're comfortable with all the material there. If you don't, this class will be extremely rough for you. For people who don't drop the course, I recall the exam medians being pretty high so if you feel you're well prepared for this class, I wouldn't get to worried by some of the reviews as the majority of people do well, although I'm definitely a little biased as I use python daily at work.
I found the course itself to be great though! The notebooks they provide are really effective at teaching you the material. The course is essentially divided into three parts: list/set/dictionary/string manipulation, data frame manipulation (pandas and numpy) , and then some modeling concepts. The first module tends to be the most difficult in terms of the difficulty of the questions they ask. The section on floating point precision is definitely the most difficult, along with regex, but otherwise I didn't think the homeworks were too bad. You also don't need to really understand the floating point material conceptually to do well on the exam as it's more just a way to practice string manipulation. For the modeling concepts, although the formulas they derive can get a bit intense, you just have to apply the formulas in python to do well, not actually derive anything yourself. I also love that you don't have to answer every question on the exam to get a full score so that one question doesn't wreck you, and that the exams open internet, just as it would be in a real-world setting. The TA office hours are also fantastic when it comes to helping you with some of the more difficult material as are all the previous exams they provide you to prepare.
I would say the key to this course is coming in with the right amount of python preparation (CS 1301), going to office hours if you find yourself struggling, and doing as many practice exams as you feel necessary in order to prepare for the exam and measure where you're at. Otherwise, it's a great course and I think you'll find yourself learning a lot!
If you're comfortable with the following in Python, this course will be a breeze:
Nested data structures (e.g. list of dictionaries, dictionaries of lists, dictionary of dictionaries) and manipulating them (e.g. reversing the keys and values of a dictionary)
Numpy (matrix multiplication in numpy, A @ B @ C for matrix computation)
Pandas (what's data analytics in Python without pandas?)
SQL (Simple SELECT *, GROUP BYs, JOINs)
I learned all these on the job and had no formal education experience in Python so this course provided a great gauge on where I stand in experience for this. Should I have opted out from this course? Probably.
Is this an introductory Python course? Hard NO. Please do your pre-reqs because a Python newbie will definitely have a hard time for this course (I know I would)
Grade: 85% (had over 100 going into the final, took it the day I got back from a bachelor party without preparing so you can imagine how I did)
Background: minimal stats / math background (psych undergrad 10+ years ago, business grad degree 5 years ago), no programming background, very light experience with Python leading up to the course. My day job involves SQL and Tableau but no programming, math or Python.
Summary: Overall, great course. Very challenging and interesting. Very well structured.
Detail: I thought this course was great and very challenging coming from my background. I dabbled with Python here and there but the month before I was going to take this class I started a Python Udemy course which was a HUGE help. I don't think I would have passed the class without it. They offer a Python bootcamp, which is just additional time each week with TAs going over the basics of Python, but it requires a lot more of your time (like 2-3 hours / night a few times a week for the first few weeks). So balancing that with the material is difficult, but its good they have it for students who don't have Python experience. You're much better off coming into this class with some Python experience. You should know:
Pandas
Numpy
BeautifulSoup
For loops
Sets
Dictionaries and Lists (adding to, iterating through, slicing, comprehensions)
If you have 0 Python experience I would highly recommend:
Complete a Python udemy course before you start this class (I suggest the 100 Days of Python by Dr. Angela Yu)
Not taking this course
As for the math side of things, I was able to get by and the most math I have is Algebra I and Stats I in college 10+ years ago (plus 6501, more recent). I really struggled was the computing concepts - there's a whole week dedicated to binary encoding - and some of the calculus. I was able to get by with supplemental help on YouTube.
Each week there's a new concept taught and homework due based on the current week's lectures. You can get a couple weeks ahead which I thought was nice. I thought the lectures were great and for the most part explained things very well. Although I found that they really lacked on using real-world examples to walk through the concepts, which I thought could have helped.
I though the first midterm was unnecessarily difficult (they change it every semester). What's nice is that the exams may have 15 points but you only need 12 to get 100%. Also the exams are essentially half 'how well can you fix this data with Python' and half on applying one concept out of the several you learned over the past few weeks (instead of every concept leading up to midterm 1 being covered in midterm 1, every concept leading up to midterm 2 being covered in midterm 2, etc).
There's one week of SQL which was a breeze for me because I use it every day for work but if you don't know SQL its pretty easy so don't sweat it.
If you're a Python wiz this class should be a breeze for you.
How to succeed: Do all the homework and mock exams that they give you. Really try to understand everything that you do on the HW by searching stackoverflow, etc.
Great introduction to a master's class. Definitely a foundation stone for the future classes you will be taking.
I thought homework are interesting and great examples of real-life application (maybe except for the string manipulation). Yes, the strict grading programming can be little bit of pain, but they really ensure fair and quick way to make sure that you have the right answer.
I think this course is a good measure of how you will perform in this program. It challenges your coding and logical thinking area.
Very fun course and a great introduction the the master's degree. The basic layout is you get a jupyter notebook with very great and detailed introductions in %MD for each topic, then you get some empty function which you run until you pass the functions test (already built). Midterms and final follow this exact format, all tests are open book so if you've done the HW saving a few stackoverflow links or documentation will go a long way to help you finish quicker. The exams are very fair, if you know already know python and did all the HWs I'd even say easy. However if you don't already know python it will be trickier. This course is perfect to prepare you for pair coding interviews or any coding process you might be involved in. All exams have more points awarded than are required for a 100%, so you can do something like earn 10 points out 16 possible and get an A! Overall I loved this course, if your new to programming you will learn A TON! If you already knew, it's an amazing refresher because honestly who much about dictionaries? This should be a prereq before moving onto other courses but this code will set you up well for ISYE 6740 (CDA) (highly recommend), and then both of these will set you up as best I can imagine (nothing will prepare you for D3) for CSE 6242 (dataviz). I stupidly took all three together but you can see how a good structure would've been.