Lesson: Curiosity Killed the AppContributed by: IMPART RET Program, College of Information Science & Technology, University of Nebraska-Omaha
Educational 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:
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!
(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.)
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.
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)
Associated Activities (Return to Contents)
Attachments (Return to Contents)
Assessment (Return to Contents)
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.
Lesson Embedded Assessment
Observations: As students are engaged in the lesson, make observation that address the following questions:
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
Forward 1 square
Forward 3 squares
Forward 2.5 squares
Forward .75 squares
Writing Wrap-Up: Have students answer the following writing prompts:
Additional Multimedia Support (Return to Contents)
ContributorsRich 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.