Composing Python

Composing Python

“Composing Python” is a gentle year-long introduction to programming for middle schools. It starts with unplugged activities and gradually moves to writing simple Python code. Learners practice problem decomposition and abstraction, the core computational thinking skills needed for programming. The material uses a pure, immutable sublanguage of Python, including expressions with function calls to compose graphics, and constant definitions and function definitions to abstract. Subsequently, the material introduces lists and mapping over lists to compute animations. The material ends with the introduction of conditionals for taking decisions.

Tamaro Cards and PyTamaro

The material uses the Tamaro Cards visual language and the PyTamaro educational graphics library for Python.

Booklets - Interleaved Theory and Exercises

The course is structured into 11 units. Each unit is supported by a student booklet that contains explanations and exercises. Additional “bis” booklets include extra practice activities.

Booklet   Title
1 Computer, Programs, Languages
2 Decomposition
3 Programming Without Computer
4 From Cards to Python
5 Colors
5 bis Ticino
5 bis2 The Snowman
5 bis3 COMPETITION: Christmas Tree Ornament
6 More Advanced Composition
6 bis Learner Driver Sign
7 Defining Functions
7 bis Horizontal Three-Colored Flags
7 bis2 Clock
8 Project: Parrot and Penguin
9 Lists and Animations
10 Automatic Film Generation
11 Selection

These booklets, augmented with a capstone project, provide a year-long course experience.

This is not a self-guided course. The booklets are supposed to be used in a classroom under the guidance of a competent teaching team.

History and Contributors

Inspired by the 2023 PyTamaro Summer Academy, middle school mathematics teacher Rahel Ehinger decided to create a new optional programming course for 9th-grade students at her school. With the help of Davide Frova (a computer science student at USI), and other members of the LuCE computing education research lab, she developed the “Composing Python” materials. Rahel and Davide used the materials in an innovative effort to co-teach the new course in the academic year 2024-2025.