As part of the Masters program that I started this year (mentioned this very briefly in my previous blog) I’m writing this review for the first course I just completed. I picked Knowledge-based AI (CS7637) - KBAI.

OMSCS has an FCFS registration system every semester, the longer you are in the program, the sooner you get to register for courses. This means that the famous and important courses are usually full by the time you get to register for semester 1. KBAI and HCI are (apparently) two Prof David Joyner classes that you can always find way into in the first semester. There are other classes like GIOS (Operating Systems), etc. that you can get into from a Computing Systems specialisation point-of-view. But I wanted to reserve all the 10 courses I must do purely to the field of Math/ML/AI, so KBAI it was. And, also because “KBAI” sounds pretty cool, yeah?

It is run by Prof David Joyner and team, which means that it is very very well run. Highly structured, organised and systematic class. Lectures are simple and clear, instructions are beautifully communicated and the forums are super fun and active. The class also had a really helpful and active Slack channel. Even the TAs were very active on there!

The class has a semester long project that is split into multiple milestones and about five mini projects and three assignments. There is something due every weekend, so it will keep you busy for the entire semester, unless you can front-load (all the above are made available from Day 1!).

The class follows the famous textbook Artificial Intelligence[1] by Patrick Henry Winston. The lectures are a bit abstract. The content is theoretical but the lectures try to map it to toy problems and help you understand how to apply the techniques. The classes also link up nicely to the main project. The best part is you get to implement these abstract “AI” concepts to the problems and get them tested against test-cases. Very high level concepts like Frames and Semantic Networks are easy to understand theoretically, but rarely implemented from scratch. So it was satisfying to break the theory-heavy shell that AI courses usually entail. All the deliverables, except the “assignments” are coding projects, so you’ll write a lot of code. Again, satisfying. The class also provides a collection of reading material to further augment your knowledge.

With every code submission, you are also expected to write a paper/report detailing that project/milestone that you complete. You really get to improve your writing skills. The “assignments” are again more writing, but they involve a little more research and are somewhat open-ended at times. Your conceptual clarity is judged.

Prof David Joyner is a big fan of peer reviews. You get your paper (from all deliverables) peer reviewed and you contribute to this process too. Reading others’ papers helped me in two main areas: improving my own paper writing skills and some crazy ideas to implement for the main project. I’ve seen that at times most of the students follow a straightforward technique to solve a problem and someone would have done it radically different. These expand the knowledge on those areas pretty significantly.

There’s something called participation points. Peer reviews is major way to collect them, the next best way is participation in forums. The forums are VERY active! The weekly topics for discussions, Friday jokes, etc. keeps the forum lit. People ask very thought provoking questions. It’s a major way to fill gaps in your understanding of class and project materials, and also contributing to this fills the gap in participation points (they account to 10% of the grade!).

Finally, there are two exams, and they are open-book, open-internet, open-everything. But the classic CTRL-C + CTRL-V rarely works :) The questions are purely from the class lectures, and they really test how well you understand the material and concepts. Oh, they are multiple choice questions.

Overall, it is a really great first course. Not too easy to give you false ideas about the program - courses you’ll end up taking deep into the program are really heavy. Not too hard to get tiring early on. Just the right load, I felt. Light on cognitive load, but makes up in the workload with the paper writing. And if you are someone who wants to be an “ML person”, this should be a good way to start off OMSCS (also look at ML4T for this).


[1] Artificial Intelligence, Winston, P.H., A-W Series in Computer science, 1992, Addison-Wesley Publishing Company