Teach Engineering Home Page
Login |Your Account


Lesson: Storing Android Accelerometer Data: App Design

Contributed by: IMPART RET Program, College of Information Science & Technology, University of Nebraska-Omaha
Photo shows three different Android devices that can be used in the activity: Nexus 4, Nexus 10 and Nexus 7.
Engineers use computer science knowledge to develop Android devices.

Summary

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 a working knowledge of basic programming and App Inventor to complete this lesson. This lesson is not an introduction to MIT's App Inventor and is not recommended for use without prior knowledge of App Inventor to produce an end product. This lesson is an application for App Inventor that allows for the storage of persistent data (data that remains in memory even if an app is closed). This required prior knowledge can come from other experiences with the App Inventor. Also, many additional resources are available, such as tutorials from MIT. This lesson could also be used as an enrichment project for students who are self-motivated to learn the App Inventor software.

Engineering Connection

Engineering design

Together with its associated activity, this lesson is designed to provide students with practice in implementing the engineering design process. Students identify a problem, develop solutions, select and implement the most promising solution, test their solutions and redesign as needed to meet the requirements. The process is driven by the challenge in which students are tasked to create an Android application that performs a specific function. Software engineers employ the design process to create software, such as business software, communication software, compilers, and computer graphics. Ultimately, students plan what the application will do, decide what it looks like, decide how to structure the software, test, and edit to ensure the app works correctly. Students act as software engineers in this hands-on application of the engineering design process.

Contents

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

Grade Level: 11 (9-12) Lessons in this Unit: 12
Time Required: 120 minutes
The time required is based on students having working knowledge of MIT's App Inventor, acquired BEFORE this lesson.
Lesson Dependency :None
Keywords: accelerometer, Android, Android application, App Inventor, application, computer programming, MIT, mobile application, programming
My Rating:
Avg Rating:
 5 stars by 1 user
Teacher Experiences  |  Share your experience!

Related Curriculum

subject areas Data Analysis and Probability
Physics
Computer Science
curricular units Android Acceleration Application
activities Android App Development

Educational Standards :    

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

Pre-Req Knowledge (Return to Contents)

To conduct this lesson, the teacher must have a working knowledge of MIT's App Inventor software. This software enables users to create, simulate and build Android applications that can be used on Android devices. This lesson is ideal for a computer programming environment or a setting in which students want to push the envelope of the typical curriculum. Students are required to think logically and sequentially.

Learning Objectives (Return to Contents)

After this lesson, students should be able to:
  • Explain how the TinyDB in App Inventor can store data from an Android device.
  • Describe and compare each step in the software/system design process with the engineering design process.

Introduction/Motivation (Return to Contents)

(Be ready to show students a 12-minute online tutorial.)
In this lesson and its associated activity, you will get to do "real" engineering. Engineers use a cyclical design process to arrive at the best possible solution to a problem. You will plan what an Android application for a mobile device will do, decide what it looks like, decide how to structure the software, as well as test and edit to ensure the app works correctly.
The writing of applications for Android devices is commonplace in today's society. A growing number of "smart phones" have the capability to be much more than communication devices. In fact, these devices are really mini-computers. A user interface such as MIT's App Inventor can enable you to create your own applications for Android devices. This lesson is a specific use of the App Inventor software that lets you use one of the sensors in a smart phone, the accelerometer, to store collected data for later use. This lesson is far more than a computer science experiment or science lab. While the skills that you will learn through exploring and using App Inventor will be fun and educational, they also will provide you with the ability to use your own smart phone in unique ways.
We begin by exploring a user interface developed by MIT to create applications for Android devices. To learn about this application, named App Inventor, we will watch a tutorial on how the App Inventor software works and then explore the possibilities of the App Inventor software. In the activity that follows, you will write an app that stores persistent data in a database on the local device. Possible uses of the App Inventor tools will be the focus of a class discussion after watching the tutorial. (Show the App Inventor tutorial to the class by following the link: http://www.youtube.com/watch?v=Iq9KkAbhxQg.)
Now that we have viewed the tutorial, let's cover a few main points. (Ask students the following questions to stimulate a class discussion.)
  • Describe the tasks that can be done by the tutorial application. (Answer: The application can show graphics, take user input, and store data.)
  • What is the purpose of the TinyDB (tiny database)? (Answer: Using the database allows data to be persistent. This means the data stays in the memory even if the app is closed.)
  • Describe how to retrieve data once it has been stored in a database. (Answer: Every entry in the database has a specific tag, usually a number or letter. By sending the tag name to the database, it knows which piece of data to send back.)
  • What kind of applications could we construct using these same tools? (Answers will vary. Example answer: Applications that store information such as directions for finding a parked car, locker combinations, phone numbers, and important dates.)

Lesson Background & Concepts for Teachers (Return to Contents)

The focus of this lesson is not really about writing the app, although that is the measurable end product. The lesson is meant to allow students to gain experience with the engineering design process. Students are exposed to this process and implement it to solve the problem of writing a mobile Android application that measures a device's acceleration and stores that data for future use.
Introduce students to the engineering design process and the software development life cycle (or review these topics if students are already familiar with them). Figure 1 shows the software development life cycle; Figure 2 shows the steps of the engineering design process. Notice the similarities.
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 steps of the software development life cycle.
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 steps of the engineering design process.
The software development life cycle 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. In both cases, this is the time when the project goal is identified. 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?" are answered at this stage.
Once the goal is clearly defined, as well as additional constraints or requirements, the next phase in the software development life cycle 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 often 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 phase in the software development life cycle 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 the testing results, the cycle is repeated (an iteration) as many times as necessary to satisfy the overall project goal.
This lesson is designed for use in a programming or other technology class in which the focus is on students programming. It can be used as an experience with the App Inventor software to create a database that stores persistent data. In a follow-up lesson, Android Acceleration, students can utilize the applications that they create to explore the relationship between acceleration and velocity.
Refer students to the MIT App Inventor website (http://appinventor.mit.edu/explore/) for tutorials and curricula to work though to gain knowledge of how to use the App Inventor.
Tutorials for getting started, installing app inventor and practice projects: http://appinventor.mit.edu/explore/learn.html

Vocabulary/Definitions (Return to Contents)

accelerometer: A sensor that measures the acceleration of an object.
persistent data: Data that remains accessible for later use even after the application that created it closes and stops functioning.
TinyDB: A database on an Android device that can be used to store persistent data.

Associated Activities (Return to Contents)

  • Android App Development - Students apply the engineering (software/system) design process to plan, develop and test mobile apps. The app they design uses the TinyDB on an Android device to store persistent data for later use. The activity focuses on the creation of a software program, but the underlying goal is to provide students with experience and practice in applying a design process to accomplish a goal.

Pre-Lesson Assessment

Use the following prompts to have students write or discuss the topic.
  • Describe what you know about the engineering design/software design process. (Answer: It is a cyclical and iterative process that helps to accomplish a task/goal. It includes numerous steps: analysis of the problem, design of a solution, implementation of the design, testing of the design, and possible revisions, refinements and/or extensions of the design.)
  • How can you apply a design process specifically to writing a mobile Android app? (The design process can be applied to many situations including the creation of mobile apps. First, you identify the specific problem you want to address. Next, you develop some possible solutions and implement the most promising one. Then, you thoroughly test your implementation to see if it functions correctly. Finally, you make any revisons and refinements to the implementation.)

Post-Lesson Assessment

Have students complete the writing prompt found on Storing Android Accelerometer Data: App Design Assessment. This worksheet presents students with a screenshot of sample App Inventor code that that controls two buttons. The prompt asks students to explain what happens when each button is clicked and how it works. Assign this post-lesson assessment after students have completed the associated Android App Development activity, as students work with the code displayed in the screenshot during the process of developing their apps.

Contributors

Scott Burns, 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 24, 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.