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.
Students gain experience using the software/systems (engineering) design process, specifically focusing on the testing phase. This problem-based learning activity uses the design process to solve open-ended challenges. In addition to learning about test cases for testing software, students utilize the design process as a vehicle to work through a problem and arrive at a solution.
JUnit is a testing method that is included with NetBeans (Java) installs or can be downloaded from the web and included in the Java build. In this activity, students design tests for a provided Java class before the class methods are constructed using a process called test-driven development. To create a design, the software/system design process, which is a specific case of the engineering design process, is followed. After students create a design, it is implemented and tested and if necessary, the design undergoes editing to make sure it functions by testing the Java class correctly. To conclude the activity, students write the methods in the Java class using their tests to debug the program.
Students analyze dramatic works using graph theory. They gather data, record it in Microsoft Excel and use Cytoscape (a free, downloadable application) to generate graphs that visually illustrate the key characters (nodes) and connections between them (edges). The nodes in the Cytoscape graphs are color-coded and sized according to the importance of the node (in this activity nodes represent characters in the work and their relative importance to the story). After the analysis, the graphs are further examined to see what the visual depiction of the story in the form of a graph tells readers about the inner workings of the dramatic work. Students gain practice with graph theory vocabulary, including node, edge, betweeness centrality and degree on interaction, and learn about a range of engineering applications of graph theory.
Students focus on the testing phase of the design process by considering how they have tested computer programs in the past and learning about a new method called JUnit to test programs in the future. JUnit is a testing method that is included with NetBeans (Java) installs or can be downloaded from the web and included in the Java build. Students design tests using JUnit and implement those tests.
After students have complete the associated activity to collect and graph acceleration data from walking human subjects, they learn more about gait analysis---the study of human motion, which is used as biometric data for human medical diagnostics and (non-human) comparative biomechanics. They learn about the steps that comprise the universal process of engineering analysisâdata collection, data analysis, mathematical modeling and reportingâand consider how these steps could be applied to analyze a person's gait, which prepares them to conduct the second associated activity.