Hands-on Activity: Mars Rover App Creation

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

Quick Look

Grade Level: 8 (7-9)

Time Required: 1 hours 15 minutes

Expendable Cost/Group: US $0.00

This activity also requires the use of non-expendable (reusable) items such as LEGO robots and Android devices; see the Materials List for details.

Group Size: 3

Activity Dependency:

Subject Areas: Computer Science

An artists' illustration of a robot on wheels with a camera and sensors on a red-dirt surface of Mars.
Software engineers play a key role in the control of the Mars rover Curiosity
Copyright © NASA http://www.nasa.gov/centers/ames/events/2012/ames-curiosity.html


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 goal is to teach students programming design and programming skills using MIT's App Inventor software as the vehicle for the learning. The (free to download) App Inventor program enables Android apps to be created using building blocks without having to actually know a programming language. At activity end, students are ready to apply what they learn to write other applications for Android devices.
This engineering curriculum meets Next Generation Science Standards (NGSS).

Engineering Connection

Software engineers use the engineering design process to develop software applications that we encounter on a daily basis. Examples of engineering programming designs include software for business, communication, compilers, computer graphics and banking. Using the design process, software engineers plan what an application or program will do, decide what it looks like, decide how to structure the software, test and edit it to ensure the app or program works as intended. In this activity, students act as software engineers to create Android apps. They identify the problem, develop solutions, select and implement a possible solution, test their solutions and redesign as needed to create the desired Android application.

Learning Objectives

After this activity, students should be able to:

  • Design and create a mobile app for an Android device using MIT's App Inventor.
  • Apply the steps of the software/system (engineering) design process.

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.

NGSS Performance Expectation

MS-ETS1-4. Develop a model to generate data for iterative testing and modification of a proposed object, tool, or process such that an optimal design can be achieved. (Grades 6 - 8)

Do you agree with this alignment?

Click to view other curriculum aligned to this Performance Expectation
This activity focuses on the following Three Dimensional Learning aspects of NGSS:
Science & Engineering Practices Disciplinary Core Ideas Crosscutting Concepts
Develop a model to generate data to test ideas about designed systems, including those representing inputs and outputs.

Alignment agreement:

Models of all kinds are important for testing solutions.

Alignment agreement:

The iterative process of testing the most promising solutions and modifying what is proposed on the basis of the test results leads to greater refinement and ultimately to an optimal solution.

Alignment agreement:

  • The design process includes defining a problem, brainstorming, researching and generating ideas, identifying criteria and specifying constraints, exploring possibilities, selecting an approach, developing a design proposal, making a model or prototype, testing and evaluating the design using specifications, refining the design, creating or making it, and communicating processes and results. (Grades 9 - 12) More Details

    View aligned curriculum

    Do you agree with this alignment?

  • Established design principles are used to evaluate existing designs, to collect data, and to guide the design process. (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

Materials List

Each group needs:


Note: This activity can also be conducted with the older (and no longer sold) LEGO MINDSTORMS NXT set instead of EV3; see below for those supplies:


Worksheets and Attachments

Visit [www.teachengineering.org/activities/view/uno_curiosity_lesson01_activity1] to print or download.

More Curriculum Like This

Algorithmic Remote Rover Programming: Curiosity Killed the App

Students gain experience with the software/system design process, closely related to the engineering design process, to solve a problem. The lesson culminates in a hands-on experience with the design process as students simulate the remote control of a rover.

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.

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...

Android App Development

Students develop an app for an Android device that utilizes its built-in internal sensors, specifically the accelerometer. The goal of this activity is to teach programming design and skills using MIT's App Inventor software (free to download from the Internet) as the vehicle for learning.

High School Activity

Pre-Req Knowledge

This activity is recommended for use in a computer programming class or environment. Students should have a basic understanding of computer programming design and control structure. Students also need a basic knowledge of how MIT's App Inventor works. Prior to this activity, students should have worked through the MIT App Inventor tutorials, available online at http://appinventor.mit.edu/explore/learn.html, to gain an understanding of how App Inventor works. The Program Analysis Using App Inventor lesson and its associated Flow Charting App Inventor Tutorials activity provide students with experience with both the engineering design process and App Inventor, and should be completed prior to this activity. In addition, App Inventor General Information provides general App Inventor concepts and may be useful as a reference for the teacher and students during the activity.


A circular diagram shows the steps that software goes through as it is developed. The process is circular in nature. The steps are Design, Implementation, Testing, Evolution, and Requirement Analysis. SDLC Software/System Development Life Cycle
The steps of the software development life cycle.
Copyright © 2012 Cliffydcw, Wikimedia Commons http://commons.wikimedia.org/wiki/File:SDLC_-_Software_Development_Life_Cycle.jpg

In today's activity, you will develop an app for an Android device. However, the activity is about more than the single app you will develop. It is about the skills that you gain while you interact with a piece of software that helps you develop your app.

At the end of the activity, you should have the skills in place to write other apps for Android devices. If you desire, you could even apply the skills that you learn in this activity to your Android device so that you can write other Android apps that could be published for public use.



Students develop apps for Android devices that can control some aspect of a LEGO MINDSTORMS EV3 robot simulating the Mars Curiosity rover. This might be driving the robot, moving an arm, detecting objects, applying a game or using a sensor such as the color sensor.

Refer to the Lander Student, Mars Project Student and Shooter Student as example apps created by students that can be loaded on Android devices for teacher and students' reference.

This activity provides students with experience in the software/systems design process and gives students experience with the software application App Inventor. Using App Inventor, people can write software applications that execute on Android devices.

Before the Activity

With the Students

  1. Explain the activity goal to the class. Student groups are responsible for creating a mobile app, using App Inventor, which completes a (simulated) Mars remote sensing task. These tasks might include driving and moving the robot, moving an arm, detecting objects, applying a game, or using a sensor, such as the color sensor.
  2. Hand out the general information sheets, rubrics and worksheets.
    A screenshot of the Basic tools available in App Inventor: Button, Canvas, CheckBox, Clock, Image, Label, ListPicker, PasswordTextBox, TextBox and TinyDB. To the left of each option are small icons.
    Figure 1: The various App Inventor tools.
    Copyright © MIT App Inventor
  3. Introduce the criteria for a successful app design. The app must:
  • Have a Mars (or other planet) scientific connection. Example: The app may be designed to help the rover steer around or climb obstacles found in rough surface conditions. The app may have the robot measure humidity or temperature in the planet's atmosphere.
  • Use at least five App Inventor tools/objects. Examples: Canvas, alignment, button, text box, sprite, label, list picker. See Figure 1 for a full list. Note: These are examples of major objects in App Inventor that app commands are built around. The canvas serves at the background; colors, gradients or landscapes can be placed here. Alignments are a quick way to implement spacers with the app code. Buttons are action buttons; each button must be coded to the specific action assigned to the button. Text boxes are where text appears. Sprites are animated objects and are holders for the eventual code that specifies their actions and use. Labels are simply names for objects. List picker is a shortcut to building pull-down menus into the app. Clarify to the students that each object must be renamed, such that the name fits the purpose. In addition, each object must have a purpose. The object cannot just exist, but must have a stated purpose or action attached to it. Finally, each object must be edited in some way. The object cannot be set at the default setting.
  • Have a background image. This could be a stand-alone image or part of the canvas, button or other object. This counts as one of the five required objects.
  • Have a button with some function. This counts as one of the five required objects.
  • Have an animated object. This could either be an image or a ball that moves in the program. This counts as one of the five required objects.
  • Have a reset option that can be used over again without restarting the app.
  1. Let students know the expected deliverables for the activity. The final app design must be debugged and work correctly. Their finished worksheets must be handed in.
  2. Have each student group brainstorm a list of problems to be solved with Mars exploration.
  3. After specific problems have been selected, direct student teams to follow the software/systems design process steps as they develop Android apps using App Inventor that solve their Mars exploration problems. The design process consists of five steps: problem analysis, creating a design, implementation of the design, testing the design and evolution of the design. Groups must complete at least one full cycle of the design process.
  4. During the design process, have students use and complete the worksheet to organize the process (and to be handed in). Remind them to use the rubric as a guide throughout the design process.
  5. Conduct the testing using a LEGO MINDSTORMS EV3 robot. To run a test, each group loads the app on an Android device using App inventor and then attempts to control the robot using the app.
  6. To conclude the activity, have each group present their app to the class to show how it controls the robot. Depending on the time available, this can serve as the testing phase of the design process or can be done after each group has already had time to test and revise their applications.


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

App Inventor: Software program developed by MIT that enables Android apps to be created using building blocks without having to actually know a programming language.

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

evolution: A step in the software design process in which 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 in which a design is put into practice.

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

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


Pre-Activity Assessment

Design Process: Review the steps of the software/system design process with students. Ask them to list the steps and how they can be applied to this type of activity. (Teacher notes: The design process consists of five steps: problem analysis, creating a design, implementation of the design, testing the design and evolution of the design. Students should explain how to complete at least one cycle of the design process. Remind students that the design process is circular and is never fully completed, as designs can always be improved.)

Activity Embedded Assessment

Observations: As students are engaged in their application design, observe them and take notes that address the following questions:

  • Are students consciously following the design process steps?
  • Have they chosen one problem to solve?
  • Do they understand the problem they chose to solve?
  • Were they able to devise a plan to solve the problem?
  • Did they carry out their planned design?
  • Were students able to use App Inventor to solve the problem?

Post-Activity Assessment

App Evaluation: Assess and grade each group's app design and completed Technological Design Process Worksheet by using the Mars Rover App Rubric. The rubric provides guidance on how to grade the app design based on its science content, elements, process, function and creativity.

Activity Extensions

Have students create a second app that addresses another problem that the Curiosity rover might encounter. This app should have the same requirements and can be assessed and graded with the same rubric.


Rich Powers, Brian Sandall


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

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: August 28, 2019


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