Description: Intelligent machines—such as robots, autonomous vehicles, and digital assistants—are rapidly transforming human lives, offering immense potential to enhance human capabilities. However, without careful attention to how these systems interact with people, they may lead to unintended consequences, such as inefficiencies, biases, and even accidents. This course provides an introduction to the field of human-machine interaction, focusing on its algorithmic foundations. We will explore these algorithms from first principles and examine their real-world applications through case studies. The course is structured around two key modules. The first focuses on methods that enable humans to program intelligent machines, exploring how they can be trained to autonomously perform complex tasks and interact with humans. Key algorithms include imitation learning, learning from human preferences, and language-guided reinforcement learning. The second module covers methods that help humans understand, interpret, and effectively use these intelligent systems. This includes algorithms for explainable perception, explainable reinforcement learning, and methods for systematically evaluating intelligent machines.