Tuesdays & Thursday 12:30-1:50 PM - in CSE 4140

Henrik I Christensen
Office: CSE 2114
Hours: Tues 9-11AM
TA: XXX Email
Office Hours: Wed 10-12AM

Who is this for?

This is a graduate course that introduces the mathematical tools used in many diverse areas of robotics. The class is inspired by the equivalent class at Carnegie Mellon University by Michael Erdmann - 811 Mathemetical Foundations for Robotics
The goal of the course is to help you accomplish the following:

  • Understand the geometry of linear systems of equations, including null spaces, row spaces and column spaces. Understand eigenvalues, diagonalization, singular value decomposition, least-squares solutions. Apply these skills to infer rigid-body transformations from data.
  • Learn how to model data using interpolation, linear regression, and higher-order approximation methods. Consider these skills to recognize objects from point-cloud data.
  • Understand different methods for finding roots of equations, in one dimension and higher, including bisection, Newton's method, Müller's method. Develop skills to analyze convergence rates.
  • Generalize finite-dimensional linear algebra concepts such as orthogonal bases to perform function approximation.
  • Develop techniques for solving differential equations numerically.
  • Understand optimization techniques such as gradient descent, conjugate gradient, Newton's method. Learn the basics of convex optimization. Consider obstacle-avoidance viewed as cost-minimization.
  • Develop methods from the Calculus of Variations for higher-order optimization. Apply these techniques to develop the Lagrangian dynamics of a robot manipulator.
  • Learn basic computational geometry techniques, such as Convex Hull and Voronoi diagrams. Implement a geometric robot motion planner.


Since this is a graduate course we are typically quite loose with prerequisites.
  • A good foundation of probability and linear algebra. This class will have more math in it than most Computer Science classes.
  • A good working knowledge of Matlab or Python with Numpy. We will be doing things in Matlab as part of the class.


The two texts that we will draw from are:

We will suggest readings from Numerical Recipes but the Bewley book will also provide a solid reference for most of the material.


  • Web site: This site. Will have posted calendar/syllabus with posted lecture notes, other administrative stuff.
  • Piazza: You will all receive an invitation to Piazza for CSE276C. If not, send us email. Rather than emailing questions to the teaching staff (i.e. me), I encourage you to post your questions on Piazza. Find your class page here
  • Matlab access: if you don’t know how to get MATLAB access, first ask a friend. Then come see the TAs or me. Python access: We encourage you to use Python / Numpy / SciKit-Learn directly or as part of a package such as Anaconda.


As part of the class we will have 5 homework assignments directly related to the material covered. The assignment should preferably be solved by hand and not using computer code. The assignments will be fairly basic.
In addition, there will be a final project related to robotics that you can solve individually or in groups of two. The assignment will require some degree of coding.
  • Homework Assignments: 75%
  • Final project: 25%
  • Class participation: max 5% (i.e. it can only raise your grade)

Late Policy

Don't be late, it’s not fair to the TA. We will not accept late home works for full credit unless you have (several day) prior approval from the professor for extenuating circumstances. Submit what you have on time.

Honesty and Integrity Policy

Projects are to be done individually (or within your group) but you may collaborate at the white board level. You may help each other with algorithms and general computation, but your solutions must be your own.
Last modified: 09/06/2018

Related :