Robotics for Software Engineers

CS 4501

Spring 2020

Roadmap for revised course under Covid-19

With the migration of classes online we are going to be adjusting the form of content delivery and some of the topics, labs, and our project.

I posted an announcement in the course Collab site on March 17th and a recorded lecture March 19th to go over the logistics and adjustments in more detail.

For now, here is a summary of the changes:

  • Lectures will be pre-recorded and be made available through the class website
    • We slightly revised the schedule of topics on the class website (see table below)
    • For questions on lecture material email selbaum at virginia dot edu
  • Labs will follow the same format and grading scheme as before but we are now going to support you and check them through Zoom at the following office hours:
    • For getting lab checked (starting March 26th)
      • Schedule a time to be checked at on Thursdays between 1:00 - 4:00 PM at (check google web site in Collab announcement)
      • Access Zoom session at the scheduled time: Check Zoom Link in Collab announcement
    • For questions on labs (starting March 25th)
      • Wednesday from 9AM-12PM or scheduled by email with Nora ( ans5k at virginia dot edu)
      • Access Zoom: Check Zoom link in Collab announcement (you may be asked to wait if other students are being helped)
  • No more quizzes. The 5% of points remaining will be reallocated among all labs.
  • Project
    • Will be based on our simulator (we are not going to work on the Crazyflie drone, a real bummer but we are enhancing the simulator to make up for it)
    • Will be individual (not in groups)
    • Demos will still be conducted online during the last week of classes (depending on how well Zoom works we might make it open to everyone)

Special note on late submission Lab-6 (for 50% of grade): it will be allowed until March 25th

These are trying times for everyone, so if you have any questions or concerns please reach me by email at selbaum at virginia dot edu


Sebastian Elbaum

Instructing Team

Sebastian Elbaum - Instructor (Rice 413, selbaum at virginia . edu )

Nora Evans - Guest Lecturer and Teaching Assistant (Rice 440, ans5k at virginia . edu. for all lab questions)

Carl Hildebrandt - Guest Lecturer and Lab Designer

Goal and Scope

Developing software for robot systems is challenging as they must sense, actuate, and represent the physical world. Sensing the physical world is usually noisy, actuating in and on the world is often inaccurate, and the knowledge and representation of the world is incomplete and uncertain. In this class we will explore basic approaches to cope with those challenges. You will learn to use abstractions, architectures, libraries, verification and validation approaches, simulation, and frameworks and tools to perform robot activities like motion, navigation, perception, planning, and interaction. The expectations is that his course will open up new career options in robotics for computer science students.

Class location and time

Thornton Hall E303

Tuesday and Thursday 2:00PM -3:15PM

Office Hours

Sebastian: Tuesday 3:15PM - 3:45PM, Rice 423

Nora: Wednesday 10AM - 1PM, Rice 442


CS 4414 (Operating Systems) - or advanced software development but with a good understanding of programming threads

Tentative Schedule

Course Policies

• Students must fully comply with all the provisions of the University’s Honor Code. All graded labs, quizzes, assignments, and project must be pledged. Students are expected to work independently unless instructed otherwise. Offering and accepting solutions from others is a serious offense. All suspected violations will be forwarded to the Honor Committee, and you may, at the instructor discretion, receive an immediate zero on that assignment and fail the course regardless of any action taken by the Honor Committee.

• Labs can get full credit if returned within a week of the class when they were introduced. After a week, the labs get 50% credit. After two weeks the labs get 0 credit.

• Students are responsible for all missed work, regardless of the reason for absence. It is also the absentee responsibility to get all missing notes or materials.

• If you anticipate any issues related to the format, materials, or requirements of this course, please meet with me outside of class so we can explore potential options. Students with disabilities may also wish to work with the Student Disability Access Center.

• If you are struggling with violence or discrimination, I am ready to provide support and guide you towards the many resources available at the University of Virginia.

• If you need academic accommodation for a religious observance, please submit an email request to me as far in advance as possible.

• No cell phones in class. Laptop usage is for class purposes only.

Grades Distribution

Labs: 70 points

Project: 20 points

Quizzes/Readings: 10 points

Letter Grade

A+: [98,100] , A: [93,98), A-: [90, 93)

B+: [87, 90), B: [83, 87), B-: [80, 83)

C+: [77, 80), C-: [73, 77), C-: [70, 73)

D+: [67, 70), D: [63,67), D-: [60, 63), F: [0,60)


1. Is this course for me?

This is a class for students who have no or limited experience in programming robots but are interested in learning more about how we develop systems that interact with the physical world. Note that that this is the first time this course is being delivered, so the material and schedule is likely to be tweaked as the course evolves, so you need to be comfortable taking an exploratory class with us.

2. What is this course NOT about?

This class is not about AI, mechanical design, or electronic design. It is mainly about how to build software that will operate mobile robots in the physical world.

3. What is the structure of the course?

This class will include multiple development labs, a team project, and a handful of quizzes.

4. What robot will be use?

The first half of the semester we will work within a simulation environment. The second half we will work with small drones.

Reminder about Labs Due Date

The labs are generally released on Thursday morning. For obtaining full credit, the labs must be presented in person to Professor Elbaum or Nora Evans by the end of class the following Thursday.

You may present your solutions or get help on them at the following days and times:

1 ) Lab time on the Thursday the lab is released (Thursday 1-3:15 pm, Thornton Hall E303)

2) Professor's Elbaum's office hours, following Tuesday 3:15-3:45, Rice 423

3) Nora's Office Hours, following Wednesday 10am-1pm, Rice 442

4 ) Lab time the following Thursday the lab is released (Thursday 1-3:15 pm, Thornton Hall E303)

Labs that are turned-in after the Thursday due-date will get at most 50% credit, after 2 weeks 0%.

If you are unable to complete the lab because of sickness, job interviews , etc. please contact Professor Elbaum to find a resolution.

Information on additional lab support is available here.