Introduces machine learning based trading strategies. Topics: Information processing, probabilistic analysis, portfolio construction, generation of market orders, KNN, random forests.
Overall I liked the material of this class although I have to admit it just reinforced that algorithmic trading is a complete losers game unless you are one of the big quant firms. My one complaint is I got a 20/50 on one project because I used a table instead of a graph, and I had two of my paragraph headings swapped. This dropped my grade by about 5% which was pretty lame. I felt like the grading much like many OMSCS classes is subject to capricious and highly variable graders.
Really enjoyed this as my first OMSCS course. The coding parts were not insanely difficult, but the projects felt rewarding and it was nice to see them building on from each other after each assignment.
The part that surprised me was all the report writing, be prepared for multiple multi-page reports that take time, require clear citations, and research.
Overall, though, definitely enjoyed this course; it served as a great introduction to machine learning for trading.
Based on the ratings, I thought this class would be super easy, but it wasn't as easy as I thought it would be. Definitely more time consuming than expected. Still a fairly decent and well organized class though.
My background: first semester in OMSCS, CS undergrad, and 5 yoe as a software engineer. No ML or AI knowledge prior to this course.
This course was awesome. The lectures were interesting, the projects were well-defined and fun to work on. I would recommend everyone take this course. It's the perfect intro to ML concepts.
My only tip is to make sure to start assignments early, especially the final 2 projects.
This course does use a lot of Python and Numpy. I have no professional experience in Python and had to re-learn a lot of it. Really not a big deal if you know how to code in any other language.
I took this as my first course. At the time, I was very critical of it because (like most universities) it expects perfect professionalism and students to go the extra mile, while giving instructors considerable leeway. That’s hard to accept when you’re coming from an even more professional work environment.
Examples:
Student deadlines are strict; feedback arrives whenever.
They suggest refactoring a deprecated predecessor project (Python 2.7, iirc) to help with a current one. Why doesn’t a TA do this once instead of leaving 700 students each semester to do it themselves? Students can’t use AI, instructors can; it would take them only minutes.
They ask you to produce output for stock A, but the starter code is pre-filled with stock B. Why?
The NumPy / pandas intro is hopelessly outdated. Why can’t someone sit down and make a new video? Sure, it wouldn’t have Udacity-level production quality, but it would massively improve first impressions.
I was also very unhappy with the exam. I was well prepared but found myself wanting to argue about the wording of several questions. I got genuinely angry about a couple of them. I’m a terrible exam-taker, but here I felt 100% prepared. Especially since I have a Master’s in Financial Economics and knew the econ/business material inside out.
That said, I’ve since completed two more courses (Machine Learning and Reinforcement Learning) and was also reminded of what classes were like at my previous brick-and-mortar schools. All in all, ML4T is clearly above average.
The content is very helpful and a solid introduction to ML. I was still answering exam questions in Reinforcement Learning two terms later using knowledge built up in ML4T. My grade was an A. Overall, I’m very happy I took the course.
Took it summer 2025, there was a lot of changes from before. Made the class much harder. Read the other review below on summer 2025, I pretty much agree with the person. Project 3 and Project 8 was the worse, spent about 40 hours a week on both, with project 3 taking up to 5am on a Monday. You can lose 30% of your grade on coloring a line wrong.
Just my comparison, I took GIOS which was supposed to be a much harder class and found it very rewarding and got a solid A in. I spent about a similar amount of time in ML4T and barely squeaked by with an A. I found ML4T more stressful and harder than GIOS in several ways, which is a testament to how much it has changed and why the earlier reviews are outdated. Plus they changed the open book exam to closed book with no calculators involved, so there's that...
Worst part was how they didn't release grades until super late. The only reason why I give this course a 2/5 instead of a 1/5 is because they at least released all grades before the drop deadline. However, I had gotten an F on the first assignment causing my grade to be a D for over 1 month, and was just about to drop until I realized I did well on the other assignments. Overall, huge amount of anxiety caused by the grading and how it's released so late. Like I said, you can lose 30% of your grade because the color of your lines are wrong or you labelled your graph title the wrong way.
I took ML4T as my first course in OMSCS. After an academic gap of 9 years, I felt this course helped me slide smoothly into academics. This course though some find it easy, I believe is well organised with excellent TA Support. I would suggest keep reading all posts comments on Ed discussion. If you have any doubt, it can be put on Ed and TA almost immediately responds which is really helpful. Weekly TA live discussions are excellent as this being an online course, it is quite challenging to get doubts clarified so even if you cannot attend the live, recording will be available within a day. Even the questions put on Ed will also be discussed in those sessions. Though project descriptions are extremely lengthy, TA goes through it fully in those sessions.
Don't believe the average stats from reviews, this class was made significantly more difficult and time-consuming since it was handed over from Prof Balch to Prof Joyner. Now it's way too heavy on reading and writing and was my least favorite class out of the 6 that I had already taken in this program. There was just way too much effort doing pointless tasks that don't result in any learning because a lot of effort was put into paying attention to incredibly minor details in both the projects and exams.
Project descriptions are way too long with information and massive deductions scattered everywhere. You can literally get 20% off a project that's worth 25% of your grade for putting the wrong line color on a graph with a single line. There were some complaints about pointless details and the justification was that they needed to include these fine details to make sure that you were reading the instructions and weren't cheating.
At the same time, the rubric can be too specific and too vague at the same time, also resulting in massive deductions. There are some places where the grading criteria is "sufficient detail" which just opens up a can of worms on how much detail is sufficient. Compared to when the class was taught by Prof Balch, there's just way too much emphasis on the writing aspect that makes the time spent on projects to easily be 20 or even 30+ hours each project (with a report). The final project even took me over 40 hours due to writing and building up on project 6 which was ridiculous since there wasn't much learning but rather rote tuning your model and writing about it.
The exams are also nearly insufferable due to being composed of multi-checkbox questions which turn it into a 100+ true/false question exam. True/false questions are horrible because everything becomes a trick question and the inclusion of a single word or comma becomes more important than actually understanding concepts. Plus some of the exam questions are on stupid, irrelevant details that have absolutely nothing to do with machine learning or trading. Without giving any specific details to respect the honor code, the questions are about as relevant as asking what was the weather in a particular city on a particular date.
Oh, and don't bother watching the lectures as the additions to the course have made them nearly irrelevant to the class despite being so enthusiastically produced by Prof Balch. The exams were disproportionately focused on the required readings which were so abstract and far beyond the scope of the lectures that I often wondered what the readings even had to do with the course other than to provide a question bank to ask very specific details off of.
I had an A for 3/4 of this class but lost massive points on a project worth >20% of my grade due to said issues with line color and "sufficient detail" which brought me down to a low B and made the rest of the class incredibly stressful. I squeaked by with barely 2 points over the threshold for an A but spent >25 hours each week. The changes have made this not an easy class anymore and it was by far my least favorite class in the 7 that I have taken in this program. There were "harder" classes like GIOS and AOS that took me less time just because they were way more interesting and didn't waste your time on tiny pointless details and going on a model-tuning fishing expedition.
I have based my ratings here for difficulty and workload on manual student work excluding AI tools (When class policy excludes them).
TLDR: Until AI tools are allowed substantially or workload is reduced, do not take this class.
I think this is a class that has so much it wants to share with its students. It really does want its students to do well and learn a lot. Professor Joyner has proven this intent in my opinion. You can also tell by watching the lectures (Which you're also better off skipping to save time, sadly), that Professor Balch (The course's originator) was a true leader who also wanted his students to succeed. What I heard/read (Total conjecture here), is that the class was somewhat different back then, with more focus on coding and less focus on academic writing, of which Professor Joyner demands a LOT, in addition to what was already a complete course.
So, my belief is what you see in the combined ratings here reflects good will towards Prof Joyner, but coasts on expectations based on what the class used to be. It also reflects my belief that the student body (Who is relying heavily on AI tools to complete everything the course demands of them) is engaged in a bit of a course design battle with an instructional team who is possibly trying to work against AI tools by increasing raw workload rather than with it.
There are at least 30-50 pages (plus slides and lecture vids) to ingest each week, 12 short Quizzes based on them, 2 tough exams, 8 coding/implementation projects with mostly transparent graders, 5-6 7-10pg academic journal articles to write based on project work, and 2 pts of extra credit. With respect, no one is doing all of this with 8 hrs a week while maintaining academic integrity.
The exams and journal articles you're expected to write are where you will lose most of your final grade points. It is likely the most pedantic class I will ever take in my life, with instruction sets longer than the 7-10pg articles you will ultimately write. Buried in these elaborate specs are many, many minor-scope details, for which missing even one detail could knock you down a whole letter grade. When you consider that it is possible on a given assignment to lose enough points to total 100 many times over, I think you have to consider that something is wrong with the assignment's design, despite the instructional team's stated refusal to consider this to date. My advice is to use the spec for the project + research paper and follow/address literally every single sentence of the spec in your code and journal article.
The exams are worded strangely, likely in an attempt to curb the effectiveness of AI tools, which you are strangely allowed to use on the exams but not the assignments and articles. They are quite hard even then to prepare for, and are aggressively timed and curved heavily. I'd recommend a deep understanding of the underlying concepts of the readings using generated outlines as opposed to a deeper reading due to time constraints.
The TAs could be a bit more 'human', but all-in-all they were honestly excellent and professional. Per the norm, there is no contact with the Professor.
The tragedy of the course is that the material itself is not hard or particularly advanced. If it was pruned significantly, my personal belief is that students would better master and retain all key concepts the course conveys, and be less pressured to take shortcuts. But if I'm being honest, I would not take this or another class offered by Prof. Joyner again after this experience.
TLDR:
Grade: A
Hours: 15-20 per week in summer term
Tips: Put in the effort and do well on the projects, as the exams can be tricky no matter how much you study
If you are at all comfortable with undergraduate-level finance, statistics, probability, and/or ML, I would avoid this class. The topics covered are introductory and I can honestly say I didn't learn much. However, I am biased as I took many finance, statistics, probability, and CS classes in undergrad and have also worked with these topics professionally for years.
At the risk of sounding whiny, there are also way too many source materials to keep track of. On any given week, you are expected to read Chapter 2 from Book A, Chapter 8 from Book B, and watch Videos 2 through 8, etc. The constant context switching is a killer. Oh, and the video and audio are sometimes potato-quality.
I got high 90s-100s on all the projects and 80s-90s on the exams. Just review your code and reports and ensure that you've hit all the project specs and you'll be fine.
Overall, I could see this class being a good first or second class for someone who doesn't have much prior experience with finance or CS/ML. But for me it just felt like busy work.