Teach Engineering Home Page
Login |Your Account


Lesson: Curiosity Killed the App

Contributed by: IMPART RET Program, College of Information Science & Technology, University of Nebraska-Omaha
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.

Summary

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 NXT base set.)

Engineering Connection

Engineering design

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, develop solutions, select and implement a possible solution, test their solution and redesign as needed to meet the requirements.

Contents

  1. Pre-Req Knowledge
  2. Learning Objectives
  3. Introduction/Motivation
  4. Background
  5. Vocabulary
  6. Associated Activities
  7. Attachments
  8. Assessment
  9. Multimedia

Grade Level: 8 (7-9) Lesson #: 1 of 1
Time Required: 75 minutes
Lesson Dependency :Program Analysis using App Inventor, Flow Charting App Inventor Tutorials
Keywords: Android app, Android device, application, computer science, Curiosity rover, simulation, software design
My Rating:
Avg Rating:
Not Yet Rated.
Teacher Experiences  |  Share your experience!

Related Curriculum

subject areas Computer Science
activities Mars Rover App Creation

Educational Standards :    

  •   International Technology and Engineering Educators Association: Technology
  •   National Science Education Standards: Science
Does this curriculum meet my state's standards?       

Pre-Req Knowledge (Return to Contents)

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.

Learning Objectives (Return to Contents)

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

Introduction/Motivation (Return to Contents)

(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 engineering 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.
A circular diagram shows the steps of the engineering design process: 1) identify the problem, 2) identify criteria and constraints, 3) brainstorm possible solutions, 4) generate ideas, 5) explore possibilities, 6) select an approach, 7) build a model or prototype, 8) refine the design. After step 8, the cycle continues to step 1.
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.
(Hand each student a copy of the Curiosity Killed the App Questions.)
First, you will browse the NASA Curiosity rover website, http://www.nasa.gov/mission_pages/msl/multimedia/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 NXT 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 NXT 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 NXT 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.
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.

Lesson Background & Concepts for Teachers (Return to Contents)

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 Brainstorm Possible Solutions, Generate Ideas, Explore Possibilities, and Select an Approach 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 Build a Model or 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 Refine the Design stage 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 http://appinventor.mit.edu/teach/.

Vocabulary/Definitions (Return to Contents)

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.

Associated Activities (Return to Contents)

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

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
Stop

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 (Return to Contents)

Note: This activity requires a LEGO MINDSTORMS Education NXT Base Set, available for $294.95 at (Bad Link http://www.legoeducation.us/eng/product/lego_mindstorms_education_nxt_base_set/2095) and an Android mobile device with the Curiosity Killed the App Rover Sim app installed.

Contributors

Rich Powers, Brian Sandall

Copyright

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

Supporting Program (Return to Contents)

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

Acknowledgements (Return to Contents)

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: July 23, 2014
K12 engineering curriculum K-12 engineering curricula K12 engineering curricula K-12 engineering activities K12 engineering activities K-12 engineering lessons K12 engineering lessons Engineering for children Engineering activities for children K-12 science activities K12 science activities K-12 science lessons K12 science lessons K12 engineering K-12 engineering K-12 engineering education K12 engineering education Are you a bot?
Use of the TeachEngineering digital library and this website constitutes acceptance of our Terms of Use and Privacy Policy.