What can programming skills add to your science class?
First of all, being able to let the students program simulations and animations is something new in K12 science teaching. In the view of traditional science classes it is a new way for the students to show their understanding of the subject material and a new level of working with models and relations.
This is a new possibility for the student who has difficulties to express herself orally. Now she can code an animation and use it as a base to explain her understanding.
Programming is more demanding than just repeating the textbook. E.g. if you want to program an animation to show the movement of a ball in free fall, you have to have a certain level of understanding of the subject. Otherwise you will not be able to transfer it to your coding.
Programming animations could be an extra challenge for the skilled / talented students. They can be told to include different relevant parameters.
The programming activity itself can be a way to "dig" deeper into the understanding of the subject material during the learning process. Playing around with the different parameters while coding, you instantly see, how the changes influence the result e.g. the movement of a ball.
If the students work together they can discuss and in that way become even more detailed in their understanding and communication.
As a teacher you will be able to create the animations you otherwise often spend time to search for on the web. Or you can even improve the ones you´ve already found.
Furthermore, a greater part of those students whom later on select a scientific or technical study will have to learn to program in languages like Python or Java, it will be a great advantage to be familiar with the logic of programming.
On top of that, working with programming facilitates a mindset for problem solving and analysis. A mindset that will support the understanding of the scientific method.
Have a look at this article from The Hechinger Report:
"How one school district works computational thinking into every grade and class"
A few examples of how to use programming in K12 physics
For this blog post I have coded two different animations to illustrate the free fall.
The first example is designed as if it had created by a student who has understood the acceleration of gravity is different on Earth than Moon, and how this difference influences the apple's movement.
Press the green flag to start. When the apple stops, press the green flag again to make a new choice.
The next example, I imagine, is coded by a more skilled student, so he is expected to include the mathematics of the motion. It could end up as this bid, where the velocity, time and distance have to be calculated by the program.
I'm not the greatest programming nerd myself. But I personally think programming provides new options and tools in teaching. If you are a total beginner, Hour of code a good place to start. More about that below.
First, I would like to you show an example of how a more hardcore programmer has simulated a simple harmonic motion in Scratch.
And here's a fourth Scratch example. This one created by a real student. Here we are in the world of biology.
Getting started with programming. How?
At the K12 level, we can get quite far with the programming just by teaching our students how to code in Scratch.
Scratch is a free, online resource developed and made available by MIT (Massachusetts Institute of Technology). It's a very visual way to work with programming. You build the code with colored blocks as shown at the picture below.
For this very reason Scratch is also a part of CS50x, which is a popular, free online course about introduction to computer science from Harvard University.
In module 1, the students code in Scratch. In the second module they bring the achieved logic of programming from Scratch into the C programming language
CS50x's charismatic and very popular lecturer David J. Malan has achieved cult status in certain online circles. Here is his intro video to the course.
If you and your students have never tried programming, the Hour of Code is an undramatic place to start.
It is the website of a worldwide event trying to involve as many school children as possible to get acquainted with the logic behind computer coding. Here you find code activities for beginners. Easy and engaging lessons in popular universes such as Star Wars (my absolute favorite), Frozen and Minecraft. It's very, very easy to use for both children and adults. I've done it with students down to the age of 6.
In the lessons of Hour of code you work with the same blocks, which are used in Scratch, therefore the website is suitable as an introduction to further programming.
When you get started with Scratch, there's plenty of help available from the other users productions. And I would clearly recommend taking the first module of CS50x if you want to get more help to get into Scratch.
If you would like to continue into real programming language, there are plenty of free qualified courses online. Here is a list of a few suggestions for sites with good ressources:
- Udacity
- Khan Academy
- Edx (where CS50x can be found)
- Coursera
- European Schoolnet (Thanks to Joan Biering for the link)