CS-7638 - Artificial Intelligence for Robotics
AI4R, RAIT |
Toggle to Select Spcific Semesters
Reviews
Background: Stats BSc, algorithms, strong Python
General: This is an interesting and not too difficult course. The materials can be overwhelming for non-AI background people like me, but it is possible to deliver fine-enough results. It doesn’t require a ridiculous amount of efforts, but definitely needs some focus and brain-scratching.
Towards the end, the course feels lighter since the materials end early and you only need to focus on the projects. I spent way less time on Warehouse and SLAM compared to Particle and Drone for some reasons. The % of exams are quite low, so if all projects has >= 90% there is not much pressure on them. I did not go all in on projects (frankly I think it is too hard for me to get the perfect scores), but 10~12 hours/week is enough to scrape an A. I did learn a lot and have a good (and hopefully representative) overview on AI.
Hands down the best experience I had in OMSCS so far.
Pros:
- The lecture videos by Dr. Thrun are consistent, clear and enjoyable.
- The TAs are top notch, with weekly (bi-weekly?) live tutorial on lecture topics or project problems.
- Very responsive feedback from teaching staff on Ed.
Cons: (more like an improvement suggestion)
The class managed to teach you a lot of very sophisticated algorithm without throwing any complicated math equations at you.(Kudos again the Dr. Thrun and the teaching staff) It makes the class a bit “too easy”. Personally I don’t mind math equations and I feel it necessary for graduate level courses. With the current setup, you kind of have to translate the “layman terms” in the class to “academic terms” first, and then search for more serious stuff accordingly. But don’t worry, the teaching staff in this class are always willing to help. So, I would say this is an improvement suggestion rather than a “con”.
This is my second semester and I took AI at the same time. The first assignment search of AI defnitely saves me a lot of time for Warehouse and SLAM projects. All assigments are really fun and come with visualization. Some projects are heavily relied on parameters tuning (Kalman filter, particle filter, PID control), which take me a lot of time resubmitting them on Gradescope but the resubmission process also reinforces my understanding in the hyperparameters. So I want to complain about the heavy parameters tuning but I also like it LOL. The lecture videos are kind of outdated but the TAs make fabulous tutorials to fill the gap between lecture videos and assignments. I got 98 for this course by only watching the lecture videos, tutroals, recommended materials in assignemnt instruction, ED discussions, and slack channels. I didn’t spent any time reading the textbook or other online materials. All TAs and instructors are wonderful! They are super responsive in answering ED threads. All my ED questions got answered by someone within a day. Midterm and Final have 15 and 30 questions, respectively. They offered a small practice exam pool and most questions come from, or at least similar to the quizzes in lecture videos. I got 85% for both exams without preparation. I think they are trying to make this course more difficult than beofore, but I enjoyed it.
PERSONAL BACKGROUND
- I’m a first semester co-enrolled in CS 6601: Artificial Intelligence.
- Officially speaking, I do not have a CS background, but I did complete 2-3 years of CS undergraduate courses in order to prepare for this program, which was definitely worthwhile.
PROS
- You will learn important concepts and algorithms used in robotics to help robots deal with uncertainty as they try to achieve various goals.
- The content is interesting and provides you with many insights into robotics that are not obvious.
- In my opinion, the programming assignments strike the right balance between difficulty level and still being doable.
- TAs and instructor are very helpful and responsive.
CONS
- This course lacks a proper introduction to the basic concepts of robotics, and this is a major problem. For instance, module 1 begins discussing localization (how a robot determines it’s own location in a map) without ever defining what robot is or how a robot even works. Having a mental model of such things before diving into topics like localization or motion planning would be really helpful. In the beginning of the course, I had to turn to outside resources and scramble to develop a conceptual framework I could build on.
- The course textbook/lectures lack proofs and mathematical rigor. Terms are often ill defined. Erroneous and unconventional notation abound. The textbook in particular would strongly benefity from an editor who is a mathmatican combing through it.
- Certain topics are explained with painfully insufficient depth and clarity. In particular I’m thinking of the lectures regarding A* search and dynamic programming with/without stochastic action. The latter even contains fundamental theoretical errors that only became apparent after I turned to outside resources to recieve a proper education.
SUMMARY
- I do believe the course delivers on the promise of introducing you to key ideas and algorithms in probabilistic robotics. Do not expect to be some expert; it is a shallow but wide exploration of important tasks performed by robots, namely self-driving cars, and how such tasks are implemented in terms of software.
- On average i spent about 20 hours/week on the material: reading, proofs, lectures, coding, turning to outside resources to fill in gaps.
- The content itself is not challenging to grasp. It is only made difficult by the lack of background that is provided at times: it’s either assumed you already know enough about the given topic to keep up, or the foundation for the topic is poorly introduced. A good example would be parameter tuning in coding assignments. Many students complain about the tedious, excessive, and arbitrary nature of it. This is only because the course assumes, or doesn’t care to explain, a knowledge of appropriate search or optimaization algorithms.
PREPARATION TIPS
- I do not recommend this as a first semester course. Instead, I strongly urge any first timer to take CS 6601: Artificial Intelligence. It is a proper intro to the AI/ML field and all relevant concepts in this robotics class. Anyone taking this class would be served by reading the following chapters in Artifical Intelligence: A Modern Approach, 4th Edition, Norvig
- Ch 2 Intelligent Agents
- Ch 3 Solving Complex Problems by Searching (particularly Informed Search Algorithms such as A*)
- Ch 4 Search in Complex Environments
Great Course but requires patience and time. OMSCS students seating in many different boats.
1) Trying to get a MS from reputed US university with little cost 2) students who is taking this course to switch their field from something else to CS 3) Software professions who has full time job and taking the course to expand their knowledge.
If you belong to 1) and 2), then OMSCS is your key focus, and you will dedicate all your time for it. I belong to category 3) where I work in FAANG and trying to pick up some more knowledge doing OMSCS courses. This course demands substantial amount of time in tunning and running unit tests again and again and again. I found this slogging mindless and waste of my very precious time. OMSCS won’t advance my career an inch then why I would spend my invaluable time on tuning parameters. I thus dropped the course in the middle. So, my suggestion is deciding your battle. Find how much value is added to your career prospect. If you belong to category 1) and 2), jump into this course as it has very good material.
I am not sure if people here are all students with a 160 IQ, but this class is nowhere easy if you do not have an AI/ML background.
I greatly enjoyed this class was. I think this was one of the top 3 classes I’ve taken in the program (out of 9 so far).
This class is good if you like certainty (knowing your grades ahead of time) and working early (projects are released much earlier than other classes). The projects are quite time consuming and by no means easy, but if you work early and hard, then you should comfortable get an A in this class.
The midterm and final give you two chances for each, so you can Yolo the first attempt and then study for the second if you need to improve your grade.
This class probably isn’t for everyone. But if you enjoy coding puzzles, it’s a really good one. It also worked very well for me because I overloaded this semester, so I was able to get ahead in this class, then focus on my other classes towards the end of the semester.
The lectures of this course is created by the professor Sebastian Thrun but the this course is ran by the Sr. Lecturer Jay Summet.
The lectures are really great since you can get a good intuitive in probability and linear algebra from the professor Sebastian Thrun.
However, the course goes to Andromeda with the projects organized by Jay Summet with the TAs. You have to put tons of time but you will gain almost nothing from the projects. It is not because it is hard to understand, but because it is just tuning a hyper-parameter which does not require any knowledge or understanding of subject. You can get an easy A if you are ready to put random numbers with tons of time without thinking.
When you ask something that is very simple, the TAs are very responsible. However, if you ask something that is difficult, they won’t answer your question. I honestly felt like they do not deeply understand some subjects.
My background: First semester in OMSCS and took RL and RAIT. Have prior ML and Python experience.
This is an easy course with a few hours of video content (with PDF notes provided). The midterm and final exam are entirely based on the concepts covered in the videos (so, no extra reading / textbook is mandatory). The assignments have crisp instructions and provide boilerplate code so that the students only need to focus on implementing the key concepts. Assignments have unlimited autograder attempts allowed. The TAs and instructors are very responsive on Piazza. Thus, overall, this is one of the best managed OMSCS courses, and coupled with the low amount of content (although there is a good amount of learning), it is an easy course.
Thoughts:
- Difficulty is medium-hard for me. To get 90-95%, you need to work medium-hard. To get >95%, you need to work hard. With medium effort, you will be on A-B border.
- Course content is a bit outdated, but still nice to learn for someone new to AI/robotics.
- The workload varies based on what is due that week. The projects took 20-30h, but the lectures + homework took <8h.
- Materials are math heavy (probability, trigonometry, matrices). If you do not have good math background, expect to work harder on projects.
- I enjoy the practical projects overall.
- The code are ugly. But they do not grade the readability of your code.
- TAs are vague when answering questions on Piazza, they usually give a run around on the questions themselves and not giving meaningful suggestions. I found students posts more helpful.
Tips:
- Try to get >=98% on homework and earlier projects. Then the last project and final will be easier to handle to get an A.
- Last project is hard, expect to drop 10-25%. If you do not put in much work, expect to drop 60%.
- Final exam questions are harder than midterm, expect to drop 15-30%.
- Piazza posts and office hours videos are a must to complete projects.
This was my first class into OMSCS. I had read that a lot of people really thought it was a good starter class and I thought the topic seemed interesting enough. CS, matrices, self driving cars? What’s not to love? I ended up being very wrong. The biggest flaw with this class are the people “teaching” it. The professor uses content that is 10+ years old taught by a completely different person. The professor honestly spends office hours answering Piazza questions with no visual diagrams whatsoever and is pretty hands off otherwise. I would love to have a teaching gig where I didn’t write the content and I let my TAs do all the work. Speaking of TAs, while they are more helpful than the professor, they are also useless. In making a private post to the TAs about some trouble I was having I was simply told to “google it” and “think about your problem some more and you’ll find the answer”, super helpful. The real MVPs are the other students making the Piazza post. They will answer questions and even help you with some of your errors.
The weekly work hours are hard to pin down as some weeks you have next to nothing to do and other weeks you will have a project due which could take you several hours to complete. The homework for this class wasn’t terrible, they gave the answers although they are Python 2 and your answer should be in Python 3, so that was fun to try and translate those. The professor and TAs do expect you to work 3 weeks ahead though. They will have office hours for a project that is due in three weeks and then will not answer any more questions after that.
The projects for this class are the biggest point values for the class. The first few projects are not too bad, but the last two projects will for sure set apart the As from the Bs. I had an A in the class until I got to the last two projects. The difficulty for these projects is insane compared to the ones from earlier in the semester. Both projects have second parts that are weighted more heavily than in earlier projects, these extensions are not taught in the class and are more application based, that being said, in the beginning they are worth 20% of your grade, at the end they are worth 60%. Totally unfair in my opinion.
The midterm was really easy. All multiple choice. It’s only 5% of your grade though. The final exam however (worth 10%), was advertised as being “just like” the midterm, but the questions on it were not just multiple choice. They were multiple select, fill in the blank, etc… Thus increasing the difficulty needlessly.
TLDR - Don’t take this. Getting a B in this class feels like A work. I am lucky that I had such a high grade going into the later part of the semester, but if you are barely at a B by mid semester, you might want to consider dropping. Professor and TAs are getting paid to do next to nothing and overall the class needs a complete rework as the content is practically old enough to vote.
So, this was one of my first classes in OMSCS. I took two my first semester. Don’t do that, especially if you haven’t dealt with Python before. There’s a refresher for this class in the beginning. Sometimes the projects are fairly straightforward such as the drone tuning project and the first project with Kalman filters, but there’s a lot more time involved in getting it just right. The ones that are more difficult for sure are the warehouse project and the SLAM project, which I was not able to get 100% on, only 85 and 84. I bombed the first midterm on both tries, but I luckily got 100% on all the other projects and studied my butt off for two days to get a B on the final (cumulative), which got me a solid A in the class. If you read the reviews here, they’re mostly from biased people who got an A that I guess brag about their intelligence? Well, I got my A through hard work between this and another class, and I definitely learned a lot, although the material was outdated. It was still super interesting as a first exposure to robotics and reading the lesson notes were a lifesaver instead of watching the lectures when it came to reviewing for the final (minus the bicycle motion lectures, you need to still watch those). At times I’d neglect this class and spend time on the other one, but it was almost like they were neck and neck in needing my attention at times. Do not start projects late. You can procrastinate on learning but do not start projects late, that will save you heartache, especially for when you find they end up taking a while to pass the test cases and the test cases in grade scope are NOT the same as they are locally. The homework was more of a “did I watch the lectures” kind of deal. They essentially give you the answers for most of it, there are some updates you’d need to make to your answers due to errata/python language being updated. Safe to say I enjoyed this class and am considering switching from Machine Learning SP to Robotics! If you like using your brain to do trigonometry, linear algebra, small amounts of calculus, programming, physics, this course has a decent combo of it all. If you’re from not from an engineering/STEM background, you will likely need to brush up. I had to debug several things by hand. There’s also plenty of office hours support, which sometimes I had to resort to and was very helpful actually.
Professor and TAs are smart as whips and really good quality. Piazza though? Please move to Ed Discussion like other courses. You will spend a lot of time reading discussions on Piazza searching for clues, ideas, insights sometimes when you hit a roadblock.
Getting a B in this class is not hard to obtain. You can probably do minimal work. Getting an A is where it gets rough.
This was my first class in the OMSCS program, so I can’t compare it to others, but I’ve taken enough college classes to know that the quality of the professor and TA’s is exceptional. You see a lot of reviews for other classes where the teaching staff are not active, projects don’t work, etc. You will not have that problem in this class.
The class is very asynchronous, so you can work ahead and then take time off. There are whole weeks I did nothing at all and single weekends where I spent >25 hours working on a project. Projects require 30-50 hrs each if you want to get 100%. Just getting by with 80% will require half that much time. There are not too many projects though and they are fun.
I will reiterate what others have said, because I think it is the reason people do well in this class or not and whether they like it or not. That is, you will not get all of the information you need from Sebastian Thrun’s pre-recorded lectures. However, you will get the answers you need if you read the supplemental materials, take the initiative to ask questions on Piazza, and spend time really trying to understand the material. You have to be willing to very clearly post on Piazza what it is you are not understanding. If the TA’s can see that you put in the time and effort to try to understand the concept before posting your question, they will give you the information you need. If you don’t show in your post that you put any effort into understanding the concept first, you won’t get as much help (or sometimes any). You will learn a lot in this class, but you won’t do it in 5-10 hours per week like many people mention spending. Just watching the lectures isn’t enough.
Material is pretty interesting and unique, especially for this program. The old lectures somewhat detract from the class experience. Projects are interesting, very cool to have the visualization options to see what exactly your code does.
By far the best part of this class is the instruction team (Jay - Professor, Chris - Head TA). Super responsive discussion board, even in private posts. These guys know their stuff and never hesitate to share the knowledge effectively and offer additional background. I feel that their participation in the discussion board was a huge boon to my learning. They are a large part of why I gave this class a 5/5.
In terms of workload, it fluctuates significantly. I kind of forgot about the class for two weeks, spent a few days working on problem sets/projects, then got out of it again. Average is probably 10 or less a week.
My background is in Mechanical Engineering, relatively little programming experience although I am probably most proficient in Python, which was helpful. Nothing in this class was too difficult for me and I was only a slightly above average student in undergraduate. Just put in the effort and you should easily get above 90% for an A. 80% for a B would probably only take 5 hours a week, if that - though you probably wouldn’t learn much.
I am a software developer with no ML/AI background. So this course, in summary, really really really hard for me.
Every project took me more than 40 hours, and they are filled with tiny details that I don’t know before (and I have no idea where to learn those unless read all piazza posts). Professor or TA will give hints about reading certain parts of lecture or assignment, which technically provides 70% of the code needed for project. The other 30% took me a lot of time to understand and implement.
Lectures can use some update. Although I appreciate the effort of TA and professor doing weekly office hour, I honestly didn’t benefit much from those. Still getting most out of piazza posts. My classmates are kind smart people that willing to post on piazza and answer questions, I learned a lot from them.
Salute to those people saying this course is easy, maybe there are genius I am just not one of them.
I’m a software engineer without an AI/ML background.
I found this course challenging/frustrating but somewhat rewarding.
Projects were a lot of work, and some aspects of them were kind of annoying (e.g.: tuning. although it’s not as bad as some people make out) but on the whole they were pretty enjoyable. It could be very frustrating at times because your code could be 99% correct but you could be getting a grade of 0% due to the autograder
Exams were hard to prepare for and the practice questions made them seem like they were much easier then they actually are
Lectures were decent but could definitely do with a re-write (especially the SLAM portion). They are like almost 10 years old but still have errata in them and the lecturer really likes to congratulate you on grasping basic concepts which lulls you into a false sense of security.
I’m going to preface my review with this: I entered this class thinking I would be interested in the material. Turns out, I was not. So you may want to take my review with a grain of salt :)
I was not a fan of this class. As other reviewers have pointed out, it really doesn’t feel like a graduate level class, especially at a top-10 graduate program. The projects are mostly easy, I’d describe them (and the class in general) as “very easy B, easy-ish A”. They added a midterm for fall 21, but it’s only 5% of the grade (final is only 10%), meaning you can no longer just ace the projects and get an A. That being said, midterm was not that hard, and if the final is the same, I’ll expect an A. Plus, you can do the math on percentages here: if you ace the projects (some of which have bonus opportunities), you can skip the midterm and still only need a 50% on the final for an A.
The lectures were not that great. They did a good job giving an overview of how self-driving cars work, did go into some details… then that’s it. Maybe it was the fact that halfway through the class I realized that robotics/AI is not for me, but honestly the lectures just seemed boring.
At the end of the day, this is still an easy class if you want a lighter workload. Getting a B is absurdly easy, and A still easy, but will require you to do some work. I took this class along with another during the semester and usually only spent <5 hours a week on this class, with more (10-15) when projects were due.
TL;DR: If you’re interested in how robots find where they are in a world and determine how to move, you’ll like it. If you only want an easier workload, take it. If not, I’d say stay away.
I took this course to get a gentle introduction to the field of robotics, but I have to say I’m very, very disappointed. This course uses outdated lectures filmed back in 2012 and hasn’t been updated since. The code provided in the lecture has absolutely atrocious style where I could barely understand anything it was trying to do. I got lucky at the end barely scratch a 90 to obtain an A. But I really didn’t feel like I learnt anything from the course and would probably never use the material ever again.
Here’s a quick breakdown of the projects with my time commitment/opinions:
Kalman Filter (15 hrs) - The filter itself was not very hard. The second part of the project involves shooting the laser and clear out the localized objects. A simple algorithm like sweeping actually worked for me, I was able to get 100 on this project
Particle Filter (30 hrs +) - Wasted almost the entire week on this project. There was an overview video that covered something that was not covered in lectures, that kind of helped a bit. I was able to get it working eventually after tuning over almost a million different parameters. 101/100
A* Search/Dynamic Programming (20 hrs) - This was probably the only kind of useful project for me as I learned something about A* search and implement one on my own. The code provided in the lecture for this topic start to get ridiculously ugly. Online sources are more helpful. 100/100
PID Controller (<10 hrs) - This one is just tuning parameters and is kind of boring, but it’s not hard. 100/100.
SLAM (??? hrs, I didn’t finish) -this project was the one that told me this whole robotics thing just isn’t for me. I could barely understand anything the sample code in the lecture was doing, I felt like there has to be a different way that the matrix is constructed that is less confusing. I got part A to pass that was it. Ending up being really, really frustrated with the project and got a 56/100
At this point of the semester, I pretty much lost all my motivation and just want the course to be over. I didn’t review anything on the material and just took the final exam. They did give you 2 attempts and take the higher one. I got 22/30 and luckily scratch an A.
So, honest opinion. This course ISN’T the best course in OMSCS unless you are extremely interested in the subject. I kind of regret taking such a course and drawn myself in endless stress and frustration
My background: Software Engineer using C/Python. Mechanical Engineering background.
Relatively easy course. Problem set solutions are given to you, video lectures are nice and easy to follow, and you’ll get a lot of help on the projects from other students and TA’s. The projects are by far the most interesting part of the class, and they are actually really fun to complete. Here’s a quick breakdown of the projects with my time commitment/opinions:
Kalman Filter (10 hrs) - the filter is easy to build since the video lectures tell you exactly what to do. The harder part was the second section which for summer involved building an algorithm to target objects after localizing them. It honestly felt like the majority of my effort was not even working on the filter, and the lectures only go very surface level on this. Great intro to the topic though. 100/100 final grade.
Particle Filter (15 hrs) - this one was tough. There are SO many things to tune with a particle filter and not every component of it is covered in the lectures (such as fuzzing, they added a supplementary video that I didn’t see at first). It was such an incredibly cool project, but very frustrating since the tuning took forever, but I guess that’s the point they wanted to convey. 101/100 final grade.
A* Search/Dynamic Programming (10 hrs) - cute animations of a warehouse robot. The algorithms are cool and there’s actually a lot of design that you have to figure out yourself, but you can use the lectures and problem sets to help you along. Very fun! 101/100 final grade.
PID Controller (<10 hrs) - this one isn’t as fun, although the PID controller is a very important concept to learn. Definitely the easiest of all the projects. 100/100 final grade.
SLAM (10-12 hrs) - pretty easy to grasp if you have some background in linear algebra. The project itself was fun but very tough to tune/design to pass every single test case consistently. It was also the last one so maybe I just lost motivation. 93/100 final grade.
Final exam was fair. I’d recommend writing down notes of basic concepts of all the algorithms you learn during the semester. Most of the questions will quiz your knowledge of these. 25/30 final grade.
I ended up with a 98% in the class, with probably half the weeks spending 0 time since I was able to get ahead pretty easily. Not saying this to brag, but to let you know this is an easier class (if you have some coding/math background) that doesn’t really go too into depth. For me, it was a great class for the summer and a good intro to these algorithms I’ve never used before. Would recommend.
My background: Bachelors in Electrical Engineering, 6 years experience in Software development (Web, full stack).
This is one of the easy classes. The lectures are easy to follow and Piazza is active and TAs were helpful. The projects are pretty interesting and well documented. The class lectures are often not enough to finish the projects though. You’ll need to delve deeper into the topics, and participate in office hours. The projects were released well ahead of time, which was very helpful. The book was recommended, but I personally did not read it! Optional links for youtube tutorials and other reading materials were helpful. The final in this semester was 11% of the total grdaes (expect this to increase in upcoming semesters). It was possible still to not take the final and get an A using extra credit hardware/research challenge. The final would be a closed everything exam and requires a room scan. Read further details on the semester at my blog [OMSCS Journey | AI4R](https://omscs.royniladri.dev/ai4r) |
As a background, I am a developer (primarily Java / Java EE) - and have an ok python background. I have no background in Robotics/AI - and have lost my memory about physics, matrix and linear algebra.
For old farts like myself, I don’t think this course is a cake walk. It made me think through. At the same time it is not that hard, in a sense that if you put in some work - you will definitely get some good results. It’s just that the initial uncertainty of each project is high, and there is an initial ‘steep’ catch up that you need to do from Sebastian Thrun’s lectures and map it to the project requirement. The curve then falls sharply off and becomes easy. It does make you work to get those additional 10 - 15 points and you need to apply some ingenuity, out of the box thinking to get those.
I would say Sebastian’s lectures were not that great. The guy just keeps congratulating you and makes you feel contented until you eventually have toilet crying sessions trying to figure out why the a project needed me to implement what Sebastian mentioned was not worth ‘memorizing’ (for example). Eventually I realized this is the difference in quality between what an ‘Udacity’ module is V/S what a real GA tech course looks like.
I think Jay and Chris nailed it and made the class an absolute fun with the projects. I feel they should just create a brand new recording of lectures and scrap off Sebastian’s.
I have a somewhat unique view on this course because I started it a few years ago but had to withdraw early due to work pressure, then retook the course Summer 2021. As a result I’ve seen two iterations of it, which provides some context for recent and earlier reviews.
When I tried the course a few years ago I’d say it was “medium”. The lectures were OK but it was widely known that you could bypass the course material and just brute-force some basic geometry at a lot of the projects, which took a lot of the fun out of the experience. By comparison, the 2021 version has been revised, with new projects that have a much closer correspondence to the lecture material. By OMSCS standards the projects are also top-notch - the instructions are clear, the classes that you interface with are well built, and you are provided with visual debugging tools that really help to build intuition for robot navigation. There is a bit of inconsistency between the lecture content and the projects (this is similar in a lot of OMSCS courses … it will be interesting to see whether the program can adapt as its prerecording MOOCs age) but the TAs provide some nice videos to help bridge the gaps.
Beyond the above, the TAing for this course was absolutely top-notch. After working through a pretty student-hostile experience in RL last semester, this was a huge positive change. Jay and his team obviously care deeply about the student experience, and it really shows through in the effort that they put into the office hours, Piazza posts, assignments, and other materials.
Overall I’d say this is a great little summer course, and not too much work, assuming you have a decent background in Linear Algebra, Python, and Probability. If you don’t have that background then you may want to take it in Spring or Fall, as I’d imagine that some of the projects could get pretty frustrating quickly.
I LOVED this class, very organized, the instructor and TAs were excellent. I got an A on this but it was NOT an easy one. You work hard, really hard for it. The projects are amazing but REALLY challenging. To the point, it took me a while just to understand how to approach them. Just be aware, unless you are an expert in robotics, this class is hard work, not an easy A as other say and according to the comments, it is getting harder each semester. This summer, projects were changed, and new and more difficult sections were added. I did learn a ton and it was a great refresher on statistics and linear algebra, needed in the following classes I am taking like AI, DL, and RL. Highly recommended just take the “easy” reviews with a big grain of salt.
P.S. BTW, for the reviewer that spent only 4hrs per week on this class. I am really happy for you, you are a genius.
My average 18hrs/week is for shorter summer semester. Summer sem is 11 weeks vs Fall/Spring’s 15 weeks. This is my 2nd sem, 1st sem was Computational photography. Even a shorter sem of Robotics isn’t a match to CP in terms of effort. That being, its a perfect summer sem course that has enough to keep a student busy for the majority of 11 weeks.
You have to finish 6 problems sets and 5 projects in those 11 weeks. You get answers to 6 problem sets before they are due. But if one chooses to solve them on their own, which I did, these keep you busy and are rewarding. I bet, if Instructor doesn’t release these answers before these are due, the class avg difficulty rating shall go up a fair bit.
My favorite projs are MarsGLider, Warehouse and GemStones(frustrating at times).
Downside: I didn’t know how much tuning is needed to get solutions. At times makes it seem like our solution doesn’t have solid footing or science. Guess thats the nature of Robotics.
Some students complain that the course is light and doesn’t cover topics in much greater detail. I disagree 100%. What do you expect from a 11 week semester? build a real MarsGlider!?!. It has enough concepts to get you started. There could at best be an advanced RObotics class that picks up from where this class left off. All in all a very well organized class.
So I came in with a solid background in CS (undergrad and work as a software engineer at a Fortune 50 company), and Python is my strongest language so I thought this class would be doable. Turns out it had a heavy focus on linear algebra and some statistics. I dislike both of these so this might also be why I didn’t enjoy this class. The lectures were pretty useless besides the fact that you could copy over the code as a starting point for each project. The projects felt like a ton of guesswork with constantly tuning variables and I can’t honestly say I learned much at all, even when I got 100 on all of the projects besides the final. So if you’re looking for a course on programming robots themselves (First Robotics style) and simulations, etc. then this is not the course. If you like math and have an interest in A* search, Dynamic Programming, Kalman filters, etc. then this might be something for you. Taking it in the summer definitely made it a lot more challenging as well.
AI4R (or has it been rebranded RAIT?) ended up being a fairly low-stress course that had a few enjoyable and informative bits. If you’re really into robotics, you could take this course and work on the (optional) hardware challenges and probably get a lot more out of it. I was only looking for a slightly easier course to fill the summer while I’ve got some more time-consuming stuff going on at my job. For that, the course was perfect.
The meat of the course comes in the 6 projects, all python and build from scaffolding provided by the instructors. None were overly difficult, but neither were they trivial; I thought they were a decent challenge that made you consider the course concepts without making you pull your hair out. Another great thing about them is that they’re auto-graded with infinite attempts and immediate feedback, and there’s no written report that goes along with them. The instructions and code comments are thorough, and there weren’t really any gotchas; these were well-designed projects with good visualizations, too.
The lectures felt a bit disconnected from the rest of the course because it was some other guy focusing hard on self-driving cars. He seemed enthusiastic, though, and the lectures weren’t mind-numbing or time-wasting. You also finish all of the lectures about 2/3 of the way through the course, leaving a fair amount of downtime where you can focus on the projects, and if you finish those quickly, you have free time. This makes it perfect for a summer course.
The last thing I’ll mention is that the TAs for my semester were great; very responsive and helpful on Piazza.
My ranking for the courses I’ve taken thus far in terms of overall enjoyability: VGD > KBAI > ML4T = AI4R »> HCI > SDP »> ML > IIS
The weekly lecture videos felt pretty short, making it easy to learn the material, but they didn’t go as in depth as I would’ve liked. The final went more in depth than I was expecting, although it still wasn’t too bad. The math in this class is pretty simple I thought (although some parts wouldn’t be easy to understand without decent matrix/linear algebra knowledge).
The most important thing is to really understand the homework assignments. The answers are given to you, so it’s easy to get the credit for completing them, but they essentially go into more detailed topics than the lectures. These topics also show up on the final.
I didn’t find the projects too difficult, every one of them became rather easy to get over 90% after reading enough Piazza and supplemental resources.
Overall the class was pretty well structured as far as lecture topics and assignment organization, although there were a lot of weeks with not much going on.
Quick background: This was my second class in the program. I have a BS in CS from 20 years ago. Have not worked in the industry for 15+ years. Have taken a few ML certificate courses on Coursera and took KBAI my first semester.
Review: Overall I really liked this class. I can see why some of the more technical people in the program find this course very easy but for my background, I found it difficult yet rewarding. Mostly because of the projects and how they really made you dig in to each topic and understand the inner workings involved. It was very frustrating at times and at a couple points early in the semester I almost dropped the course because I just could not find information to explain the roadblocks I was hitting on implementing the projects.
My mistake is I was too hesitant to post questions on Piazza because I felt they were too basic or “dumb questions”. I should have just posted them and saved myself a lot of headaches. I managed to finally find enough resources and wrap my head around the topics.
The 12 hours/week is a bit misleading as I finished the course about 6 weeks early, so I averaged about 20 hours/week in the 11 weeks I actually worked on the class. At times during the coding projects I physically celebrated when something worked (you know the chair dance), which is highly unusual for me. But that’s how nice it felt to work really hard to understand a concept and then have it produce correct results upon implementation. This is a credit to the project materials and setup as well as to the professor and TAs.
For the actual course videos, I found them a bit lacking in depth. Based on my admittedly weak background, I did a ton of independent study, watching hours of YouTube videos on the subject material because the lessons just did not provide the depth needed to complete the assignments. Totally fine, and expected for a graduate-level class so this isn’t really a complaint but more of a heads up. The details of how a Kalman Filter works and the inner workings of the SLAM algorithm were two topics that I worked most extensively on outside of class materials.
The professor and TAs were very active and very helpful on Piazza as well as weekly office hours over Blue Jeans. The TAs especially were super-engaging with the students trying to help them out and clarify topics, very fast to respond and thorough. Students were also very helpful to those of us with less experience/understanding of the topics.
Projects were fun and I loved that everything is available from the beginning of the semester so you can work at your own pace and get ahead of things if you’re anxious about your abilities or if you have life stuff planned throughout the semester.
The homework assignments were pretty low stress and the answers are given in the subsequent videos so if you get stuck, you can watch the answer videos to help you get through. Trying on your own to understand and implement the homework definitely comes in handy for the projects though.
Deliverables have unlimited Gradescope submissions so you can see what you’re going to get for a grade and have a good idea where you stand as the semester progresses. There is a final exam at the end, it is worth 10% of the total but with the HW and Projects you can go into that final with near 100% and only need to get a few questions correct to get an A in the course. I did not review the material at all and my exam grade suffered for it, but by that time I had been done with the material for 6 weeks and was not motivated to put a lot of effort into the exam. Admittedly I shortchanged myself from using the exam to solidify my understanding of the topics, but we all have lives outside of this program and sometimes you have to pick your battles.
Definitely recommend this course for those of you who may still be early in the program and want to get your feet wet before diving into the classes that have reputations for being more difficult.
Overview
My background is CS major working as an software engineer at a FAANG.
This was my second class in the OMSCS program and I took it alone while working full time.
Overall an extremely easy class with very fun projects.
Projects
This class is entirely project based, something I personally enjoyed very much.
Each module focuses around a specific algorithm that you implement in the Problem Sets then you adapt your code for a specific robot in the projects.
Personally I found all the assignments extremely easy. I completed all projects over a single weekend with the final project being the only exception. Not including the final project, I scored 100 on all projects and 101 on two projects.
On the final project I scored a 93 because I could not pass one of the test cases. The only reason why I did not fix this was due to duties at work. I had over a 100% in the class at this point, and had multiple service launches so I left the project on the backburner.
AI
The AI concepts learned were extremely high level, and the lectures did not dive deep into the math. Felt much like a survey course.
Nano degree program
I wanted to mention this because it annoyed me very greatly. In the lecture videos, in the beginning and ending of most modules there was a small video advertising a Udacity nanodegree program for car automation. I felt that these ads made the lectures much worse, and it made it seem like the entire course was made to encourage students to take the nanodegree program.
I understand they can be skipped, but it just felt out of place.
Conclusion
Overall very easy programming course with some fun projects and neat visualizations.
Looking back, I wish I would have saved this course to pair it up with another course since it was so easy.
A well structured beginner course for anyone interested in building the brain of self driving cars. Content-wise, the course has broadly 3 components - Object Localization, Planning and Control. The lectures were pretty easy to follow. Dr Thrun starts from very basics and beautifully explains the concepts all along. This semester, there were 6 problem sets and 5 projects which comprise of 90% of the grades. All of them were auto graded on gradescope, so there’s no ambiguity or long reports to be written. Python is the language adopted in this course. The 6 problem sets were part of lecture videos and we were allowed to peek into the solutions. The projects had varying difficulty. While many might find them easy, it took me almost 10 hours on average for each of them. A couple of them took 20+ hours. All the projects and problem sets are made available within 2 weeks of course start and so there is ample time to complete them. The projects really stimulate the learning and helped understand the concepts better.The greatest part of the course were the TA’s. They were exceptionally helpful and active of piazza. Dr Summet used to actively participate in the office hours and resolve our queries. There were extra credit opportunities in form of research paper reading and hardware problems. There were separate OH to discuss the hardware problems. There was a cumulative end term exam of 10% weightage. We were give 2 attempts and the best of 2 was taken. The course is very student centric and scoring as well.
Take this course if you are really into robotics or you want an easy A. Otherwise, don’t have any learning expectations. The only good thing I found was the structure of the assignments in the sense that you knew what score you would get thanks to the auto-grader. However, most of the time on the assignments is spent on coding against some really complex formulas which the professor thinks you don’t even need to understand (which I agree with) and tweaking some parameters for days to pass the auto-grader. I really got no learning from the assignments or lectures although I got an A.
If you’re interested in Robotics, this is the best you’re going to get from OMSCS. The lectures for this class are 100% taken from old Sebastian Thrun videos that he created many years ago. I love Sebastian, he’s amazing, and he’s a huge inspiration for me, but if you’ve taken his Robotics classes via Udacity - like the Self-Driving Car Nanodegrees - there won’t be anything new here for you. That said, I did personaly enjoy reviewing the material. THAT said, I am pretty disappointed this is the only robotics-specific course in OMSCS.
Assignments are fun, all coded in Python, straightforward and pretty easy. If you put in any effort at all getting 100% on all of the assignments is not difficult. You are GIVEN the solutions to all of the homework assignments, meaning at the very least you are guaranteed 100% on all HWs. The final exam was fair and relatively straight forward. I didn’t really study and managed a 70%, while zipping through it in 30 minutes. Because the exam is only worth 10% of your grade, if you’ve gotten 100% on all previous assignments you can essentially skip the final and still get an A in the class (hence my casual approach to the final).
Keep in mind that although there is no required hardware component for this class, there are some extra credit hardware-related projects you can elect to work on yourself. Although I had planned on doing them, I ended up not having time. Which is sad, considering I came to OMSCS hoping to move into Robotics. But, se la vie.
Also keep in mind the term “AI” is used extremely loosely here. A better name for this course would be “Robotics Fundamentals: A Brief Overview of Robotics Basics” … you will not be coding any complex AI algorithms, you will not be learning about control theory (this class covers PID only), you will not be doing any neural networks or computer vision related autonomous robo tasks. This class covers the bare minimum to know the general basics of the Robotics world. If you’ve never ever learned anything about robotics programming in the past this is a lovely course to get up to speed. If you HAVE taken any kind of robotics course in the past, you won’t get anything new out of AI4R.
As others here have noted, Jay Summet and the TAs for this class were all amazing. Great weekly office hours, wonderful support on Piazza. Unfortunately, you won’t have the pleasure of meeting Sebastian.
TL;DR. If you’re at all interested in Robotics, and looking for a general overview of the space (no deep dives here!), this class is great. Sebastian is an amazing guy, I love him, but you may sometimes find his lectures too simplistic (for a graduate program, anyway). Projects are fun and easy. With any non-zero amount of effort you will get an A in the class. No book and no readings required.
As a non-CS undergrad, this course was a good first class in the program. TAs and professor are helpful and active on piazza. Prep beforehand might be helpful, but isn’t necessary as the course gives you ample time if you start early. If you do want to prepare, I suggest a brief review of linear algebra (basic matrix operations), trigonometry, and Python. I was a STEM undergrad, so I picked up the concepts fast, but again, they give you ample time and some alternative resources to help you out as needed.
I personally feel I learned a lot (if you want to deepen your understanding feel free to buy the textbook). The course provides you insight into applying probability to solve robotic problems relating to uncertainty in measurement, planning, and control. If you want a brief warmup to AI, I suspect this will help you a little since it covers linear algebra, probability, as well as A* search.
This course lecture is super easy, and problem set is also easy, but the project seems hard. Why it is hard, it is not because of the coding algorithm, but how to get started, since the description does not give enough details, and you need to read through the test codes to understand what is being asked for. I usually have no clue on how to get start, and have to read through piazza to understand more. It is a tricky and hard course, honestly saying. Maybe if you are familiar with Python, this course maybe easy for you.
I enjoyed this course but it is entirely too easy. With the right level of motivation you could easily complete all the projects in 4 weeks.
The topics are interesting but they do not go into enough depth.
The class could definitely be improved by just adding additional layers to the topics that are covered such as including unscented and extended kalman filters and how to handle non-linear equations of motion for particle filters. There is plenty to be desired from the course but it is at least well run and does not waste your time.
I have taken this in my first semester. The time commitment for the subject is very less. The subject is also very easy. Some of the concepts taught here are used regularly in the real world (in slightly more advanced form). The video lectures are extremely superficial though. The projects are well thought of, though they could make them more interesting by creating more variations to the “Part B” part of the projects. Prof Summet and the TAs are fantastic and are always there to help. Another thing I like are the regular weekly office hours. Good stuff!
I really enjoyed the class but I was not prepared for how much math was involved. This is a very hard class if you don’t have a background in linear algebra. The code is not the hard part. I understand how to read and write python. My biggest issue was comprehending the math and translating that into python. If you understand the math then the course will probably be easy for you.
This was my 4th class in the program and so far it is the only one I regret taking. The course was originally part of a Udacity nanodegree and it shows. Lectures are lacking in any sort of substance and the homeworks/projects are spoon-fed to you. If you are just looking for an easy A, this course will do the trick. If you are looking to stretch yourself in this degree program, then move on.
As a side note, my review is only on the course content. The professor and TAs are very involved and supportive. The root of the issue is that the lectures need an overhaul and the projects could stand to be more challenging.
This is a great first class. The lecture videos are good enough to solve the assignments but not good enough to help us understand the underlying math in depth. You can choose to read the Probabilistic Robotics book to understand the math but it is very time-consuming as the videos are much in sync with the book. Tutorials by Leo and Chris are very very useful in filling this gap. I wish these tutorials were available for all the topics and not just 2. The assignments are very interesting and thought-provoking. Do read piazza conversations before starting the assignments. It is not very difficult to get an A. Though I missed an A just by a percent as I couldn’t complete the SLAM project on time. The average workload varies as watching videos does not take a long time whereas assignments do.
Hardware and research challenges can be taken up if you are interested. Great job by professors and TAs.
My Background: Familiar with Python, Undergrad in CS, not such a good programmer.
Don’t underestimate this course like I did. Granted it was my first class, so I didn’t know what to expect. But really, the videos are kind of sparse and to do well, it requires quite a bit of work to get through the projects. My advice is to use the help from fellow students on Piazza and Slack well and work your way up iteratively towards the solution. I for one should have worked much harder. That said, getting an A in the course should be more than possible if you see all the work through. Each of the 4 projects has 15% assigned to it. So not being able to finish them will effect your grade BIG time.
For the motivated ones, the course is a great introduction to some commonly used robotics algorithms. So if you set aside twice the amount of time, you can read through the textbook, research papers, participate in the optional project and engage in discussions on Piazza. The rewards for doing all this will be a phenomenal amount of learning.
Knowing Python, debugging using PyCharm and Linear Algebra helps.
This was my third class after CP and GIOS. I found this class to be way easier than those two, but also enjoyable. Most of the concepts were new for me, and this class gave a great overview of the topics. I loved the format. Each lecture would have some code snippets that you should definitely try in your local IDE. Then the homework assignments built on those code snippets. If you copied them over to the assignment, then just tweaked a few sections the homework was finished. The project was then built from the homework. Copy the code again, add a few more things and variable tweaking and the project would be mostly finished. The projects were fun and most included graphics so you could see the various localization and filters working in real-time.
They did add a final exam this semester, but it was very fair. It was 10% of the grade, and if you are putting time into the projects you could have 100% going into the final and not even have to take it. They allowed two tries on the final.
Artificial Intelligence for Robotics felt much too simplistic for a college Master’s level course. The video lectures were very short, only shallowly covering the often very-technical subjects. I felt this style gives students the illusion of mastering the subjects without really understanding or being able to apply the concepts.
The biggest upside to the course is that the grades are entirely project-based, and you are allowed to repeatedly submit your projects to the grading site (GradeScope) to continually iterate and improve. This style of evaluation mirrors the real world where you have to solve problems and often have the change to improve on initial attempts. The projects were well-thought out and interesting to complete, although as with the class as a whole, they were a little too easy, mostly consisting of filling in blanks in the code scaffold provided.
Overall, this was an enjoyable class, but felt too easy which is reflected in the fact that I barely remember much of the content because we weren’t forced to deeply engage with the subjects. This is probably a good course to take as one of your first, or along with another course provided you are proficient in Python (which is used exclusively in the projects). If you are looking for an enjoyable and low-effort introduction to a few algorithms used in robotics, then this class will suit you, but for anyone seeking out a rigorous class that will lead to understanding, this course doesn’t satisfy.
I really liked this class, and as others have alluded to, it is an easy A. I spent around 10 hours a week on average, but I would spend around 2-5 hours on some weeks, and when trying to do the projects, I would crank out 10 hours over a weekend. It totally depends on how you want to work, as the projects are given really far in advance, so you could just knock out the projects in the beginning of the semester. The content is a little bit dated, and I don’t feel like I learned too much, since the lectures don’t really go deep into why/how the techniques actually work. The final is super easy, and if you start the projects in advance, you should be sitting at close to an A (even if you don’t take the final), since the final is 10% of your grade.
I have a more in-depth video review, where I walkthrough the projects here: https://youtu.be/pe4EnivoRHk
AI4R was my first course in the program. I picked it because I heard that it was one of the easier courses, had availability, and robotics sounded really cool. Overall, I liked the class because the material was pretty interesting. If you have a background in linear algebra and Python, this course would really only need 5 hours a week to get an A. I even finished all the projects ~4 weeks ahead of time. I did spend 10 hours per week though because I forced myself to read the textbook and some relevant papers to learn more (unnecessary). A final was added to this class this semester that some people stressed about, but honestly it was there to check if you got the gist of what was taught, nothing deep was tested. They gave us 45 mins to do 25 questions, but I managed to finish in less than 10 mins.
Pros: 1) Course content/subject was pretty interesting 2) Projects were pretty fun 3) Not super demanding 4) TAs were nice and active in Piazza 5) Slack channel was helpful
Cons: 1) Lecture videos were very superficial. Only gives you the surface level details of the algorithms and very little mathematical explanation (even though the subjects were actually very math heavy). I had to supplement the lecture videos with youtube videos and reading the textbook to make it feel like I was learning graduate level material. Note it was not necessary to do this to get an A in the course, the lecture videos sufficed 2) Problem sets didn’t really teach us much
As you can see, there were a lot more pros than cons, but I would say that first con really disappointed me as I felt like I wasn’t learning much when the material could’ve been so much deeper and richer.
This is my 4th course in the program (after SDP, Info Sec and Networks) and by far the best course so far. The course is very well structured with very helpful and courteous TAs and Instructor, which is not always the case with OMSCS classes. The projects were all very interesting and challenging.
I took it in Fall 2020 and the format has changed from previous semesters in that now we were required to take a final exam which was cumulative and was 10% of the final grade. There were 5 projects in the class (Asteroids, Mars Glider, PID (mini project), Warehouse and SLAM). There were also 6 problem sets related to the lecture videos, which had the answers available so it was more for supplementing the learning rather than really testing. The projects and problem sets are graded via Gradescope so that I knew exactly the grade I would get on each project, no surprises there.
I probably spent about 20 hours on all projects but the PID, which took maybe 10, including watching the lecture videos. Overall I found the Asteroids and Mars Glider problems to be most time consuming and ‘harder’. They also involved a bit of parameter tuning which was cumbersome and takes a bit of time. Definitely start these earlier and do not wait until the last minute (like I always do). PID was probably the most boring project because it required tuning PID controller without much coding. Warehouse was my favorite project - we implemented A* and Dynamic Programming for moving a robot in a warehouse and picking up and delivering boxes. The final SLAM project wasn’t bad either. It did seem that it may have troubled more students than the previous ones, but it could be that it was near finals + Thanksgiving so maybe people just started a bit later than the earlier projects.
The final exam is new and was just introduced this semester. It is a comprehensive exam that included material from all covered lectures. We had two attempts to take it and the highest score was chosen. I personally, found the exam to be very fair. It was multiple choice/ T/F + a few simple calculation questions. Closed notes, closed everything. I watched the lectures throughout the semester in order to do the projects. I was able to score >80 without any preparation or reviewing. Keep in mind that it is only 10% of the grade and if you do well on the remainder of the projects you may not even need to take it.
Some students had mentioned about a disconnect between lectures, problem sets and then projects. I do agree to an extent, because it seemed that while the projects were very well structured, the instructions themselves always left me with the ‘How do I start this?’ question in my mind. It seemed like we were given a some code for each project and instructions on what needs to be accomplished. Quite a few times I just had to go and step through the tester code in debug mode to figure out exactly what’s going on, what the set up is and how to approach the problem, because the instructions were not explaining any of it.
For example, for the very first project, the Asteroids, I knew what I need to do in terms of applying Kalman Filter, but I needed to google quite a bit to figure out exactly how to set the problem up because it was not explained and if you don’t know / don’t remember motion models then it was not really clear. However, the TAs and Instructor were so helpful which made figuring out what is needed easier.
Overall great class!
Overall I enjoyed this course. As some have mentioned the lectures need to be updated - there’s a disconnect between how far the lectures take you and where you should be to start the projects. Doing the SLAM project after lectures left a lot of people completely lost. The upside is the instructor and TAs are incredibly active on Piazza and fill in the gaps. They also held office hours that answered questions and gave tutorials over topics.
The projects were posted in the first couple of weeks and many finish early - I was done in early November, but I probably would have been done earlier if I hadn’t also been taking CP. They added a final exam this year, but it’s only worth 10% so most people aimed for a perfect score on all the projects so they could skip it. I don’t know if they’ll keep it at 10% in the future.
The projects usually took me at least a few days to complete - I have a strong background in Python and a CS degree, so YMMV. I don’t know that I would call them easy, but they were so spaced out that even when they took some time to figure out, you still had free time.
My main regret with this class was pairing it with CP. I was able to comfortably do both, but I didn’t have any time to do the hardware challenge - applying algorithms learned in the course to a small robot you built.
This is a good first course or summer course.
It is well structured, and very interesting for those who like robotics.
The way the class is structured with the exam, if you get 100% plus a few points of extra credit on the homework and projects, you don’t really need to take take the final exam, but its recommended to randomly guess on it just incase.
It is a good course for summer and you can front load the course and it is best course when you have holidays planned during the semester. Assignments are crisp and validate your understanding from the lectures. TA hours are super helpful to complete assignments and I strongly suggest to get a kit to try yourself building a bot from the modules in this course. It will be super fun.
This was my second OMS course and I came from a non-CS major. The first project was a bit challenging at the beginning because I was not used to OOP and modifying a piece of code among a big pile of files. Once I went through the first stage the rest of the course became a breeze. I ended up completing all my projects within the first 3 weeks into the class, and in another 2 weeks I even completed the optional hardware challenge. For the rest six weeks I was left with basically nothing to do and at the end of the summer I felt I already forgot a good part of knowledge learned from this course…
That being said, all the projects were well designed and served as a major part of the learning. I don’t really like the video lectures. Those are broken into a million pieces with coding “quizzes” so it’s not coherent and consistent at all in terms of what we code about. Maybe it’s just me but I would prefer to sit down and listen to a continuous lecture before diving into coding, rather than switching back and forth like every 2 minutes.
Overall, this could be a good course to pair up with another. Again the projects in the course are very high-quality and entertaining to work with.
The course concepts are interesting and informative. They also translate extremely well to the projects which I feel is a strong plus. The main negative with this class, is that there is a heavy emphasis on parameter tuning. Almost every project focuses on modifying values and almost no code/logic creation. It’s as simple as given a function definition, fill it up and tweak values until it passes. I have on average spent 3-4 hours coding/testing and the rest of the time parameter tweaking. So be warned it’s quite annoying and stressful. Other than that the projects are not only interesting but largely applicable to real world scenarios. The weekly problem sets are easy as some have mentioned it’s to check your understanding not to necessarily grade you. They also added a final exam, so that’s a new downer for most. Study study study! Still it’s a fun class, difficulty isn’t as hard as most but tedious.The professor is knowledgeable, but don’t expect him nor the TAs to give you big help, this class is definitely a lot of independent study. They are helpful on piazza, and office hours though :)
One thing that is really terrible is this is they ONLY real robotics class. The concepts are great, but this is sadly as far as you’ll go if you do a CP&R spec. So definitely take it because this is about as deep as it goes for robotics in this masters. If you want to know what algorithms drive a lot of systems, or even how sensors work, and how they differ from what you’ll learn in here, the TAs help with that! It was really a great experience. Overall, take it, it’s a good class.
See “Difficulty” and “Workload”.
Great course. No exams, no writing, only code projects. They’re a lot of fun and they all have Gradescope autograders, which are super convenient. Intense in the summer. Dr. Thrun took part in two office hours. Dr. Summet and the TAs team are phenomenal.
This has easily been my favorite class of the OMSCS so far. It is a really straightforward class and everything was opened on day 1 so it was easy to work ahead.
Tldr; take this class, you will learn a lot and get to apply your knowledge.
Lectures: Standard format video lectures (Udacity). Dr. Thrun does a great job of explaining the intuitions behind concepts I have struggled to grasp in the past (PID, Kalman Filters, etc.) that make the class really worthwhile. However, they won’t make you an expert in any particular field taught. It just gives you a great jumping off point to learn more.
Problem Sets: Each lecture concludes with a problem set that has to be completed for a grade. Gradescope made this a really straightforward process. The problem sets reinforced the concepts from the lectures but even if you got really stuck you could just click “View Answer” in Udacity which would give you the solution. You should not need to ever rely on that and I did not. It’s really just a matter of working the problem till you have it.
Assignments: This to me is the best part of the class. The TA/Professor provided assignments forced me to truly understand the concepts taught in the lectures. The assignments were realistic and plausible to the point where you can see how your solution would work in the real world. Be prepared to spend the most amount of time on these, especially since they will be harder to do if you don’t already have a firm grasp of the concepts involved.
Thankfully, the TAs on Piazza were extremely helpful at answering questions and provided a ton of resources right off the bat so that students can better understand concepts like SLAM (YouTube videos, papers, etc)
The lectures were good but superficial - They have been developed with the intent of walking us through the code for a few algorithms. We were expected to build black boxes that magically work when they are given the right set of hyperparameters. There wasn’t enough theory to explain the working principle behind the concepts that were taught, making the lectures less useful. The lecture content can pretty much be condensed to 6 medium blogs. (There are a lot of blogs that are directly based out of lectures.) You should be ready for a lot of self-learning if you really have to “understand” the concepts, although that need not be done to succeed in this course.
The instructor (Prof. Jay) and TAs were super helpful. The office hours were good. There were a lot of instances on Piazza that proved that the instructor really cared for the students.
The projects were really helpful and are of medium difficulty. Most of the projects can be completed during weekends.
I read this course was in the medium category, but I think they upgraded it as we keep posting on OMScentral and they use that information against us. I found it very difficult and time consuming and I had a strong Python background going in, I think their goal is to make every single course hard or extremely hard to take out those without 10+ years of professional experience. The course was interesting by I lost it by the time we got to A* search, I felt like I was throwing darts in the dark and luckily passed with a low B. The good part though was I am no longer thinking of a career path in robotics; so this class did save me many years in that regard.
If you are passionate about the subject and ready to work on on some painful algorithm designs from scratch, it’s a good course but don’t expect the Professor to really be on piazza, he just does the office hours when he can and it’s the TA’s running the show.
I saw some other reviews saying this class is super easy can be finished in 10 days. Those reviews are probably from long time software devs, in which case this class is an absolute joke and shouldn’t be taken unless if you want an easy A.
As someone who’s not a software dev and is taking this class as their second course, this class helped refine my python skills and I think provided me a good foundation to take some of the tougher classes this program has to offer. One week would be an “off” week we’re I’d only work one day a week on the lectures and problem sets. The next week would be an “on” week where I’m grinding through a project. The TAs for this class of mostly great and do provide help when asked!
I think the schedule of projects makes this course a great summer class.
I want to double down with the other review stating the following: “The Projects expand on what you were asked to do in the Problem Sets which expand on what you were asked to do in the Lectures. Once you figure out the ways in which they’re asking you to expand/generalize things at each step, it becomes pretty straightforward to figure out what you need to do.”
This is exactly how the class will run, though the biggest downside to the class is how the Udacity lectures will gloss over some of the deeper math. If you have had a linear algebra class or two, you should be able to troubleshoot well enough. Additionally, if you’d like to go into the math, you can of course buy Dr Thrun’s book, which is the class textbook. It’s all about how much you want to get out of it.
Dr. Summet does a fantastic job engaging with the class through office hours and piazza, the TAs and classmates were helpful, and the content/projects were interesting. I would definitely recommend this class as an enjoyable survey of some base robotic techniques. I personally plan to use it as a springboard into some more advanced self-study, as robotics is my intended career pivot from Controls/Electrical Engineering.
I also diligently tracked my hours through out the course and ended up with an A in the class and a 98+ on each project. I’m not a software developer and would rate my Python abilities as intermediate.
Project 1: Kalman Filters - Asteroids -Recommended Estimate: 15-25 hours -Actual: 22 hours (Estimation: 10, Navigation: 12) -Description: This was the most difficult project for me, though the class consensus was that the second project was the most difficult. This was my first programming assignment past easy scripting or online refresher basics courses since I graduated from undergrad in 2013 though. The objective was to estimate the future location of moving asteroids so you can pilot a ship around them.
Project 2: Particle Filters - Mars Glider -Recommended Estimate: 15-25 hours -Actual: 20 hours (Estimation: 14, Navigation: 6) -Description: This project has you use a particle filter by creating many estimates of your glider, and using survival-of-the-fittest techniques to have them cluster around your actual location. This project required some parameter tuning to account for noise and uncertainty, which added quite a bit of time.
Project 3 (Mini-Project): PID - Rocket -Recommended Estimate: 5-15 hours -Actual: 6 hours (Pressure: 2, Rocket: 2, Biprop: 2) -Description: This is actually something I do for work as a Controls Engineer, so I already had the intuition for the P, I, and D gains. Tuning this one by hand was relatively easy, though a lot of the students used an optimization algorithm called “Twiddle”, that you could code as a wrapper to spit out optimized numbers. So, this project has tuning as well though not as brutal. You are controlling the fuel and and pressure levels to a rocket so it can take off and land without crashing into the ground or running out of fuel.
Project 4: Search - Warehouse -Recommended Estimate: 10-20 hours -Actual: 6 hours (A-star: 4, Dynamic Programming: 2) -Description: The numbers are misleading on this one, everything just seemed to fall into place for me, kind of by accident it almost felt like. This was a fun project with no tuning, where are you finding an optimized path through a warehouse to deliver boxes. Apparently this project has been made more in line with the other, difficulty-wise, in recent semesters by having it in discrete instead of continuous space.
Project 5: SLAM - Gem Finder -Recommended Estimate: 15-25 hours -Actual: 16 hours (SLAM: 9, Navigate: 5, Estimate: 2) -Description: This project puts everything together, though you don’t actually use the algorithms from the previous projects. In this project, you are given no map or directions, and have to locate and “extract” gems from the ground by sensing your surroundings and estimating both your own location as well as the gems themselves. Hence “SLAM”: Simultaneous Localization and Mapping.
In conclusion, would recommend! Fun class.
This class was fun but it has its quirks.
The lectures were ported over from Udacity and predate OMSCS by a couple years. As those who know him know, sometimes Dr. Thrun is a little bit hard to understand. Also, he has a way of leaving a sometimes laughably easy trail of breadcrumbs which then lead you off a cliff, after which he praises you effusively. It’s a very disorienting educational experience.
On the one hand, the pedagogical scaffolding herein is very effective: the Projects expand on what you were asked to do in the Problem Sets which expand on what you were asked to do in the Lectures. Once you figure out the ways in which they’re asking you to expand/generalize things at each step, it becomes pretty straightforward to figure out what you need to do.
On the other hand, since many of these “techniques” rely on heavy math that isn’t explained in much detail, we’re kind of just implementing magic with a shallow understanding. This also makes it hard to debug / for your fellow students to help you if you make an error somewhere.
Downside: Because we’re dealing with noisy systems, there’s a lot of parameter tuning. And because our grading systems rely on RNG’s, you often have to submit multiple times to get maximal points. These two facts also sometimes make it hard to know if its your code or your parameters that are off the mark, which can get very frustrating.
Upside: Most all of the Problem Sets / Projects are released very early on, which makes it possible to work ahead, and there are no exams. Thus, I finished this class in just over five weeks.
A kind of unsatisfyingly shallow educational experience – especially considering that it’s one of the few OMSCS classes that deal with Robotics – but makes for a fairly stress-free semester, and an enjoyable introduction.
The projects were extremely well done with visual aids and transparent grading to help students get a sense of what was actually going on with what was implemented.
The TAs and instructors were also very hands-on and supportive.
Overall, one course is not enough to learn how to “program a self-driving car”, but this course provides a smooth introduction to how to think like a robotics engineer.
This is an excellent summer class (or a 2nd class if you’re doubling up).
Understandably, the unfavorable reviews point to the quality of the lecture videos as the main reason for their rating, but if you view the videos as overviews/introductions to the topics being discussed, they become enjoyable.
The meat of the class is in the projects, which despite having a lot of tuning, are excellent in their design. Despite the tuning required, the class doesn’t have the busy work found in other classes. The testing suites and visualizations provided were superb.
It helps that the instructors are all excellent, with Dr. Summet leading an awesome team of TAs. They are very deeply involved and responsive to all queries in both Piazza and OH.
I would suggest getting the textbook by Dr. Thurn which discusses the topics in depth to supplement their shallow coverage in the videos. The supplemental resources provided by the instructional team were also a great help.
Despite the 8-hour average I put in, that doesn’t reflect the projects difficulty. I still spent considerable time on them. However, since the projects were release during the first two weeks, and with no exams and busy work in the class, I was able to finish the class with the maximum score possible, 7 weeks ahead of schedule, without really feeling that I rushed it (I just kept the same pace I did for the 2 previous classes I had taken before by working a couple of hours every day and longer during the weekends).
So, in summary, it was great - I felt like I learned a lot, got introduced to very interesting topics, and it didn’t cost me my summer.
This course is a lightweight introduction into some probabilistic robotics / AI topics, namely: uni-modal / multi-modal localization techniques, Kalman filter, Particle filter, search (shortest path finding, A*), PID control and Graph SLAM.
The theory presentation is on the level of YouTube how-to-s in terms of academic depth (i.e. not deep at all), but the projects and the homework are well arranged to help appropriate understanding of the iceberg tip for those topics. As a background, this was my first course into any AI/robotics related field (both education and various professional career wise), so I’m mostly happy I took this course as a primer.
I liked getting through and study the course material, doing the projects, getting exposed to what Sebastian Thrun has to offer as a professional in the field. Unfortunately I consider the lecture quality and their academic instruction approach as substandard, which is a shame given what Thrun has achieved as an innovator and especially as a founder of Udacity and one of the founders of OMSCS.
- “The Good”
As mentioned above, exposure to Sebastian Thrun experience and ideas related to robotics, self-driving cars, presented topics and AI aspects in general. In some of the lecture visualizations and recorded Q/A there were important insights he shared. We also had two direct office hours with him, which mostly covered high-level topics, which was great.
Teaching staff on-site – excellent, can’t praise them enough. Dr. Jay Summet – flawless instructor, knowledgeable, explains things in excellent way, very much involved, including on Piazza, on regular basis, constantly provides helpful material and theory intuition behind things, supplied an elaborate list of useful resources to cover the gaps in the lectures and for further exploration.
All the TA-s were very professional, technically and personally, helpful and involved. Office hours were held every week (and recorded), some topics were covered as special tutorials, again to cover the gaps in lectures.
The course structure is thought through well, most of the praise here should go to Sebastian, presumably. The projects and the homework integrate and compliment the studied material.
There are nice quizzes in the lectures, with supplied code (often not exemplary quality or efficiency) which you can incorporate into the projects – a lot of time was invested into those, and they are helpful and show the ways to do things. That was the best thing about the lectures, and those techniques I found useful.
I enjoyed all the projects (5 projects, 1 of those being “mini” with lesser scope – one project per topic), the project themes and infrastructure are nicely put together, I could see the concepts working, also using the supplied visualization infra.
Like others have said, there are no exams, and you submit all of the homework and projects to Gradescope, with unlimited submissions, so you control your grade. It was my only course so far where I’m going to get a three-digit grade average (with the extra credit only on two projects and only being a single point), and it wasn’t hard – it all depends on time and effort you invest. Homework (6 problem sets, mostly pretty easy) have Udacity solutions (I would try doing the homework without looking at those), so it really aims at how you learn.
Nice Python practice was there for me (I haven’t been exposed to it that much on a professional front).
Even for a summer course (it had the same material as the fall/spring version), there was never a real time pressure, even for a person with other time commitments. All the homework and projects were released upfront, and some people finished the course within two weeks (not me).
- “The Bad”
Most of the projects which included noise modelling often carried a lot of tuning which was not well guided. At the end, sometimes things depended on luck, of how persistent you are with Gradescope submissions (different results with the same code).
Granted, the tuning and related thinking is expected to be significant in related engineering, I just felt it was not guided well enough and the amount of time you spent on it sometimes depended on luck, so the learning value was diminished.
- “The Very Bad”
The lectures quality.
Firstly, the theory presentation approach is mostly of a MOOC for a general audience - sometimes a teaser approach for things you would like to learn if interested in. Maybe that’s why the course was recently renamed into “techniques” one, but still it was not what I expected from an academic course at this level. Yes, Sebastian references his book and some other resources as a place where those topics “have proofs”, but one could do the search online as well, you don’t need a course for that. Yes, it’s valid to direct the students to a proper course text book chapters for study, but that was not how the course was designed and articulated.
Like I said, it was my first encounter with the topics, and I spent long hours studying material from other sources, in order to understand the intuition behind the math and theory for some of the topics. So for those who, as I heard, attacked people expressing a similar opinion about lectures (not me) with “you get what you put into it” – it was not the case, people did put a lot of effort in (and honestly, I could do the projects and get the same 100-s even without going into depth).
Luckily, the lecture slides and other course pages contained quite useful pointers (must be appended by Summet and the rest of instruction staff) – use it. KF lecture, for example, was the worst, so do look into “ilectureonline” series mentioned at the end of the lecture, that was invaluable for me to understand the theory behind, if the topic is new for you.
The second reason for the lectures not being up to standard is that those are riddled with errors and inaccuracies. Other courses have occasional errata on the lectures, but not like here. Almost every lecture has multiple places where there are errors in details and formulas, with frequently appended corrections by the teaching staff. It’s quite representative that in one quiz, Sebastian says “yeah, the way I present it is kinda sloppy, but, well, who cares :) “ – and then, the same sloppiness propagates to the suggested solution, which is incorrect (but being corrected as an erratum notice at the bottom of the quiz).
The quizzes and related techniques were good and useful, as I mentioned, but the python code quality was not exemplary to say the least, not a good instructional example.
All in all, the course is a nice intro to the topics, look into “the Good” section if you seek the positives – I wish I could recommend this course more than I do. If Jay Summet, for example, would create his own set of lectures with the way he explains and values the theory, same topics and assignments remaining, this course could be excellent.
This course is a MOOC. It does not deserve to be in OMSCS. I am not complaining because I needed a second easy course to pair but it’s a wasted opportunity of what could have been a very good course. The assignments themselves are okay. Nothing too amazing but also very well put together.
However, the lack of theory makes this course not worth it. 80% of this course is covered in more depth in AI and CV. The remaining 20% is a 10 min lecture by Sebastian. You are almost better off just learning SLAM on your own.
One good thing. Jay is amazing and very well engaged. The best prof I’ve had in OMSCS. I hope he doesn’t take it personally but the MOOC nature of this course is ultimately what makes AI4R underwhelming.
This is my second course in the program. I thought the class was really interesting, and I really enjoyed the format (no exams!). The difficulty of the class will probably depend on your background. If you are familiar with Python, linear algebra, and statistics you probably won’t have too much trouble.
I recommend watching the lectures and completing the problem sets before the semester starts. Most of the coursework is released within the first two weeks of the semester, which is really nice if you like to work ahead. I was able to finish the class about a month before the semester ends.
Asteroids and Mars Glider were the most time consuming and difficult projects. PID, Search, and SLAM were a lot more straightforward. Spend time understanding the lecture quizzes and problem sets as they will be helpful for completing the projects. Start working on the projects early, and pay attention to Slack and Piazza.
Overall, I would definitely recommend this class. The material is interesting, the projects are fun, there are no exams, and you can work ahead. This is a great course to take in the Summer.
**My Background: **
Bachelor’s in Engineering, Large Research University in the US.
Took 4 undergraduate CS courses.
I don’t work in a CS-related job and I haven’t coded at all outside of school work.
This is my third course in the OMSCS program, after CP and DVA.
**Difficulty: **
This class is by far the easiest course I have taken. I timed myself very closely and the entire course took me 49.5 hours. That’s ~5 hours per week in the summer semester and ~3 hours per week in the spring or fall. The class is entirely project based and they released all of the material in the first two weeks of class, so you can work ahead and finish everything early if you want to (I finished the class in 4 weeks). The projects were the most difficult part of the class, but they were straightforward implementations of what was taught in the lectures, so they were quite easy. Two of the undergraduate classes I took were harder than this course (Computer Architecture and Programming Methodology). This class can be easily paired with any other class, as long as you are decent at Python.
**Course Quality: **
The course is very well run. The TAs are really helpful and are very active on Piazza. The course content is interesting, but not too deep or complicated. The lecture videos are VERY useful and aren’t unnecessarily long. I didn’t have to do any studying whatsoever outside of what was presented in the videos. The only problem I had with the lecture videos was that they didn’t bother explaining any of the math behind each of the algorithms they taught. The videos were purely focused on how to implement them, so you would have to go elsewhere to understand the underlying theory.
**Breakdown of My Time: **
- Total — 49.5 hours
- Lecture Videos & Piazza — 13.5 hours
- Problem Sets — 10 hours
- Project 1: Asteroids — 5 hours
- Project 2: Mars Rover — 10 hours
- Mini-Project: PID Control — 1.5 hours
- Project 3: Search — 5 hours
- Project 4: SLAM — 4.5 hours
**Tips: **
- If you aren’t solid on Python coding, solidify your skills before starting the course.
- Make sure you understand the lecture videos and problems sets well before starting the projects. If you do, the projects are not complicated to implement.
- Even though they provide the solution to the problem sets, do not look at them until you have really tried to implement it yourself.
- Feel free to reuse problem set code on the projects (cite it properly), since the projects are all built upon the same algorithms
- Be prepared to spend hours trying to optimize the parameters of each algorithm used in the projects. Half of the time that I spent on each project was focused on tweaking parameters. Poor parameter choices can result in a 0% for your grade and small tweaks can boost your grade to 100% (as long as your algorithm is properly implemented).
TL;DR: Well designed course, great professor & TA involvement, quite manageable.
This is my fifth course, and by far my favorite. No tricky questions on exams to deal with, just programming projects. Some projects require tuning, which can be frustrating, but as you go, you think more deeply about what is happening and you can tune smarter. Professors (both Dr. Summet and Dr. Thrun) participate in Office Hours. Dr. Summet and TA’s are active on Piazza. Lectures are interesting, but the background is left out, leaving work for you to do, if you want to understand more, which is great for a grad level class. Problem sets on Udacity are 26% of the grade. Many answers are walked through by professor Thrun, so you get to do your own work and check the answer. The concepts are later required in more depth in programming projects. I really liked this approach, and thought it was a great way to teach and reinforce new ideas. I hate to say “easy”, as that’s a reflection of your background and how far you stretch yourself, but if you start early enough and take advantage of Piazza and Slack, you should be able to meet the mark for a good grade. More importantly, you should find something interesting and challenging to think about and work on during this course.
Edit:
There could be at least one more unit added to this class. and maybe a quiz or two over many of the lecture concepts would help make it more fulfilling / challenging. I have to change my rating of the class to easy, until more projects / assignments are added. Also, my estimate of time/week is based on my estimate of the time I spent prior to finishing the class 5 weeks before the final project due date.
Background: B.S. Systems Engineering with experience as Data Analyst and Data Scientist (python experience, no real software experience).
I really liked this class due to the fact that there were not many lectures and the everything graded was 100% code-based - no b.s. writing assignments or anything. If you like coding and learning about algorithms that are used in the real world, you will enjoy this course.
The projects were a bit tricky at times, but I was very interested so I didn’t find it very difficult to work through it and get a very high grade on each one.
I thoroughly enjoyed taking this class this semester. The lectures were structured nicely—I thought the topics were presently very clearly and successfully provided the proper intuition to approach the topics. I think the key to doing well in this class is to have a fairly strong math background (there is a lot of Linear Algebra) and have good object-oriented programming skills. The projects are entirely in Python, but any OO experience in a modern language (Java, C, etc.) should lend itself useful here. I personally program in Java, and my Python is fairly intermediate, but I didn’t find it too difficult to work on the assignments.
The homework sets are presented in the Udacity videos directly, and technically the answers are already provided. But don’t take this as an opportunity for “free points,” take this as an opportunity to really learn how to implement the topics and appreciate that you get immediate feedback to help guide you.
The projects are much bigger and more complicated versions of the homework. There is usually some premise to the project—for the Kalman filter, we were guiding a ship through an asteroid field, for Particle Filter, we were trying to locate a glider across rocky terrain, etc. The projects will really test your ability to apply the topics. I found them to be quite fun and engaging. I think the TA’s do a phenomenal job at building the testing suite where you can test your implementation locally. For the Particle Filter, for example, it was incredibly satisfying to watch the particles successfully find the glider and accumulate around it! I also appreciate that the projects are submitted through Gradescope and you get immediate feedback on the performance of your implementation. You also have to option to choose your highest grade, as long as you submit and choose before the project deadline.
The instructors are very active in the class. I think this is one of the few classes (I’ve taken 7 classes before this one) where the actual professor participates so actively in helping the students on the forums and office hours. Overall, this is a pretty great class to take, in general. I personally took this as an elective and I’m happy I did.
Background: BS in computer science, programming experience.
Class had several projects and problem sets (no exams). The projects are interesting and provide a visual runner to see your programs run, which is nice. If you watch the lectures, do the problem sets and examples, you will have a pretty good start on the projects. The TA’s and Instructor were very active and helpful. Weekly live office hours were held.
A great first semester course to get familiar with canvas, piazza, gradescope, etc.
This is my first course in OMSCS and I would recommend this course for one of the first course options. The course content and projects are interesting and reasonable. This course uses Python 3 and I am a Python newbie, but it’s perfectly fine and you can learn as you go. Piazza is super helpful if you are stuck with the project. TAs and the instructor are all very active, and office hour is definitely helpful.
In this course, you will learn about Kalman Filter, Particle Filter, Search method(A* and DP), PID control and SLAM. To be honest I believe the content in this course is just the surface of the self driving technology, but it provides a starting point and back ground knowledge if you are interested in this domain. The working load is absolutely manageable and it’s a gentle start for this program in my opinion.
My tips for this course are start the project early and check Piazza often. I basically found everything I need on Piazza. Don’t do the project in the last minute since there are still some tricky points in the projects.
The easiest course so far (after CP, DVA), the lectures explain clearly the concepts and the implementation, not so much about the why it works (google can help it). Projects are completely based on the lectures and I loved that, you’ll code interestings algorithms without torturing yourself so much.
This is an easy A because you can know in advance your grades thanks to the autograder and if you get stuck at something the weekly office hour will definitely help you.
I don’t know about others, but I felt this course to be quite hard mostly because of the projects. But I would like to give a constructive feedback, so that if a TA or an instructor is reviewing, it would help them design the course better. Firstly, the TAs and Prof. Summet is extremely helpful. But I felt that the projects lacked a well defined structure. You would probably spend hours resolving bugs and in fine tuning parameters blindly. What could really help is a proper structure and more rich test cases, that would give an indication of were the student is going wrong. The visualization provided does help you to tune the parameters to some extent but there should be a proper guideline of how to use these visualizations to tune the parameters. Another thing that can be improved is how these concepts are actually used in real life, how to tackle noisy measurements, how to monitor sensor values and report anomaly if any. I think these things can be covered in Office Hours with some minor demo from the TAs would make this course more interesting.
Fairly easy class that introduces some interesting concepts. The lectures don’t go very deep, so I would recommend some self-study if you want more than a high level tutorial of the concepts. This class doesn’t have too many prerequisites (you could get by with just a decent grasp on Python), so I think it would be a good class for people who are new to the program or for those who don’t have a CS background. Linear Algebra is mentioned as a prerequisite, but it doesn’t really go beyond matrix multiplication.
I wish the projects were more rigorous or had a larger scope. For the most part, they involved taking the code from the lectures and adapting them to take a different form of input or adding in a new dimension. Each project had a nice test suite that took away the guessing game of why you’re getting good results locally but bad results on the online grader (I’m looking at you, GIOS).
Dr. Summet and the TAs were very active throughout the semester. If you’re struggling with a project, then look through the Piazza questions or the office hours.
Overall, this was a well-run class, but seemed to be lacking in content. I wish it either covered more topics, or went more in-depth on the current topics.
pretty straightforward class. could have been a lot more rigorous/in depth like most courses in this program but ¯_(ツ)_/¯. the lectures involve a lot of hand waving, “this works bc it does”, don’t expect to truly understand what is going on from the class alone.
if you can do some matrix multiplication and are comfortable in python then this class should be an easy A. no exams, only hw and projects. homeworks literally come with answers in the udacity videos, and projects are not that hard and if you need help with some of the math bits because it wasn’t explained well in lecture the office hours fill in the blanks completely. they’re totally doable the week of.
The topic was very interesting. The homeworks are a blow-off given that solutions are provided. However, the projects are no joke, they can each take many hours to complete. For a couple projects I took time off of work just to work on them. If you are not comfortable with python you will likely suffer.
Overall it is fun and a well executed course. TAs are very responsive when you get stuck and they try to organize helpful information so that we can easily find them in Piazza. There are 4 projects and 1 mini projects, 6 problem sets. No exams, yay :) I feel that a lecture contains too many quiz sections where you are interrupted and need to do by yourself, which was partly good but partly distracting to me.
So if you like Python programming this class would be enjoyable. The algorithm is kind of classic maybe, considering we don’t see any machine learning techniques in this class for self driving. But still, I think those algorithms such as A* and DP etc we can learn in this class is useful basic tool as a software engineer.
Problem sets can be done in copy and paste manner from lecture video. Projects are, I would say easy but not super easy. I definitely spent some nights scratching my head how I can apply an equation and / or logic I’ve learnt in the class to the problems I need to solve. Also be prepared to do a lot of parameter tunings, which sometimes you may feel bit random but it’s significantly important to improve your grade.
The class uses Gradescope for a submission and the auto-grader just does its job well, so you can see your grade and progress in real time, which is very good.
This was my first course in the program, and it’s been a great introduction to OMSCS. Actually, it might be a little bit misleading in that regard, because my understanding is that it’s very unreasonable to expect many courses to go as well as this one did.
In terms of workload I think I put in probably 10-12 hours about every two weeks or so. Most of the rest of the time I was only sort of abstractly aware that I’m enrolled in school, so this course would pair very well with another.
I found the topics to be very interesting even if they are treated a little bit superficially, and the professor and TAs are very active and very helpful on Piazza and in weekly office hours. The projects are well-defined and come with good test suites so you can know if you’re likely to succeed before you ever submit anything.
Having some Python knowledge going in helps a lot, as does some exposure to Numpy (you never have to use Numpy, but it’s helpful if you can), but I know at least one fellow student who knew nothing about either on day 1 and is still doing just fine.
As for linear algebra: if you can put together a transformation matrix that will pick pieces out of another matrix (i.e., you know how “across the row, down the column” works), and you have some idea of how systems of equations are solved with matrices, you’re golden. If you don’t know all that you’ll have to learn it as you go, but it’s entirely possible. You definitely don’t have to be a linear algebra wizard.
All in all this is a very well-run course that was a lot of fun, and I absolutely recommend it.
This is my second course in the program and I enjoyed it. The entire course is in Python and completely project-based, which was great. The concepts of the course revolve around self-driving cars and different methods for them to self-locate and map their terrain.
The lectures were informative if a bit dated (originally recorded by Sebastian Thrun using Python 2). Answers are given to the homeworks in the lesson (the videos literally walk through the homework answers), which for me personally made it impossible to learn anything doing them.
The projects were implementations of the lessons/homeworks with a twist and were generally fun to do. The projects get a bit harder as the course goes, and I suspect them will beef up the final project after making part of it too easy this semester.
If you’ve never used Python you might struggle a bit, and there is a bit of linear algebra, but overall this is an easy class which I would recommend taking.
I enjoyed this class. It was my first class in the program. I’d say it is an easy class and can be paired with another class or taken in summer. Udacity lectures were kind of shallow, but TA’s were amazing, especially Prof. Jay Summet. They held tutorials on almost every topic from lectures which helped a lot and also gave clear instructions on how to approach each project so with all that it’s hard not to get the project right. Also they are very active on Piazza. I liked the part on Kalman filters and search algorithms. Also I improved my Python coding skills throughout this course.
This was my 5th/6th class in OMSCS (paired with Human-Computer Interaction). I really enjoyed the class and had no experience with the heuristic programming it introduced. The class was all in python and consisted of 6 HW assignments and 5 projects. The HW assignments were based on available lectures on Udacity (so you can get super ahead very easily) and the answers are given in lecture for the most part, only a few tweaks are necessary.
I learned a lot in this class, and found the coding very fun and interesting, but I did not find it difficult at all. The hardest assignment was the first project, which took me maybe 8-10 hours to complete. The homeworks all take ~2 hours including lecture time. The other projects took me anywhere from 4-8 hours.
It would have been nice to have some more depth to some of the projects and to dive a little deeper. If you are looking to double up in a semester and want a low-workload, fun class to pair with, I’d highly recommend this one.
It is a fun course but the last 2 projects are let downs. Especially the last SLAM project, there is some math involved to convert a Gaussian error in polar coordinates to Cartesian but actually you can get around the math by just using an arbitrary value. Also the Rocket PID project you can get away with just kind of plugging in values. They admit that projects are in-the-works since apparently some students share them so it is unfortunate that the quality is lower than it could be if all students did not share past projects with each other or homework sites. The lectures on Udacity are good for the basics but if you want to be a robotics programmer at the end of this, you’d have to get through the textbook and actually know the math. I am going to end up with almost 100% (all 100’s except one 98 on the first project) and I would not trust me to program a robot that does anything important yet. More math would have been nice and that is a complaint I have about both CP and this course. Having some stats background is a huge advantage as some of the projects require knowledge of basic concepts like normal distribution, central limit theorem. The instructors are very good on Piazza, actually unbelievable in how responsive they are so I’m probably spoiled now. But still some of the project components are a let down like navigation using heuristics. Heuristics? I have no idea what the AI in the name of the course is for.
If you’re good in Python, Numpy and know some stats, easy A. Otherwise it depends on what your skill level is as to work load and difficulty but I think doable except most projects are you either get most of it correct or you get almost no points. Best preparation is probably just searching AI4R github repos for the free Udacity course, trying the quizzes on Udacity and see if you like it.
My first course in OMSCS. It is a wonderful class with interesting knowledge and not a large workload. I really enjoy this class and it inspires me to learn more and explore more in this program. Lecturer and TAs are super helpful and supportive. I recommend this course to everyone in OMSCS.
Of all the classes I have taken in OMSCS, this by far my favorite course. I have seen over time that the reviews for this course have generally improved, and I can see why.
You will learn about Bayes Rule, Total Probability, Kalman Filters, Particle Filters, A*, Dynamic Programming, PID, SLAM, and more.
Firstly, the lectures are very interesting and taught by Sebastian Thrun. Thrun has a nice way of presenting his material and bringing you slowly up to speed until you fully understand the concept being taught. There are a few lectures (Kalman Filters) where some of the lectures are a bit hand-wavy, but the office hours, TAs, and forums help to connect the dots. My favorite part of the lectures is that Udacity has built-in coding assignments that truly test your understanding of the lectures. These assignments connect well with the class projects, and I found myself referencing my old code quite often. The fact that the lectures align up with the assignments and projects perfectly makes this class feel even more spot on.
There are 6 problem sets that are easy to complete, test your knowledge of the lectures, and the lectures actually go over the solutions. I highly recommend doing these problem sets yourself before viewing your answer as your understanding will be tested in the actual projects.
There are 5 projects in the class, 3 medium sized, 1 small, and 1 larger. One of the projects is about guiding a ship through an asteroid field using Kalman Filters, one about getting a glider on mars to locate itself while only understanding it’s location in terms of cliffs and its height with Particle Filters, one about Rocket PID controllers, one on getting a robot to pick up certain boxes in a warehouse with searching algorithms like DP and A*, and finally a SLAM project where you navigate a gem-finding robot.
If you don’t think these types of projects are cool or fun…well I don’t know what to say then. All of the projects are detailed, relevant to the lectures, and many have a useful visualization component. Projects can be submitted to GradeScope an infinite # of times, so you know exactly what you are getting on the project. Honestly, these were my favorite projects and they were a lot of fun.
I’d like to comment on the TAs, the instructor, and the support as well. I have not found a class with better TAs or a more involved instructor. The comments and the response rate from the TAs and instructor are second to none. There are no snarky or unhelpful comments, all of them are useful and educational. The office hours answer a lot of good questions, and the materials provided by Jay Summet and Leo Wilson should honestly be added to Udacity alongside the Kalman Filters. They help connect the dots on the Kalman Filter project.
In summary, this was a great class and a must take for anyone interested in CP&R, algorithms, or in search of a fun class where you will learn a lot. I’m honestly bummed that this class is over now, but I’m also motivated now; this class provided enough inspiration for me to pursue working in the AI for Robotics space.
This was a great choice for my second class in OMSCS. Jay Summet does a great job of running an online class. He set clear expectations up-front, re. the assignments and grading. He has weekly office hours, which are good if you want some hints on the projects, and he’s also active on Piazza, as are the TAs. The projects have clear instructions and good “scaffolding” code, so you won’t expend excessive time fruitlessly trying to get someone else’s code to work. Instead your focus is on learning the subject matter at hand so the projects are actually enjoyable. You’ll need to put some effort in, but it’s not ridiculous. The homework assignments are pretty easy because you can essentially use the code from the Udacity lectures (provided you cite it). The lectures are good, but I do agree with other reviewers that they are a bit simplistic and more, deeper lectures would help.
TLDR; FUN course with a very involved teaching staff both on Piazza and in Office Hours.
You’ll scratch the surface of AI concepts and algorithms for robotic navigation and get to actually write code that will execute some of the core concepts.
Instructors: Dr. Jay Summet as the instructor, and the TAs, were involved and responsive to student questions on both Piazza and Office Hours. You have no excuse for not getting the help you need in this course.
Lectures: Dr. Thrun’s lectures lay down essential navigation concepts in a very easy way to understand. If you need the additional details, there are a large breadth of resources you can lookup online, but almost everything you need to succeed in the projects comes directly out of the lectures and homeworks.
Assignments:
- 6 Homeworks that are closer to participation grades. The main goal for them is to make you actually walk through the material a little yourself.
- 5 Projects that are the meat of the course. All in python, all with a well-built testing suite, and all with the opportunity for unlimited submits to the auto-grader. I had quite a bit of fun with them, and think they really reinforced the concepts from the material as well as improved my python abilities
Excellent pacing – challenging and yet I haven’t felt too rushed for any of our projects. I would say the average of ~12 - 13 hours a week is accurate.
This could be a good “First Course”, or paired with another course in the semester without too much struggle.
This is my 6th class in the program and probably one of my favorites so far!
This was my first OMSCS course. Overall this is a medium difficulty course with no exams. The amount of content covered is limited with only 6 topics but what makes this a medium difficulty course are the projects. There are 5 projects and except one (rocket PID), you’ll spend 15+ hours each for 3 of them and about 25-30 hours for the Warehouse project. I do think the projects help students to really understand the content covered in the course.
Also this course is run by a very helpful professor (Dr. Summet) who literally answers every single question on piazza no matter how many times it has been repeated before.
Overall this is a neatly run course and if you are a decent programmer, this won’t be a difficult one.
Overall I think this course is really easy. The sample code is all provided in the video lectures. The answers to problem sets are all provided in the videos (free 28%).
With regarding to projects, the sample code demonstrated in the vidoes and problem sets provides a strong foundation for you to build upon. I would say 70% - 80% of the code necessary to complete the projects are provided. Parameter tuning can be a little bit time consuming but it is okay as it resembles real world applications.
I think this is a good easy course if you want to relax and have some fun (who doesn’t like robots lol). You will have plenty of time for each project so there is no rush at all. Overall I like the course!
This was my first course in the OMSCS program.
There are no exams, only projects and problem sets. Out of the 4 projects, 2 are quite time consuming. I’d say its important to get a head start on the projects to really succeed and learn in this class. A lot of it comes down to having time to think about your solution.
Overall, would definitely recommend as a good introductory course into the program.
This was my first class in OMSCS and overall I quite enjoyed it. One of the best parts about this class are Professor Jay and the TAs. They are all VERY active on Piazza and Professor Jay himself hosts the live weekly office hours. I never knew this was out of the norm for OMSCS, but I am starting to realize that not all professors and TAs are quite that involved in their classes… The lectures can be rather high level and often don’t directly apply to the projects, but I quite enjoyed this challenge of taking a concept and applying it to a different problem. If you ever get stuck, office hours/Piazza/Slack often provided the hints that I needed to get started. That being said, Dr. Thrun is an excellent lecturer and he makes a couple of live guest appearances throughout the semester to answer questions.
You’ll have a combination of weekly homeworks and a few large projects due throughout the semester. There are no exams. As for the projects themselves, I thought they were all fairly interesting and well constructed with the exception that they still use Python 2.7. My only piece of advice is to start working on the projects ASAP (at least two weeks in advance, three for Warehouse) and you should have no problem with getting an A in the class as there is a lot of parameter tuning required sometimes to get the best results despite already having the correct implementation.
This was my 4th course (3rd programming course) in OMSCS and I don’t come from a CS background. As othersmention, it’s definitely a fun course. Very well run. There is a lot of noise parameter tuning, but from what I understand of the subject matter, this reflects real-world challenges with robots and sensors as well. Some projects were harder than others, but with solid office hours and piazza forums, none were unachievable. It was cool to have the chance to talk to Dr. Thrun, although a little gimmicky. His videos are pretty good though, I’d say. There are weekly homeworks, which you don’t have to do (because of how they’re structured the answers are given), but are highly valuable for the projects so worth doing. There are 4 main projects and one mini-project. All illustrate the material well, in my opinion, and none were too difficult. Recommended course for sure.
Pros:
This is the best course I’ve taken so far in the program (of 3).
- The lectures are clear and enthusiastically delivered.
- The course is entirely project based, projects can be submitted to bonnie (the online auto-grader) an unlimited number of times, and your score on the project is the score you receive.
- The instructors are engaged and work hard to help students (even Sebastian Thrun, who is no longer actively teaching, holds an office hour or two and seems to genuinely care).
- The course will be python 3 compatible starting in 2020.
Cons
Because Sebastian recorded the lectures in 2014 (I think), a few videos are obsolete to varying degrees. There are generally notes below the videos correcting them, but it would be nice if the videos could be updated.
Here it is right up front- don’t underestimate the projects. The level of effort for most students in the course seemed to indicate these projects were also time-consuming for them. There were certainly people who seemed to tackle the projects with ease, but they were right there the entire time helping their fellow students. More experience would make things more manageable, but even with the skills, there are lessons for everyone in this course.
Let me sum this up. You are a GA Tech student! This means you are not afraid of hard work or challenging problems. The course material is intriguing and immensely practical. The lessons learned in the process will vary, but you will improve beyond the lessons taught in the classroom. You could not get more relevant and interesting projects. Give this course a shot if you are interested. The course materials, professor, TAs, and other students will make this a course you will remember for a long time. Good luck!
Lectures: Lectures will give you a high level understanding of the material.
Textbook: Textbook is mathematically dense. If you aren’t math savvy, this is a waste of your money.
Projects: Very little guidance is offered on approaching the projects (which is the majority of your grade). They do simulate a “real-world” problem, which is great, but can be solved using geometry. By the way, the lectures are completely unrelated to the project.
Overall: I put 10 hours of work per week, because that is how much time you’ll spend going through the lectures/problem sets. But to be honest, you’ll spend WAY more time on the projects. Here is a breakdown- Project 1 - 20hrs Mini-project: 30 hours (based on Project 1) Project 2 - 50 hours (based on Project 1) Project 3 - 100+ hours (no, I am not exaggerating)
At the end of the course, many people posted that even though they’ve taken several other courses in the program, this was one of the hardest ones.
I really wanted to like this class, but just did not enjoy it. The projects felt very repetitive and required a large amount of time tuning various parameters. Everything was in Python 2.7 and the supplied codebase had alot of errors. Assignments were very easy if you watched the lectures, but the videos are fairly boring and don’t go into much detail. Overall, I don’t feel like I learned much from the class.
A great introduction into robotics programming. It was my first course which forced me to brush up on math that I had not done since undergrad. I recommend brushing up on Linear Algebra and Stats as you start this course!
This was my favorite class at GATech and possibly ever (and I’ve taken well over 200 hours of college courses). The projects were so interesting both from the thematic standpoint and the coding challenge portion. I liked that we could work ahead if we desired. The extra credit hardware projects were great as well. Gave some extra challenge or real world application to those who wanted more from the class. The auto grading was awesome to work with. Getting real time feedback on your changes and tweaks. The lectures were fantastic. Making complex subjects seem simple is the best part of them. The obviously enthusiasm for the subject matter also adds to the enjoyment of watching them. Having almost every lecture be interactive was my favorite part, though. This is the only time I haven’t listened to lectures at 1.5x or 2x speed. So enjoyable watching them and being engaged the whole time. Instructor/TA engagement was off the charts awesome in Piazza.
I wish i could think of some way to improve, but this course was already way beyond any hopes I’ve ever had for an awesome class. It should be used as a model for all courses.
Loved this class. Professor Jay Summet is on Piazza a lot to answer your questions. The projects were awesome. This class is very much a learn by doing approach. The lectures also reflect this because there are a lot of quizzes and coding questions. This class was very well designed.
This was my first class in the OMSCS program and very much enjoyed it. The lectures are well designed and almost all the material needed to complete the projects is given in the lectures. The instructor and TAs are very responsive to questions and concerns posted in Piazza. One of my few complaints with this course is how much time was spent on parameter tuning. Tuning various noise parameters in some cases took nearly as much time as writing the actual solution. To wit, do not procrastinate on the projects as you will need extra time to tune your solutions.
Overall, I enjoyed the course and highly recommend it. I also recommend this course for first-semester students as the workload is not overwhelming and there is great support from the instructor and TAs.
Good first class.
I listened to somebody on Reddit to take AI4R as my first OMSCS class. I am glad I did. I learned a lot in class. As my first experience in OMSCS, this class is really good. You will have 6 problem sets, 4 projects, and one mini-project. No test or group projects. Problem sets are from Udacity and you are allowed to re-use the answer. Although you might need to modify the code a little bit to pass the test case. The first couple of projects were not too difficult but still challenging enough. You want to front-load as much as you can because most of the projects could take longer than you would expect. Make sure you fully understand the scope of the project before you even start, because the project description could be confusing. I think the most difficult one would be “warehouse” in my opinion. I got almost every project full score except for the Warehouse because of its difficulty and the fact that I took a week on vacation and fell a little behind for that project.
Make sure you are comfortable with Python, Numpy, linear algebra, and probability. Make good use of Piazza, and also Slack. You will find your fellow students’ questions and responses helpful. The teacher and TAs were great. They are pretty active on Piazza answering students’ questions.
Overall, I would recommend this if you are taking your first OMSCS class.
WOW, what an amazing course. This was my fourth/fifth course in OMSCS and most of my previous courses were less coding intensive so this one was really fun. The lectures overall were quite interesting and engaging (there were quizzes for almost every video to check your understanding) and the projects were really fun to complete. Don’t get me wrong, they were really hard and time consuming but if you started early and read through tips/tricks on piazza, you were set up for success.
One awesome part of this course is how engaging the teaching staff is. I don’t know if there were any unanswered questions on piazza and the responses were usually rather quick. Dr. Summet (the instructor for the course) is amazing and he seems really invested in this course and the students. The TAs attend the office hours that the course has weekly and they provide amazing insight. I love that there were structured virtual office hours since I haven’t had those in any other courses. It bridged the gap between distance learning and on-campus learning tremendously for me. There are also auto-graders (bonnie) for the projects and while they reserve the right to rerun everything and not use bonnie, it was nice to know that your solution worked to some degree. The problem sets are a pretty easy gimme of 28% of your grade in that the solutions are provided in the relevant udacity video so that was also nice. Most of the code they provide for the psets helped you complete the projects.
Be sure to use the course slack and piazza to help you get started on the projects. Be sure to submit completed files (and not the blank files that they provided :D). Be sure to start the projects early to get the most out of them AND to give yourself enough time to finish them. Truly, these projects were enjoyable to complete and the visualizations of your code were fun to watch.
Overall, I was amazed by how smoothly and well run this course was and how present the TAs/instructors were. My standards for great OMSCS courses has gone up tremendously because of this course, Dr. Summet, the TAs, and the fun that I had in completing these projects.
This is an awesome class. I’m in the CS specialization, and I took it as an elective. I’m not that interested in AI, but I took it because all the projects and homework are released early and are auto-graded. Also, there are no exams. I like to work ahead, so I finished everything in seven weeks. Since it was my last class in OMSCS, that gave me nine weeks to relax before graduation. It’s the perfect final class.
Dr. Summet is super responsive and highly involved in the course. I wish all OMSCS instructors were as involved. The TAs were all knowledgeable, nice, and involved as well. Dr. Summet led weekly office hours, which were all recorded, and the TAs were often involved in those as well.
We did five projects and six homework problem sets. There were no group projects, and the textbook wasn’t necessary. We used Python 2.7 and Bonnie auto-graders, but next semester they’re upgrading everything to use Python 3 and Gradescope.
Everything about this course is extremely well managed. I highly recommend it if you’re a self-starter that likes challenging coding projects.
Academic/Work Experience
- PhD in Mechanical Engineering
- 3 years of work experience
- First semester in OMSCS program
- took two college classes in MATLAB and C (10-13 years ago), a few class projects using MATLAB is only real programming experience, no prior experience in Python.
Topics
- This class covers following algorithms that are used in autonomous driving.
- Localization – to know where your car is currently located at. GPS has 2-8 m error, which is not acceptable in autonomous driving. You will learn and get to implement Kalman filter and Particle filter for this subject.
- Search – to plan for the optimal path for your car to the destination. You will learn A* algorithm.
- PID – to have a better control on your car to move to the destination smoothly.
- SLAM – to implement the simultaneous localization and mapping. Combining all the algorithm above, you can build your own autonomous driving “toy” car!
HWs and Projects
- There are 6 HWs and 5 projects. No exam. Both HWs and projects are highly relevant to lectures. Actually answers to HW are basically given in the Udacity. You are encouraged to understand it and implement it in your way though. This class is all about the projects.
- Project 1 – You are a pilot of spacecraft. There are asteroids flying all over the place. Use Kalman filter to locate those asteroids and move your spacecraft to the safe zone – 15-20 hours for me.
- Project 2– Your robot is dropped from sky on Mars. Use Particle filter to locate your robot on the map (x, y, and z direction) during gliding before it hits the ground and crash! – 15-20 hours for me.
- Project 3 – A rocket is launched vertically and returns. Basically use P&ID control and tune its parameters to smoothly control its altitude to match the desired path. – 10-15 hours for me.
- Project 4 – Now your robot is in the warehouse. Your robot has to move to and pick up boxes placed all over the warehouse and return to goal location and drop box. This is a routing problem. You will use A* or other algorithm of your choice to find the optimal path for the robot to complete this task. – 40-50 hours for me.
- Project 5 – This is a SLAM project. For projects 1-4, you are given a map. However, this time you will not be given a map. You will have to move around to destinations without map using simultaneous localization and mapping. – ~40 hours for me.
Other comments
- All projects use Python. If you want to practice your Python skill, then this is really a good option.
- HWs and projects are relevant to lectures. This makes your life easy.
- Lectures, HWs and projects don’t go deep in theory. So if you are a serious learner for autonomous robotics, you will need to spend extra time to study the subject. You can find Sebastian’s textbook online.
- You can front work. I saw some people were working on the last project in September.
- I tracked my hours accurately. On average I spent 12 hours per week for the 14 weeks.
- The subject is pretty easy, but the challenge is coming from implementation to meet the target performance of your robot given in the projects.
AI4R is an exceptional class. It has its challenges (the fast ramp up on linear algebra for Kalman filters, for example) but everything makes you feel amazing when you’re done. Also, every project I talked about to my friends literally resulted in them saying “You have the coolest assignments.”
This course is project-based, which I really like. You can start those projects as early as you want and finish the class in half the semester if you’re up to it.
This might be my favorite class so far. With projects like piloting a ship through asteroid fields, driving a robot through a warehouse, and controlling fuel sent to rocket engines, I just say - what could be more entertaining as you learn? I highly recommend this class, even if you’re in your first semester.
This was my first OMSCS course and makes a good reintroduction to academic workload (it’d been eight years since college for me). I’d say the difficulty is similar to a Junior level CS course, it assumes you know basic Python, data structures, and some algos, but not terribly in depth. As long as you work reasonably ahead it’s not too hard. It’s very easy to get a B in the class, moderately hard to get a B.
Probably my favorite aspect of the course is that it was ENTIRELY project based, and you can submit your project to an online autograder as many times as you want. No grade should ever be a surprise and you know where you’re coming along in the project easily enough.
The 4.5 projects (one project is very simple) are:
-
Kalman Filters - Not too terrible, but this was my first graduate project and I didn’t give it the time I expected.
-
Particle Filters - IMO the hardest one, buffer time for it
-
PID Control - Ridiculously easy, takes less than one day
-
A* - Worth spending many hours on it as it’s worth the most, many great resources online to help with A*
-
Graph SLAM - Deceptively simple… if you decide to instead solve the project not as the lectures tell you to.
A* is worth 20% of the grade, PID was worth 7%, the rest were 15% each. For the most part you can just use the lecture material to finish the assignments, but for the two filters there are some great online resources you should check out for help, and for A(star), I found implementing Theta* made it much easier to get a good grade. Just start the projects 1-2 weeks in advance and you’ll be fine.
The TAs are very responsive on Piazza, but I found the Slack channel to be the most useful. Just subscribe to it and read what people are posting, it’ll help you out. The optional textbook is pretty useless in my opinion, unless you really crave the in-depth math behind each project which isn’t needed to do the projects, but interesting I suppose.
This class gives a good introduction to the theory and practice behind Kalman filters, Particle filters, PID control, A* search, and Graph SLAM. Proficiency in Python is VERY helpful if you want to get through assignments on time. As other reviews have touched on, Dr. Summet really does put a ton of effort into this class: he promptly answers questions with respect and clarity and is very helpful in office hours. As an added bonus, you have the opportunity to hear from Sebastian Thrun himself!
You are given the option to pursue a hardware assignment for extra credit, but the payoff is much less than the amount of work required so I did not pursue it. The lecture content is a bit simplistic, but the rigor of the projects and the inevitable outside research more than make up for that. Speaking of assignments, I implore you to start as soon as possible on the projects. You will spend the vast majority of your time tuning parameters, as you are learning how to make each algorithm robust to uncertain conditions.
I think the ideal person for this class is someone who already understands Python at a decent level, who is interested in the fundamentals of autonomous systems, and who prefers project-based work as opposed to writing and theoretical deep dives. Getting an A is absolutely achievable if you do the work. This was my first class in the program and I have had no problems keeping up between work and my outside passions.
This was a great course. I really enjoyed it. The projects were well thought out, plenty of unit tests included and had enough detail to be challenging and highlight some of the problems a robot may face.
Nice lectures. the professor explains himself clearly. Projects are challenging but not impossible.
Background
Mechanical engineering major undergraduate 2 years out so no formal CS education. Transitioned from Software Test Engineer to more Software Development during this phase of taking this course, full time job. Know enough Python from previous courses to do well on projects. Courses taken so far were:
- IOS Spring2018
- SAD Summer2018
- SAT, SDP Fall2018
- CN, DVA, DB Spring2019
Summary
Great class. Loved all the projects and concepts. Some concepts were a bit harder to understand and wished they would go into a bit more depth and detail or answer your questions a bit more thoroughly on piazza. I heard summer semester is a bit more condense with the 5 projects (or even one less project during summer?).
Pros
- Homework was all Python, well guided
- Lectures awesome, they break it down hard concepts into small parts that makes it much easier to understand
- Great practice with DFS, BFS, search, path finding problems, that greatly benefit interview practice (Leetcode)
- Can test your code and know your exact score through Bonnie submission
Cons
- Some students are just so far ahead and they post/ask questions about a few projects ahead of you and can get confusing/annoying
- Few projects can be challenging and time consuming, but I’d rather do a fun challenging project than take an exam :)
- May work on your local machine, but sometimes fail Bonnie tests.
Tips
- Start early. Read projects and know what you need to do. You just need to apply the lectures to do the project, so it helps to know what you’re looking for in the project when doing the lectures.
This was my first class. I expected this class to be a relative easy class based on the difficulty rating here. But I didn’t expect it to be that easy. On weeks I actually work on it. I spent about 15 hours per week. But I finished everything a month before semester ended and got full score on every project. Overall I liked the class. I’d recommend this as a first class. The professor and TAs are very engaging on Piazza, and responded to questions very quickly. What i do not like about this class is that I feel Sebastian tries too hard to avoid math in those video lectures. I hoped he would do a little bit more explanation of the math behind. But I guess the expectation is that you would read the optional textbook, which is very mathematical, if you are interested in the math.
I enjoyed this course and thought it was a reasonable workload since the projects were made available a month ahead of time. Definitely requires discipline to get started on the projects early though so you aren’t swamped the week or two before they are due.
Background: software engineer working in big data world OMSCS course completed: DVA, AI, ML4T, ML,RLDM
Prior to starting this course, I’ve gained enough python/numpy experiencing from previous OMSCS courses so the coding part isn’t a challenge for me so you need to adjust expectation accordingly.
The schedule is pretty tight IMO. There was project due every other weekend, plus you need to finish video watching and Quiz (required for credit) along the way. This will be an issue for some people in summer semester.
Instructor provided time needed for completing the projects and encouraged front load the course. I usually spend the entire weekend right before the due date to complete the projects as by that time, usually all the issues found in the code based have been solved and other students put some ideas on piazza for you to reference. I felt this is a more cost effective way to do the projects for by looking at other’s thoughts before starting to avoid wasting too much time. But some other people may prefer a different experience.
Instructor (Jay) usually provide very specific suggestion for implementation, this can be good or bad depending on your stand point. But overall I loved this course as a starting point into robotics or AD world - using math and code to solve real world problem is always exciting.
Btw, book is optional and I didn’t even look at it for more than 5 pages, so it is really optional.
This is my fifth course in OMSCS, I took the course in summer 2019. Unfortunately, as a summer course the course load is the same as a non-summer course (the summer course used to have one less project, no longer the case in summer 2019). As far as course material goes, it’s fairly easy but the projects require a lot of parameter tuning which could be time consuming. Overall, it’s a good course. BTW, there is little to none AI in this course despite the course name.
Took this course during summer 2019 - there is NO reduction of workload compared to normal semesters. So, please keep this in mind if you have vacations/other commitments planned. But, the course is fully front-loadable.
Changes in the course: They have completely reworked 2 (first 2) of the 5 projects you have to do in this course.
Overall, I think they have made the projects a bit more challenging (from what I heard from ppl who’ve taken this course before). But don’t expect to learn lots of new concepts if you have already taken courses like CV as there are a few overlapping concepts (kalman filters, particle filters) which are (in my opinion) taught in a MUCH BETTER way in CV. There is still no content about deep learning/ML or about any of the latest tech used in current self-driving car research.
About the projects - except for project 2, they were all easy as the problem sets in the lectures give you a good idea of how to start approaching the project. The biggest timesink for me (and also pretty much anyone who started early) was project 2. I, along with many other students spent nearly 2 weeks and we were still not able to properly pass the test cases. This was absurd and very flustrating. The only approach that worked was that of the instructor’s after he wrote about it in a piazza post. This project was so badly designed that they had to entirely change the test cases twice and also the grading scheme so that students would get full points even if they didn’t pass all test cases. I hope they fix this project so that students in the future semesters don’t have to mindlessly waste time on a single project without any useful learning outcome.
I would not recommend this course if you are here to learn about the latest self-driving/autonomous car tech. This might be a good beginner course, - probably like a lighter AI course with a focus on pathfinding/localization etc., but if you have already taken few AI/ML related courses in OMSCS, you can skip this.
Things that I did like:
-Office hrs with Dr. Thurn where he answered student questions - it was really interesting to hear his answers!
-Hands down, the most active instructor I’ve seen on piazza. Dr. Summet’s activity in answers questions is what saved most students from dropping the course in my opinion (especially with the 2 new projects). The TAs were fine, but definitely not as active or useful as the instructor himself in answering student’s questions.
This course is challenged and fun. TA is very responsive and Project is very inline with the lecture in udacity. it has five project. Even though it has talked a lot on self-driving car, the same principle can apply to other project as well.
Project 1: Asteroids – teach about how to get the estimated position of an object based on the speed.
Project 2: Mars Glider – use Particle Filter to know where you are.
Project 3: PID Control – a technique to drive the car smoothly
Project 4: Warehouse – by far the hardest one, which ask you to calculate the optimal path in an continuous domain
Project 5: Ice Rover – to know where you are and where the landmarks are.
It has no quizzes and no final exam. all project are scored based on the bonnie submission. I enjoy this course a lot.
Amazing course recommended as a summer class, very challenging and the professor is very active and amazing.
This is a good course overall. In this summer semester, professor rolled out several new projects which are quite relevant to the knowledge taught in the class. The class does not require strong background in math but emphasize on practical programming. In order to do well on the project, one has to think hard and understand well on the subjects taught in the class. The course runner was quite responsible and responsive. The office hours by Dr Thurn is also a big plus!! Many of the industry insights were shared! It is a good course overall!
This was a great summer class. The lectures and corresponding homework are relatively easy. The projects follow the lectures, expanding on each of the main topics covered (Kalman Filters, Particle Filters, PID Controllers, A*, SLAM). The projects can take some time - especially where parameter tuning is involved. Use the companion book (Probalistic Robotics) and don’t be afraid to do some additional research on the project topics. Get started early. Being able to submit your code to Bonnie for immediate scoring was very helpful.
The TAs and Professor Summet were awesome. IMHO this is one of the best run classes I’ve taken and on par with ML4T. There were also a couple of office hours with Dr. Thurn himself.
I loved this course. This is my 3rd one and hte best one so far. All the projects were programming based and they were a gradual progression from the exercies int he videos. The content of the videos was top class and also the problems given. The grades were based on automated test cases which meant we could correct our program as we go and were confident of grades by the time done. Everything was python and matrices and some elementry trignometry. you have a deadline of one project every 2 weeks . However, if you spent 3-4 continues hours for 2-3 days , generally you will be done. The prof is also very helful on piazza. Not sure how much the TAs helped though.
I agree with most of the other reviewers’ comments - the biggest issue was that there was a bit of a gap between the lecture material and the projects. There was a little outside research needed to really solidify the concepts for me.
Pros:
-
Dr Summet is the most engaged professor in the program, bar none. He literally personally answers just about every single question on Piazza, no matter how trivial or if it’s been repeated several times over.
-
For summer term, the entire set of syllabus, projects, and assignments were released on the first day of class. Some students finished the entire class within 4-5 weeks and spent the rest of the term presumably in a place with very agreeable climate and recreational options.
-
There’s some element of chance in the projects due to the random seeding in the codebase. However, at least in the summer term, the grades were determined via Bonnie submissions. So you can work to “tune” your submissions to that in order to maximize your scoring.
-
The concepts in this class are relatively easy to grasp, and serves as a good intro class for both the OMSCS and presumably AI (which I have not taken). There were a good number of AI alums in the class and there seems to be a good bit of overlap.
Cons:
-
The projects were just not that exciting. They’re essentially a minor variation on the lecture material codebase, and the work that needs to be done on top of it is >90% Python wankery for the most part and has little to do with the actual concept at hand.
-
I know there’s extra credit available via an independent hardware project. But given it’s more $$$, it’s not that enticing of an option for many.
-
The lecture videos are OK, but it seems every other quiz has an important errata to be mindful for which can be distracting.
The only thing to be concerned about is that this class can deceptively suck up a lot of time. It’s not uncommon to hear people spending over 40-60 hours on a single project. Procrastinate at your peril.
This was my 6th OMSCS course and my first summer course. Overall I really enjoyed it. Dr Thrun makes the lectures pretty good (even though he is a bit overly effusive and encouraging, it seems geniune so I liked it).
The projects are all doable, there is some frustration / head-banging but overall I didn’t think it was over the top.
The most frustrating project was probably mars glider, which was new this summer. The professor had to change the grading scheme because it was too hard to pass all test cases. I think there was probably some very brittle random seed logic going on.
Other than mars glider everything else was very reasonable and fun to do.
All the projects were very well tied into the course material and I certainly feel I learned a great introduction into AI for Robotics!
TLDR: Good course
Notes to future students – the code-base is academic, don’t get hung up on it! It’s basically a lot of bad code if you are seriously looking at it, but it works well enough to learn the concepts being taught, so I would just focus on that.
That being said, you can port a good amount of stuff into numpy if you really want, it just takes more time and I’m not sure it’s worth it.
This is a very good summer class - there are only a handful of core ideas (Kalman Filters, Particle Filters, PID Controllers, A* Path Finding, SLAM) and 5x projects corresponding to each idea (plus short homework). I despised the lectures, which are very general and hand-wavvy, but the book Probabilistic Robotics is really great and gave me the depth of understanding I was looking for. Expect to do some self learning with YouTube, papers, or PB book. You can front-load the class over the summer as projects are released early.
The projects are pretty challenging and time consuming (20-40 hours) depending on how well you understand test cases and how much tuning is involved. Projects are an order of magnitude harder then the problem sets (which you get solutions for) and lectures (except for PID). I wouldn’t call it an easy class and I think the projects are fair, interesting, and do test your knowledge of each idea. However, the sheer volume of things to master is far less than ML, RL, or CV, there are no tests, and you can breeze through the lectures quickly.
The TAs and Dr. Summet are really excellent and the course is well run. I appreciate methods in probabilistic robotics a lot more now.
IMO you get out of this class what you put into it. There isn’t a lot of support from the faculty outside of Piazza so you’re really forced to own your learning. The concepts in the lectures were simple, more undergrad level than graduate level in terms of their complexity, but they’re powerful nonetheless. I watched a lecture one night then applied those concepts at my job the next day to good effect.
The projects can be time vampires for the wrong reasons. My advice is to be meticulous about understanding what is asked of you before writing a single line of code. Also be prepared to sink a lot of time into parameter tuning. Also I actually don’t advise starting early so that bugs in the autograder/project code get fixed by the instructors before you invest any time.
I think this was a good first for a couple reasons. Firstly it reminded me how to switch my brain from industry mode (objectives are clear but the problem scope is infinite) into academic mode (objectives are poorly communicated but project scope is very limited). Secondly since it’s very frustrating how loosely the class is managed, I feel like this is a good litmus test for if you think the BS surrounding an online degree is worth it (I do).
Again, you get out of it what you put into it. I feel like it was a value add to my life ¯\(ツ)/¯ Background: Electrical engineer from U of M - Ann Arbor, 4 years of experience working in tech
This was my first course in the OMSCS program, so my rating (Liked) and difficulty (Medium) may not be as accurate since I don’t have a reference point. I don’t have an academic CS background, and I had only so much exposure to Python. Yet I ended up getting a 94% without doing the extra credits. Here’s a list of random things I’d like to mention:
- I spent a lot of time debugging my code. I didn’t realize until after the first project that I should stop writing print statement for every variable, and rather use the debugger tools that come with any IDE. It saved me a ton of time once I started using it.
- I recommend this as a first course. It’s gentle enough that it gives you flexibility to fill in your knowledge holes, whether it’s math, Python, Linear Algebra, or in my case, debugging. But, It’s also rigorous enough that you have to fill the holes on the fly, because you have to focus on implementing the Kalman Filter, for example.
- Invest some time doing the problem sets and the last quiz of each lecture, because they may be a good foundation on which you build your project.
- Working ahead is good, but remember, the instructor reveals “secrets” as the project progresses that magically solve all your problems. For the second project, I was stuck for hours, until he mentioned the magic of “Q matrix.”
- Overall, Piazza is helpful. Slack is not. Though, I learned some cutting edge humble bragging techniques from folks there.
- Love Bonnie. Befriend it. Use it. Worry (almost) no more about your grade.
The difficulty should lay down somewhere between Mid and Easy. If you have exposed to Python it should be a perfect course as a first course. All the assignments are published at least 2 weeks before the end of previous assignments. That helps to plan ahead and be flexible. I was able to finish the last assignment (project) 3 weeks before the final due date (and enjoy spring break, family trips)
Overall very well taught course, instructor and TAs are very supportive.
It was difficult to tell when there was a bug in the algorithm code vs when outside techniques for edge cases needed to be used for projects. So, this made the course somewhat difficult even when the underlying concept was understood.
FALL 2018 – This class covers concepts from probabilistic robotics like Kalman filters and particle filters that can be read about beforehand. There is also a mini-project on PID control and a final project on SLAM. If you understand the concepts, this course is not hard and the coding is minimal.
The lectures are just too simple while the projects are super time-consuming.
This has been my second class in the program after CP, and I’m glad it wasn’t the first one as I originally intended, otherwise I could have considered withdrawing and not coming back to OMSCS. Don’t get me wrong, this is not a bad course, actually, the projects are very well organized and you will learn a lot working with them, however, the video lectures and the homework assignments have a so cheap MOOC taste, that ruins the general experience.
The lectures are quite decoupled from the project, full of absurd mini-quizzes and bugs solved in footnotes and comments. The homework assignments are based on these lectures. It is recommended to try to solve them by your own, and in case of getting blocked, watching the solution videos, however, you will probably end up just watching the solution, since the amount of bugs makes difficult to learn anything from them. I wouldn’t care much about this in the first year of OMSCS, but it doesn’t look serious for a top program that they haven’t solved these issues after more than 5 years running.
Putting these “technical issues” aside, as I said the project are the real meat of the course. They were:
- Mini Project 1 - Kalman Filters: don’t underestimate the “mini” part and start as early as possible, by far the most difficult and tricky of all of them.
- Project 1 - Kalman or Particle Filters: It was basically another twist to the previous Mini Project.
- Mini Project 2 - PID: the lectures regarding this topic were just horrible, I’m glad I knew what was a PID before getting there.
- Project 2: Search
- Project 3: SLAM
MP1 and P1 were by far my favourites. The way they are presented makes necessary to dive into books, papers and other resources. I suffered a lot with them, but I think they were the ones where I learnt the most. The MP2 one was quite simple compared to the first ones and its background interesting, definitely a better way to learn about PIDs than the lectures. Regarding the last two projects (P2, P3), they account for almost half of the score, but I had the feeling that they could be solved simply using part of the homework as a black box without a deeper understanding on it as it was required for the first projects.
After all, I got a solid A, but didn’t enjoy so much the semester. Anyway, I would recommend the class to anybody interested in getting the basics about mobile robotics, simply, take it easy in the videos and homework.
Some of the course material was interesting, some not so much. The project were interesting to work on. You will write a lot of code in python in this course
TL;DR Not super easy but not too hard either (at least if you have some python experience), interesting topics but execution could be better. Put in the hours and you will be fine.
I’m kind of split regarding this course: while the topics covered are interesting and the video lectures are pretty good in the sense they give a nice intuitive grasp of the subjects, it seems like this was not built as a graduate level course but rather as a MOOC course with some projects added as an after-thought. The course has 3 projects, 2 mini projects and the video assignments for each lecture (6 in total) and while in principal the projects could have been pretty fun to do, in practice most of time is wasted on tweaking parameters in order get your code to pass different test cases (the plus side - passing all provided test cases pretty much ensures you’ll get a good grade) which is kind of boring. Overall - Ok, could be better with more in depth coverage of the material and better designed projects.
This is an excellent class. You will go over quite difficult topics and be required to code relatively open ended projects. The projects are a serious time commitment but manageable if you respect them. They are entirely in python. So it is a good chance to sharpen python skills if that is needed. The lectures do a good job of breaking complicated projects into understandable bits. They are a bit math heavy and utilize a good deal of linear algebra. The projects are all oop. So it is good to brush up on both those topics. An auto-grader is available that tells you your grade as you work on the project which reduces some of the stress of working on them.
For all the good feedback on this course, I will say it was extremely difficult. I put in over 40 hours a few weeks on the final project and got a B in the class still. That being said I still highly recommend
I took this with Computational Photography, this was by far the easier class to manage. I finished everything two weeks before the deadline, as it stands, this is a good class to pair with another medium difficulty class, I could see someone getting blown up pairing it with something harder though.
Description: 6 Problem Sets, can be done immediately after watching lectures. With lectures, expect a 1-5 hour time commitment. Recommendation: Front load the first 3-4 in the first week and kick of RR.
MinProject 1: Runaway Robot, it’s on Udacity, so you can see it. Tricky, multiple approaches available for use (Kalman Filter, Extended Kalman Filter, Particle Filter). There’s a reason it’s tricky if you pay enough attention to when things go wrong, you can find and fix it, do some extra reading to find the general fix, or take another approach. Recommend budgeting about 40 hours.
Project 1: Polygon Robot. Primarily about the Particle Filter, some mutterings on Piazza about directly reusing RR code with high success. Easier than RR, but similar time commitment. This project may be getting scrapped for something new.
MiniProject 2: PID. Maybe 5-6 hours total if you’re smart. Test code provided is the same thing on Bonnie. This might be where the parameter twiddling complaints came from. IMO those complaints are pretty BS, good code solves problems without needing massive tweaking. Also, part of this project suggests using Twiddle, I easily outsource parameter tuning that direction. The testing visuals they have are great, which is probably why they’ve kept this, someone who gave a shit made them.
Project 2: Warehouse. A*/Djikstra focused. Interesting, switches environment between A. discrete and B. continuous. Thought it was interesting, I over-engineered a solution and have a greater appreciation for the complexity of getting a best path in a continuous environment. One can make very basic adjustments and probably still get full credit. Maybe 30-40 hours.
Project 3: Ice Robot. Pretty simple application of SLAM code from Problem Set. Thought it was a bit meh as far as difficulty and concept, maybe 20 hours. Finished 2 weeks before due date.
Pros:
- Balanced workload overall.
- No readings, no tests.
- Creative projects.
- Could be paired up.
- Intellectually requiring.
- Lectures are enough to get good grades on all projects.
Cons:
- No warnings about upcoming spikes in workload.
- Projects could take 40+ hours each.
- Some calculus, statistics and matrix algebra knowledge required.
- Problems Sets are not demanding and too easy. Projects are much harder.
- No real help or feedback from TAs or Instructor.
- Lectures cover basic skeleton code, student must work from there.
- No real relation to self-driving cars. Classical (old) AI algorithms.
Tips:
- Start projects early. Give yourself time to tweak around.
- Preload as much as possible.
This class was really challenging, but in a good way. There are 2 mini-projects and 3 full-on projects. I appreciated how the course covered such a broad spectrum of robotics algorithms ranging from particle filters/Kalman filters for tracking and localization, A* for path-planning, SLAM, etc. The projects were really hard… particularly project 2 but i felt like all of them were very relevant to more real-world scenarios. Workload really does vary week to week. Some non-project weeks may only require a few hours of time… as projects come expect to spend 30-50+ hours on them… they’re no joke. Even though it really took its toll at times, I enjoyed it overall.
This class was really challenging, but in a good way. There are 2 mini-projects and 3 full-on projects. I appreciated how the course covered such a broad spectrum of robotics algorithms ranging from particle filters/Kalman filters for tracking and localization, A* for path-planning, SLAM, etc. The projects were really hard… particularly project 2 but i felt like all of them were very relevant to more real-world scenarios. Workload really does vary week to week. Some non-project weeks may only require a few hours of time… as projects come expect to spend 30-50+ hours on them… they’re no joke. Even though it really took its toll at times, I enjoyed it overall.
I wouldn’t consider the concepts which are taught in this course as AI. Yes, Kalman Filters, Particle Filters, A*, and SLAM are all technically considered classic AI algorithms, but this is not true AI like what you see in machine learning. Some of these algorithms will most likely become obsolete as more machine learning is applied to robotics. Just so you know, this course is heavy in math, so you should brush up on linear algebra, statistics, and geometry prior to taking it. I received an A in the course, but it took a lot of hard work, was not easy at all.
Course load really comes and goes in waves. The projects are a lot harder than you think on first read-through and can easily eat up a lot of time just trying figuring out how the TAs have structured their test environment.
The lecture material is easy to digest and gives you a really high-level overview. To actually do the assignments often requires quite a bit more research. Good introduction to Kalman/Particle Filters but the topics on PID and SLAM are really rushed and not very useful in actual applications. For the PID project you were able to write a controller that could instantaneously adjust throttle which made it very easy to tune to get a 100% and very difficult to imagine how I would apply the tuning algorithm to a real situation.
Overall, pretty neutral.
I’m torn between Medium and Easy for this course. My semester had 3 projects and 2 mini-projects. You can work ahead on the lectures/quizzes and the projects to a point – they are based on the Udacity concepts, so if you do the quizzes and programming assignments you should have a somewhat solid start to the projects.
I know I made it harder than it needed to be because I investigated the various filters and put effort into architecting a lot of the Python for reuse. Some parts are twiddly and a little tedious. But the overview and the concepts Dr. Thrun goes over are solid. You should be comfortable with algebra (dimensionality/linear algebra and coordinate conversion), probability (basic/intermediate), and python (2.7 this semester). We did have access to numpy though.
I’d like to see a little more advanced stuff in this course as far as integrating all the pieces into a system, or maybe cooperatively working with a Computer Vision or Machine Learning framework (for sensors or the like). There was a rumor that a previous project had been temporarily sidelined my semester which did include a more integrated solution. Our projects primarily amounted to what I would call “primary subsystems” – localization, navigation, obstacles and planning,…
One more thing, having had zero robotics before this course, I still found the topics very approachable and the explanations were very grounded and practical.
A Hard no!! I would “steer” clear of this class, you have been warned. While AI4R sounds cool and glamorous on the outside, in reality it consists of a few unintelligible lecture videos and a few toy problem sets that you won’t learn anything from. You are better off self studying the concepts and playing around with some rasberry pis. I was really interested in going into the AV space, but after taking this class, I was not only not inspired, but it left such a bad taste in my mouth that now I am turned off from pursuing opportunities in the industry. I am severely disappointed, and hope they can do a better job in the future with this course, as it is definitely important. TLDR - avoid at all costs
This course covers the algorithmic aspects of self driving cars. If you are looking to learn about the hardware aspects of this subject, you will need to go elsewhere. It consists of 2 mini projects and 3 larger projects. The course covers Kalman filters, particle filters, PID control, A* planning, and the SLAM algorithm. The projects can be solved via any technique that gets the job done and several students used geometry solution techniques early on and good heuristic approaches later on. The course started using Bonnie this semester and it was nice knowing what your likely grade would be. Though the professor reserved the right to re-run your code against other test cases as he saw fit.
There are also 6 problem sets that need to be submitted. It is well known that the solutions for these problem sets are provided in the lectures themselves, but it is best to really try to solve each problem set since it will help you have a good understanding of the topic before attempting the corresponding project. A lot of the problems in the problem sets are small to medium programming assignments and are harder to accomplish than you might imagine. Overall, I mostly enjoyed this course, but I didn’t really like problem set 6 which is for the SLAM algorithm. The corresponding lecture was too hand wavy to understand it and they really should revamp this lecture. I ended up reading about SLAM in the class text and implemented the EKF algorithm found there to solve the SLAM project.
This is by far the worst class I’ve ever taken.
Its review doesn’t deserve any more words.
This class was a good intro to robotics and autonomous systems. The only downside with it is how much it depends on parameter tuning and how you can easily shoot yourself in the foot by this.
This was an okay class for me. Prof. Thrun was no longer involved in the course but were there for a couple office-hour sessions. There are 6 problem sets which you can try directly in Udacity. It is pretty much a free score handed to you. There are 3 assignments to implement a self-navigating robots to reach certain objectives. It is not difficult to get an A in this course as the assignments already have the test code written so if you pass the tests, you will be likely to get full score in the real tests. In my opinion, to really get the most out of the course, you should do the optional challenge assignment regardless whether you need the extra score or not.
This is a very good introduction curse, as well as a course that prepares you to other courses such as AI/ML. If you want to learn more in-depth of the algorithm(particle filter) and do an extensive project(project 3) using python, please do not choose the course during summer as time is limited. It contains project and application in the field of probability theory (Bayesian Network) and algorithms such as A* Kalman Filter and Particle Filter, also some control theory as well. I could review this course a little bit earlier but I realized I didn’t commit as much as other courses I’ve taken so far. And the content and works of this course seemed just very easy to skipping I felt like and didn’t keep me very consistently involved during the class.
AI 4 robotics is a misnomer - it is basically graph and mapping algorithms for automated car.
I would have actually preferred a generic robotics course (the skills of which might actually be useful to a hobbyist with limited funds), with some focus on robot car. Here, the probability of putting any of this to real use is infinitesimal unless you work for a robot car company.
The projects could be tough - esp because some of the code the prof demoed was buggy. IMO the lectures are now dated given the amount of errata and they need to be revised.
There is almost complete neglect of theory (a big problem with this course). This comes and bites in the projects, which are heavily mathematical / numerical code and “copy paste” will not work.
Very confused offering with a new instructor coming in. Used to be an “easy” class, Pryby decided to make it difficult just to “keep standards up”, which is very bad instructional philosophy (students here to learn, not win medals). Added a part of the project which was too difficult to solve as noise levels were too high - I don’t think the TAs could solve it either (they really should have tested it rather than using students as guinea pigs. In the end, the project was toned down and the difficult parts converted to extra credit - kind of a desperate last minute fix to a broken system.
This was my first course and it was a great experience. The professor Dr. Jay Summet and TA’s were super responsive and empathetic. The lectures by Dr. Sebastian Thrun were presented well and the office hours were always very interesting. It was helpful that we could watch them later, in case we missed it. The projects were very intensive and were set up in such a way that we could apply what we learnt or we could research and come up with alternate implementations. We had a very active Piazza forum without which I would have been stuck on the projects many times.
I normally spend >40 hours per week at my workplace and took only one course as my first course. At times during projects it was really a stretch, but I was able to manage it because of some “down time” they gave in between.
Overall, I enjoyed the course and learnt a lot. My background is in VLSI, so not a lot of actual software experience. But topics like path planning are relevant to my field, so it was enjoyable to code it from a robot perspective. I really appreciate how structured this class was and also the fact that the projects were released earlier so that non-traditional students like me had enough time to work on it. I highly recommend this course.
Introduction
This is my fifth course in OMSCS and have previously completed ML4T, SDP, IIS and CP. I have good enough programming background and comfortable with writing non trivial code. All assignments are in Python and assignments are usually released with two weeks to work. I would rate the workload slightly lower than Computational Photography and equivalent to ML4T.
Problem Sets
There are six problem sets which are evaluated in Udacity itself. The TAs require the students to answer in Udacity and upload the answers in Canvas as well. This constitutes 25% of the grade and the answers are there in Udacity videos itself. You can review the videos and ensure that the last submission is the correct one. The Canvas upload is used only as a backup if Udacity results are unavailable.
Mini Projects
There are two mini projects and Runaway Robot was the first one. This follows close to the video lectures and brushing up on trigonometry and motion models should make this simple enough to finish. (spent time: 3 hrs)
The second mini project PID Controller was even more a simpler one and following the videos closely could get the code completed easy (spent time: 2 hrs)
Mini project test suites are provided along with the template code and getting the test cases to pass is sufficient.
Mini-Projects and Project 1 constitute 30% of the grade.
Projects
There are three projects:
- Project 1 - Polygon robot [Time spent: 15 hours]
- Project 2 - Robot in a warehouse [Time spent: 30 hours]
- Project 3 - Rover robot on ice [Time spent: 45 hours]
These are non trivial projects which increase in terms of complexity and also builds off each other. The test suite provided is not complete with more rigorous hidden test cases which made me lose the Project 1 scores to only 75%. It is important to test the shared tests by other students and share your edge cases as well in Piazza. The TAs usually released the projects early by atleast a week, sometimes even 10 days giving ample amount of time to complete them.
Extra Credit
There was an extra credit of 2% for exceptional H/W systems being built out of their own interest. This would help if you are on the verge of a letter grade upgrade. For example 89% with extra credit would give you an ‘A’
Lectures and Relevance
The lectures were fun and Dr. Thrun does a fantastic job of making the videos engaging and working throw the topics. The only problem is that they are clearly too basic to prepare the students for the projects themselves. The videos are great for getting a fundamental understanding. However the transference to the project code is not trivial.
Good to learn
Brushing up on geometric models, basic motion structures would help work on the projects better.
Material
Though the book “Probabilistic Robotics” is a good read, it was not really required for this course and all the grading is based only on assignments and there are no exams.
This was my third course in the program and it was an interesting survey of techniques used in robotics. The course covers robot localization with Kalman filters and particle filters, motion planning search algorithms like A*, PID control, and simultaneous localization and mapping (SLAM) algorithms. This is very much an engineering course so make sure to brush up on your probability, linear algebra, trigonometry and python. The course is all projects so depending on how diligent you are you may find yourself doing next to nothing some weeks and working 30 hours another week to finish a project. I recommend this course for a first semester student. I do wish we went a little more in depth into the details and proofs of some of the algorithms but given the wide range of material covered it may have been impractical.
Must like robot localization. That was a large portion of the class
Took this in Fall 2018. The material are pretty straight forward. The course is focused on practicality more than theory. A lot of implementation exercises. The projects are straight forward with a trick or two. The projects took time but the material and exercises did not. The instructors were available for questions on piazza. To do well follow questions and discussions on piazza
This is an interesting look into robotics, explaining the basic concepts of how to locate a robot in the world, plan movements, and keep it on course.
The class is interesting, but unless you plan to work on robotics, you may not use the information you learn.
AI4R was my first course, and I recommend it as a first course. I work full time and it was the only course I took. I really enjoyed it and got an A. In fact, here is the grade breakdown for all of the students (we received this info from the TA):
A 53.11%
B 26.89%
C 6.89%
D 7.54%
F 5.57%
I thoroughly enjoyed the course. I read many comments on Piazza where several students had problems locating a target (for the mini projects) using the Kalman Filter and/or Particle Filter, so I just used mathematics (trig, geometry, etc.) and made the program work just fine. I would have preferred to get the filters to work, but I strongly desired and A and didn’t want to take a chance in not getting filters to work. I got a 97.5% overall.
=========================My Background ===================
Have been working for 2 years as a Software Engineer with Python as my main language. This was my first course
======================= General Summary ===================
The course is a great first course for OMSCS. The content is certainly wide but not deep. Prof. Thrun does a great job of explaining the mathematical aspects of the content in a very intuitive way. However, the actual mathematics is not delved into deeply. Diving deep into the mathematical derivations is not necessary to get good grades, but if you do decide to do that, the course (which is otherwise moderate) becomes very difficult.
=========================Pros ============================
You get a good idea about how Bayes Theorem works in localization problems. In my opinion, the best part of the course was mini-projects and projects. I have found a new appreciation for the practical aspects of Robotics. Who knew noise control could be so tough!
You will learn a good deal about a variety of topics - from localization, to control, to search, and finally to SLAM.
This semester (Fall’18), the course was conducted very well. I think this was the first time a project on SLAM was introduced. Sr. Lecturer Jay Summet was always present on Piazza to clear our doubts and help us in all possible ways. The TAs were responsive. Projects were timely graded and the overall experience was very positive.
========================Cons===============================
Do take the course if you want to know how self-driving cars are working. If you do not have much interest in the area, you might not enjoy the course much. The content lacks mathematical depth which I think is fair, but would be nice to touch upon.
AI4R was my first course in the program, my first college course in decades, and my first course in the Computer Science field (I’m an electrical engineer by education & career). Although I liked the class, I decided to withdraw in late Oct when it became clear I was unlikely to get a final grade of “B.”
For non-traditional students like myself with a steeper Computer Science / python learning curve, I recommend finding the “easiest” two classes to start with, regardless of specialization area, to improve the chances that you will successfully complete two foundational classes with a B or better in your first 12 months.
Professor Summet & his TAs were helpful and engaged in trying to help students over the humps. My main complaint in this course was that .. even after projects were graded, they still would not share code solutions. I got a 50% on one of the early projects (which was fair because I did not grok how-to translate the approach into working code at the time). However, even after getting that poor final project grade, they still would not share code solutions. It seems to me there should be a middle-road to show students what they did wrong without resulting in professors having to develop new projects from scratch every ~four months.
Lastly, I’d like to share the office hour links .. Dr Thrun’s comments are all excellent, but in particular his remarks on the relevance of some portions of this current AI4R course really should be reviewed by students considering this class in the future. He makes great recommendations for additional (or even alternative) educational opportunities in the autonomous vehicle arena.
Office Hour Week 15 https://www.youtube.com/watch?v=T2v77_zTQtE
Dr. Sebastian Thrun Office Hour https://www.youtube.com/watch?v=82zUf32flMs
Office Hour Week 14 https://www.youtube.com/watch?v=qaIGjD4HY8M
Office Hour Week 13 https://www.youtube.com/watch?v=g-rjspBWoRI
Office Hour Week 12 https://www.youtube.com/watch?v=4aXtJTqwyvI
Dr. Sebastian Thrun Office Hour https://www.youtube.com/watch?v=SMkLwYe1GZ8
Office Hour Week 10 https://www.youtube.com/watch?v=gK0XX2kjHAc
Dr. Sebastian Thrun Office Hour https://www.youtube.com/watch?v=5KRHwFGE_xY
Office Hour Week 8 https://www.youtube.com/watch?v=b6J7dk2TApw
Office Hour: Wek 7 https://www.youtube.com/watch?v=1YTxpeVYZpU
Office Hour: Week 6 https://www.youtube.com/watch?v=4EqofDEngA0
Office Hour: Week 5 https://www.youtube.com/watch?v=Xtc7XFUCo7M
Office Hour: Week 4 https://www.youtube.com/watch?v=UNrumNzuADg
Office Hour: Week 3 https://www.youtube.com/watch?v=KPeXOFeyOG8
Office Hour: Week 2 https://www.youtube.com/watch?v=hK7zHYxJQK4
Great course. Fun to learn. But I think its hard. I recommend, before taking this course, revise your probability, trigonometry and algebra lessons. Do get some hands on with python programming, so that you are comfortable with the syntax (This is very important). There are no exams. The evaluation is based on the projects. There will be enough time to work on them. The TA’s are extremely helpful. There will be a lot of help coming in on piazza both from TA’s and students. The grades are released super fast, this is a very good thing about this course.
AI4R was a great introduction to fundamental concepts of robotics; localization, Kalman and Particle Filters, PID control, A* and various search algorithms, and finally SLAM. All topics are taught around the concept of a self-drivng vehicle. The projects are the highlight of the course and main source of learning. The projects are very well constructed, challenging, and quickly reviewed.
Python is the language de jour in AI4R. I tried to use NumPy as much as possible while not required. I would not take this course without some Python background although its an easy language to pick up. It would be nice if the projects were designed for C++ given that is the predominant language in the industry.
The instructor, Dr Jay Summet, was very active on Piazza as were the TA’s. The course is well organized and coordinated. Dr Sebastian Thrun, who originally developed the material for the course, does some offices hours which is neat, but not directly useful for the courses. He is a good lecturer but I don’t like how many quizes are built into the Udacity lectures.
Advice for the course, work ahead on the lessons, allocate 40+ hours for each project, and take advantage of the hardware challenges, as much as you have time.
I highly recommend this course for anyone with a mild interest in robotics.
This was my first OMSCS course, and it worked out well. The lectures are all available on Udacity, and the course more or less follows the pacing of the course there. The material was produced by Sebastian Thrun, who narrates the videos. Thought he was awesome, given his on-the-ground expertise in the field. Dr Thrun did office hours several times, which was “really, really great” (as he likes to say). The instructor for the course – Dr Jay Summet – was great as were the TA’s. Both were super responsive. The forums were super helpful as was the Slack channel.
In terms of the material itself, it’s really AI-lite in as much as the focus is on entry-level algorithms used in self-driving vehicles – actual AI/ML is outside the scope of this course. I feel like I learned quite a number of really interesting algorithms – Kalman filters, Particles filters, A star, Theta star, PID, SLAM. The assignments were all fairly straight forward, except the very first one – Runaway Robot – which I found very challenging. I would suggest getting through the first few sections of the course straight away, and start work on Runaway immediately.
So you can assess my review appropriately, I have 15+ years of software engineering experience across the stack. I am super comfortable with learning new frameworks/languages, and researching things I don’t understand. I have a partial CS undergraduate degree.
Pretty disappointing course by a sadistic GTech Professor who is more interested in touting his own horn than teaching students. This course has some times where you may not have much work to do, and other weeks where you can spend 30-40 hours trying to do a project. The lectures themselves are very very dry and Sebastian Thrun (the main instructor) does a terrible job of relaying material and concepts beyond the first lecture. The projects can be very confusing on what needs to be done, and expect to spend lots of time debugging the issues. I want a disclaimer that I got a high A in this course, so I am not just some disgruntled student but I was very unhappy with the execution. If I had to say one positive thing about this course, the TA’s were pretty quick and helpful.
Fun course, but sometimes I had dreams about that runaway robot. Well taught, well run, solid course.
There was plenty of time to get ahead of the work in this class even in the somewhat shorter Summer semester. Really enjoyed this class in terms of the content and projects. Some projects were more challenging while others weren’t too bad to knock out in 1-2 sittings.
AI4R was a great class! It was a suitable option for summer session, as the third project, which is definitely a difficult and time consuming one, was dropped. There were opportunities for extra credit as well, which was great if you were wanting to ensure you don’t just miss out on a grade by a percent or two.
The lectures are well done, but you will have to do a lot of extra reading to supplement the videos. It’s not too bad, but I can understand if people are put off by this fact, especially if they’re not expecting it. The videos do a good job of covering the foundations and touch on some of the more advanced details, but you will likely have to read some papers or other resources to get a handle on more advanced techniques and implementation of these techniques.
The projects are fairly well defined; we had two mini-projects, and two full projects. The full projects were definitely time consuming, so I would suggest starting on them soon after release. Even if it’s just playing around with different ideas and trying different approaches, it will help you get a handle on how the problems are set up and how you should be tackling them. The nice thing about the projects is that they’re fairly open-ended in terms of implementation, as you can choose from a few viable algorithms or approaches to solve the problems.
Assignments are your answers to the quizzes in the Udacity videos. You also have to upload your code and answers to ensure nothing gets lost in case Udacity loses your answers on their end. These were easy and basically a free 30%.
TAs were excellent; they were extremely responsive and informative. Assignment and project grades were given back VERY fast, sometimes in the same day.
All-in-all, it was a well-run class and I would highly recommend. If you want to learn SLAM, which is an important and very powerful algorithm for robot localization and mapping, to the fullest extent the class can offer, I would advise taking this during the regular term so you don’t miss out on project 3. Be warned that it IS very difficult, however. So if you don’t mind missing out on this last project, this class is a decent choice for summer. Though it’s probably still not the easiest, it’s enjoyable and very much doable.
I like this course a lot. Though it’s on the difficult side, the material is really good and Sebastien has explained things in an order and manner that’s very intuitive and easy. 3 projects and various programming assignments will keep you busy, but in the end, you’ll learn a lot about motion planning and probabilistic robotics and feel rewarding.
I enjoyed this class, overall. It wasn’t super difficult, but the projects were sufficiently challenging and engaging. The runaway robot project can be tough without prior experience with Kalman/particle filters (it helps having already taken CV, since one of the projects in there uses these filters). And the final project (project 2 for the summer course) was definitely a big challenge - one that combined most of the topics learned in the class - but was extremely rewarding at the end.
I wish the course also included the SLAM project and more content from that area, but I understand the difficulty in cramming more material in a shorter window. I feel like the course could be reworked to include this if certain aspects of the prior projects were modified.
Either way, I’d recommend taking this course if you’re interested in robotics and automation. It’s not insanely in-depth, but the projects are engaging, and the topics are interesting.
Also, I think this often gets recommended as a potential first course. I actually would not recommend taking this first, unless you are very confident in your Python/Numpy/linear algebra skills. I think getting some more experience in those areas goes a long way with the projects in this class.
Super great. By FAR the fastest grading I’ve seen at OSMCS so far. The class seems to be designed from the ground up to scale for being online, and it makes a huge difference. I agree with other reviews that this course comes more from an engineering perspective than a science perspective. Principles are taught in class and they are useful in the projects, but the projects will throw some real-world curveballs at you, so you need to do some real-world problem solving, and find some workable heuristics to use with the principles. And if you find a ‘cheap’ solution that doesn’t even use the class material, that’s okay - the rule here is if it works, it’s not stupid! That’s a delightful approach; without it, students sometimes end up having to play “guess what the instruct is expecting you to think”.
This is by far the worst course I have ever taken, including other MOOCs and in-person courses.
When I took the class there were three projects - runaway robot, warehouse robot, and predicting the location of a hexbug. The hexbug project was a group project and meant to be the hardest, however, you can use scikit learn to basically do it for you so it ends up being trivial. The warehouse robot project involved having a robot navigate a maze to locate packages. However, the robot is allowed to walk through walls so there is really no maze that needs to be navigated. Releasing a project in this state to students would never have happened at my previous college. The runaway robot project is fun, but the later parts are unconnected to the lectures.
By far the most annoying thing about this course is the number of errata in the materials. Too many lectures have written notes correcting the material covered in the video. Too many homework problems give you code to work on that is incorrect. Fixing this would markedly improve the learning experience, I don’t understand why a college with the resources of GT doesn’t do this.
This course is what made me go from recommending the OMSCS to my co-workers, to actively telling them to avoid it.
I enjoyed the class a lot, that maybe because I already took AI and Algorithms, so I was already familiar with A*. The TAs and the instructor were super engaged throughout the class, grading was lightning fast (within days). The class is very well organized, the projects are really fun. I definitely recommend it!
This was my first class and it made me like the program so much I strongly recommend it for all new students.
With a strong background in algorithms and programming, I did not think the class was hard, but I can see why it could be if you don’t have the same background. It was apparent on Piazza that many students struggle with implementing the algorithms provided.
The open-ended nature of the first project lead to complete chaos and panic. I must have spent 100 hours on it trying different ways to solve it. Settled down on particle filter and it’s smooth sailing from there. SLAM was very interesting and challenging. Btw, don’t expect to use simple geometry algorithms and get an A.
Overall a great class, the student interactions made it much more enjoyable. I got a ton of help and helped a ton of people. This is how I hope all other classes would be.
It is a hard course. 30% of course points were a giveaway. But I had to struggle hard for the rest of 70%. For summer they removed SLAM. It reduced workload but it would have been better to have learnt it. There were no tests nor group projects nor papers to write. 2 projects and 1 mini project had to be implemented in python. Got an A- just managed to scrape through. Professor Jay Summet is excellent and so are the TAs. Slack and Piazza are life savers.
I had fun learning!
I didn’t enjoy this class. I thought the assignments had very little guidance and didn’t facilitate learning the material. The professor is very disengaged.
Had a blast doing this course. The connection to KBAI was very apparent to me and buy the text book. The google car was very interesting to read about. I’ve applied the probabilistic pieces in other classes so learn that well.
The most well structured class I have taken; quizzes and assignments built very well in relation to the lecture material. Very active Piazza board and extremely helpful discussions.
This is an engineer’s course where you understand the concepts and code it. There is some Math involved like conditional probability, Basic Geometry and linear algebra, Bayesian theory, Matrix Math and so on. A self driving car is extremely complex and you are learning from a self driving car pioneer Dr. Thrun which is very good. However you only learn the basics in this course and would barely scratch the surface. Having said that this course covers pretty much the heart of what is needed like Localization using Kalman filter and Particle filter, different search techniques like A*, PID control and SLAM. I found SLAM the toughest to understand and comprehend. This course has no reports or writing which is the best part. Its pure coding and the projects are all or nothing. It starts out pretty simple with the Runaway Robot and gets progressively harder as the course progresses. Project 3 : SLAM Warehouse is the toughest of all and unfortunately for the summer course this was excluded for obvious reasons. But I was glad I got to do the SLAM Problem set 6 which itself was challenging despite being an introduction to SLAM. A piece of advise is to start early on the projects and assignments as they are released very early. If you time and plan all the projects and assignments early enough, you will have a month for the final project3 and trust me, you would need all the time in the world for that. The drop deadline is pretty much useless for this course unless you screw up the earlier projects which is unlikely. The TAs for this course were the best I have encountered so far. Prof. Summet is very active on Piazza and super helpful. The office hours are recorded so there is little reason to watch it live. Being active on Piazza and the Slack channel is the key as you gain immensely from fellow students insights and advise. Overall an excellent course and the experience was very satisfying.
This was my first course in OMSCS as registration was full for everything else I wanted to start with. I DO NOT recommend this as your first course if you have been away from school for some time, like me (17 years). I loved the topic, the TAs and Instructor were rock stars. The final 2 projects made me lose my mind. I worked 100+ hours on each one and got very low scores, after getting 100% on all previous assignments. It was extremely stressful. So be prepared for a fairly unbalanced course by working far ahead so you can devote 100% of the last 6-8 weeks on Projects 2 and 3. It will be easier if you understand A* path planning ahead of time. Know Python more than the basics as well. Projects change slightly each semester. No team projects. No exams.
This course is very hard just because of project-3. For weeks, majority of student’s hardwork produced zero credit. Finally, TAs extended the deadline by a week and gave us some breathing space. We were able to manage some partial credit on the last project and a lot of students fell back in their grades. The course is really interesting and has lots of stuff to learn and enjoy. But the projects demand heavy efforts, time and energy. There is not much of guidance from TAs and usually limited to high level ideas only. It will boil down to keep trying to find the best algorithm around the ideas to pass the testcases.
Personal background: This is my first semester and I paired with course with Computer Vision. I don’t have formal CS educational background or software engineering working experience. I have been programming with Python for a year or so to prepare for the application of OMSCS. I have taken college maths classes (which I dont think is used in this course).
About the class materials: The lectures are very interesting and well structured. Probably not wide/deep enough. But the research challenge arranged by the instructor provided good opportunities for self-exploration and learning from each other. It is a pity that I did not spend much time on it. The hardware challenge also seems very interesting. I am not a hardware person myself but the things classmates posts are really impressive.
About the instructor: The instructor Jay is very nice and effective. He almost answered/hinted every question on piazza. In a few cases when I twisted my wording to hide my stupidity when asking questions, he seemed to understand my intention and hinted on my confusion directly. I really appreciate his efforts in running this class well.
About the projects: Project 3 is challenging. There are too many details that can mess things up. I decided to give it up to get a B but the deadline was extended. So I “had to” work on it for another week and eventually I scored 6 out of 10 test cases and managed to get a A. (I lost 4 points because my solution was not designed to deal with certain situations due to lack of energy).
My lesson from project 3 is
1) you need to really understand what SLAM is doing exactly in each step (same for the other algorithms taught in the class) . Only after that you can correctly modify the implementation. It seems a lot of classmates claimed that there is bug in the SLAM code. But it did work, at least for some other classmates and me.
2) read and participate in the discussions on piazza. I had to make numerous decisions for the project and I did not have the time/patient to try them out. For learning purposes I listed the pros and cons for my options but most of my decisions are based on the comments from the instructors and other classmates. Sometimes even ‘typing’ the question helped me figure out the answer immediately. I heard from the instructor that it is called “Rubberduck debugging”.
First class? If you know python and know how to plan to “solve a problem” and execute your plan, I think you should be fine. For me, most of the difficulties of Project 3 in the first two weeks came from my messed up code and code structure, which made it very difficult to debug.
Great course. Enjoyed a lot as I knew some concepts and it helped at my work. Not for 1st year due to increased difficulty level in projects and grade requirement to be in the program. A project can have sub divisions effectively making it more than one project. Projects carried 70% score. Get guidance from Piazza discussions to attempt at them. Beginning of class and up to lesson 3 it’s a breeze and less hours is ok but after that the lessons are comprehensive and requires more work to understand. Few projects are all or nothing. 0 score in one project can push the grade downward (A to B or B to C). Python programming basic level is ok as many helpful code (copyright) are given to use in your implementation. But to score good in projects which require time-bound outputs advanced level - using numpy, pandas, matplotlib for visualization - may be required. TAs were helpful and replied almost instantly to queries on Piazza.
Great course. The third and final project is by far the most challenging part of the course!
I took this course along with DVA for my first semester. I liked DVA, but I thought this course was much better - I loved it.
Positives:
Dr Thrun’s lectures are fascinating, and he has boundless enthusiasm for the subject. That enthusiasm didn’t just come through in the lectures, but in the three office hours he gave throughout the semester. These office hours were interesting too, and he took questions from students ranging from project implementation details to research and industry topics. Pretty cool.
Dr Summet’s office hours were very useful, and he held them every week. He was also very involved on Piazza and personally answered many student questions.
The projects are fun. The course doesn’t cover that many topics, but you will become an expert in A*/DP path planning, Kalman/Particle filters, and PID control. When/if you finish the projects, you’ll feel proud. And if you’re like me, you’ll replay the Python scripts over and over once you’re done just to watch what you made.
In my semester, the students on Piazza were valuable and supportive.
There were no tests, and the homework answers were given for free (they still counted towards your grade). No group projects. You’ll have many weeks to prepare for most of the projects.
Negatives
The projects really seem all-or-nothing. They use an automated grader to score your projects, and you’ll probably have to spend double digit hours just to maybe get a tiny amount of points from the sample grader. The real test cases they will grade with are not given in advance, but sample cases are provided that closely match. Don’t underestimate the time commitment you’ll need for those projects. We had a week extension on the last project, and still many people reported that they could not get any points on their test runs before having to turn it in.
Tips
Python is heavily used, and it will be valuable if you’re already familiar with it. Start the projects right when they become available. Try to do the projects in stages, like making sure you have basic functionality before meeting the full requirements.
I wouldn’t go so far to say that the lectures didn’t cover what you need for the projects (like others have stated). The core of my logic for every project was solely stuff we learned in class. That being said, there are implementation details that will take a while to work out, and parameters that will need to be heavily tuned. You’ll have to get creative.
Overall, I really enjoyed this class. I enjoyed most of the projects and found the lectures to be enjoyable. Be careful about the last project in the class which is insanely difficult. All of the other projects were doable and really enjoyed them overall. This was my first class I did for OMSCS ever and while I enjoyed this class, I’m not sure if I can recommend it as a first class to take mainly because of the last project and how little time you have to complete it especially if you work full time. The topic is really fun and interesting and there are no tests and papers as well which is a big plus.
This is the first course of Gatech. I have CS background and quite familiar with python. As I look at some previous review of this course, quite a few people consider it as “bird” course. However, from my experience, this is NOT a bird course. Lectures are very good and straightforward, you will be given problem set to solve after every series of lectures, but all problem sets are straightforward. However, all projects are NOT easy. I did a little bit trick on couple projects to get 100%. But in the last project, I spent more than 15 hours for 3 weeks, I still couldn’t completely solve it. Again, python for this course is easy, but math is difficult, make sure understand the math before any implementation.
Was already familiar with many of the algorithms that were covered in lecture. Later strategies were interesting. The projects are a whole other beast as they test much more than what is covered in lecture. Compared to other courses such as Computational Photography or Computer Vision I would say the projects are ‘easier’ conceptually but ‘significantly less straightforward’ to implement.
Eg a project which was basically ‘implement particle filters’ which I’ve implemented at least 3 times before took 10x as much time to finish as in other classes. This is due to a lack of scaffolding provided compared to other courses (you have to integrate your code and write almost everything that’s not related to the core algorithm). I will say they did cover how to implement particle filters quite well. Just that the bulk of your time in the projects is not spent on the core algorithms the lectures cover.
The projects build on one another so if you didn’t manage to get earlier projects be ready to devote significant time on later projects catching up. Lastly the grades are all or nothing (very much like real life) unlike other courses which test each part of the project separately.
If you are not familiar with the concepts taught in this class you will struggle with having enough time to implement them. That being said the lectures do cover the material quite well. It’s just due to the all or nothing nature it’ll be hard for you to know whether it is a bug with the algorithms or an integration bug somewhere else.
Semi extra credit in terms of additional projects/challenges was offered, but I don’t consider them realistic given the time devoted to core projects.
I would NOT recommend this to new students to the program. For the final project around 1/3 of the students got 0% on the grade on a piazza poll and less than 1/2 got >50% due to the all or nothing nature. _____ Tip for project 3: Ignore almost everything that is suggested for this project by lecture. The biggest challenge is not related to what the project seems to want to test you on at all. If you waste your time on the algorithm covered in lecture. You won’t have time to work on the actual time consuming part of the project. You won’t even need anything you implemented in Project 2 or Project 1B. Just use the strategy from Project 1A to deal with inputs and focus on the real challenge. Learned this the hard way when I ran out of time and discovered my optimized implementation wasn’t even needed or used in the final solution. Also for the mini project before hand, there’s a significantly simpler alternative that’s much easier than the suggested algorithm. Save your time for Project 2/3 instead of the miniproject.
Pros:
- Lectures are very good and content is super-interesting.
- Projects are fairly well-constructed and released bug-free with sufficient lead time.
- Instructor and TAs were responsive and helpful.
- No exams.
Potential Cons (depending on your point of view):
- Workload was highly variable. Weeks without projects were pretty tame, but projects could be fairly time-intensive.
- Success on projects was highly non-linear. For most of them, your solution either worked or it didn’t. Points were awarded for individual test cases that were all fairly similar. The instructor-provided test harness provided examples, so you weren’t totally in the dark, but testing wasn’t done in a cumulative fashion where each successive piece of code was built on a previously tested piece. You’ve got to construct your own tests and debugging process, but hey, that’s life.
- The lecture content and especially the projects are deep-dives into filtering and path planning. This is core stuff, but doesn’t include the breadth of concepts involved in automated cars, much less robotics generally. There was no machine vision or reinforcement learning content.
Other Notes:
- 100% Python
- No group project, voluntary or otherwise, unlike some previous semesters
- Taking 6601: Artificial Intelligence beforehand isn’t required, but probably helpful
My grade: A
Purpose: For those interested in autonomous vehicles.
Topics Covered: Basics of statistics, route planning, and navigation.
Course Placement: Intermediate python level class but starts from very basic buildings blocks so beginners can easily build up their knowledge over the course of the class.
Time Commitment: Workload starts off ~5 hrs per week ramping up over the course to 30+ towards the end.
2nd Class: Not advised but possible for intermediate to advanced students.
Needs improvement: Learning advanced topics is left completely up to the student and you can pass without ever touching some of the topics discussed.
Grade in class: A.
Useful Prior Knowledge: Path finding algorithms like A*, stochastic programming like Monte Carlo, and a good understanding of geometry are very useful.
Recommendation: Definitely recommended if at all interested in the field. Projects are easily conceptualized and interesting while allowing a lot of flexibility in developing solutions. Extra credit projects allow you to build your own robot or applications of topics learned in the class.
The course has changed. The last Project which was recently added is tough. The Senior Lecturer and TAs are supportive.
The course is very good. The video lectures are well designed and natural to follow. The projects are heavily time consuming, challenging and they force you to learn a lot.
Although I enjoyed the course, I felt there was a gap between the lessons and the knowledge required by the projects. This made me seek the content in many other sources. The textbook is depth but it is way more difficult to understand compared to the video lectures. In one hand, the gap between the depth of the textbook and the shallowness of the lectures can be viewed as a problem, but in the other hand, it induced me to learn from other sources.
The instructor and TAs are very good, supportive and present throught out the whole semester.
Overall the course is great, the projects are really fun and I recommend it to everyone.
This course is very interesting. One reason I love this course is that it tells the most important concepts in robotics in the simplest way. The advantage is that you can easily understand the concepts, but the disadvantage is also obvious that you don’t understand where these concepts come from and you have no idea how to practice them when facing a complex problem. The homework are pretty easy and solutions are given to you so they give you a very good opportunity to practice your programming skills in python. Although you can get free 30% from the homework assignments, the projects are not so easy. Project 2 and Project 3 each took me more than 600 lines of code. They are not easy, but not that hard. As others said, even if you cannot solve the problem with the concepts from the lectures, you can solve them using geometrically solutions. So, overall, how much you learn from the course is based on how much extra work you paid to this course. One bad side of this course is that you either receive 100% or 0% for project or homework, so a lot of students will receive above 95% for the overall score. So the cutoff for A will be most likely 90%.
Initially the course if fairly easy but the difficultly quickly climbs up after the first two assignments. Workload was around 10-15 hrs per week initially but in the last 4 weeks it was over 30+ Hrs per week therefore I would advice that do not pair it with another difficult course. If you are planning to take two courses then this should be the “difficult” course and then other one should be “easier” of the two.
I was able to get an A in the course and did fairly well but this course is a very hard course. Like others have mentioned the difficulty of the course has changed over time. The last “sensor-warehouse” assignment was apparently an extra credit assignment till last semester but from Fall 2017 has become compulsory assignment and is 20% of the course therefore if you do bad on it then it could affect your grades significantly even if you might have been scoring more than 90% up untill that assignment.
The TAs are super helpful and they encourage students to share their solutions and learn from each other. Almost all assignments can be solved in multiple ways both taught in the class and otherwise.
Finally, having said all that I think this course is fantastic (but hard). Knowing what I already know I would do it again. I did this course with Intro to Information Security, but if I were to do it again I would do it as the only course as the learning outcome would be much higher.
Make sure you know your linear algebra, especially matrix multiplication and other operations. Also make sure you are familiar with Python. Maybe then you might have a chance at getting at least a “C”. Unless you have some prior knowledge in this field (AI), can you do well; what is taught in the class is not sufficient to get you an “A.”
Took this along with 6310 in my first semester. Was very easy - you can get pretty far ahead on the homework, and then just sit and wait for the projects. As long as you don’t dilly dally on the projects, they are pretty easy to figure out. Project phase was definitely harder but nothing to stress about.
If you are interested in self-driving car technology, and who isn’t, you want to take this course. This was the perfect course. It had a world renown professor, the head of google’s self driving cars, who knows his stuff, explains complex topics in intuitive ways, is enthusiastic and has a sense of humor. The TAs are great, on top of every thread. And if you’re into this sort of thing, it is E.A.S.Y. The answers are given! You can literally just cut and paste code from the answers page and put it in. The TAs are ok with this. The lectures are short, and there is no complex mathematics anywhere that you find in many other OMSCS courses (it’s all simple trigonometry). This is the best course ever, and the perfect introduction to OMSCS. If you are just starting your masters, you want this course.
My only complaint is it was too easy. Now, a lot of other reviews say it was hard, so hard they dropped out, and there was too much math. Let me address this. First, If they think there was too much math here, or it was hard, they obviously haven’t taken a truly hard class, like Machine Learning, Graduate Algorithms, AI, Computer Vision, etc etc. If they found this hard, I don’t see how they would be able to graduate. There is NO math required to get an A (again, you can just cut-and-paste answers).
The reason people think it is hard is because they shoot themselves in the foot. They did not ask ‘is there an easier way to do this?’. They did not read the requirements carefully, or assumed too much. For example, for the projects, you are asked to predict the next location of a robot. The lectures are about Kalman filters, and so many people naturally assumed you should be using a Kalman Filter. But see, that is not anywhere in the assignment. Why even bother, when it’s such a simple solution? The robot is moving a fixed distance at a fixed angle. SImple trigonometry will give you the answer. The next assignment, the measurements are noisy, and these people again, for whatever reason, shoot themselves in the foot and try to use a Kalman filter. It’s non-linear noisy movement, so they try to implement the Extended Kalman Filter. Again, there is no need to do that! The EKF isn’t even mentioned! There were posts after posts on the Extended Kalman Filter, pages and pages devoted to the topic, for absolutely no reason. Why do unneccessary work like ‘calculating the determinate of the Jacobian Matrix’? I have no idea. The only assignments you’re not given the answers to are the 3 projects. There are people reporting 100+ hours on the third project alone. I handed it in within 3 days, and got a 100%. These people are trying to do it the hard way, like calculate probabilities for distant objects, trying to implement difficult algorithms like graph slam, all for no reason. Sure, all those things were suggested in the descriptions, and that’s what the lectures are about, so kudos to you if you wanted to go that route. But, and I can’t emphasize this enough, there is no need for any of that. There’s no move limit, you can ram into as many walls as you like - that means you can design the most inefficent algorithm you want. You can randomly carom your robot about the screen and, while slow and ugly, will eventually traverse the entire warehouse. I can mathematically prove it if you want. Point is, if you’re willing to solve problems in your own way, and not the complicated way, you’ll do just fine in this class. I didn’t even know python when starting this course and my final grade is 99.5%
Interesting but not particularly challenging class. The projects are challenging if you try to implement the concepts described in class, but can be solved geometrically otherwise. If you take this, I recommend getting the optional textbook and doing all the research and hardware challenges to extend the content. The lectures and projects alone are not particularly substantial.
So, this is my honest review of the class. The class is not time consuming with the exception of the projects. There are six problems sets (if I don’t recall incorrectly), and these are easy to complete because you have the solution available to you and a video that walks you through the code. For the projects, a mini project in addition to three main projects will be given. The projects are very time consuming. In my opinion, this turns out to be this way because the lectures and material presented in class are effective in showing basic concepts for this class, but fail to expand more into each of those basic concepts to make such material meaningful to solving the projects. Don’t get me wrong. Even with the right background, the projects would be hard and time consuming.
Grading of these projects strictly depends on your code being able to pass test cases. If you don’t pass any of the test cases, you don’t get any marks. It doesn’t matter if you have a 1000 line code. That being said, do well in the mini project, project 1 and 2. These projects are doable, and you can get them done in a week or less except for project 2. Spend more time on that one because part b of this project becomes challenging and is code that you can use for project 3. The deadline for dropping classes is right around the same time project 2 is given, so if you flunk project 2 you will not be able to drop the class. It would be better if you could complete project 2 before the drop deadline to be able to better gauge your success in the class. This is something future students should recommend. Project 3 is the hardest. Spend two weeks or more on it. The connection between project 3 and the class material is the least apparent, so you will spend more time figuring out how to proceed with your implementation. Chances are that you will reuse your code from project 2 part b.
The nice part is that project previews in Piazza usually come a week prior to the release of the projects in t-square. This allows you to work ahead, which helps with organization and project time allocation. So, as soon as you get the project preview, start working on the project.
As a summary, my recommendation is to 1) Do well in the mini project, project 1 and project 2 to be successful and 2) organize yourself to allocate enough time for each project, and 3) start working on the projects as soon as the project previews become available.
Interesting course. The first half of it is very straightforward, you can easily front load the videos and quizzes from Udacity. Unfortunately, the video lecture series are short and honestly insufficient for the final 2 projects that determine your final grade. The final project is very difficult - start immediately when you receive it. With the limited materials provided by the course, you will need to conduct your own research and reading to discover a solution that works and this discovery process can take days to weeks. Do not underestimate this course, this is not an “easy A” anymore and will kick into high gear in the second half of the course; be prepared to work hard.
Great class! The lectures had a nice progression for concepts with quizzes, but they did tend to mostly give you only high level understanding of concepts. I found Prof. Summet to be very helpful and responsive on Piazza. As others have said, the projects can take a long time. The udacity assignments (problem sets + mini robot) should be 100% and that covers about 40% of grade. Be very careful about falling behind on project 2 as you’ll want to have a good implementation of it as project 3 is a very difficult extension of it. I think all told I spent close to 100+ hours on projects 2/3 together. I would highly recommend a TDD approach for these later projects because they can get pretty complicated and finding bugs once the system is fully built can be very difficult. Most of the assignments and early projects culminate in the later ones so if you fall behind or have a bad project early plan to spend extra time on the later assignments.
Terrible course. The lectures are completely lacking. They only touch the surface which is not sufficient for understanding the material. The assignments are hard and require you to understand the material. The suggested reading is really required and is incredibly dense unless you’re willing to put in the time. The lectures are essentially the office hours. This was the only course I’ve had to drop at GT because it looked impossible for me to do well in it and I really was not enjoying it.
Interesting lectures. Like other reviewers I feel they don’t go deep enough but I think Udacity lectures can/will only go so deep in general anyway. The optional textbook helps with that for this course.
Required for the summer were problem sets on Udacity (30%), project 1 (20%), project 2 (20%), final project (30%). There were numerous extra credit opportunities, both actual EC and pseudo EC that would push you to a higher grade if you were on the boundary.
Udacity has all the answers for the problem sets and it was expected that we would use them before submitting. That’s 30% of our grade just given to us.
Project 1 was the runaway robot project on Udacity. Although it appears at the end of the Udacity course, only the first 3 lessons were relevant. Part 5 of the project ended up being extra credit. The first 4 parts are doable with basic math and probability, but the point is to use what was learned in those first 3 lessons.
Project 2 involved helping a robot find its way around a warehouse. Contrary to what others say, the 3 parts of this project directly correspond to lessons 4, 5, and 6. Part A was a breeze. Part B was not but some really awesome students shared their own test cases on Piazza. Instructors used some when grading. They helped me find serious flaws in my code and my project 2 grade was better because of it. Thank you, awesome students. Anyone who didn’t use those test cases only has themselves to blame. Part C had so many kinks it ended up becoming EC. Part B was regraded when it was discovered some test cases didn’t match the project specs.
Final project, hexbug location prediction, sounds irrelevant to the material covered in class. It’s not. It’s certainly doable with irrelevant items but many successful projects used techniques (or extensions) from class. Using extensions of techniques learned in class is reasonable for a grad-level course in a top-tier school.
TAs were great and helpful. Pryby as well, more so than others here suggest.
The videos are enjoyable and encouraging with a little exaggeration like “you’ve just wrote the code for self-driving car!” The script to process quiz answers in the videos does not produce consistent result. It’s quite frustrating to discover that you need to copy and paste your code into “certain area” otherwise it doesn’t work. Furthermore, for the first project I got great results in my testing environment using the class testing script, but ended up missing 50% of the credit because it didn’t produce same results in the graders? Drop this class in the end.
In general, I agree with all the posts from my Summer 2017 cohorts. Great content, unbalanced projects requiring deeper dives outside of lecture materials–and time requirement exponentially growing in latter projects. Could have been way better managed–really wanted to love this class.
Great content, generous of Dr. Thrun for the two office hours, valiant attempt by a single TA running the class. Failed to impart any real understanding beyond the pre-packaged video content due to fear of releasing any real help (or content for future sessions) by openly discussing the problem both before or after the fact. Missed learning opportunity.
Again, the TA being overtly secretive about revealing approaches (not their fault) to the solutions produced the wrong kind of struggle for students. (Vastly different from ML4T, CP or CV–where you’re guided to spend time focused on the right problems. ) And prevented forming a deep understanding of the mechanics of the concepts presented. Instead, this lead to time-wasting, misplaced effort and lots of wheel-spinning. The second downside was that once the project was completed, there were no real discussions about how each student approached and solved the problems—hence you’re left with whatever understanding you had without any affirmation or new insight as to the different approaches taken.
The lead instructor (not Thrun) was barely involved and didn’t seem to be in touch with the class other than to chastise the class for possible violation of the honor code. To be fair, the generous curve at the end provided some relief but overall, it was pretty stressful (in the wrong way).
The course starts out quite easy, probably 6 hours a week or so through the first project. Once the second project started things changed, probably 20-30 hours a week for the rest of the semester. The second project hadn’t been assigned as mandatory before and it was not really ready to be released. There were a lot of issues with the descriptions and grading of that project. Hopefully it will be smoother in future semesters. The final project seemed impossible at first, but if you just experiment with things you have learned in this class (or other classes) you will find you can achieve decent results. So my two pieces of advice for the final project: 1) Write a good script to test with. This will really help with #2 2) Experiment with different approaches. Just try things. Overall I implemented 5 approaches and fine-tuned the best of those five.
Lectures: Not many lectures, only 6 but they were of good educational quality though some of the in lecture quizzes had a bit of disconnect from the instructions given in the “intro” video for the quiz.
Homework: You have a homework set for each Lecture. The answers are given during the lecture so you should be able to get a perfect score here. (30% of your grade)
Projects: As noted above the first was pretty straightforward. The second was pretty hard and a bit of a mess for our semester at least. The final project can be done in groups if you want, that might help with my advice above about trying different approaches. I went solo and got a good score. (Projects are 20%, 20% and 30% of your grade)
I believe our professor said the class is being handed-off to a new instructor next semester so things could change…
The lectures and their associated problem sets are great. Dr. Thrun is a phenomenal teacher, so you can expect to enjoy learning what he teaches in the lectures. We also got two office hours with Dr. Thrun, which was awesome - he answered every single question, both times.
Beyond this, the class is rather messy. It feels like they tried to take a short, free Udacity course and turn in into a full semester’s worth of work by extending it with two projects that go beyond the scope of the lectures. Essentially, there’s the 6-week Udacity portion (which is great), then with no further instruction there are two more projects (which are beyond the scope of the lectures - although they’ll tell you otherwise). Of course, you can solve the last two projects with just the knowledge gained from the lectures, but it’s very difficult to do so. You’ll have to do more unguided research than you expect. Despite reviews from past semesters rating this course as an easy one, I urge you not to expect this course to be easy, because it’s not (unless you’re already familiar with the math and robotics).
My advice: if you need this class for your specialization (like me) then you’ll just have to go for it, however if you don’t need it, I wouldn’t necessarily recommend it, at least not during a short summer semester. Hopefully in the near future (like ASAP) they’ll fix this course.
To end on a more positive note, if you don’t take this course, I highly recommended doing the Udacity portion on your own. It is very cool to learn from Dr. Thrun.
Enjoyed Dr. Thrun’s lectures & office hours. The course instructor & TAs tried their best to help the class with projects & assignments. We had regular office hours which were very helpful in keeping the momentum. All the 3 projects were fun but could have been better especially the feedback mechanism. Having completed CV in spring which seems to have the most well thought of & organized assignments, this did look a little messed up. They should have taken advantage of Bonnie for creating a more interactive response mechanism to assignment submissions. Overall learnt quiet a bit on the subject which in itself is such a vast feild & cannot be expected to be mastered with just 1 graduate level course…
The lectures are quite easy to follow as the concepts are explained on rather banal examples. Completing the first project requires either very creatively applying the course material or to go beyond the lectures. P2 was a bolt from the skies. The first part is easy, the second one quite hard and the third one was a nightmare so its status was changed to “extra-credit”. P3 is a project seemingly detached from the course content. You can apply some of the course matter or use any other method outside the course (which I think most people did). Do not underestimate project workload and start VERY early to avoid getting into a trouble. Grades were pretty generously curved in the end (A for 84+).
Course is a great concept. Thrun lectures are great. But as noted lectures are not tied closely enough to the projects, nor are they going into grad level detail and math that the projects demand.
Summer 17 project 2 was crazy hard out of nowhere. Needs to be more carefully planned for a summer accelerated term.
Final project : a good group is your best bet. There is a ton to do and try. Did the most learning on the final project, so a rewarding part of the class, but very time consuming.
I did not enjoy this class because the lectures feel very disconnected from what you are asked to complete for the projects. People were going way beyond the course content to research other methods in order to complete all of the projects and some major parts of the lectures are completely ignored.
That being said, I feel it is still easy to get a good grade without really understanding the subject at all. However, one of the pieces of project 2 ended up being extra credit because it was a nightmare to complete in the summer.
I would like to give this class a better rating because I really enjoyed the material and Dr. Thrun, and it fairly well organized in some ways. However there is a very significant gap between the lectures and projects and that causes real problems. I would say the lectures are at advanced high-school level, but you need a much better graduate level understanding of the material to be able to do the projects. You are going to need to spend a lot of time researching the topics on your own. Over the summer, this is a big problem. The lectures and homeworks don’t require that much time - about 10 hrs/week when you have them (6 weeks of lectures) - but beware! The projects are very large. I carefully timed my workload and people are really lowballing it in their estimates. My average time per week (over the summer) was 27 hours; I did some of the hardware and research challenges but not all. But the time is all loaded in the projects. I spent almost 230 hours on the 3 projects combined! And I was part of a large team that worked diligently on Project 3. I expect to get an A, but with the projects there is a real limit to how much time you can take out and still have them work. The difference between A and B is optimization, but the projects have to work in the first place and there is a very real danger you will not be able to get them working in the time you have if you are doing this class over the summer and have other demands (like, say, a job). They start hard (compared to what you know) and get progressively harder. I really struggled to get Project 1 working properly. Project 2 is straightforward but tedious (A*/dynamic programming) and probably there is too much of it; it belabors the point. Project 3 is just very hard, period - I had to really research it on my own and try lots of approaches that failed before one worked. Definitely do a team for Project 3, and study extra early (read Probabalistic Robotics, and read on your own, don’t rely on the lectures).
The course has 6 problem sets and 3 projects. The first two projects are related to the content in the course and require a certain level of mastery of that content to complete them successfully. The last project requires students to go way above and beyond to do well. Techniques learned in the 6 lessons were not applicable to our solution for the final project.
All the work is solo until the final project, which can be done in groups.
The TAs are pretty helpful in Piazza and office hours and there are several chances to ask questions directly to Professor Thrun.
The course lectures are very interesting and have a lot of hands on programming in them. The projects are very difficult and time consuming. It is not something that you can just do the weekend before it’s due. There were 6 small assignments (one per lecture), only 2 required assignments, and one optional project. We were able to do the final project in groups, which helped a lot. Piazza seemed to help a lot less here than it did in other classes.
course content is only for 6 weeks and first project was fun to do. Optional second project was a tough one. But final project took a lot of time for me, as none of the topics covered in the class comes handy to do that project. Overall, I loved the subject
It was an easy course with a final project unrelated to the course which made the project difficult. the course material and videos were good, But the involvement of instructor and TAs was not satisfactory. I don’t even know them. This would not attract the students to involve more, which is a necessary thing in an online program. I felt they don’t care about the class and students enough.
This is probably the most easy course in the CP&R specialization. Lectures are very light, can be watched in a week. The course teaches python along the way without you knowing it. All the problem sets are available in the udacity free course along with solutions and thus 30 points are assured. However, the projects require intuition into the topics taught in class. The runaway robot project is available on udacity and this was our first project. There is an optional project being added in this semester which may become mandatory for future offerings and then this course could require more time. Overall, I enjoyed this course. The only con is the lectures are so light that it makes the concepts deceptively simple, however you have to do lot of searching on the net to gain a deep understanding.
The lectures are very simple and basic, and do not provide enough depth to complete the projects. Expect to spend a decent amount of time reading to get up to speed for the projects. Overall, I loved the two projects, but was a little disappointed by the lectures.
This is an advanced math course. You need to know vector calculus and linear algebra to be successful. If you don’t know how to calculate a Jacobian, don’t take this class.
I withdrew after 5 weeks because I couldn’t do the math. I was especially frustrated because none of the advanced math was covered in the lectures.
Since this course is strictly driven from Udacity including assignments, this course might seem a bit mechanical. But the group assignment in the end was fun. Gives an insight into the world of self driving car. Overall an engaging course.
The structure of the class means there’s a lot of work at times, and then it’s pretty dead other times. You begin with six weeks of fairly interesting lectures + online assignments that aren’t too crazy. Then you have three weeks or so to complete the first project. If you had a good grasp on the lecture material it takes maybe 3 to 5 hours to come up with a working solution, though I spent 20+ hours trying and failing at the extra credit portion. Then the class ends with a larger project that definitely requires you to comprehend and do research beyond what was covered in the lectures. You can work alone or in groups up to four. I valued working in a group to be able to bounce ideas off others. In the end probably spent 5 to 10 hours a week for the five weeks we had to work on it. There was also an extra credit option where you actually build a robot and implement some of the ideas of the course, though unfortunately I did not get time to engage with that aspect of the course.
Compared to other classes this one had a less interaction with staff or other students, perhaps because enrollment is smaller and there were less assignments. The instructors were not particularly active on Piazza. There were three office hours which were constantly rescheduled and even with few Piazza posts there was often slow turnaround for responses. There was a small group of students, though, who were quite active and helpful.
This course suffered greatly from a lack of leadership. With two lecturers listed as being in charge of this course, you would think that one of them take the lead and run the show. As it turned out, however, neither of them seemed to be particularly interested in putting in any more than the bare minimum amount of effort and the whole course was more or less run by the two teaching assistants. The end result was one of the deadest courses I have taken in this entire program. This might not have been so bad, except for the fact that the two major projects for this course don’t really match what has been taught in the lecture videos. That means that in order to actually get through the projects, you pretty much have to go out and learn some pretty difficult material by yourself without any instructor support. With better instructors and projects that better mapped to the lectures, this could have been a really great course. As it is, I would steer clear unless you’re looking for a course with a relatively low time commitment to pair with something harder and don’t really care too much about learning anything.
This class was so much fun! The professor invented the Google self driving car and uses the course to elaborate on how some of their algorithms work. I was hoping that we would get to design on our own algorithms that could be run through a self driving car simulator of sorts… but the projects are much simpler than that. The Lectures were intriguing and the TAs were responsive!
This was a great introduction to OMSCS for me - it was the first class I took. The course lectures were great and helped give a good introduction to the topic. The projects were interesting and really made me work to use the concepts of the class to solve them. I really enjoyed this class.
Similar to others reviews from summer 2016, I signed up for the course as a good fit for the shorter term.
It may have been a good fit in summer 2015. It isn’t anymore.
The lectures are engaging and very well produced, bringing you to a 4/10 familiarity with the topic. The first project requires skills at a 6/10 level. A reasonable leap to expect from masters students, especially with high level collaboration encouraged on Piazza.
The final project requires skills at a 10/10 level. No further instruction is provided. The grading is adversarial (based on your success compared to others), destroying the piazza community.
I would still consider this course, very carefully, for a full length semester. The extra few weeks could make the final project just barely reasonable. Unless the course is overhauled, stay away during the summer.
I took this course under the impression it would be a “good fit” for a summer course. You could front-load, which is useful when you have vacations going on during the summer.
The lectures are deceptive. A lot of times in the quizzes, Dr. Thrun says, “It’s ok if you can’t figure this out, just view the answer, “ which means you can coast through the Udacity lessons. What he really needs to say is, “If you don’t understand the math for this, run away, far, far, away. “ Because, when it comes time for the projects, you will need to implement some of these algebra or calculus functions on your own. My math skills are weak (and I’m working on bringing them up with outside coursework because math is the foundation for all that we do) and my mathematical programming skills (especially for Python) weaker.
I understand that from my personal perspective, I was not “ready” for this course. And the shortened schedule of summer semester means if you aren’t ready, you are either expecting a moment of genius, or are going to drop the course. You can guess which one I chose. Others with a deeper background and familiarity with the basic concepts presented in the course, and an understanding of the logical processes required, will do just fine. If you are one of those people, fantastic! I hope to be at your level someday soon.
This a good course, requiring decent amount of (hard) work. It will strengthen your problem solving skills (and expose your limitations).
To succeed, you should (a) get started on the main assignments early; (b) make sure you get a solid understanding of different (first half of the video lectures); (c) make sure you have enough time to try different techniques (or work in a team for the final project).
If you do not do these basic things, you will complain.
Remember that each point counts and some mistakes are inevitable, so make sure that you do not take it easy.
The TAs do a good job in grading the assignments on time and asking direct questions on Piazza.
If I may suggest some improvements for the course:
1) The course lectures, assignments, Piazza discussions do not go into much depth. Ideally, this course would have resident Robotics experts, i. e. , people who do this for a living.
2) It might be a good idea for the instructors to ensure that students are indeed learning different techniques (e. g. , SLAM). A midterm or final exam would be helpful.
3) Encourage or even enforce the “AI” part in “AI for Robotics”. Needless to say, providing help on these techniques (e. g. , the math for some filters) would be key.
In a summary, it’s a good course to take (and to score a good grade in), especially if you are not in an “auto-pilot” mode.
I come from a SE background, so I had some reservations taking a course that would require some math/physics. But my fears turned out to be unfounded.
If the entire course was on Udacity for no credit, I would give it five stars. The lectures were fun, although Professor Thrun’s relentless encouragement seemed sarcastic at times. I certainly agree with other reviewers when they said certain concepts were only mentioned in passing before having to implement them in the next section, but since you could always look at the answer, it didn’t seem like as much of a road block.
The rest of the class seemed like a disaster. Thrun’s lack of interaction with the class, although understandable, was certainly a bummer. The TAs seemed like they were planning on dropping there interaction level from the start. Strict adherence to policy with little to no personal responsibility for actually nurturing understanding. They dangled an extra-credit-carrot for piazza posts, which is just stupid at a fundamental level. You have a torrent of answers from C students instead of just the normal overachievers; it made piazza pretty much unusable.
The pacing of the course is also completely out-of-whack. In the beginning it seems like you can just do a lecture a week and you will be fine, as they take only an hour or so. By the final lecture you are having to do additional research and re-watch videos in order to understand the concepts and they end up taking much longer. By the time the projects start (if you don’t front-load) you feel like you are constantly playing catch-up. This only adds to the stress you feel because the projects don’t really line up with any of the lectures.
This courses has been the most disappointing course for me in OMSCS so far. I will admit that I have no prior experience in robotics and I felt that I will learn the concept along the way. The lectures were frustrating , skim in details and glossed over necessary mathematics to gain a deeper understanding of the concepts. I spent many hours over them but was still not able to understand the maths. The TAs though active did not do anything to help you understand these concepts. The office hours with Dr Thrun were of no help either. I just felt that they are deliberately trying to hand over B’s and C’s to students. You can confirm that from grade distribution for Spring 2016 where only 48% people got an A as opposed to 80% in earlier semesters. I have no problem with getting a lower grade as long as the subject simulates my thinking and helps me understand the concept. I wasn’t able to grasp any concept taught in the class , as the projects did not require any application of the concepts. This course might have been tolerable in the past when 80 - 90% people got an A when the instructors understand that the material provided in this course is too superficial and graded accordingly. But instead of improving the quality of the course , they decided to add vigor by making testing harness hard and by ensuring that 50% people should get B or lower. If you miss one single test case , you will lose 10 - 12 points and then there is no coming back. (Hint : Please confirm for runway robot1 , which values can be negative. It will be obscurely defined and if you miss it you will be done. ) If you get lower marks in project 1 , promptly withdraw from this course. (No please don’t fall for we will consider hardware and software challenges if you are in between grades. There were 5 software challenges and 4 hardware challenges and if you do them all , they will account for 1 mark. ). Stay away or learn all maths before hand.
I did not enjoy this class. Lectures explain trivial stuff in length, but skim over complicated stuff. The instructor’s style of teaching and code made an impression on me as being sloppy, not paying attention to details. Projects did not require to use learned techniques. Reading other people comments I expected this class to be fun and relatively easy. This is my first C, while my all 3 previous classes were A. I spent at least an hour a day every day on that class, but did not succeed. Maybe it is just due to my lack of interest to the subject of robotics.
I enjoyed this class. The content was very interesting and the TAs were helpful and active on Piazza. Content was completing problems on Udacity (24%) in Weeks 1 to 6, runaway robot (36%) and the final project of predicting the future location of a small robot (hexbug) (40%). I think the course was a lot harder than some of these reviews suggest.
There were two types of challenges for extra credit: research challenges and hardware challenges. I believe the research challenges were new this semester and consisted of finding an article relevant to the Udacity content in Weeks 1 to 6 and writing a Piazza post about it. One research challenge was due at the end of each week. Hardware challenges consisted of creating an electronic project.
The research and hardware challenges were only counted towards a higher grade if you are at the borderline between grades (if you earn a B but you are very close to an A, if you do well in the challenges you will be pushed up to an A).
With the benefit of hindsight, I wish I had not done the research challenges, or at least spent a lot less time on them. Finding papers at the right level took a bit of time and writing about each research paper took more time than it deserved. My time would have been better spent progressing with the Udacity videos. This would have given me more time to do the Runaway Robot project and Final Project. Oh well, shoulda, woulda, coulda!
I guess the same could be said about the hardware challenge but as I enjoyed playing around with electronics versus writing I don’t regret doing those challenges. My advice for future students is unless you are quick or enjoy the challenges skip them and focus on the core work.
Lastly, I would like to comment on the grade distribution in these unofficial course surveys. The grade cut off for an A is 90% but in these course reviews 75% of people received an A so I suspect these reviews are not a true reflection of current grade distribution.
I think this class is targeted at a more general audience than MSCS students, and lacked the additional depth and formal treatment from the (optional) course textbook. The mathematics are not very advanced or sophisticated (trig, probability, and some calc), but they can be a stumbling block in the projects. This is a good summer class, or something to pair with a crazy hard class – there isn’t really enough material in the course to fill a full semester.
The problem sets from lecture are very simplistic. It typically required more time to figure out how to perform the required actions using their custom implementation of a matrix class (with a very un-pythonic API) than to actually solve the problems. It is possible to frontload all of the lecture material, but you can’t get too far ahead because the project details were not released until much later.
It seems like the staff is well aware of the issues, because the bulk of the final grade (~75%) comes from one individual project and a group final project, and they encouraged “optional” pseudo-extra-credit assignments to research and/or implement many of the more advance concepts (beyond the scope of lectures). The individual project is available on Udacity, but don’t work too far ahead until they release all of the details. The group project is… a group project (yuck!) with scores determined (in part) through competition with the other teams (ugh). In both projects, it isn’t clear what the learning objectives are, since the techniques taught in the class typically produce very poor results without extensive additional effort, while other techniques often perform surprisingly well with very little effort.
The class seems designed to run on autopilot for the staff, and peer learning is limited because the material does not lend itself well to group discussion – especially on the final project where discussion with other teams may cost you a competitive advantage.
The class is not easy for those who do not use math or work in robotics for a living. I liked the class but it was a challenge for me. I do think the ratings on this class at the time I took it are very deceiving. Perhaps others didn’t need the time I took but the projects both required quite a bit of time. I am an accomplished programmer, and that helped, but I should’ve taken a linear algebra refresher before this class. Also, I would suggest those who do not program or have very little coding experience NOT take this class until you’ve had some experience coding or at least really understand the math (linear algebra and trig) that is necessary. While the sheer number of lines of code necessary isn’t huge, the application of the concepts require some experience with programming languages (preferably Python but you can pick Python up if you know Java or C). Also, reading other comments here, they’ve made some changes to the course. Submission of Project 1 is no longer via Udacity. The Udacity grader is still in place and you can use it for testing, but your submission is via tSquare. Finally, I agree the videos could’ve contained a little more in depth content, as the concepts needed for the projects are not covered in great detail in lecture. Outside research is required if you are not already familiar with the information. This can take more time than counted on but does lead to learning.
I was able to front load a TON of the work and there were about two weeks of doing absolutely nothing waiting for the final. With that said, the final project was pretty dang tough. If I had only taken this class(and not Machine Learning and Machine Learning for Trading before hand), I would have NOT been prepared. The learning curve is very strange, the 1st project(Runaway Robot) had some hard moments, but then final project really through me(and many others) for a loop. The lectures felt very… shallow and I do not think they adequately prepared me for either of the last projects.
I would have much rather had more time spent on some of the concepts, better lectures, and better Udacity quizzes.
This class really feels like it needs a face lift.
Overall, I would say this class(as it stands right now) could probably be paired with another easy/medium class. Just be wary of the final project and carve out plenty of time for experimenting for it.
These surveys are pretty deceptive. This course is easy on the surface. The math and problem sets are easy at first, but escalate very quickly to linear algebra concepts and calculus that you better remember. On the face of it, Thrun is the instructor, but he only has 3 scheduled office hours, and the second one was a huge bomb. The TAs were super active first 3 weeks, and then activity level is at a 1/10 near the project time. The time given for the final project and runaway robot is inadequate in terms of following the weekly plan. I front-loaded, but still was crippled by the math (lots of trig and rotational motion) for the RR( runaway robot). Groups formed off super early, and it’s all cliques of people with too much brain power together to make it fair for grading according to their head-to-head rubric. I am not disappointed in the course, but yet again - the amount of work required is deceptive and is »» toward math as opposed to CS.
I would like to counter the opinion that the course is easy. First of all, the video lectures by professor Thrun are not very good. He does not explain the material well; he just goes through quizzes most of the time and you have to figure it out by yourself. In addition, he goes through concepts very quickly, so unless you already have some background knowledge on the topic, it’s difficult to understand the concepts. Most of the topics in the class require solid math background (Calculus, Linear algebra, Probability and Statistics). If you are not good at math, forget it. I previously took CN, SDP, and KBAI and got A’s on all of them, but had to drop this class due to problems with math.
This class is easy for the regular assignments and quite fun at times. Professor Thrun is extremely positive and encouraging and makes you feel like you just solved the greatest problem when you complete an assignment. The course allows you to work ahead at your own pace which is really important because the final project requires a lot more time and effort than the regular assignments so you want to “front load” this class to give yourself more time for the final project. Due to being able to complete the assignments ahead of schedule this class lends itself well to being done in parallel with another class by disciplined students (i. e. don’t think you can leave stuff to the last minute, do it ahead of schedule and then relax ;) ). Professor Thrun is busy running Udacity so he isn’t generally involved on Piazza but the TA’s are excellent and Dr. Thrun takes time about once a month to have live Q&A sessions with students.
Coursework is trivial through most of the term, however if you don’t keep up the final projects will be extremely difficult. Videos are very engaging, but I felt like Thrun was completely disconnected from the course - stopped in for a couple office hours only. Amazing TAs this term, overall one of the top 3 courses in the program.
This is a very interesting and enjoyable class. It’s probably the first class I had that was almost entirely work at your own pace as you could finish all the assignments and the Runaway project as fast as you want.
The course on it’s own can be easy, but if you really dig into the concepts I think it’s rather challenging if not simply hard. I reviewed many lectures to really gain an understanding. That being said, you could easily do this course with another.
The only wildcard is the group project. In this program people have families, jobs… so coordinating with people all over the place can be challenging. I probably put more time in the last few weeks on the final project as I did the rest of the course.
Great class and you’ll probably be thinking about the Runaway and Final project well after its over.
This class is different than the others I’ve taken in OMSCS. It’s largely working in isolation as the quizzes are all in Udacity and Piazza is often a ghost town. Dr. Thrun’s videos are really entertaining andinformative. The TAs are phenomenal. Probably the most engaged and verbose TAs I’ve encountered in the project. Ask a question and you’ll get more detail than you’d have expected.
I think this class just needs some way to push interacting with the rest of the class. I know a lot of people take it with another course. This makes sense due to the flexible timeline of completing projects, but it leads to people doing their work quietly and moving on. Which is a shame because this material can be dense and it’s nice to be able to play ideas off of others.
But I definitely recommend it.
- 24% Problem Sets (6)
- 36% Runaway Robot Project
- 40% Final Project
Problem sets and the runaway robot project are auto-graded in Udacity. You are done once the auto-grader passes.
Final project, optionally in a group, requires studying a robot’s motion over 60 seconds (1800 frames) in a box with a candle in the center followed by predicting its motion for 2 seconds (60 frames) as accurately as possible.
The lecture videos are excellent. Some of the problem sets are very challenging, but all in all, not too bad. The best part is you can work on the problem sets and RR project on your own time. I was able to finish them in the first month of class and focus on my other courses for the next two months until the final project.
A great class if you want to learn how to build a self driving car from a software point of view. Taught by arguably the worlds foremost expert.
The class is actually quite easy and a great first class for OMSCS. What I learned most from the class is how statistical mathematics is applied to robotics and algorithms. It was very interesting how robots deal with noise and uncertainty.
One part of the course covers how robots can make optimal decisions given a state. The idea and some (but not all) of the terminology maps nicely to Machine Learning, Reinforcement Learning and MDPs.
Overall the class is extremely well done and polished. Highly recommend.
Course is really easy in the beginning, but more difficult at the end. Very interesting class. You’ll get out exactly what you put in. The concepts are explained well and the homeworks are good practice with the algorithms. Some of the homegrown python classes are a little frustrating to get used to, but nothing too hard. There are two parts at the end of the class that are harder than the rest. One uses quite a bit of linear algebra and the other is a project. I haven’t quite completed the project yet but it takes a considerable amount of time and effort to complete.
Great course: great instructor, great TAs, great content and exciting assignments. My only minor concern was that I found the material a bit too short (you have lectures only every second week). Be sure to start to work on the final assignment early because it is harder than the rest of the course, I found myself running out of time while I still wasn’t 100% finished with it. Also, brush up your python a bit to make things easier. The class is quite easy and a great companion course for Computer Vision or Computational Photography class if you can manage 2 classes a semester (I had a bit of prior knowledge in AI, computer vision and control theory, I found half of the course already familiar).
The dedication of the TAs is impressive. They prepare introductory videos every week, always share materials related to the course, and are quick to respond to questions. The course is very manageable as all materials are in Udacity and are available right from the start. The video lectures are very easy to follow, however I feel that I need to do some work outside from what the course requires for the knowledge to be ingrained.
(Update) Someone asked if you get to learn more advanced techniques in AI4R… I am a total noob, so everything is advanced to me… I guess it is how you make of it. The course gives you many opportunities to learn more advanced techniques, but you can complete the course satisfactorily (I guess) without doing so. Throughout the lectures and the problem sets, it feels like you are being assisted like a 5 year-old: everything is well explained, you wouldn’t notice much if you do not have a good grip. The problem sets are scored as all or nothing, but the answers are also provided so it seems to be just a matter of having tried or not tried. If you want to get more advanced, materials for advanced study are also provided, but it would not really hurt if you do not glance over them. It is easy to get complacent, until you get to the Runaway Robot and the Final Project, which are really challenging. You really needed to take a big leap, read a lot more and explore other possible algorithms to solve the problem. Most of my classmates talk about using an algorithm not even discussed in the lectures for solving the Final Project.
The TAs are very helpful. They do their best to up the participation, even create interesting videos every week. When somebody asks questions, they are quick to dive in. And when they do, they do not just answer: they give expounded explanations like how things might be different for other cases. But this course can actually be done even without interaction with others, so Piazza is sort of quiet.
The course overall is very good. It covers many important concepts in Robotics that are also important in other classes/fields. The instructor, prof. Thrun, is considered one of the pioneers in his field and has a unique teaching style. Also, the TAs were really helpful and know their stuff.
The class is divided into two parts (lectures with homework) and (two projects). The first part of the course is pretty straight forward. The second part has two projects: the first is the runaway project which involves some linear algebra. The second project is pretty open where you are free to implement any of the algorithms taught in the course to solve the problem. You can also use any other algorithm you want as long as you mention that in your report and say why you used that.
To prepare, I advise:
- having a python prior experience (Udacity: Intro to CS is a good refresher).
- Artificial Intelligence experience (briefly skimming through Udacity’s Intro to AI lectures can be helpful)
The professor constructed this course to be fun. The assignments are mostly utilization of a robotic simulator, plenty of freedom to roam. A lot of practical statistics in this course; most of the programming assignments (all done in python) will require the implementation of a probability matrix and deterministic actions based thereon. The entire course is in Udacity; if you get a green checkmark on all Udacity entries, then you will get a 100% in this course. The final couple programming assignments are complex and will require many many hours of time (if you really want that A).
This course is really interesting and covers several topics that are important to know in robot localization and tracking. The videos and the teaching methodology are great. Definitely and easy course to pass and get a good grade (considering you put the effort). The main challenges are the Runaway Robot and Final projects. The RR project gives you the preparation that you need to start the final. There is plenty of time to work on all the assignments. The grading is fair and the TA communication is constant. Despite the professor’s busy schedule, you get to meet him in the Q&A video sessions. I definitely liked this course and recommend taking it.
If you have some experience with numerical computing, and Python, then you should have no problem with this course. The assignments start off easy, and become progressively difficult, culminating with two challenging projects. The final project can be done in groups, which is helpful, since you need to do some research and analysis in order to find a solution. Finally, if you have the time, and are inclined to work with real hardware, there are optional hardware challenges which you can do for extra credit. You have quite a bit of freedom with these projects. Among other things, students in our class built robotic cars, quads, lego kits, and motion-controlled cameras. In conclusion, this is a fun course, which is not very difficult, and leaves room for exploration.
The only really challenging part of this course is the final project, which is worth 40% of your grade. But if you dont get to the final project with a 100% or higher, then you have done something wrong (unless they change the grading in the course :P ). Having said that, the material is extremely interesting and very very well run. Dr. Thrun is an exceptional professor and is very interactive with tutorials, and the TAs do a great job. This is definitely the best course I have taken ever in anything, just don’t expect it to be the most challenging course you will take. Thus, it is great to take with another course that has a higher workload!
I had previously taken the class when it was offered on Udacity as a MOOC before it became a “for-credit” class at GT. It’s exactly the same. I had been hoping that it was ‘beefed up’ a bit for a graduate program but it’s not.
The best part of this class is that Sebastian is a great teacher and enthusiastic about his work. While he doesn’t participate much in the forums, he does conduct live office hours (or at least he did the semester I was taking it. ) This is where you can ‘go deeper’ on the material and learn from the master. This is really the best reason to take the class if you’re interested in robotics. Sebastian is a ‘god-amongst-men’ in the world of robotics and you’re unlikely to ever get so much valuable face time with somebody of his caliber as easily.
The projects are pretty easy. (KBAI and Computer Vision have way harder problems sets) The TAs were responsive and held regular office hours using Google Chat which allowed students to view them after the fact. (This skill set seems to allude TAs in other classes, so kudos to the AI for Robotic TAs for figuring this out. )
There is an allowance to let the students either propose their own projects or work on the ‘assigned’ final project. Due to an illness, I had to work on the assigned final project, which is what most of the class did anyway. Frankly this assigned final project is pretty much a waste of time and a ‘fool’s errand. ‘ While you apply what you’ve learned, very little of it makes much difference to the end results. Most teams perform not much better than random chance. We scored on the ‘high side’ of that Gaussian curve, but my suspicion is it had little to do with coding and more the random initial state. There were a few teams that applied some sophisticated CV + machine learning that performed better, but that has more to do with those skills than the Robotics AI taught in this class.
I would highly recommend that you take advantage of the opportunity to propose your own robotics project. This will allow you to pick a problem that is directly related to robotics rather than the contrived one that seemed pretty pointless. If I had it to do over again, this is where I’d make my change.
This class wasn’t extremely time consuming, but the final group project was quite challenging conceptually. It would definitely help to have a stronger background or refresher in geometry and trigonometry in order to do well in this class. I found that while I understood the concepts well, I struggled with the mathematics a bit.
I have a background in this area from undergrad hanging out with my school’s DARPA challenge team. I liked this class a lot. The homework is in python and has good feedback by immediately running on the server. The topics covered are not in depth, but really are the algorithms and equations you start with when making a self driving car. Think of it as an introduction. Also, I’m glad I took this class the same time as Advanced OS. Having one easy class is nice.
The course doesn’t have a huge amount of content, but some of the concepts could be hard to understand if you haven’t seen them before. The Final Project was a big challenge but the team was able to find a way to do it.
The Runway Robot project required some thinking and additional readings because it is not very obvious how the concepts learned in class can be applied to Runaway Robot. The final project is challenging. Most of the time will be spent on research and trial and error. It is recommended to work as a team instead of tackling it by yourself. More people can try different approaches.
Very cool class, really neat to understand the algorithms behind a self-driving class. I really enjoyed Sebastian’s lectures and he is BY FAR my favorite instructor through 4 classes of this program. In the summer our final project was to predict the future path/projection of this incredibly random-moving toy thingy. The other projects were great, but this one was very hard to relate to the rest of the class. I would have preferred a different final project having to do more with the class contents, but it was still a great class and I’m sure they will change up the projects from semester to semester.
The video lectures and class as a whole felt very watered down to me. Every lesson seemed like it should have been the introctory lesson for a topic, instead of the whole topic. The projects were interesting and open ended, but overall I never felt like I learned much from the class. (The BOOK , on the other hand, seems like an excellent resource)
Interesting topics, but feels like it should be an undergraduate class. Final project was not particularly engaging.
This is a really interesting class and I highly reccomend it. However, it’s easy to give it short shrift and not take the time to get the most out of it (ie reading wikipedia, Thrun’s BOOK , watching youtube videos on the topics – none of these things are required or necessary, but make the class better). The lectures are structured to take full advantage of the Udactity integrated python enviroment. This makes it easy to make incremental advances in your understanding of the topics. I wish they covered a few more ways to apply the different types of filters. Each filter is explained in a particular context and without experience in the field it’s difficult to see how it could be applied in another situation. Regarding, the projects, the first is pretty applicable and well designed. The second project seems to have little to do with the course material and you end up integrating something just for the sake of the project’s requirements.
Very applied class. Quizzes do tend to escalate from basic and straighforward (almost to the ‘why is this a quiz’) to light speed very quickly. Programming assignments are very straightforward, and Runaway Robot project is not that difficult if you’ve kept pace with the lectures. The final project was quite interesting, very real-world stuff. TA are very helpful with assistance.
The best class I have taken in the program so far! The material is largely self-paced, so you can get way ahead if you choose to. Professor Thrun is very entertaining and holds regular office hours to answer student questions in a Q&A format. You do not need the book at all for this course! I purchased it thinking I would reference it, but only cracked it open once or twice and would not buy it again. The only criticisms I would make are that the assignments make use of a custom Matrix() class, whereas students could probably get a little extra Python learning in if the assignments used numpy. Also, with the exception of the Runaway Robot Project #5, the class is almost a little too easy. I hate to use that word because the concepts are pretty advanced, but the assignments are more or less spoon fed to some degree. Overall, I highly, highly recommend taking this course and recommend that other instructors use this course as a template when designing new courses!
EDIT: While I still highly recommend this course, I wanted to make a note of the grading policy. There are 6 lectures, each of which has some programming assignments associated with it. The total points for all assignments is worth 24% of the class grade, without any partial credit per week. The runaway robot project is worth 36% of the class grade, with up to a 12% extra credit opportuniy for finishing part 5. Part 5 was pretty difficult (Professor Thrun admitted to giving up on it) and less than 10 students to my knowledge finished it. The final project is worth a whopping 40% of the class grade and is very open ended with minimal opportunity for extra credit (3 teams total). To me it seems that the final is worth a little too much and the weekly assignments are not worth quite as much as they should be. I ended up with a grade that I am very happy with, but it came a little too close for comfort ;) Perhaps I was too busy enjoying the class?
Overall this was a pretty good class. Professor Thurn makes learning about robotics and AI interesting. His lectures are well thought out and engaging. The class consisted of 6 assignments (done through Udacity), a Runaway Robot project (done through Udacity), and a final group project (done offline). The TAs for the class, Herman and Jon, did a great job as well. There are some advanced concepts like matrices, vectors, filters, and some calculus that require some brushing up on if you’re not familiar with them.
This was a good class, though I think some of the materials in lectures are covered at a shallow depth. If you take other OMSCS classes like computer vision you will see some of the same topics covered more rigorously. What makes it interesting is the office hours with Dr. Thrun - so even if you are completely comfortable with the material, it is worth viewing the office hours to hear him answer questions. The other part of the course that is nice is the final project and optional hardware challenges allow you the chance to try to apply the concepts to real systems. If you want to get the most from the class you should try those optional challenges because you’ll learn far more about robotics if you start trying to make them work on actual robots :).
Overall a polished class, but I didn’t feel like I learned much. The flow of the class is great and you always know how you’re doing in the class and what you have to accomplish each week. The TAs, Herman and Jon, were excellent and very active on the forums. Professor Thrun keeps the lectures interesting and shows great enthusiasm for the topic.
Ultimately though I didn’t feel like I got what I wanted out of the course. The connection to robotics was superficial, all of the code is in Python with no hardware required. The algorithms taught are used in robotcs but I didn’t feel like we went in depth enough into them that I can comfortably remember how to use them without looking them up again. The class could honestly use a required hardware component (rather than extra credit as it is now) to flush out the classes connection to robotics.
It has a group project component worth 40% of your grade. The group project has the flaws of any group project in an online course, being tough to coordinate with other team members and no way to hold them accountable.
This class covers several interesting concepts on how to program a robot to act on its own. The TAs were quite involved and very good. Professor Thrun met with the class four times and was very witty/informative. I repeat, the subject matter is very interesting and quite timely to current events like the google SDC.
However, to me, who is over half-way through the OMSCS program, this class felt far too simple to be a graduate level course. It was far away the simplest and least time consuming class I’ve taken. Even though the final project was a group project, I was able to program the primary working code we chose to use in a couple nights and a Saturday. Ironically, the final allowed for algorithms not covered in class. I actually think this would have been more challenging had they required use of only course-covered algorithms (i. e. particle or Kalman Filter) or variants thereof.
I agree with the above 3 assessments. It is a very shallow depth and I wish I felt like I learned more. The final project was fairly easy to do, especially in a group but I felt like I could’ve done it by myself. Our group had a decently working project a month before it was due and then we just tweaked it until we turned it in the week prior. The class just overall wasn’t very challenging. It is an interesting subject but I wish there was more
Both TAs were extremely valuable and helpful in this class, their calibre easily head and shoulders above their peers (That’s why they were chosen as TAs). Dr. Thrun’s live and direct involvement in this class is nothing short of amazing and awe-inspiring. This triumvirate is the essence of why one should aspire to be computer scientists and roboticists!
While I wholeheartedly agree with my peers and don’t dispute their personal experience gained from this class, I felt that I had some difficulty in some areas because of my lack of recent knowledge in certain areas. That’s why I spent so much time, mostly in catching up, then in applying that to the contents of this class.
With respect to team project, I consider myself lucky that I was able to choose my team mates and that my team mates chose me. We had excellent synergy and I have to humbly admit that they carried me quite a bit in this course. That made a great difference in team project experience!
I wished I was more prepared before taking this course, but not having taken any ML or CV courses weighed heavily against me. If I did, I may have shared my fellow classmates’ sentiments.
As it stands, I learned quite a bit, more than I expected when walking into this class. It was extremely enjoyable and a real eye-opener!
Mental note to self (and to anyone else): Don’t bring a knife to a gun fight!
I don’t have a background in this stuff, so it was a tough class as I had no preparation in ML and such like another commenter here said. I wish I had a better idea of how to be prepared, but I did enjoy the class a lot. The material was worth it. The TAs (Jon and Aaron) and Sebastian were great. They took a suggestion I had on practice problems and it seems ot have really helped. I wish my previous university had people like them. I will say that this isn’t a class that’s easy for beginners, but it is for those with a good background. Fun class and I recommend it. I have no regrets in being in this program.
The content, instructor, and TA (Herman) were all fantastic. The course is very well designed. The office hours with Sebastian Thrun were icing on the cake. The guy had indepth knowledge of everything related to robotic, AI, and self-driving cars. The course content was pretty easy. The projects could be done with minimal effort or with extrodinary effort depending on how much you want to put into the class and therefore get out of it. The inline quizes were perfectly paced and helped solidify concepts before building on them. Everything is done in Python and nothing very complicated is required.
Interesting topics, easy quizes and easy projects. The last project is a bit more difficult, but really not much more difficult. I ended up using very little from what I learned in class in my last project. I would probably change the projects to be a bit more engaging. Good lectures though.
Fantastic class both in content and instructors. Professor Thrun was a great teacher and Herman a great TA. Course covers several filter variants (histogram filters, Kalman filters, particle filters) as well as path planning and some basic control algorithms. The course could perhaps have been faster paced and covered more, but the slow pace allowed the opportunity to do some further self study. The runaway robot and final project allowed the opportunity to apply course concepts and additional self study. I’d highly recommend this course.
The lectures are overly simplified. (The book is a lot more dense). The quizzes are very easy if you follow the lectures, and they even provide the answers. So you should get a B at the very least just by doing all the quizzes. The final quiz run away robot is not easy but not difficult either. Just study kalman filter (search the web for more accessible tutorial) and you’ll do fine. The optional extra credit is tough (lots of noise). The final group project is a hit or miss. It can be tough if you have bad teammates who dont contribute or MIA. But it’s very much doable by one person. You need to research on technique outside of what is taught in the lecture. They give you a lot of time (2+ months) so it should be ok if you start early.
Very interesting topic with great programming exercises and projects. I enjoyed this class a great deal and learned a lot.
This course was a lot of fun. The lessons focus on very practical methods for solving real-world robotics problems, and theory is often not emphasized as much as implementation. This course has less of a heavy workload than many of the other courses, especially early on before the Runaway Robot and Final Project parts. Part of that is due to how streamlined the assignments are, the coding is built into the Udacity interface so you just write code and submit it like a normal quiz answer. I much prefer this method over the methods used in some of the other courses where you have to setup your own environment locally and worry about packaging everything up for graders to be able to reproduce it on their side. I spent a very long time on the final optional Runaway Robot part and completing it felt like a big accomplishment even though it was autograded like every other coding assignment, so just because there is an autograder doesn’t mean all of the assignments are easy. The Final Project is extremely open-ended and lets you explore whatever topics from the course interest you and apply it to any domain. I really enjoyed that flexibility because I could choose a topic and project that I found interesting and wanted to put a lot of time into. You will need to write Python code for all of the assignments but as long as you have some programming experience you should be okay, if you find yourself lost early on you can probably learn Python from other resources online as you are taking this course. Overall I highly recommend this course, especially if you are taking another course with a heavy workload and want an interesting course that you will learn a lot from that is more flexible on time.
The project ‘Runaway Robot’ is what you have to look out for. The rest of the course is pretty easy and light. I love the way he breaks down larger concepts into small managable chunks that you learn the large theory by stacking the smaller chunks of concepts ontop of each other. It’s heavy on math and stats like most AI courses but it’s pretty managable. That runaway robot project is by far the hardest thing i’ve done in along time but its mucho fun and when you get through it, you get an elated feeling of accomplishment.
My favorite class so far. This class was interesting, challenging, provided instant feedback, motivational, engaging, and FUN! I learned a lot and went far beyond what was required by the course. What a great course. And prof Thrun ws phenomenal. What a treat. Only downside is it doesn’t count towards the robotics specialization. Oh, well. Highly recommended.
Very open-ended class ; not a huge amount of work actually required to get a grade, but there is quite a bit to learn if you take the initiative to dig deeper
Great class. Having a ‘real world’ professor with such a motivational spirit really makes a difference. You get the best of both world, a lot of heavy concepts, but a lot of real world examples. Don’t plan on Sebastian being very available in the forums or weekly office hours, remember he’s got 4 jobs (at least), but when he does, it is so much fun. I was able to join a team for the final project and work with a Lego MindStorms EV3 to implement PID line follower, localization and the start of a SLAM. It was awesome to be able to do our own proposal and our own work, much more engaging!
Covers quite a bit in a single term, so there isn’t as much depth as I had hoped. Assignments are of average difficulty, perhaps on the easy side. Workload is pretty light, especially when you get to the second half of the term and work on your project.
Well designed syllabus to engage the student using practical examples as motivation, hiding away most of the math in the process. On the other hand, more materials could have been taught and so it requires your own initiatives to go further. It’s a little wasteful to treat this as a full semester’s module. Given Sebastian’s schedules, expect his involvements to be very minimal. It takes a very helpful and knowledgeble TA and an engaging piazza community to get the course going. Design of the final project wasn’t very well considered, as you couldn’t really apply the knowledge. One classmate proposed his own idea, which I thought was way cooler. go google github for py-fire or something, Would be super awesome if the community can take his project, develop further into future assignment for the course.
The topics were interesting and it was cool to see the application of them. The final project was a little strange- didn’t seem to have much to do with the rest of the course.