Teaching Programming and Computational Thinking: ISPY and Push-Python
We describe here our work-in-progress for a Course for teaching in KS2 and in KS3 which delivers computational thinking and programming in Scratch 2.0 and/or Python 3. The aim is to have a functioning course ready for Summer term 2017 and beta versions of ISPY and Push-Python ready for our free training courses (summer schools) for teachers to be held at University College London.
ISPY: “Making, and Making Sense…” (Seymour Papert)
ISPY is an open-source educational resource (OER) software aid supporting learning for teachers and pupils (KS2/KS3+) in the spirit of Papert’s constructionism. It enables pupils and teachers to learn about regular geometric shapes in 2-D and how to create colourful patterns for those shapes. And for teachers, including the team building this Course, to learn, experiment and develop creative ways to engage in making, and making sense… As an essential part of the process, initially, pupils will be learning in parallel about the Scratch sprite and/or Python, Papert turtle, as ‘human’ robots using programming constructs: sequence, repetition and functions before using ISPY or a programming environment. ISPY is a push-button programming machine, which enables pupils space to think computationally, to solve problems in the fertile 2-D domain, creatively, with human solutions pointing to program solutions without the usual difficulties associated with a programming environment, for example — the cycle of: correcting syntax errors, saving and re-running programs. ISPY is accompanied by a Workbook for Teachers: Tao of Computational Thinking in Programming
Our Set Task: In what is still fairly uncharted territory, to find pathways with, and for, teachers to scaffold the introduction of computational thinking and programming for pupils (from 10-14 years old) in the KS2-KS3+ band in schools.
A solution: Our core approach* together with an innovative package of push-button programming technology, ISPY and Push-Python(see below), which enables pupils to focus on solving problems by computational thinking and at the same time scaffolds learning to program in Python 3.
Screen snapshots are given below for ISPY in the opening frame, and in Toolbox 1 with examples illustrating ‘sequence’ and picking out symmetry in figures on the grid. And below that, a screen snapshot of Push-Python.
Opening Frame with Options and Five Jive
ISPY: Toolbox 1: Mission 2 — Sequence and Symmetry on the Grid
*Our Core Approach
- To select a cross-curricula domain, interesting and fun for pupils to explore, and fertile in problems to solve.
- To use a basic appropriate toolbox in which to design and create user-tools for problem solving in this domain to implement the simple, but general, paradigm for problem solving in computing:
A minimal available toolbox + user created tools = solutions
- To harness a developing pedagogy in computing, guided by: current research findings, ongoing classroom experience, existing expertise; and open to further action-research.
Our Approach in Practice
- Our problem domain — the 2-D plane/screen for drawing: shapes on rectilinear grids, regular shapes in geometry in the open plane Finding ‘human’ solutions to problems in this domain is fairly straightforward as is the next computational thinking step to build programmed solutions.
- The Toolbox we choose is:
- 3 basic motion instructions of the Seymour Papert Logo/Python turtle and Scratch sprite
- 3 programming control structures: sequence, repetition and functions
- A series of toolboxes in the package with increasing functionality to include programming sequence, repetition and functions
- A teaching and learning strategy based on Seymour Papert’s constructionism that integrates the computational thinking and programming to solve graded missions from the problem domain at the same time as learning to program. The strategy includes:
- a model of computational thinking applied to programming
- creativity, experimentation, discovery, induction, action geometry, enquiry-led learning at its heart
- an ordered sequence of learning starting with an introduction to ‘unplugged programming’ solving problems with paper and pencil — ‘Chalking the Talk’, and ‘Walking the Talk’ as a robot. (Repository 1, Workbook 1).
This strategy is guided by:
- action-research results and classroom experience
- incorporation of existing pedagogy and expertise in computer science
- openness to pedagogy from different learning disciplines
ISPY Prototype: Rationale
ISPY is an integrated teaching and learning environment with computational thinking, creativity and experimentation in ‘unplugged programming’ at its heart, that offers: a series of 3/4 Toolboxes with no syntax errors, no error messages for pupils to deal with, no saving-and-running programs, in short, no IDE environment and therefore no ‘administrative error’ overhead for pupils or you; and an accompanying set of graded missions, (which will be inbuilt in one version) for which pupils try to build solutions, to learn and experience Computational Thinking and Programming.
The use of this package enables pupils to
- focus on computational thinking to solve graded problems
- build programs incrementally in a text-based format
- without syntax errors or the consequent error messages
- without editing the program, saving and re-running
- see the immediate result on the screen of each instruction as it is executed and recorded
- build the program solution an instruction at a time, with a delete button to correct any semantic error as it is entered and recognised on the screen
- experiment with their solutions
- clear the screen at any time and start again
- see the equivalent python program to their ‘unplugged’ program at the push of a button
- practice,, indirectly, programming in python
The use of this package enables teachers to
- focus on the specifics of the graded problems set
- demonstrate a solution/part solution an instruction at a time interactively to pupils
- postpone the entanglement of syntax errors and error messages until deciding to switch to a full python environment
How it Works
In ISPY, the push-button, instruction by instruction, development of programs with graphical output is derived from, and similar to, the Papert logo/python turtle. But unlike the logo/python of old, the red arrow of ISPY has an instantaneous mode of interaction with the screen, which means that most semantic or logical errors are usually visually evident, spotted as they arise, and dealt with by a simple ‘delete’ button. Most importantly, however, pupils can focus on the computational thinking necessary to solve graphical problems directly and interactively. They are free to experiment, to discover, to solve inbuilt graded design problems drawing on a grid to start, with the boards of board games, national flags, bar-scarves. Then, with more free-style, on an open 2-D screen, creating from symmetric geometric shapes, dynamic computer drawings of patterns like ‘five jive’, ‘swing-eight’, ‘rock’n roll’ (illustrated when the package opens). A button press at any point, displays the ‘unplugged program’ a pupil is building.
At the same time, pupils are learning to program with the programming control structures of Sequence and Repetition; and most importantly, using Functions — the building blocks of programming — to add their own user-tools to the toolbox. This approach constitutes a simple, but general, paradigm for problem solving in computing. Eventually, pupils are able to create and build their own unique dynamic patterns.
ISPY, a package written in Python, which we intend to release in a beta version after half-term in this summer term 2016, is a scaffolded introduction to computational thinking and programming. The final Toolbox is Push-Python, a subset of Python 3, set up as push-button Python instructions. See Figure 2. The cross-curricula teaching and learning content of repository 1 and 2 on the website will be integrated into ISPY and Push-Python for pupils to undertake the inbuilt graded missions, tests and challenges within the package. ISPY and Push-Python are currently being trialled with years 7, 8 and 9 in a local school.
Push-Python is a development from ISPY, a stand-alone prototype package, which implements a push-button interactive subset of Python 3. In a similar vein to ISPY, it is used to develop computational thinking for pupils in the problem arena of design and drawing on a 2-D screen with push-button Python 3 instructions. A series of graded missions introduces Computational Thinking in human solutions, and in programming solutions through the Control Structures in Python of Sequence, For-loops and Functions. It can be used as a start-up interactive development of Python programs for further development in an IDE environment. A button press on ‘Python prog’ in Push-Python, at any point, displays the Python 3 program a pupil is building.