Description of Course Goals and Curriculum
Robotics is a broad discipline that encompasses a variety of fields of engineering. As such, the goal of this course is to introduce students to a sample of robotics topics. These cover a range of disciplines such as algorithms, physics, machine learning, and math. Some things that you will learn include:- How a quadcopter uses its sensors to hover in place without crashing
- How a robot decides what path to take through a room filled with obstacles
- How a robot determines its location in an environment, and how it can create a map of its surroundings
- Computer vision and machine learning, and the role these play in robotics
Learning From Classroom Instruction
This course is taught with lectures. There are no lab sections, but students complete the lab assignments on their own time. Professor Majumdar, who goes by the name Ani, gives lectures that are a mixture of PowerPoint slides and chalkboard writing. Ani’s research is in robotics and unmanned aerial systems, and his experience clearly inspired the topics of this class. He has lots of enthusiasm and comfort with the material that he teaches. It is refreshing to see how nicely the lecture topics relate to the assignments, without getting too caught up in the theory. This makes students feel well-prepared to complete the assignments. Asking questions during lecture is very important because it can become difficult to keep up if you are confused about some details, especially notation. During lecture, it is most important to focus on understanding what is said. Taking detailed notes is not necessary because Ani posts his lecture notes online for reference.Learning For and From Assignments
Assignments consist of theoretical problems, programming assignments, and in-lab work which involves programming a quadcopter to fly. Students work in teams of 4 for the lab component, and collaboration is encouraged for the theory and programming assignments. Lectures and lecture notes are the best resources to prepare for assignments. Additionally, some online textbooks are provided as reference, but they are secondary and may not be necessary. The theory problems evaluate your understanding of what is taught in lecture, and these problems go slightly beyond the foundational material. Programming assignments require that you understand the theory and algorithms, but there is usually plenty of guidance in completing the programs. Keep in mind there is no programming prerequisite behind COS 126, so the instructors do not expect everyone to have extensive programming knowledge. The assignment prompts tended to be confusing or vague at times, so office hours were often essential.
The take-home midterm is open-note. Mainly it tests problem-solving skills, but it also tests whether you understand the theory well enough to answer questions that extend beyond the typical problems. That is, many midterm problems resemble a problem from a prior assignment and add a layer of complexity.
External Resources
Office hours can be very helpful if you’re stuck on an assignment. Whether you are unsure if you took the right approach, you need help debugging your code, or you don’t understand the problem at all, you should seek out help from office hours. Keep in mind that some instructors are more generous than others with giving hints, but they all want you to learn and succeed. This course has a Piazza, but the response rate was low, so it was not as useful as it could have been. Some parts of the curriculum introduce algorithms, many of which are also covered in COS 226. If you are confused by the way something was taught (Dijkstra’s algorithm in particular was hard to understand), take a look at the corresponding lecture videos from COS 226 which are available online. Office hours can be very helpful if you’re stuck on an assignment. Whether you are unsure if you took the right approach, you need help debugging your code, or you don’t understand the problem at all, you should seek out help from office hours. Keep in mind that some instructors are more generous than others with giving hints, but they all want you to learn and succeed. This course has a Piazza, but the response rate was low, so it was not as useful as it could have been.
Some parts of the curriculum introduce algorithms, many of which are also covered in COS 226. If you are confused by the way something was taught (Dijkstra’s algorithm in particular was hard to understand), take a look at the corresponding lecture videos from COS 226 which are available online.
What Students Should Know About This Course For Purposes Of Course Selection
First of all, you do not have to be an MAE student to take this class. Many ELE and COS students, for instance, enroll and find themselves to be just as qualified, although they may need to take a lab safety training course before entering the lab. Anyone interested in learning about robotics can and should take this class. Lab assignments are completed in groups of 4, so it may be helpful to think about group formation before starting the class.
If you are unfamiliar with programming in Python with the NumPy library, you may find yourself at a disadvantage when starting this class. However, a TA will give an optional introduction to Python, so don’t worry too much. The registrar page lists a lot of prerequisite classes, but this class only draws upon a small piece of knowledge from each. You certainly do not need MAE 305 or any differential equations background; you just need to know what a differential equation is and how to do calculus. Probability is featured in this course, but ORF 309 is overkill for that. AP Statistics or ORF 245 would be sufficient background.
One interesting thing about this course is how accessible it is to non-MAE students. The material is very interdisciplinary and thus attracts an interdisciplinary student body. Working with quadcopters for the lab assignments can be lots of fun. The hardware can be frustrating and unreliable at times, but do not be discouraged. What I found most valuable was how strongly the theory connects to practice in this class. Yes, there is a lot of theory, but you get to see this theory come to life and, quite literally, take flight.
