Python in Pieces - Q and A - Part 2

March 13, 2020

We launched Python in Pieces, an interactive coding environment, designed to build student and teacher confidence in the text-based coding language of Python at Bett in January and are pleased to say that it has already been shortlisted for an ERA award. This is the second part of our Q and A session with the developers of the programme, to look at how it supports pupils and why Python should be taught in schools.

You can read Part 1 here.

Rebecca is both an ex-primary school teacher and an ex systems engineer. Having taught in primary schools, she then had a career change and worked in software engineering, writing programs to support Vauxhall Motors for several years before moving back to education as a specialist computing teacher in several primary schools. She is now an education consultant at 2Simple where she has the opportunity to combine her skills, getting involved in technical, as well as educational aspects of the work that we do to support schools and make learning exciting and successful.

John began his career in India in 2002 working on an educational website for secondary school maths and has been working at 2Simple for 5 years. He describes Python in Pieces as one of the most interesting and challenging projects he has ever worked on.


How does Python in Pieces help students?

Rebecca: The ready-made tasks are structured in three progressive levels. Students can work through these or the teacher can set certain lessons as tasks. Each lesson has several stages and within each stage, students must successfully complete several tasks. Each stage is supported by an explanatory video and, for students who need extra help, a hint image that provides some of the structure for the solution. Most tasks are auto-marked but some require students to self-assess. This develops students' skills in testing and debugging their code. Each lesson also has debugging stages in which students see code that they need to read, understand and debug.

The video support is also progressive in the amount of support that students are provided and in the way that input is given. This ensures that students are committing knowledge to memory so their learning can be at a deeper level. As students' coding becomes more sophisticated, the accompanying instructions and videos rely more on text-based explanations, still with the security of the blocks present to reassure and help students check the structure and validity of their code.  The more advanced videos will assume that students have basic skills and concentrate on the new concepts being introduced therefore requiring students to have a good base understanding in order to progress. This is always supported by hints for students who are stuck.

Students can alter the view so that they see only the text, only the blocks or a split screen.

Python in Pieces also includes debugging tools so that students can add break points and step through their code, they can also control the speed at which their code executes, enabling students to debug their own code and feel a sense of achievement and build confidence in their ability at computing.

The debug panel is always in view enabling students to develop familiarity with checking the values of elements and variables within their program and how these change.

Python code can be copied and pasted into Python in Pieces from other sources and examples, it will then display as code and as blocks and can be debugged and stepped through. This helps students to improve their code comprehension ability and grasp of the effect of complex coding structures.The integration with the BBC Microbit allows students to experience more of the engineering process, using design technology skills and computing to engineer physical devices.

John: Python in Pieces supports students who are working at different levels. If you or they want to, you can hide the blocks and just write pure Python. If they get stuck they can check out the blocks library, find a block that looks useful and drag it in to see what code it represents.

If pupils are not quite so ready for text-based coding they can work with the blocks to begin with. As they drag in the blocks they can see the code build up, and you as the teacher can bridge the mental divide between the two. Eventually we hope that students will find the blocks somewhat cumbersome and will want to leave them behind, but they are there when they need them.

The visual aspects help grab attention and interest - they include football themed assets, outer space, animals, as well as people and places. In fact in many of the lessons students are encouraged to change the visuals - to help make their applications relevant to themselves. Of course in 'Free Code Mode' they can use their imagination right from the start.

How can teachers track and support students?

Rebecca: Student progress data is automatically available to teachers to help them support students in real-time so that they can see how students are progressing. Students who could do with more focussed support will often use the hint videos for every stage or progress more slowly because they can’t find successful solutions to the tasks. Students who are excelling will demonstrate this by completing challenges to a high standard and integrating their knowledge of the coding structures and syntax with computational thinking aspects such as abstraction and decomposition of their own ideas. Teachers can open challenges to make an assessment of this and suggest further challenges. Teachers can also comment on individual pieces of pupil work, or in bulk, to give feedback either in writing or by recording.


Why should Python be taught in schools?

John: Learning the basics of programming is becoming more and more important, not because everyone will need to actually do programming in their career, but because the world is being run by code at an increasing rate. It is useful to understand a) how the bits fit together and b) the strengths and limitations of algorithms. Having said, that coding is ubiquitous now in many professional fields and will give students a foot-up on the career ladder. You don't have to be working in software or science in order to benefit. A Business Studies Student who can quickly write and debug a complex Excel formula clearly has an advantage over one who cannot.

We have chosen Python because it is a nicely structured modern language that is used throughout industry and contains all the concepts that are vital to grasp in order to learn any other programming language.

Rebecca: There are ongoing debates about the value of teaching coding in schools. The argument that only a small proportion of students will become coders is countered by the argument that such skills are in increasing demand and scarce supply. Personally, I think that the way that developing coding skills actually develops thinking skills that can be applied to all areas of life, is the most compulsive argument. Students have little opportunity in the rest of the curriculum to be forced into thinking logically in de-personalised situation: In breaking complex problems into smaller, solvable chunks and in solving these chunks in a logical way. 

The ability to do this can help students to follow this process in dealing with other situations in life; how to make a coherent argument in a History essay, how to investigate the truth of something that they hear online or watch on a screen. How to react in a thought-out way, instead of instinctively, to a difficult situation. How to manage their own budgets and make sensible decisions about what to do in their next step in their futures. All of these can only be helped by being able to think logically and break big issues into smaller ones. Teaching Python forces students into developing these patterns of thought in a way that can be fun and have its own successes, some students will get the ‘bug’ for coding and take this further but ALL pupils can benefit from the experience of being logical in the way that they think.