DATA AND ANALYSES

     There are two key ideas in this strand.  The first has to do with data - observing, collecting, and manipulating.  The second has to do with creating visualization, simulations, and models that illustrate a particular concept.  The most challenging aspect of the second idea adds in elements of the first point by having students developing and testing models using data they have generated/collected.
 
DATA

     While there are many ways to interact with data using computers (spreadsheets, Google Forms, Vernier and Pasco sensors) it's a bit harder to find methods for combining data and programming.  To summarize the requirements for the grade levels (starting with Grade 3 where the use of computers is required for this task):
Gr. 3 - Answer questions by observing data in order for the student to draw conclusions and make predictions.
Gr. 4 - Answer questions by using a computer to manipulate data in order for the student to draw conclusions and make predictions.
Gr. 5 - Answer a question by using a computer to manipulate data in order for the student to draw conclusions and make predictions.
     So, grades 3-5 focus on observing and manipulating data, for a purpose.  While it's certainly possible to develop programs that would help students accomplish these tasks, it might be much more efficient and much easier to have students use existing tools (spreadsheets for example) to do this.
Gr. 6 - Collect data using computational tools then clean and organize to make it more useful and reliable.
     This is the point where programming might be meaningfully integrated.  Computer-based data collection tools do exist and don't have to be programmed, but this is an excellent opportunity for students to develop and use CS standard-mandated skills.  Two tools come to mind, the Microbit and the Arduino, both briefly introduced on the Definitions page of this site and discussed in more detail, with sample projects, below.
Gr. 7 and Gr. 8 - The CS standards for 7 and 8 begin to focus more on evaluating the models and simulations generated by collected data.  For example, 7.9 says the student will "refine computational models based on the data they have generated."   The hardware discussed below will provide numerous opportunities for data collection using systems developed by the student. 

Microbit
     As noted, the Microbit can be programmed in a Scratch-like language (Makecode) or in Python.  For input you have two buttons, a compass, an accelerometer, a temperature sensor, and a light sensor.  There are also kits produced by Sparkfun.com that add the ability to collect weather data and soil moisture.  Output is available through the 5 x 5 led matrix on the front of the board or can be sent to a micro SD card for downloading to a computer.  Here's a very simple example for generating non-numeric data (https://microbit.org/projects/make-it-code-it/sunlight-sensor/).  The code would look like this:


For this program, if a bright level (>100 in this case) is present, an image of the sun appears on the led screen.
     A more complex project is this program for collecting wind speed and wind direction, using Sparkfun.com's climate lab kit for the Microbit (https://learn.sparkfun.com/tutorials/microclimate-kit-experiment-guide/experiment-5-reading-the-wind-direction-and-speed)


     Both these examples show the Makecode version of the program.  Clicking the Javascript tab at the top of the screen will show you the Java version.
     The Microbit is an excellent tool for coding and for collecting data using student-coded programs.  It's inexpensive (about $16.00) and has a great online interface.  Students can code at many different levels, from simple output to the led matrix to much more complicated data collection programs.  Some websites for finding out more about the Microbit and how to use it:

https://microbit.org/get-started/user-guide/overview/

https://microbit.org/get-started/user-guide/features-in-depth/

https://makecode.microbit.org/courses/ucp-science/data-collection

https://docs.google.com/document/d/13Mi6caoelyzgch6tUj-wlw0bmgS7ikGEwYR2a37mEww/edit#heading=h.psmccwuvnuvx

https://microbit.org/projects/design-challenges/

Arduino/Snapino
     The Arduino, as mentioned in the Definitions section, is extremely versatile.  It's an inexpensive ($25 - $35) microcontroller with the ability to connect a very large number of input and output devices.  The Arduino runs a set of C/C++ instructions and can be programmed using the free Arduino development environment.
     The Arduino is extremely popular and there are many resources for those who want to learn how to program and develop uses and applications that include the board.  There are video tutorials, books, online support, and a lot of free code.  It was designed for the do-it-yourself hacker and people have used it for a wide array of projects from those that include a light sensor and an led to those that can access the internet and report on anything from weather to the state of your refrigerator.  With such a huge array of components and resources it's hard to know how to start using this in a non-computer science classroom.  There are some simple ways to begin.  The online electronics company, Sparkfun, is a good start.  They sell kits that include an arduino, several electronic components, an excellent guide with several projects illustrated, demonstrated, and clearly described, with instructions for downloading the Arduino software and lots of sample programs included.  The Inventor's Kit,  https://www.sparkfun.com/products/15631 is great for beginners.  Here's a sample project:

Circuit 3B: Distance Sensor
Distance sensors are amazing tools with all kinds of uses. They can sense the presence of an object, they can be used in experiments to calculate speed and acceleration, and they can be used in robotics to avoid obstacles. This circuit will walk you through the basics of using an ultrasonic distance sensor, which measures distance using sound waves!

Here's how the program looks in the Arduino software environment (IDE):



     One problem is that the Arduino does so much and there are so many possible projects, it's a bit intimidating.  For younger or newer programmers, a good introduction to the Arduino is through the Snapino Snap Circuits kit.
     The Snapino links Snap Circuits components to an Arduino.  The set is relatively inexpensive (about $50.00) and is available on Amazon.com. The Arduino is mounted on a Snap Circuits adapter and can easily be plugged into any Snap Circuits project.    An Arduino board and several Snap Circuits blocks, including a light sensor, are included.
     The project below, taken from the Snap Circuits manual included with the kit, is for a simple light monitor.  The manual provides clear, helpful instructions for building the circuit, downloading the software, and running the program.  The program and the circuit setup are well-documented.  And, since students have access to the program and the environment, they can easily change the program, add instructions, or write their own code using the provided program as an example.
   




VISUALIZATIONS, MODELS, AND SIMULATIONS

          A quick review of the terms: a visualization is a graphic or solid representation of some concept or process, a model is an attempt, based on collected data, to replicate some phenomenon (usually for the purpose of prediction), and a simulation is the process of running or executing that model, often with the ability to interactively change factors to see the results of the change.  For example, I might be studying the life cycle of a butterfly.  A visualization of the cycle would show, with annotations, a graphic representation of the process by which an egg changes into a caterpillar, the chrysalis, and then the emergence of the butterfly.  I could do this with animation, narration, graphics, plastic models, and additional text.  To develop a model of this process, I might collect data concerning various factors that might affect the process: location of the egg, how many eggs there are, weather, length of time for the different stages, and so on.  I would also try to determine the relative importance of the various factors.  Part of the model might be an equation I develop that describes the relationship of the variables. For example - my model might attempt to predict what percent of eggs will produce butterflies.  It might look something like: Butterflies = a - (b +3/5) x c/100, where a would be number of eggs, b the number of rainy days, and c, a factor for the kind of leaf.  (Note: this is entirely made up and in no way reflects reality!)  For my simulation, I might have people run the equation, letting them put in different values for a, b, and c, to see the results.  A sophisticated simulation would include some visual representation of the process and how it changes as the values for the factors change.

NOTE:  I'll be focusing on Scratch in this section.  It would be very helpful at this point to have a Scratch account.  You can look at all the examples without signing up, but having an account will give you the ability to copy much of the code in the example projects into your own project.  Scratch programs are usually meant to be shared and a great way to learn is to borrow someone else's code and modify it (It's a good habit to give the original programmer some credit if you publish your own programs).  If you are logged into your account and you're looking at an example project, you can drag code into a space at the bottom of the page called the backpack.  When you start your project, you can drag the code from the backpack to your screen.

Visualizations
     If you've looked at the sections of this website describing the block-based programming language Scratch (and Scratch Jr) you can see that it provides an excellent choice for developing visualizations using programming.  You can make use of animation, interactivity, text, sound, and dialogue to produce visual representation of natural phenomena, historical events, and even aspects of literacy using Google's CSFirst.  Here are a couple of examples of visualizations of natural cycles produced by students (remember you can see the Scratch code by clicking the See Inside button):

 - Life Cycle of A Frog

- The Rock Cycle

Models and Simulations
     Building models in Scratch is a bit more challenging in that it involves the use of mathematics.  In Scratch that involves the commands under the green Operators button and the dark orange Variables button.  It might sound a bit intimidating, but it's not that difficult.  Take a look at a couple of youtube videos (or do your own search on youtube to find one that might be more helpful) to help you get started with these concepts:

     How might these things go together to build a model?  Here's a screen capture from a Scratch program modelling some mechanics of bike riding (https://scratch.mit.edu/projects/143532340/):


     
     This program includes a visualization, a model, and a simulation - all of the same process, riding a bike.  The author, using the dark orange Variables commands, has built a model of bike riding by creating a number of variables such as angle, radius, hipx and hipy.  The variables are set in the program so that as new values for the variables are entered by the user, with the slider bars, the visualization of the rider and the bike shows the real time result of those changes.  Which makes this a simulation.  In this screen we're looking at the Pedal sprite - it's highlighted.  Click on the Hip sprite to see that programming as well.
     The program looks complicated but most of the commands are re-drawing commands.  The basic operation in the program is taking the value for the four variables from the user, then using move commands with pen down and pen up to draw the new configuration.
     A good way to learn more about how these programs are designed is to take a look at some examples, click See Inside, and try to figure out how the programs work.  Look for the different variables and see how they are changed by user input (space bar, arrows, sliders.)  Here are a couple that I found by going to the Scratch site and entering "science simulations" in the search field.
Gravity on different planets - https://scratch.mit.edu/projects/16165865/editor/
     And here's a good intro to modeling in mathematics:










Comments

Popular posts from this blog

PURPOSE

MICROBIT EXAMPLE

COMPUTATIONAL THINKING FICTION BOOKS