Average Workload
Average Difficulty
Average Overall
This was my 2nd course overall. I found that this one wasn't that great. It seemed mostly a waste of time.
The lectures weren't interesting. I found that after the first couple of weeks, I just stopped watching them. They don't relate to the homework or projects at all. It seems to be mostly examples of cyber-physical systems and designs. I would have preferred lectures that talked about the topics in depth, instead of just talking about examples.
The homework assignments were pretty basic. For someone coming from a mechanical engineering background, I am already familiar with matlab, and so the homework assignments at the beginning were pretty easy. They became more difficult at the end, but most of the time is just spent learning about the environment and background, not actually doing much work.
The projects were somewhat interesting. The first one was a bit of a learning curve to learn about the robotarium system, which is pretty cool. And then the second one was a more advanced version of project 1. I thought it was actually a lot of fun.
Project 3 is a different beast. It wasn't that challenging once you learn a little bit of AADL, but learning it was just annoying, because you know that most likely you won't have to use it ever again. I thought you could have learned the material without learning AADL. Overall, it just felt out of place.
Overall, I thought that the course was pretty easy. The projects take some time, but otherwise you don't really have to worry too much about spending time on the homework or course lectures. I would say that this is an easier class that you could pair with something more difficult. To me, this class just wasn't interesting enough to recommend. I don't really feel like I got anything out of it, but maybe your experience will be different.
This was my 8-th course in OMSCS, with some easy and hard courses behind, and I didn't dislike the course at all. Like many others, I considered it a more reasonable option for CP&R specialization than CV in its current state (especially considering I completed CP), and I reckon it was a right choice.
I'll first try to cover the negatives generally expressed in the reviews - I understand most of the background for those, but will present my perspective. For the records, I don't have any real exposure to robotics apart from some previous courses here (like AI4R), but I do have an experience in the simulation of embedded systems, which can also be considered cyber-physical ones (still, mostly high-level exposure on a system level).
"The lecture material doesn't relate to assignments".
"HW5 and project 3 are substantial nightmares, disconnected from the course".
Like most of the assignments, HW5 is another case/example evaluation and it did carry a degree of ambiguity. Some of the complaints in the reviews here here are surely justified. There were people who got the full score there - I was not among those, and some of the points I lost I can attribute mostly to ambiguity, but partly also to probably not going deep enough into thinking about aspects WRT what was intended. It's true that most of the homework was not really exercising exact material previously studied, rather being very open ended, with point deduction reasons sometimes being hidden in the maze of what lectures were intending to summarize. I think HW5 indeed was the most glaring example in the course where better background articulation/preparation could have been in order. However, I can't say it was fully useless and disconnected.
Project 3 and AADL. Indeed, AADL may indeed not be widely used. However, this should not matter much here, as the way I took it, it was an example on how to evaluate, adjust, simulate and analyze system design, and AADL is just a tool to see it through. It was not hard to learn it in a way of what to copy-paste. True, some fighting was there and could probably be avoided with better assignment structure, but there were hints and answers generally provided. The assignment setup including the provided VM was well prepared. Getting it done did require some fiddling with syntax, that's true, and also some basic code structure/inheritance vision being exercised. Yes, someone with no coding experience could struggle to converge fast, but by no means some substantial knowledge or experience was required. I'm not saying it was ideally smooth, but the hooks were there. I had zero experience in AADL before, and the points I lost were not related to that at all.
Others have mentioned that the grading was not really "completion based", and I agree.
"Generally missing teaching objective / background for the material in the course".
So now to other positives. First, the ability to exercise MATLAB (had zero exposure before the course) on some of the assignments and especially projects 1 and 2 - really nice projects, well set up, nicely visualized. Project 1 is the best one where you can exercise a rather easy example of robot planning in real life Robotarium, and project 2 included a competition on solutions (make sure you properly validate the distance etc. constraints there, as otherwise you could loose a lot of unnecessary points, as described in the assignment). Overall, those projects were fun and generally easy.
The rest of the assignments were also fine - not always straightforward, and in some cases, ideas from AI4R and sometimes other courses did help.
The exam was pretty good - take home, two elaborate problems to solve or to analyze. More or less a take home assignment (in the spirit of AI exam format, but shorter and obviously different assignment nature). It also had a few bonus points.
We also had 5% "free" points for Piazza participation.
By all means I didn't get a full score on all of the assignments, but still, I was never far away from a very high A, and again, my relevant background level was medium or lower. The load was rather low - there were a couple of weeks (e.g. during project 3 part 1 submission period of 3 weeks) where I literally did not invest time into the course at all. Try doing that in a course like CP!
The TA support on Piazza was solid - I didn't have any issue, the questions were answered timely and to the point. The atmosphere was good. The TA-s held office hours. The second professor, Dr. Hugues, who was "responsible" for the most "problematic" content of the course, was very much available and actually helpful, e.g. for the project 3.
So all in all, this course might indeed have a different setup and mindset than others (although, that can be said about many courses), but it has definitely left a positive feeling and it was not on the hard side with an open-ended approach.
I didn't like or dislike this class - it was entirely neutral for me. I took this as part of the CPR specialization because I did not want to take CV based on the really negative reviews of that course.
The subject matter of this class was not that great. If you have any engineering degree (or a BS CS), a lot of this will be review from undergrad especially around engineering design processes. I did not watch a single lecture in this class because they were extremely long and did not tie to the homeworks or projects. Each homework/project has its own resources which are usually readings. Project 1 and 2 were pretty interesting and relatively enjoyable. The grading for both of these was fair and mostly automated so you knew what you were getting when you submitted.
Homework 5 was just long - it wasn't hard per se but did take a while to get through. Project 3 was really irritating because you have to use a language called AADL which is entirely useless in the real world. Most of my time spent on Project 3 was debugging AADL setup issues and trying to figure out how to use the software. FYI the software for project 3 does not work on Mac M1 at all. M1 does not have VM support - and the software also does not work well on Intel Macs forcing you to use a VM. I really dislike using VMs because of how slow they are, so I had to fire up an old Windows laptop from college to complete this project which worked well.
There are a couple of things I want to point out though about grading. I felt that the grading in this class especially for Homework 5 and Project 3 was extremely nitpicky and totally based on accuracy and NOT completion. This conflicts with some previous reviews of this class that mentioned that grading was lenient. My Homework 5 report was extremely detailed and I still got a bunch of deductions on it because I was missing minute details the TA was looking for. The grading is totally based on accuracy which is very frustrating because the assignments have very little resources and you are kind of on your own to figure out what the TA's want. They won't really clarify what they are looking for and mention that "as long as you explain your reasoning, you will be fine with grading". This is not necessarily true though because they deduct if the answer does not contain all of the points they are looking for. I am not dinging the TAs because they did try their best to help out throughout the semester. My main point here is to go in optimizing for complete accuracy and not completion when it comes to submitting these reports.
There is a take home, open note final at the end which is fair and pretty interesting to work through. I paired this course with an easy elective and had a very chill semester overall. I probably could have paired this with an equal or harder class and still managed well.
The first half of this course was actually enjoyable and I thought the grading was decent. Then when HW5 hit and project 3, they clearly didn't take any advice from previous semesters and kept the same useless material. The grading was not generous at all on HW5 or project 3 and I tried to add every detail I could find within both those assignments. If you misunderstand their interpretation on a question, -50% for that question. Never before have I put so many hours into a project without any way to fully verify what I was doing was correct since they don't provide any material on the last two assignments (or any of the assignments really but, the first half of the course was more logic based.) This course is a required course for most so, do your best on the first half and brace for the second half.
This course is an introduction to CPS. It can be divided into two parts. The first part covers the control system design. The second part focuses on safety and security analysis. In this course, the most difficult project is using AADL to analyze an UAV system. But don't feel so frustrating with the abstract concepts. It is an open topic.
Pros
Cons
Conclusion
It is an interesting but strange course. Nevertheless, the course is qualified for CPS topics. As many reviews mentioned, you may take it as one of the robotics specialization or to balance your work and life. For improvements, I hope assignments can cover formal methods and vertification in the future.