Principle 5. Guide student practice: Successful teachers spend more time guiding students’ practice of new material
Student practice is a key part of any lesson in which the pupils are given time to work with the material that has been taught and is the basis of Rosenshine’s fifth principle. It is through the processes of elaboration, summarisation and rephrasing that Rosenshine believes children are then able to store that information in their long term memory (Rosenshine, 2012). Key Stage 3 students in secondary school have a tendency in computer science to simply copy the code shown on the board. They believe that the way the code is presented to them is a fixed structure that must be adhered to in order to get the output they want to achieve. Their schema of what a function does has little depth, and fails to understand the multitude of ways in which it can be be articulated within a program together with how the syntax of the code subtly changes. We ensure the guided practice is focused on developing their understanding of a key coding concept by presenting different perspectives on how it can be used in a number of different ways, as well as ensuring that the activities they need to do makes them rehearse its use multiple times.
Rosenshine notes that students were able to enter into independent practice when they have been given ‘sufficient instruction’ (Rosenshine 2012, p. 16) which is sometimes difficult to determine when teaching programming. We might question whether our students understand the ways in which certain code must be written and the ways in which it can be subtly changed to provide different results. To ensure that they have fully understood what they need to do within a given task, we question them before and after the task to ascertain how developed the pupils’ schema of a given function is.
Our coding environments also go some way in providing instant feedback, albeit in a way that may be unintelligible to the pupils – they attempt to elaborate the code in a way that they believe is acceptable for the computer to understand, but may have mistakenly understood the ways in which the various functions should be presented to it before compiling or running.
I use a Bluetooth remote keyboard, when asking the pupils to develop some code. In questioning, the child types on the remote keyboard with their code being shown on the board in front of the class and a number of students will work through a given set of instructions ‘live’ in front of their classmates where they describe their mental processes and reasoning for what they are doing.
To ensure that the class is achieving the highest level of understanding throughout the lesson, I will often create shared online code through websites such as https://codeshare.io or http://collabedit.com/. These sites mean that instead of having to visit each child individually, I can check their work, question them in regards to their understanding and also support any difficulties they have, without having to be sat with them. This allows me to give a higher proportion of time within the lesson to guided practice as well as give advice and tuition to all pupils wherever I am within the lesson. As the editor continually updates on my screen, I can look at what the child is typing remotely to see their depth of understanding and see the difficulties that the entire class might be facing without having to individually question all of the students.