From scratch to python
As part of our lab activities, we try to teach children the fundamentals of programming and the computational thinking approaches that are necessary to understand or build programmable systems. The main languages we use to learn programming are Scratch and Python. Scratch has been developed at MIT since 2007 and has a long pedigree of research in how to teach computer science concepts to children. In particular with the release of Scratch 3.0 and merger of Scratch & Blockly, Scratch or Scratch-like coding languages have been adopted even more widely across a variety of tools that can be used to teach programming to children. In addition to using Scratch itself, we use various lab activities which can be programmed using a Scratch-like experience including the Thymio II, Ozobot, LEGO robotic kits and the BBC Micro:bit or Makey Makey experimental circuit boards. While we are convinced of the power of Scratch in teaching children programming concepts from a very early age, we also encourage our students when they are ready to migrate toward a real world programming language that they might encounter and use in their educational and professional career. Among the very many choices of serious and relevant real world programming languages, we have chosen to focus on Python. Python is right at the top of most programming language popularity rankings. It is a thoughtfully designed and an easy to learn language that favors thoughtfulness and readability over quick hacks. Most of our activities support Scratch and Python as options side by side, which allow the transition of solving a familiar problem with the new language. Additionally, we use the Python Arcade game development library to help bring some of the easy graphics and interactivity that we are used to from Scratch to Python .