Intended Learning Outcomes#

It is important to converge on what you are expecting your students to learn by the end of the course: the intended learning outcomes (ILOs).

Here are some potential learning outcomes to consider:

The Use of Operational Tools#

By the end of the course, students can use operational tools to:

  • Build a Duckietown robot (Duckiebot, Duckiedrone), given the hardware and a set of instructions. Includes best practices on assembly, calibration and maintenance;

  • Configure the software and network, and establish reliable connection between robots and base stations (e.g., the student laptop);

  • Be comfortable using the Linux command line;

  • Understand the design concepts of the Robotic Operating System (ROS);

  • Understand the design concepts of Docker;

  • Demonstrate the correct operation of their Duckiebot;

  • Use standard tools for software development (e.g., source code repositories, branching and merging);

  • Become familiar with the secure shell (ssh);

  • Articulate the importance of environment (e.g., Duckietown city) element on the robust autonomous behavior of Duckietown robots.

  • Design and deploy a robotic agent on a Duckietown robot.

Development Methods and Workflows#

Master system development methods, such as:

  • Develop ROS software modules and integrate them into the system;

  • Utilize the best practices of system development, including test-driven and data-driven development;

  • Familiarize with the dynamics of open-source development, including the challenges of integrating independently developed functionalities.

Mastery of Theory#

Demonstrate, through the completion of learning experiences that are implemented both in simulation and on real robot hardware, an understanding of theory related to:

  • Image processing, Bayesian filtering, localization;

  • Navigation, modeling and control, inter-robot coordination;

  • Integration of perception and control into complex behaviors;

  • Effects of deployment of continuous time algorithms on computers.

Communication and Dissemination#

Be able to communicate and effectively disseminate technical information, such as:

  • Explaining design choices and trade-offs;

  • Presenting project status updates;

  • Writing reports describing motivations and approaches to solve problems;

  • Documenting their work, by creating step-by-step instruction sets to enable future users to reproduce their results;

  • Supporting their peers, and evaluating their work with principles of academic integrity (citing sources, declaration of conflicts of interest, etc.).