I just finished this course (Fall 2024), and overall, I liked it, but only in the context of just starting the program. It's a very good introduction instead of taking a very heavy course from the start like ML or AI, and everything is organized.
Like it or not, there will be people that try to find faults with everything and sometimes they do have a point. However, for a course that had at least 1600 students at the start, the staff did a phenomenal job dealing with everything. They were very active on Ed and answered questions in a day, at the most. Of course, there's this annoying thing where they just answer with links to other posts. To be completely fair, I did get frustrated myself with the entire forum being filled with repeated questions, most of them by people who didn't properly read the assignment briefs, so I get why they did that. Still, by the end of the course, it was pretty annoying navigating the platform.
Now, the lectures. They were recorded a long time ago by Dr. Balch, who explains things very well. I think he left the institute a while back, and Dr. Joyner took over the course. The lectures are pretty straightforward and clear, if a bit simple when it comes to ML concepts. The class spends a lot of time talking about trading concepts, maybe even more than ML. Honestly, I knew next to nothing about the stock market, so I gained a lot from the course, but someone with a passing understanding of trading would get bored very quickly. I already knew the basics of Pandas and NumPy. It's technically a large chunk of the course material, but we went through it very quickly, so it wasn't that much of an advantage. My only comment would be that the lecture videos use an old version of Python, NumPy and Pandas with a lot of functions being deprecated, so a refresher wouldn't be too bad.
What I found to be the most challenging were the readings. It was a great deal more difficult than what was covered in the lectures and was actually a lot more ML-heavy. Honestly, I gained more from the readings than from the lecture videos, really. Dr Balch's book was very helpful since it covered a lot of the Investing part of the course, and it was a very easy read. But there was this AI for Investing book that was an extremely dry read.
Anyway, the grades were mainly divided into 8 projects and two exams. Personally, I think that the projects are more important, so let's start with them. Before getting into the specifics, I wanted to address the assignment briefs. One of the best things about this course is that every assignment is ready and posted from the start so it's relatively easy to get ahead. The assignment briefs are pretty chaotic, obviously having been adjusted over the years while trying not to alter its core too much. There are dozens of small details spread around each brief and it's pretty easy to miss a few of them. The staff suggested printing it out (or using a tablet) and highlighting what's important. I did that before starting any assignment and it saved me a ton of time. Don't really get intimidated by the size of the briefs. They're very detailed and I'd rather it be thorough than vague. A piece of advice, when it comes to report writing, don't try to be fancy. Just use the exact same structure asked in the assignment brief and clearly answer the questions asked. Now onto the specifics of each project.
Project 1: It's a very easy project, just simulating an experiment. It's mostly an introduction to the course. You have to do a report, do some code, use Pandas and NumPy, and generate some plots. It's a nice way to get started in my opinion. The whole thing took me about 10 hours in total, and 8 of them were the report writing.
Project 2: Same here. It's a very interesting concept. You have to use SciPy to optimize a portfolio. Dr. Balch goes through how you're going to do that in a few of his videos. It's a pretty straightforward thing. There wasn't a report, just generating a plot and some grading tests for the code. The whole thing took me 4 hours tops.
Project 3: Now here, I expected the worst. This project was rumoured to be some nightmare or something. It wasn't anything like that. It was, by far, the most interesting project, at least to me, in this course. You have to implement decision trees from scratch (among a few other things). However, the pseudocode of the algorithm that you need to use is provided in one of the videos. It wasn't easy, but it wasn't really hard. After that, you had to write a report, which was pretty annoying but not the end of the world. The project took me around 15 hours from start to finish.
Project 4: Now, that was a piece of cake. You have to generate two datasets one where decision trees work best and another where linear regression is best. They test your code and are graded on how well it works. (You'll need to use your Project 3 code, so take that into account). It took me around an hour to finish.
Project 5: Also an easy one. You have to make a market simulator. Dr. Balch goes through it step by step almost in one of the videos. Also no report. This took me around 3 hours to finish.
Project 6: Now, that was a tough one. Coding-wise, it's not hard. You have to implement five technical indicators, which are essentially metrics about a stock. You have to choose them, research them, and write a report on how they help make predictions. There was another component to it, but it wasn't that important. I made the mistake of coding the indicators right away before doing the research, which really made writing the report pretty hard. My recommendation is to pick some of the indicators from the assignment brief. Don't try to be fancy and choose them wisely. You're sort of stuck with the indicators you chose for Project 8, and the ones they recommend have proven to have worked for them. A few of them have been implemented in one of the videos, so I suggest you check that. Overall, this took me around 20 hours.
Project 7: This was an easy one, and no report as well. It was my first time doing anything with Reinforcement Learning and it was fascinating to do. You have to implement a Q Learner, which isn't that hard. Dr. Balch also goes through it in the lecture videos. You also have to implement Dyna. It's not that hard, but even then, it's only worth 5 points, so it's not that big of a deal if you don't have the time. This took me around 4 hours to finish.
Project 8: Now, this was the big one. You essentially use the indicators from Project 6, your market simulator from Project 5, either your Q Learner from Project 7 or your Random Forest Learner from Project 3, to make trades on a certain stock. You have to make a Manual Strategy, and a Strategy Learner, and compare their performance. The code didn't take me that long, but fine-tuning the hyperparameters did. You have to write a report. Honestly, I'd prioritize the Strategy Learner since it holds a large chunk of the grade. If you're pressed for time, just use the Random Forest and it should work out easily enough, but I do recommend trying out the Q Learner approach. It's a bit frustrating, but I think it's worth it.
Exams: Now, there were 2 of them, a midterm and a final. They were all multi-select questions. I would put a heavy emphasis on the readings. There are topics there that aren't covered in the lecture videos, and they could easily be in the exam. To be honest, I didn't like the exams. They were open book and open internet, but to counter LLMs, the questions were straight-up confusing at times, and obviously made to be tricky. Personally, I didn't use an LLM to answer the questions, so I went back to searching the notes or the readings, and it was relatively fine. However, there were questions where I just didn't know what was asked of me. I'd honestly rather have a closed-book exam with clear questions than this.
Grades: A lot of the criticism you'll see about the course is about how long it takes to get the grades back. Personally, I think that the staff did a good job. I did my fair share of grading reports and it's very tiresome. I can't imagine doing it to over a thousand students and returning it faster than they did.
We got the grades in two phases. The first one was right before the drop date, and we got the grades for projects 1,2,3,4,5 and Exam 1. We got the rest near the end of the course. People were angry about the tardiness since a lot of the code we used in Project 8 came from earlier projects where we didn't know if it was correct. I can sympathize with that but I think that the staff was generally direct with what they wanted and that the automated tests were enough to know if the code was correct or not. Then again, it was just my opinion.
Overall, this course was valuable as an introduction to OMSCS, and for someone who has either never done any sort of ML, or has a very lacking understanding of the stock market. I did learn a lot, but it was relatively light. If you do the readings properly, you're bound to gain a lot from the course and the staff are more than willing to help. However, I wouldn't really recommend it for someone who has any experience with ML. I feel like it would be better to take a more beneficial course. I also wouldn't recommend this course for the Summer given how concentrated the material would be.