In this advanced graduate-level class, you will learn about the theory and algorithms that enable robots to physically manipulate their world with and around people. We will first focus on functional aspects of manipulation, such as synthesizing robust and stable grasps for dexterous hands, the geometry of manipulation configuration spaces, and motion planning in these spaces. We will discuss both analytical and machine learning approaches. We will then generalize these techniques to settings where robots manipulate objects together and in coordination with people. By the end of this class, you will be able to describe and compare algorithms for real-world manipulation, design user studies to evaluate these algorithms in robot interactions with people and communicate your ideas to a peer audience. Evaluation is based on student presentations, a final project and short weekly quizzes based on the assigned reading material.