Robotics as an application draws from many different fields and allows automation of products as diverse as cars, vacuum cleaners, and factories. This course is a challenging introduction to basic computational concepts used broadly in robotics. Topics include simulation, kinematics, control, optimization, and probabilistic inference. The mathematical basis of each area is emphasized, and concepts are motivated using common robotics applications and programming exercises. Students will participate in a series of projects over the course of the semester, in which they will implement algorithms that apply each of the topics discussed in class to real robotics problems. This course prepares students to take CS 4752/MAE 4750: Robotic Manipulation and MAE 4180/CS 3758: Autonomous Mobile Robots, among others.

Course Aims

By the end of this course, I will understand the basic concepts and theory governing the programming of robots that perform autonomous tasks such as navigation and manipulation.

Learning Outcomes

After this course, I will be able to:


(MATH 1920 or MATH 2220) and MATH 2940 and (CS 1110 or CS 1112) or permission of instructor. That is, multivariable calculus, linear algebra, and introduction to computing.

Optional Textbooks

*=on reserve in Uris Library

These texts are not required, but can serve as useful references for different parts of the course.

Course Websites



Regrades: Regrade requests will be handled through the course CMS website. All regrade requests must be submitted within 10 days of receiving the grade.

Homework submission: Homeworks will be submitted, and grades returned, through the course CMS website. Late submission of written homeworks and coding projects will be accommodated through slip days. A maximum of five slip days may be used by each student through the course of the semester. A slip day allows an assignment to be submitted one day later than the deadline without penalty, and they are cumulative. Each assignment allows up to three slip days to be used. Any attempt to submit an assignment that uses more than the allotted number of slip days either on one assignment or overall for the semester will result in a zero on that assignment.

Reading quizzes: The reading quizzes are due before each class and are submitted on the CMS website.

Collaboration: Written homeworks and projects are to be submitted individually, but working together in groups of any size is explicitly encouraged. Note that each student is responsible for writing a separate solution to written and coding homeworks. No student should ever see another’s solution. Solutions that are too similar may trigger an academic integrity hearing. For all homeworks, you must write who you collaborated with.

Academic integrity: Students are expected to follow Cornell’s Code of Academic Integrity which can be found at The purpose of this code is to provide for an honest and fair academic environment. As such, it should be clear to students what is expected of them in the course (see the collaboration policy) and in case of doubt, students should ask Prof. Knepper. Copying work of others (code and/or text) — or allowing others to copy your work — is considered a violation of Cornell’s code.

Inclusion Statement

Students in this course come from a variety of backgrounds, abilities, and identities. In order to ensure an environment conducive to learning, all members of the course must treat one another with respect. If you feel your needs are not being adequately accommodated by the other students or instruction staff, please contact Prof. Knepper. You may do so anonymously at or on Piazza.


This course is taught as a standard lecture. Lecture notes are distributed on the website in advance of the class, and students are assigned one short reading per class, usually under 10 pages. Students complete a short (1 or 2 question) quiz to check reading comprehension. Classroom activities will comprise lecture and synthesis of information, with some discussion. In addition, homework assignments comprise a mixture of written response and algorithm implementation on a variety of simulations of mobile and manipulator robots. There are two in-class prelims and one take-home final exam.