- An undergraduate class (CS189) that is a hands-on introduction to AI-Robotics where every problem set involves programming real robots and demoing them in class.
- A graduate class (CS289) on biologically-inspired multi-agent systems where we cover topics like swarm intelligence and evolutionary computing, through discussion of classic and current research papers and through independent research projects.
- Both classes involve active participation and discussion throughout the semester.
- Embedded EthiCS is a joint intitiative between the Computer Science and Philosophy departments to design ethics modules for every course in the CS curriculum, embedding the discussion of values and ethical reasoning in our technical education. Many of our course modules are open-source and aviable on the website. In 2019, we were awarded the Mozilla Responsible Computer Science Challenge Grant! (gazette article)
Building autonomous robotic systems requires making Robots that Observe, Reason, and Act. How does a robot make sense of the world from raw and noisy sensor inputs? How does it control it's actions reliably and recover from failures? When does it need to reason about the world and when can it just react? How does it balance short-term problems versus long-term goals? How does it operate in a world where others (human and robots) exist? And how do we program a robot to achieve all these things? The goal of creating a robot is the goal of creating Embodied Artificial Intelligence. In this class we will study methodologies for achieving embodied AI through a hands-on and ground up approach of programming your own. In different years we've used different themese and robots, but the class is always hands-on. Our most recent version uses the Turtlebots (roomba base, depth camera, ROS) and focuses on autonomous behavior, from low level vision and motion control, to navigation and personality.
CS289: Bio-inspired Multi-agent Systems a.k.a. Collective A.I.
How do we engineer robust collective behavior from the cooperation of vast numbers of unreliable agents? This class surveys bio-inspired approaches to understanding and designing collective intelligence in different domains. A unifying theme is the desire to construct robust systems consisting of many individually unreliable but cooperative nodes, and to program complex but predictable global behavior. The class covers bio-inspired algorithms, analysis techniques, and programming paradigms for engineering self-organizing systems. We will read papers that model biological systems and provide inspiration for new ways of thinking. We will then read corresponding papers that focus on algorithms, programming paradigms, and theory for engineering self-organizing systems.Topics vary year to year, and usually include: (1) swarm intelligence: social insects and animal groups, with applications to networking and robotics, (2) cellular computing: including cellular automata/amorphous computing, and applications like self-assembling robots and programmable materials, (3) evolutionary computation and its application to optimization and design. On occasion we cover topics like synthetic biology, dna self-assembly, human collective behavior, etc. The class is primarily based on discussions of research papers, along with a research project.