Programming in the physics curriculum


HandiHow is developing curricula for programming with Python in the classroom. We have started with the third year of secondary school, on the basis of the method NOVA for physics.

The curriculum is 7 - 8 weeks, where there are two lessons per week with the class. There is a theoretical lesson about forces and motion and then a programming lesson.

The subject is "Force and Motion". The students are first gaining theoretical knowledge about the subject and basic skills about Python programming.

In the Python exercises, physical problems will be solved that reflect on the theoretical lesson. At the end of the course there are assignments that need to be completed so the students can get grades for the programming class.


We are using skill trees for the theoretical and programming parts of the course. Skill trees allow us to differentiate in the classroom. Students keep control over their progress and the teacher marks skills as completed every time the students have made a good exercise.

Programming physical models offers a lot of possibilities to do meaningful exercises and at the same time gain experience with programming.

The skill tree "Forces and Motion" and all exercises are made available by HandiHow and are of challenging level. Also all programming exercises have a teacher guide and there are presentations for every lesson.

HandiHow also has developed the SkillTree web application where every student will get their own digital skill tree. The teacher can keep overview of the progress of the class and each student. Our experience is that students like working with skill trees and are enthusiastic about programming.

SkillTree web application
Skill tree Force and Motion

Python programming environment

Students are programming in Jupyter notebooks. This can be done in an online environment such as Google Colaboratory. Als there are instructions in the Jupyter notebooks.

The nice thing about these notebooks, is that you can change between text and code blocks. Like this, you can create instructions and alternate with code blocks. Students can describe their project in clear text blocks and you don't have to search through difficult to read comments in the code.

You can execute code by pushing the play button. You see the results of the calculation. We make use of libraries such as Matplotlib to create diagrams of motion, for example velocity or acceleration over time diagrams.

At the end of the course we go from the notebooks to Glowscript. This is an online environment where the 3D simulation tool VPython is available. With this library, students can create 3D objects such as spheres, for example to create planets.

VPython Simulation

Langrange points can offer a steady position for small object such as space stations relative to two celestial objects. The position is, depending on the Lagrange point, more or less stable.

The code is written in Python and uses the VPython library to graphically represent celestial bodies in three dimensions.

Here is a simulation of the sun (yellow) and Jupiter (blue). On the L-4 and L-5 points of Jupiter, there are planetoids called Trojans. In march 2003 there were already 1560 known Trojans.

HandiHow service

  • Assistance by a certified physics teacher
  • Meeting of 1 day with the teacher to discuss the course curriculum, skill trees and all assignments
  • Personalizing the course after the discussion
  • Free use of the SkillTree application during the course
  • Presence during the programming classes: maximum 1,5 hour per week on 1 part of the day during 8 weeks
  • Teaching the programming with Python part
  • Checking the programming assignments


Price on request

Locations further than 30km from Capelle aan den IJssel (Netherlands) will have added transportation cost

Several classes at the same school in the same period can lead to discounts