Lesson Algorithmic Remote Rover Programming:
Curiosity Killed the App

Quick Look

Grade Level: 8 (7-9)

Time Required: 1 hours 15 minutes

Lesson Dependency:

Subject Areas: Computer Science

An artist's illustration shows a robot on wheels with a camera and sensors on the red-soil surface of Mars.
The cameras, sensors and movement of the Mars Rover Curiosity are controlled remotely by software designed by engineers.
Copyright © NASA Mars Science Laboratory Curiosity Rover http://mars.jpl.nasa.gov/msl/mission/overview/


Students gain experience with the software/system design process, closely related to the engineering design process, to solve a problem. First, they learn about the Mars Curiosity rover and its mission, including the difficulties that engineers must consider and overcome to operate a rover remotely. Students observe a simulation of a robot being controlled remotely. These experiences guide discussion on how the design process is applied in these scenarios. The lesson culminates in a hands-on experience with the design process as students simulate the remote control of a rover. In the associated activity, students gain further experience with the design process by creating an Android application using App Inventor to control one aspect of a remotely controlled vehicle. (Note: The lesson requires a LEGO® MINDSTORMS® Education set.)

Engineering Connection

Software engineers use the software/system design process, which is a specific case of the engineering design process, to develop applications that we encounter on a daily basis. Software engineers develop business software, communication software, compilers, computer graphics, banking software and more, by following the steps of the design process. During the design process, engineers plan what an application will do, decide what it looks like, decide how to structure the software, test and edit to ensure the application or software works correctly. Working as software engineers, students practice implementing the engineering design process. They identify the problem, research the problem, imagine different solutions, select and build a possible solution, test and evaluate their solution, and redesign as needed to meet the requirements.

Learning Objectives

After this lesson, students should be able to:

  • Use the design process to solve a problem associated with remote sensing.
  • Understand and use the basic steps in algorithmic problem-solving (that is, problem statement and exploration, examination of sample instances, design, implementation, and testing).

Educational Standards

Each TeachEngineering lesson or activity is correlated to one or more K-12 science, technology, engineering or math (STEM) educational standards.

All 100,000+ K-12 STEM standards covered in TeachEngineering are collected, maintained and packaged by the Achievement Standards Network (ASN), a project of D2L (www.achievementstandards.org).

In the ASN, standards are hierarchically structured: first by source; e.g., by state; within source by type; e.g., science or mathematics; within type by subtype, then by grade, etc.

  • Illustrate principles, elements, and factors of design. (Grades 9 - 12) More Details

    View aligned curriculum

    Do you agree with this alignment?

  • Determine the best approach by evaluating the purpose of the design. (Grades 9 - 12) More Details

    View aligned curriculum

    Do you agree with this alignment?

  • Communicate the problem, process, and solution. Students should present their results to students, teachers, and others in a variety of ways, such as orally, in writing, and in other forms — including models, diagrams, and demonstrations. (Grades 9 - 12) More Details

    View aligned curriculum

    Do you agree with this alignment?

  • Creativity, imagination, and a good knowledge base are all required in the work of science and engineering. (Grades 9 - 12) More Details

    View aligned curriculum

    Do you agree with this alignment?

  • Science often advances with the introduction of new technologies. Solving technological problems often results in new scientific knowledge. New technologies often extend the current levels of scientific understanding and introduce new areas of research. (Grades 9 - 12) More Details

    View aligned curriculum

    Do you agree with this alignment?

Suggest an alignment not listed above

Worksheets and Attachments

Visit [www.teachengineering.org/lessons/view/uno_curiosity_lesson01] to print or download.

Pre-Req Knowledge

The teacher must be able to install a mobile Android app on a mobile device and be able to teach students how to use the app. See suggestions in the Background Section for a helpful pre-requisite lesson/activity as well as online tutorials and curricula.


(In advance, prepare for the lesson by making copies of the Curiosity Rover and Computer Science Questions Handout and Controlling the Curiosity Rover Worksheet, making available computers with Internet access for student group use, and preparing a demonstration that uses an Android-based app to remotely pilot a robot built using a LEGO robot base set [see below for suggested materials, descriptions and images].)

Today we are going to experience the Mars Curiosity rover and simulate what engineers go through to control a rover remotely. Have you heard about the Mars Curiosity rover? It is a robot that is exploring the surface of Mars!

You will also gain experience using the software/system design process (Figure 1), which is closely related to the engineering design process (Figure 2). What are the steps of the software/system design process? The design process consists of five basic steps: problem analysis, creating a design, implementation of the design, testing the design, and evolution of the design. In this lesson, you will complete at least one cycle of the design process. Note that the design process is circular and never fully "completed." This is because we can always improve on an existing design!

SDLC = Software/System Development Life Cycle. A circular diagram shows the five fundamental steps of software design: 1) requirement analysis (software specification), 2) design, 3) implementation (coding), 4) validation (testing), 5) evolution (maintenance and further development).
Figure 1. The software development life cycle follows similar steps as the engineering design process.
Copyright © 2012 Cliffydcw, Wikimedia Commons http://commons.wikimedia.org/wiki/File:SDLC_-_Software_Development_Life_Cycle.jpg
A flowchart of the engineering design process with seven steps placed in a circle arrangement: ask: identify the need and constraints; research the problem; imagine: develop possible solutions; plan: select a promising solution; create: build a prototype; test and evaluate prototype; improve: redesign as needed, returning back to the first step, "ask: identify the need and constraints."
Figure 2. The engineering design process is an iterative process used for any general design project. Each step can be related to a step in the software development life cycle, which is a design process specifically for software.
Copyright © TeachEngineering.org. All rights reserved.

(Hand each student a copy of the Curiosity Killed the App Questions.)

First, you will browse the NASA Curiosity rover website, https://www.nasa.gov/mission_pages/msl/index.html, to see what the remote vehicle Curiosity has been doing over time. (Assign each group to review a different aspect of the Curiosity mission to gain an overall perspective of what the mission is doing.) Think about what the engineers must do in order to control the rover from such a great distance. How do they decide what tasks to accomplish? How do they decide how to accomplish those tasks?

(Have students follow the link and look at what videos are available. It is left open-ended intentionally so as to not limit what students experience. Let the groups explore different topics depending on their interests and curiosity so that the class as a whole gain a more global perspective.

After students research the types of problems that engineers encounter and solve using the Curiosity rover and share their findings with the class, demonstrate controlling a robot using an Android-based app capable of piloting a virtual [sprite] Mars rover built using a LEGO MINDSTORMS robot through a simulated Martian terrain to a designated point. See Figure 3 for a classroom mock-up of Martian terrain that can be created by printing Martian environment images [many are available online] and supporting them using ring stands and large black paperclips.

Optional: If experienced with the LEGO MINDSTORMS robots and the technology is available, add a camera to the robot, such as the 4th generation iPod. Once the Facetime App is downloaded on the iPod, it works great for a remote camera. Then use a computer to communicate with the camera. You could also project the simulated environment image on the classroom screen so students can watch other groups steer the robot around the model Martian environment using the app created with App Inventor.

Install the Android app, Curiosity Killed the App Rover Sim, on a typical Android device to control a LEGO MINDSTORMS robot that has a Bluetooth connection. Refer to the Rover on Mars Sim video simulation of this experience to learn more.)

Two photos: (left) A LEGO robot acting as a Mars Rover, being controlled remotely by an Android device. The robot is within a space surrounded by a large circular paper wall, simulating a 360° image of the surface of Mars (printed on the paper). The paper is supported by ring stands, clipped to the paper with large black paperclips. (right) A screen capture from an iPod camera attached to the LEGO robot (rover) shows the simulated Mars environment of a paper wall with a printed image of the surface of Mars, and just above the paper wall, a glimpse of the classroom in the background. In the bottom left hand corner is an image of the teacher from the Facetime App.
Figure 3. The lesson demo and student experience includes a classroom mock-up of the Mars Curiosity Rover in a simulated Martian environment using a LEGO robot and iPod camera.
Copyright © 2012 Rich Powers, University of Nebraska

Once you have viewed videos and images of the Curiosity rover and seen our in-class simulation, please answer the questions on your handout. (Give students time to provide answers and then discuss each question as a class to ensure that students have the correct information.)

Now that you have seen what real engineers must do to control a rover like Curiosity and have seen a simulation on Earth that mirrors what Curiosity does, you will apply the software/systems design process to construct an algorithm to move a rover, our LEGO robot, using the Android app you saw demonstrated.

You will be provided a scenario of how you must move the robot. (Show students Figure 4.) You will be responsible for creating a list of moves that direct the rover to get from the landing site X to the alluvial fan area Y. In this example, the rover is currently facing right, but must face left when it reaches its destination. Your command choices include: forward (F), backwards (B), left (L), right (R), stop (S).

Make sure to apply all the steps in the design process to create this algorithm. As you work, consider whether there is difficult terrain that the rover must avoid and if efficiency matters.

You will also get a chance to test your algorithm of moves using an Android device and the Rover App. (Divide the class into groups of two or three students each for developing and testing the algorithms so that all groups can test their solutions in a timely manner.) Use the Controlling the Curiosity Rover Worksheet to guide the process. Keep in mind that worksheet questions will ask you to explain how you applied the design process to this experience.

The image shows the Gale Crater on the surface of Mars that the simulated rover must move across. A grid of equal sized squares is placed over the Gale Crater image. The starting point of the Mars Rover is located in the very bottom left square and marked as "X" with an arrow pointing to the right showing that the Mars Rover begins facing to the right. The destination of the rover is marked with a "Y" and an arrow pointing to the left, indicating the Mars Rover should face right when it reaches its destination. The destination is located 3 squares to the right and 3 squares up from the starting point.
Figure 4.The Martian terrain map. X is the landing site and robot (rover) starting point. Y is the destination, the alluvial fan area. Arrows indicate robot facing directions.
Copyright © NASA

Lesson Background and Concepts for Teachers

The software/systems design process consists of five basic steps: problem analysis, creating a design, implementation of the design, testing the design, and evolution of the design. In the lesson, students complete at least one cycle of the design process. The design process is circular in nature and therefore never truly "completed." Students are exposed to this process and implement it to solve the problem of writing a mobile Android app that measures a device's acceleration and stores that data for future use.

The software development life cycle is essentially a specific case of the engineering design process, and each of its steps can be compared with the steps in the engineering design process. The software/systems design process (see Figure 1) begins with the Requirement Analysis phase, which can be compared to the Identify the Problem and Identify Criteria and Constraints steps in the engineering design process (see Figure 2). In both cases, this is the time where the goal of the project is identified. During this phase, answer questions such as: What am I trying to solve or create? What is the purpose? How should the end product function? What are my limitations? What materials can be used or are needed?

Once the goal is clearly defined, as well all constraints and requirements, the next phase is Design. This corresponds to the Imagine Possible Solutions, and Plan by Selecting a Promising Solution steps in the engineering design process. At this point, research is conducted to gather relevant information. Different ideas for designs are explored, and eventually the most promising design or solution is selected and refined. Specifically for software design, this phase may be focused on the development of a code or series of codes. In the associated activity, this includes first creating a pseudo code.

The next two phases in the software development life cycle are Implementation and Testing, which correspond to the Create a Prototype step in the engineering design process. At this point, the prototype or code, for example, is completed and tested.

The last step in the software development life cycle, before the process repeats, is the Evolution phase, which is comparable to the Test and Evaluate the Prototype and Improve and Redesign stages of the engineering design process. At this point, the results of the testing phase are analyzed and incorporated into the project. Based on testing results, the cycle is repeated as many times as necessary to satisfy the overall project goal.

This lesson prepares students for the associated activity, Mars Rover App Creation, in which they use MIT's App Inventor to design an application for an Android device. To give students experience with App Inventor, have them first complete the Program Analysis Using App Inventor lesson and the Flow Charting App Inventor Tutorials associated activity. Together, they teach students program analysis through experiences using the App Inventor tutorials. For more information on App Inventor, see the MIT App Inventor website, http://appinventor.mit.edu/explore/, for tutorials and curriculum for students to work through to gain an understanding of how to use App Inventor. Tutorials that cover getting started with App Inventor, installing App Inventor and practice projects are available at http://appinventor.mit.edu/explore/learn.html, and curriculum for teacher use is available at https://appinventor.mit.edu/explore/teach.

Associated Activities

  • Mars Rover App Creation - Students design mobile apps that can be used to control an aspect of a remote rover vehicle. The activity is centered on the design process and is a hands-on, problem-based learning project that is intentionally left open-ended. Students gain experience following the process that engineers would use in the development of new software applications.


alluvial fan: A fan- or cone-shaped deposit of sediment crossed and built up by streams. Alluvial fans are found on Mars and Earth.

Android device: A mobile device with the Android operating system installed on it.

App Inventor: A software program developed by MIT that allows Android apps to be created using building blocks without having to know a programming language.

design: A step in the software design process involving brainstorming to create possible solutions to a challenge.

evolution: A step in the software design process where the design is further explored to see if it can be made more efficient, improved on, or applied in other situations.

implementation: A step in the software design process where a design is put into practice.

requirement analysis: A step in the software design process where the problem is defined and parameters that frame the problem are established.

testing: A step in the software design process where a design is tested to see if it solves the identified problem correctly.


Pre-Lesson Assessment

Design Process Review: As a class, review the steps of the software/system design process and how it can be applied to this type of activity. Use the following questions for discussion or as a writing exercise.

  • Describe what you know about the engineering design/software design process. (Example answer: It is a cyclical process that is followed to accomplish a task/goal. It requires several steps including: analysis of the problem, design of a solution, implementation of the design, testing of the design, and possible extensions of the design.)
  • How can you apply a design process to solving a problem? (Example answer: The design process is basically a problem solving process. After identifying and clarifying the specific problem you want to address, you dream up possible solutions and develop the most promising one. You implement and test your solution until it functions correctly.)

Lesson Embedded Assessment

Observations: As students are engaged in the lesson, make observation that address the following questions:

  • Are students following the steps of the design process?
  • Are they understanding and identifying a problem to be solved?
  • Were they able to devise a plan to solve the problem?
  • Did they carry out their planned design?

Worksheets: Collect and evaluate students' Controlling the Curiosity Rover Worksheet. Many different solutions exist to solve this problem. As long as the craters are avoided by the students' rovers and the requirements are met, the solution is valid. One possible set of steps is as follows:

Forward 1 square

Turn left

Forward 1 square

Turn right

Forward 3 squares

Turn left

Forward 2.5 squares

Turn left

Forward .75 squares


Post-Lesson Assessment

Writing Wrap-Up: Have students answer the following writing prompts:

  • Explain how you applied the design process to move the robot remotely. (Example answer: The design process is cyclical in nature and this is a key idea to remember when addressing problems. First, we analyzed the problem and determined a path from point X to point Y through a terrain of craters and other rough ground to be avoided. Because our team felt that efficiency was important, we create a short path. In the design phase, we constructed steps to move the robot. We considered the problems we identified in the analysis step. For implementation, we entered the steps we designed into the Android device using instructions we received from the teacher. Testing comprised of running the program to determine if we solved the problem correctly. When the program ran, we encountered some difficulties. The rover did not drive exactly as we thought it would do to some slippage on the floor. We went back to an earlier step of the design cycle and through new observations we made, were able to make corrections to our initial design, which we implemented and tested. Finally, the rover behaved per the guidelines outlined in the initial problem. )
  • Explain the steps of the design process. (Example answer: The steps of the software design process are problem analysis, design, implementation, testing and evolution. Problem analysis is an exploration of what problem is going to be solved. It includes defining the problem and setting the parameters that frame the problem. Design is the stage when you brainstorm all sorts of ideas (designs) that might possibly solve the problem. Implementation takes a design and puts it into practice. Testing makes sure that your design actually works to solve the problem. Evolution is a step where you ask if your solution could be made more efficient or improved, and consider whether it applies in other situations or could solve other problems.)

Additional Multimedia Support

Note: This activity requires a LEGO MINDSTORMS EV3 robot, such as the EV3 Core Set (5003400) at https://education.lego.com/en-us/products/lego-mindstorms-education-ev3-core-set/5003400#lego-mindstorms-education-ev3 (Note: This activity can also be conducted with the older LEGO MINDSTORMS NXT set. You’ll need a computer loaded with the NXT 2.1 software.) and an Android mobile device with the Curiosity Killed the App Rover Sim app installed.


Get the inside scoop on all things TeachEngineering such as new site features, curriculum updates, video releases, and more by signing up for our newsletter!
PS: We do not share personal information or emails with anyone.

More Curriculum Like This

High School Lesson
Storing Android Accelerometer Data: App Design

Students work through an online tutorial on MIT's App Inventor to learn how to create Android applications. Using those skills, they create their own applications and use them to collect data from an Android device accelerometer and store that data to databases.

Middle School Activity
Mars Rover App Creation

Based on their experience exploring the Mars rover Curiosity and learning about what engineers must go through to develop a vehicle like Curiosity, students create Android apps that can control LEGO® MINDSTORMS® robots, simulating the difficulties the Curiosity rover could encounter. The activity go...

Middle School Lesson
Program Analysis Using App Inventor

In this lesson, students learn about, design and create flow charts for different scenarios, including a game based on the Battleship® created by Hasbro©. In the associated activity, Flow Charting App Inventor, students apply their knowledge from this lesson and gain experience with a software appli...

Middle School Lesson
Come On Over Rover

During this lesson, students discover the journey that a Mars rover embarks upon after being designed by engineers and before being prepared for launch. Students investigate the fabrication techniques, tolerance concepts, assembly and field-testing associated with a Mars exploratory rover.


© 2013 by Regents of the University of Colorado; original © 2012 Board of Regents, University of Nebraska


Rich Powers, Brian Sandall

Supporting Program

IMPART RET Program, College of Information Science & Technology, University of Nebraska-Omaha


The contents of this digital library curriculum were developed as a part of the RET in Engineering and Computer Science Site on Infusing Mobile Platform Applied Research into Teaching (IMPART) Program at the University of Nebraska-Omaha under National Science Foundation RET grant number CNS 1201136. However, these contents do not necessarily represent the policies of the National Science Foundation, and you should not assume endorsement by the federal government.

Last modified: October 16, 2020

Free K-12 standards-aligned STEM curriculum for educators everywhere.
Find more at TeachEngineering.org