2020 Syllabus
Syllabus for Cosi119a

InstructorPito Salas
On-demand office Hourshttp://www.calendly.com/pitosalas/ftf
PrerequisitesCosi12b, 21a and one other elective
ExpectationsSuccess in this 4 credit hour course is based on the expectation that students will spend a total of 10-15 hours every week on it
Email contact: pitosalas@brandeis.edu
OfficeVolen 134


Learning Objectives

This course is a pragmatic introduction to autonomous robotics. Our goal is to introduce students to the “big questions” that need to be answered in order to build autonomous robots. Quesstions such as “How do I know where I am?” and “How do I decide what to do?” We will take a software engineering approach, always focusing on how to turn the concepts into actual robot behaviors in the real world.

Students will
  • Robotics: : Learn the key mobile autonomous robotics concepts, such as localization, state management, coordinate frames and coordinates, mapping and path finding and the basic information structures and data used in robotics such as sensor data, command data, sensor fusion such as odometry.

  • Architecture: Learn how to think architecturally within the context of a fully distriuted operating system. How to create small concurrent modules that communicate with each other. How to organize desired functionality and behavior for maximum flexibility and scalability within such an environment.

  • ROS: Learn to program the all-important “Robot Operating System”, ROS, which is the leading real-time distributed operating system for research and industrial robotics. They will demonstrate understanding of the key concepts of ROS, nodes, topics, commands and services, concurrency, distributed operating systems, and more.

Grading will be based on the following:

  • Participation: Attendance to lectures and lab. Engagement with the course, participation in class and lab discussions, responding to questions. Documenting in the Lab Notebook as requested or required. Submission of “participation (pass/fail)” assignments. This will be assessed by the instructor’s personal observations combined with grading of specific participation assigments. (10%)

  • Individual: Submission of high quality homework assignments, showing an understanding of the purpose and intent of the assignment, going deep instead of the shortest way out. Each homework will be assessed based on a rubric. (45%)

  • Final Project: The last 4-5 weeks of the course will be devoted to a final project. The requirements will be discussed in class. These will be team projects with as many students as the ambitiousness of the goal indicates. Assessment will be based on dual grading (Instructor and TA grade independently.) (45%)


Students have to have completed Cosi21a plus one additional programming oriented Computer Science Cours. Instructor has final say on admission based on individual student factors.

Required Course Text Book
  • Programming Robots with ROS. This is an excellent book that introduces ROS from the bottom up. You should get a copy. Beware, ROS is pretty complicated. It’s real-time, distributed operating system which is installed both on the robot and on the controlling laptop (if there is one). It can be quite difficult to configure and finnicky. But it is very very powerful!

General Policies

Change Policy

The instructor reserves the right to make changes to this syllabus and the associated curriculum web site if he deems it necessary. Any changes will either be announced in class or through e-mail. All students are responsible for finding out about such changes. Each student must be aware that not all assignments are listed in the syllabus. Students must use their common sense and not look for loopholes in the syllabus because, ultimately, the instructor has the final say in all matters. If you are confused on any assignment, ask the instructor for clarification.

By deciding to stay in this course, you are agreeing to all parts of this syllabus. In fairness to everyone, the syllabus must apply equally to all students without exception.

Experiential Learning

This is an experiential learning course! You will be working in teams and discovering what that’s like, and how to be effective in that kind of setting. It’s something that will definitely come up in your future work, no matter what direction you take: business, academia, non profits, government, or entrepreneurship. You can count on learning from the challenges, obstacles and successes you encounter.

You will also be asked to be very self-reliant, figuring out things on your own, having to use the web to research tools and techniques to use, sorting through the noise and finding the best solutions. Everything will not be served up on a silver platter. You can count on developing your self confidence and perseverence and hopefully come to see the value of this in your future.

Overall you will be asked to think about what you are learning from these experiences, what you could apply in the future, and how this course may influence the way you think about what you want to do next.