SummaryStudents 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.)
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.
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.
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).
More Curriculum Like This
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. NOTE: Teachers and students must have...
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...
In computer science, program analysis is used to determine the behavior of computer programs. Flow charts are an important tool for understanding how programs work by tracing control flow. Control flow is a graphical representation of the logic present in the program. In this lesson, students learn ...
Students modify a provided App Inventor code to design their own diseases. This serves as the evolution step in the software/systems design process. The activity is essentially a mini design cycle in which students are challenged to design a solution to the modification, implement and test it using ...
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.
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.
- 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) Details... View more aligned curriculum... Do you agree with this alignment? Thanks for your feedback!
- Established design principles are used to evaluate existing designs, to collect data, and to guide the design process. (Grades 9 - 12) Details... View more aligned curriculum... Do you agree with this alignment? Thanks for your feedback!
- 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) Details... View more aligned curriculum... Do you agree with this alignment? Thanks for your feedback!
- Creativity, imagination, and a good knowledge base are all required in the work of science and engineering. (Grades 9 - 12) Details... View more aligned curriculum... Do you agree with this alignment? Thanks for your feedback!
- 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) Details... View more aligned curriculum... Do you agree with this alignment? Thanks for your feedback!
(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 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.)
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 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 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/.
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.
- 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.
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
Forward 1 square
Forward 3 squares
Forward 2.5 squares
Forward .75 squares
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) for $379.95 at https://education.lego.com/en-us/products/lego-mindstorms-education-ev3-core-set-/5003400 (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.
ContributorsRich Powers, Brian Sandall
Copyright© 2013 by Regents of the University of Colorado; original © 2012 Board of Regents, University of Nebraska
Supporting ProgramIMPART 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: November 5, 2016