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.