Students prepare for the associated activity in which they investigate acceleration by collecting acceleration vs. time data using the accelerometer of a sliding Android device. Based on the experimental set-up for the activity, students form hypotheses about the acceleration of the device. Students will investigate how the force on the device changes according to Newton's Second Law. Different types of acceleration, including average, instantaneous and constant acceleration, are introduced. Acceleration and force is described mathematically and in terms of processes and applications.
In the first of two sequential lessons, students create mobile apps that collect data from an Android device's accelerometer and then store that data to a database. This lesson provides practice with MIT's App Inventor software and culminates with students writing their own apps for measuring acceleration. In the second lesson, students are given an app for an Android device, which measures acceleration. They investigate acceleration by collecting acceleration vs. time data using the accelerometer of a sliding Android device. Then they use the data to create velocity vs. time graphs and approximate the maximum velocity of the device.
Students develop an app for an Android device that utilizes its built-in internal sensors, specifically the accelerometer. The goal of this activity is to teach programming design and skills using MIT's App Inventor software (free to download from the Internet) as the vehicle for learning. The activity should be exciting for students who are interested in applying what they learn to writing other applications for Android devices. Students learn the steps of the engineering design process as they identify the problem, develop solutions, select and implement a possible solution, test the solution and redesign, as needed, to accomplish the design requirements.
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.)
Testing is critical to any design, whether the creation of new software or a bridge across a wide river. Despite risking the quality of the design, the testing stage is often hurried in order to get products to market. In this lesson, students focus on the testing phase of the software/systems design process. They start by exploring existing examples of program testing using the CodingBat website, which contains a series of problems and challenges that students solve using the Java programming language. Working in teams, students practice writing test cases for other groups' code, and then write test cases for a program before writing the program itself.
Students conduct an experiment to study the acceleration of a mobile Android device. During the experiment, they run an application created with MIT's App Inventor that monitors linear acceleration in one-dimension. Students use an acceleration vs. time equation to construct an approximate velocity vs. time graph. Students will understand the relationship between the object's mass and acceleration and how that relates to the force applied to the object, which is Newton's second law of motion.
Students design and create flow charts for the MIT App Inventor tutorials in this computer science activity about program analysis. In program analysis, which is based on determining the behavior of computer programs, flow charts are an important tool for tracing control flow. Control flow is a graphical representation of the logic present in a program and how the program works. Students work through tutorials, design and create flow charts about how the tutorials function, and present their findings to the class. In their final assessment, they create an additional flow chart for an advanced App Inventor tutorial. This activity prepares students with the knowledge and skills to use App Inventor in the future to design and create Android applications.
In this open-ended, hands-on activity that provides practice in engineering data analysis, students are given gait signature metric (GSM) data for known people types (adults and children). Working in teams, they analyze the data and develop models that they believe represent the data. They test their models against similar, but unknown (to the students) data to see how accurate their models are in predicting adult vs. child human subjects given known GSM data. They manipulate and graph data in ExcelÂ® to conduct their analyses.
Student teams use sensorsâmotion detectors and accelerometersâto collect walking gait data from group members. They import their collected position and acceleration data into ExcelÂ® for graphing and analysis to discover the relationships between position, velocity and acceleration in the walking gaits. Then they apply their understanding of slopes of secant lines and Riemann sums to generate and graph additional data. These activities provide practice in the data collection and analysis of systems, similar to the work of real-world engineers.
Students use graph theory to create social graphs for their own social networks and apply what learn to create a graph representing the social dynamics found in a dramatic text. Students then derive meaning based on what they know about the text from the graphs they created. Students learn graph theory vocabulary, as well as engineering applications of graph theory.
Students analyze their social networks using graph theory. They gather data on their own social relationships, either from Facebook interactions or the interactions they have throughout the course of a day, recording it in Microsoft Excel and using Cytoscape (a free, downloadable application) to generate social network graphs that visually illustrate the key persons (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 are people in students' social networks). After the analysis, the graphs are further examined to see what can be learned from the visual representation. 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 simulate disease transmission by collecting data based on their proximity to other students. One option for measuring proximity is by having Bluetooth devices "discover" each other. After data is collected, students apply graph theory to analyze it, and summarize their data and findings in lab report format. Students learn real-world engineering applications of graph theory and see how numerous instances of real-world relationships can be more thoroughly understood by applying graph theory. Also, by applying graph theory the students are able to come up with possible solutions to limit the spread of disease. The activity is intended to be part of a computer science curriculum and knowledge of the Java programming language is required. To complete the activity, a computer with Java installed and appropriate editing software is needed.
Gait analysis is the study of human motion that can be utilized as biometric information or identification, for medical diagnostics or for comparative biomechanics. In this activity, students observe walking human subjects and then discuss parameters that could be used to characterize walking gaits. They use accelerometers to collect and graph acceleration vs. time data that can help in gait analysisâall part of practicing the engineering data analysis process. Students complete this activity before learning the material presented in the associated lesson.
Students apply the design process to the problem of hiding a message in a digital image using steganographic methods, a PictureEdit Java class, and API (provided as an attachment). They identify the problems and limitations associated with this task, brainstorm solutions, select a solution, and implement it. Once their messages are hidden, classmates attempt to decipher them. Based on the outcome of the testing phase, students refine and improve their solutions.
Graph theory is a visual way to represent relationships between objects. One of the simplest uses of graph theory is a family tree that shows how different people are related. Another application is social networks like Facebook, where a network of "friends" and their "friends" can be represented using graphs. Students learn and apply concepts and methods of graph theory to analyze data for different relationships such as friendships and physical proximity. They are asked about relationships between people and how those relationships can be illustrated. As part of the lesson, students are challenged to find the social graph of their friends. This prepares students for the associated activity during which they simulate and analyze the spread of disease using graph theory by assuming close proximity to an infected individual causes the disease to spread.
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(TM) NXT robots, simulating the difficulties the Curiosity rover could encounter. The activity goal is to teach students programming design and programming skills using MIT's App Inventor software as the vehicle for the learning. The (free to download) App Inventor program enables Android apps to be created using building blocks without having to actually know a programming language. At activity end, students are ready to apply what they learn to write other applications for Android devices.
Students observe four different classroom setups with objects in motion (using toy cars, a ball on an incline, and a dynamics cart). At the first observation of each scenario, students sketch predicted position vs. time and velocity vs. time graphs. Then the classroom scenarios are conducted again with a motion detector and accompanying tools to produce position vs. time and velocity vs. time graphs for each scenario. Students compare their predictions with the graphs generated by technology and discuss their findings. This lesson requires assorted classroom supplies, as well as motion detector technology.
Students analyze a cartoon of a Rube Goldberg machine and a Python programming language script to practice engineering analysis. In both cases, they study the examples to determine how the different systems operate and the function of each component. This exercise in juxtaposition enables students to see the parallels between a more traditional mechanical engineering design and computer programming. Students also gain practice in analyzing two very different systems to fully understand how they work, similar to how engineers analyze systems and determine how they function and how changes to the system might affect the system.
Working in small groups, students complete and run functioning Python codes. They begin by determining the missing commands in a sample piece of Python code that doubles all the elements of a given input and sums the resulting values. Then students modify more advanced Python code, which numerically computes the slope of a tangent line by finding the slopes of progressively closer secant lines; to this code they add explanatory comments to describe the function of each line of code. This requires students to understand the logic employed in the Python code. Finally, students make modifications to the code in order to find the slopes of tangents to a variety of functions.
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.