Oct. 12, 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 this month. This is the second part of our Q and A session with the developers of the program, to look at how it supports pupils and why Python should be taught in schools.
To recap, the developers we will be speaking to are Rebecca and John. 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. Learners can work through these or the teacher can set certain lessons as tasks. Each lesson has several stages and within each stage, learners must successfully complete several tasks. Each stage is supported by an explanatory video and, for learners who need extra help, a hint image that provides some of the structure for the solution. Most tasks are auto-marked but some require learners to self-assess. This develops learners' skills in testing and debugging their code. Each lesson also has debugging stages in which learners 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 learners are committing knowledge to memory so their learning can be at a deeper level. As learners' 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 learners check the structure and validity of their code. The more advanced videos will assume that learners have basic skills and concentrate on the new concepts being introduced therefore requiring learners to have a good base understanding in order to progress. This is always supported by hints for learners who are stuck.
Learners 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 learners can add break points and step through their code, they can also control the speed at which their code executes, enabling learners 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 learners 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 learners to experience more of the engineering process, using design technology skills and computing to engineer physical devices.
John: Python in Pieces supports learners 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 learners 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 learners 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 learners 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: Learner progress data is automatically available to teachers to help them support students in real-time so that they can see how learners are progressing. Learners 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. Learners 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 learner 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 learners 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 learners 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. Learners 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 learners 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 learners into developing these patterns of thought in a way that can be fun and have its own successes, some learners will get the ‘bug’ for coding and take this further but ALL learners can benefit from the experience of being logical in the way that they think.