The entire syllabus can be viewed here. While other classes can sometimes suffer from poor communication and unclear requirements, David Joyner’s courses are always exceptionally well-run.
A small aside: I’m a strong believer that all classes should have the entire syllabus available from the start. Classes rarely change much from semester-to-semester and one of OMSCS’s biggest advantages is the ability to do your school work on your own schedule. While I am sure there are some logistic issues to work out, releasing assignments week-to-week creates an unnecessary artificial time constraint on students.
As for the class itself, it is more theory than practical/technical. The biggest complaints of the course is that the programming projects are only peripherally related to the content, which I think is valid, and that there is too much paper writing, which I do not think is valid criticism. While most of your OMSCS work will be programming-based, being able to competently read research and write papers are absolutely vital skills for to a grad student. Frankly, I think those who are turned off by this aspect of the course are just not particularly good at these skills — and they should take this class to get better at it.
This is very much a ‘get out what you put in’ type of class. For the project, you can really spend endless time fine-tuning your AI to be able to solve all the possible problems. There’s also tons of optional readings that I’m sure are interesting if I had decided to read them. The reviews of this course show a wide variance in the number of hours spent on it. But the amount of work to simply get an A in the course is minimal.
For the projects:
- The number one mistake people make is trying to do too much at first, and then scrambling to get something working before the submission deadline. Get enough working to get full credit. Then you can can go nuts and try whatever strategy you’d like.
- Implement the visual approach starting from Project 1. It will take a bit more up front learning, but you will ultimately save a lot of time.
- You can get full credit with some pretty dumb algorithms. I only needed minimal adjustments from my Project 1 submission to solve the problems for Project 2 and Project 3.
- Spend time to get JDF format exactly correct for your first writing assignment. After that, you can copy and paste the formatting for future assignments. Yes it will take time, but formatting issues is a dumb reason to get points off.
- Remember a TA is probably spending five minutes looking through your paper and following a rubric. To get full credit, it is much more important to make sure you address every question than it is for you to write something insightful. Every section of the homework will have many questions. I recommend taking every question, make it a bolded header in your paper, and be sure to write at least a couple lines addressing that question. It will help you ensure you’ve hit every talking point, and it helps your TA follow along her rubric.
- A common complaint was ‘tricky’ wording. Personally I did not have much trouble with them, and I think I probably benefited from being a native English speaker who has grown up in America taking standardized tests. The best advice I can give is this: the exam is multiple choice and some of the choices will be made up of compound sentences. If any part of the compound sentence is untrue, then that the choice is not correct. Sounds simple, but it helped me with the exams and I hope it might help you.
- Even if you struggle with the exams, they are worth so little of your grade that you can fail them and still get an A in the course. They are open book and open internet and it can be argued that you don’t even need to study for them.