Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (5 / 5):
Workload: 25 hours/week
High workload. The homework, especially for the first half are very hard, Strongly suggest attending TA's office hours. Good idea to supplement knowledge by watching lecture videos from other algorithms classes (i.e. MIT open courseware and Tim Roughgarden's lectures). Also manage time well, as soon as you finish a homework or a test, you need to start preparing for the next stage.
Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (3.6 / 5): ★★★★☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (2.1 / 5):
Workload: 15 hours/week
Pros:
1. Prof has a personality
2. More practical and fun than other courses in the program
3. Open ended final
Cons:
1. Course material is outdated
2. Lots of work
3. Android documentation is bad
Detailed Review:
I really wanted to like this course but find myself feeling somewhat disappointed.
I liked that the course was closer to something you'd do on the job as a software engineer, rather than heavy theory and navel-gazing. The professor also injects some personality into the lectures, which is certainly welcome considering all the other courses (this was my 9th) are pretty dry. The assignments are pretty straightforward (though with very lengthy prompts) and are clear about all the requirements. The final is basically just build an app with a certain degree of complexity - it should be about 2 homeworks worth of work and should use a couple external APIs/libraries. This was pretty fun and let people be creative.
There were several things I didn't like. The course material is very disorganized - at the start of the class it was super confusing because the videos are hosted on a mix of EdX and the course website and on EdX were out of order. So I spent the first week or two watching lectures with no sequential logic or context, until the TAs explained that we should just use the course website. There was also a grading SNAFU on the first assignment - a ton of folks got bad grades because of some automated tests they ran against the repository, and the tests were clearly broken. This led to a ton of back and forth with TAs and the professor, and the grades were subsequently adjusted. But it was pretty stressful (that said I didn't miss a single point for the rest of the assignments that have been graded to this point). Most importantly, the course material is old and needs to be updated. Android is moving from XML views to Jetpack Compose, and many of the course videos are several years old and are or will be obsolete very shortly. I'd recommend waiting to take this class until it's been updated, unless you just need a credit to graduate.
Last thing, I thought this class was a lot of work. I think I spent ~15 hours a week or so, and I expected to spend maybe half of that, considering I'm a SWE with ~8 years of experience. None of it was particularly difficult and I never found myself in a time crunch, but it was just a high volume of assignments and you really have to put the time in to make sure you're meeting all the requirements and catching all the edge cases. Some people say you can breeze through the flipped classrooms in half an hour - I did not find that to be the case. I'd say they usually took me 2-4 hours. Maybe I just suck, who knows. It also doesn't help that the Android documentation is really really bad.
Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (2.9 / 5): ★★★☆☆
Lecture Rating (2.9 / 5): ★★★☆☆
Difficulty (2.9 / 5):
Workload: 6 hours/week
Pros:
1. No peer review. Everything was auto-graded objective-type questions or computations.
2. Straightforward quizzes and questions especially in statistics portion.
3. If you have good undergraduate probability and statistics background (at the level of science majors), very easy.
Cons:
1. Some homework assignments and major exam questions are challenging especially in the probability portion.
2. If your background in probability and statistics is of social science, humanities, or no background at all, this course might get tough.
3. Teaching quality between the probability and statistics portions can vary.
Detailed Review:
The course was pretty much like your typical foundation course on probability and statistics, although the way it was originally taught (Prof. Parker and Prof. Muller) was it was pretty much like two courses merged into one.
Common to both segments: General long homeworks (encouraged to answer these in study groups), followed by individual quizzes and 2 major exams.
The probability segment covered different types of probability distributions and had a required book (although not all of the book was required. Not all was useful eithe). Some challenging questions were from the book or variants of questions/book examples.
The statistics segment was much easier, but uses a textbook-based simplistic
software (statkey) instead of typical R or Python for data science majors. I liked a few short segments where Prof. Parker explained the meaning of test statistics, and p-values. Far too many people take that part for granted, resorting to mechanical p-value hacking when people apply inferential statistics in research. The textbook for the statistics portion is optional (wasn't crucial for the course, except for the statkey software hosted in the bookwebsite).
Overall, a straightforward class in terms of lectures (good enough at times, but at some times could also bore you. Not too bad compared to regression). In Spring 2025, a new prof took over (Prof. Linares) so I am not sure if there are changes to these features.
Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (2.9 / 5): ★★★☆☆
Lecture Rating (1.4 / 5): ★☆☆☆☆
Difficulty (2.1 / 5):
Workload: 10 hours/week
Pros:
1. Covers the breadth of applications of ML
2. Easy/relaxed pace
3. Free end open final project (40%) which can be great to explore a topic of interest
4. Friendly and supportive TAs
5. For a total beginner in ML, the labs provide a gentle way of trying out ML models
Cons:
1. Non sensical quizzes (poorly worded, one attempt)
2. 60% for quizzes which are like described above
2. Lack of depth in theory behind ML
3. Poor lectures in terms of explanation (reading from slides)
Detailed Review:
I guess Professor J. is a good researcher in his area and also maybe good in class teaching, but he is a poor instructor in this format and is mostly reading slides in video lectures. If you are willing to self-explore an open ended final project (40%), then this course maybe worth it. Workload per week is very low, but I considered work for final project which could take some time. You have an opportunity to explore any interesting idea from ML area at your own pace.
Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (2.9 / 5): ★★★☆☆
Lecture Rating (2.1 / 5): ★★☆☆☆
Difficulty (1.4 / 5):
Workload: 5 hours/week
Pros:
1. One of the easiest classes
2.
3.
Cons:
1. Did not learn much
2. TAs were too strict
3.
Detailed Review:
The class was one of, if not the easiest class I've taken so far. Quizzes and assignments were not very hard. The TAs made the class a little stressful though. They caught many students for plagiarism and were very vague in details. This lead for a stressful environment when submitting stuff. In the end if you cited where you used AI, it was not a big deal, but it added stress to an otherwise very straightforward class. I would recommend it to anyone just starting and looking for a easy A, just cite your code thoroughly and don't worry about it!
Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (3.6 / 5): ★★★★☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (2.1 / 5):
Workload: 5 hours/week
Pros:
1. Relatively light workload consisting of lectures, labs, and quizzes
2. Quizzes were reasonable and account for 60% of grade
3. Final project was open-ended and practical
Cons:
1. There is not a lot of cohesiveness between topics
2. Final project does not really depend on lectures
3.
Detailed Review:
The workload for the course before the final project was pretty light at between 3 to 6 hours per week. Although people said that the quizzes were easy, it is true they are not time consuming, but I personally find that getting full marks on them to be pretty tricky. It also didn't require you to watch the entire lecture/lab.
The first few labs are useful when you learn Pandas but after that I did not really watch the labs as without any corresponding assignments, I found it unmotivating to watch them.
You don't really need to watch the lectures to do the final project. Also, my previous experience in other ML classes in this program did not help much with the final project. Perhaps that is a reflection of me more than this class. Yet, still I would say that I learned a lot from the final project.
I felt like I really did not learn that much from the lectures. This course was more of a survey of different ML approaches emphasizing breadth over depth. I personally prefer a more methodical approach where first principles are taught and then an algorithm is presented. In this course, the instructor jumps right into a high-level approach of the algorithm which others have said is not too challenging but I find to be challenging in a different way because we lack the prerequisite background and it was presented in a less methodical manner than the other traditional ML classes in this program.
Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (2.9 / 5): ★★★☆☆
Lecture Rating (2.9 / 5): ★★★☆☆
Difficulty (2.9 / 5):
Workload: 15 hours/week
Pros:
1. Learn important information about how to design randomized experiments and understand observational studies
2. Generous grading curve at the end
3. Some coding in R required, but again not terribly difficult
Cons:
1. Grading drives you crazy
2. Homework assignments within the same week were the most difficult
Detailed Review:
Very mixed views on this class. On one hand, the content is actually very useful to understand and be able to relate to real-world studies. The main con is that the assignment towards the last 1/3 of the course are long and tedious. Additionally, the grading drives you crazy. Questions will have several different options (choose all that apply) and can be very subjective, or differ by the slightest wording. Solutions are often very vague.
The final exam is also design to be have some trick questions. Fortunately, the curve applied is fairly generous, so with some solid effort and patience a reasonable grade is very possible.
Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (2.1 / 5): ★★☆☆☆
Lecture Rating (2.9 / 5): ★★★☆☆
Difficulty (2.9 / 5):
Workload: 8 hours/week
Pros:
1. More interesting and better delivered than regression. Better R/Python code samples either in slides or code files.
2. Spatial statistics is interesting if you also like geospatial analysis. Likewise, some parts of the second half (e.g. spectral clustering, network analysis) were either interesting and/or good too. Time series has some good applications in data science.
3. Similarly easy and similar in terms of assignment structure as regression, although APM has questions in the homework to be graded by staff instead of peers.
Cons:
1. Some parts of the course are still boring or not that engaging.
2. The course may feel incoherent as a whole, since it covers different fields from statistics, i.e. time series, spatial data, matrices, network analysis, etc. "Predictive" in course title is a misleading word too in the title.
3. Peer review and feedback mechanism in summer 2024 was disorganized and/or often late. We didn't know much of our grade until the term was about to end.
Detailed Review:
APM is a two-part course under two different professors (Dr. Calder and Dr. Sarkar). Part 1 covers mainly time series data and spatial data. In this portion, I preferred the spatial statistics portion as I was interested in how it applies to geospatial data.
Part 2 begins with a review of matrices, followed by SVD and PCA. These are often not memorable and/or disliked by many because these topics are present in other courses and somewhat better delivered in other courses too. The module on matrix completion is one of the more challenging ones. Lastly, the course closes with topics in clustering (e.g. review of k-means then APM tackles spectral clustering) and network analysis.
Assignment design is somewhat confusing at first glance, but think of it as
similar to regression in terms of structure. There's 10 assignments, one for each required module in the course. Instead of being entirely peer-reviewed as with regression, in APM, each problem set contains one peer reviewed number, one staff reviewed number (both with sub questions). Some can get tedious, while some are more straightforward. Lastly, there's also a small set of "practice" quizzes but these are not as big of a factor in grades (but still required).
Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (2.9 / 5): ★★★☆☆
Lecture Rating (2.1 / 5): ★★☆☆☆
Difficulty (1.4 / 5):
Workload: 7 hours/week
Pros:
1. Lots of topics were addressed that will likely be seen in future classes (maybe?)
2. Easily took less than 10 hours per week to complete lectures/HW
3. Some of the HW was purely MC on edX, so no need to worry about peer review
Cons:
1. First iteration had a few bugs
2. Sample code wasn't documented well at all
3. I'm not sure that I could apply any of this knowledge outside of the academic setting
4. Not all peers are well-equipped to assess your homework even with a key
5. Grading rubric needs at least one more option to allow for minor mistakes.
Detailed Review:
I think for a first run of the course, it was a good run. Ultimately, I was able to complete all of the assignments with high marks, so the content must have been available somehow because I certainly didn't come into the course with the knowledge. That said, I'm not sure that I'm leaving the course knowing how to apply it outside of the confines of academic coursework. Perhaps that's not the purpose of this course and another course in the program will serve that purpose. Interaction with Dr. Walker on Piazza was generally brief. He was active in spurts, but it took time to understand his responses. I think he's fairly knowledgeable on this content but there is a disconnect (most likely because of the modality) between what is conveyed and what is understood. One could argue that's reasonable in a graduate level course. Coming from DSC 381 last semester, there does seem to be a difference in pedagogical practices, but the reduced time of the summer semester might have contributed to this.
Overall Rating (2.9 / 5): ★★★☆☆
Professor Rating (3.6 / 5): ★★★★☆
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (4.3 / 5):
Workload: 20 hours/week
Pros:
1. Professor is active on Piazza
2. Some solid lecture content
3.
Cons:
1. Homework pace encourages little comprehension
2. Lectures don't line up with homework
3. Exhausting pace
Detailed Review:
If i could summarize this class up in one word as a part time student / full time professional is... exhausting.
Every single week we have homework due which encourages cramming lectures and trying to glean the most helpful bits. Unfortunately, most of the time in lectures is spent on proofs that might explain a certain theorem but definitely does not help with homeworks.
Instead, you will find that you spend 90% of your time on Google trying to understand a problem or scrolling through Piazza for clarity to get you through the homework.
Huge reliance on peer grading which is the only way that the course can exist since TAs would never be able to grade all the homeworks. You will also notice when grading, referencing the answer key is very difficult since most of the TA code is convoluted and most certainly won't pass a code review at any reputable tech company. Ironically, this is what you need to measure other's homework to.
About 1/2 of the way through so stay tuned for an update after midterms.
Summary: Tons of work (especially if not a full time student), and little time for comprehension. On the plus side, a talented professor who is relatively inspirational.