Learn to Program Self-Driving Cars (and Help Duckies Commute) With Duckietown Robotics

Lesson plan Phase 2:

Engage (30 Min.)

Use the ideas in the Ignite a Discussion section below to engage your students in a discussion related to this project.

o Explain the project.

o Shuffle job cards or allow students to reassign students to new positions

o Allow your students some time to brainstorm.

Explore (30 Min.)

o Have your students create multiple prototypes and record ideas in interactive notebooks.

o Encourage them to explore both building and programming.

o Have each team program and test two solutions.

Explain (60 Min.)

o Ask your students test their solutions and to choose the best one.

o Make sure they can create their own testing tables.

o Allow some time for each team to finalize their project and to collect assets for documenting their work.

Elaborate (60 Min.)

o Give your students some time to produce their final reports.

o Facilitate a sharing session in which each team presents its results.


o Give feedback on each student's performance.

o You can use the assessment rubrics provided to simplify the process.

Ignite a Discussion

Today, there are many navigation systems used in cars. Some of these systems are now taking on the drivers' responsibility for driving passengers safely to their destinations. Before figuring out the best route between points A and B, autonomous cars must be able to execute a series of movements based on user input.

Encourage an active brainstorming process.

Ask your students to think about these questions:

o What are autonomous cars and how do they work?

o Where do autonomous cars get their directions?

o What movements does the rover need to perform in order to move through a series of obstacles on a north, south, east, and west grid?

Give your students some time to answer these questions.

Encourage your students to document their initial ideas and explain why they picked the solution they will use for their first prototype.

Ask them to describe how they will evaluate their ideas throughout the project. That way, when they are reviewing and revising, they will have specific information they can use to evaluate their solution and decide whether or not it was effective.

Pseudocode is a great tool to help students organize their thinking before starting to program.