For context, this was my 6th class in the program (CN, IHI, GIOS, CP, AI). Non-CS engineering undergrad, working as a software engineer.
This was the first summer semester with the adjusted syllabus: they added 5 nontrivial "mini-project" coding assignments with some reductions (shorter written Homeworks, down from 3 to 2 exams), then crammed all 17 weeks of expanded content into the 12-week summer semester. The majority of weeks had both a coding & writing assignment/exam due in addition to peer reviews and 2-3 lecture sets, so there's hardly a moment to breathe or get ahead. Dr. Joyner deliberately shifted the difficulty from grading to the workload, resulting in more reported hours of work but also a higher proportion of A grades.
The instructors made some scheduling mistakes: several assignments were due before the corresponding lectures. This piled onto the aggressive pace of the first half of the summer semester. That said, head TA Ida was probably the best TA I've ever had in OMSCS thanks to her quick and very specific help on the forums.
I believe many OMSCS classes don't adjust the syllabus for the summer semester, so this class probably isn't the best or worst option for a summer semester. Strong Python students should still be comfortable in KBAI during the summer. In its current format, I would rate the class Easy for Fall/Spring and Medium for Summer.
Grading
The syllabus seems designed with the expectation that students will get lower scores on 3 assignments: the 2 exams and the final RPM code submission. These assignments are far more difficult to get a >90% than other assignments in the class. To get the A, it's important to get >95% on all the Homeworks and Mini-Projects. No curve or extra credit was offered. The Head TA stated in a forum answer that they round up for cutoffs: 89.5% rounds up to 90% for an A.
Homeworks (writing assignments)
The writing assignments are well-organized but simply time-consuming because the 2 main questions are subdivided into 6-10 specific sub-questions and visualizations.
Achieving near full-credit on the writing assignments should be a rote exercise: follow the JDF format, use proper APA citations, answer every question & subquestion thoroughly, include requested visualizations. It's a good idea to always include one or two tables/figures because, unless your writing is extremely organized, the graders heavily favor visualizations. There are no points for formality, so organizing sections by questions is the most straightforward choice.
Mini-Projects (coding assignments)
I appreciate the intent to create interesting, open-ended applications of the course content. As other reviews noted, it's easy to find overspecialized solutions which exploit the predictability of the autograder, which is more lenient than other OMSCS courses. These are all 50% autograder (Gradescope), 50% written report. For better or worse, 3 of these problems are graph problems, so CS6601: AI students have a huge advantage here.
- Missionaries & Cannibals: other reviews have cried "it's just BFS!" but that is exactly the point: state-space searching is a large component of AI. The whole challenge is creating & managing the state representation.
- Blocks World (Sussman anomaly): I believe this is the most challenging mini-project. It's similar to the first project but uninformed search will not work. My solution was a hill-climbing algorithm from YouTube.
- Sentence Reading: I agree with other reviews - this would be the most difficult problem if it wasn't so easy to exploit the grading methodology with hardcoded workarounds. I didn't see anything more creative from peers in the class because we can't use any NLP tools. Most students created a production system (series of
if-else
statements) which mapped question words (e.g. who, when) to the set of possible answers. I also abused the grader a little and submitted 20 times until I got a favorable set of questions for full credit.
- Monster Identification (Classification): I thought the problem might require a nearest-neighbor or version spaces approach, but my first straightforward attempt scored 100% with just 8 lines of Python code. This is definitely the easiest programming assignment I've completed in OMSCS.
- Monster Diagnosis: Yep, another state-space search problem (I used A*, but BFS should work). The data is nested dictionaries of strings, so a bit more annoying to work with than MP1. I saw a lot of peers brute-force this problem with
itertools
.
Raven's Progressive Matrices
This semester-long project is the most interesting challenge of the class.
For students who have a hard time coming up with solving strategies: start with the Joyner paper and take advantage of Peer Reviews & Exemplary Reports for more ideas.
I didn't get penalized for literally hardcoding the answers to the Basic problems with a simple lookup table, so that was a guaranteed 50% minimum on the coding portion. As long as the report demonstrates that you put effort into more generalized strategies, you'll get a solid grade. Ideally, you aced all the Homeworks, Mini-Projects & Milestones so you don't need a high score here.
Exams
Proctored but with generous policies: open-note, open-book, open-internet. As another review mentioned, the exam is effectively 110 True/False questions. The instructors also put in effort to ensure none of the answers derive verbatim from the lecture notes, so a substantial amount of reading comprehension is required similar to the SAT or GRE exams. I sympathize with the non-native English speakers in the class because I honestly believe they're disadvantaged.
In my opinion, the only effective strategy is recognizing the lectures associated with questions. The exams will punish you for rushing or skimming through the lectures. I rewatched all the lectures on 1.7x or 2x speed the week before the test to "study" and achieved one of the top few scores on each exam. The class provides a PDF with all the lecture transcripts to make this a bit faster to review. Thankfully, the exam does not pull any content from research papers or additional readings.