KS3 Programming and development
By far the most significant addition to the new curriculum has been the introduction of programming, at all of the key stages. The most common visual programming environment that students are exposed to is Scratch, the block based language developed by the Lifelong Kindergarten Group at MIT. In recent years Python has established itself as one of the easiest text based languages to learn to program in. As a result a large number of schools are utilising it in their programming courses.
Debugging is one of the key skills necessary to becoming a skilled programmer, but also one of the hardest to teach. It utilises a wide range of skills which are transferable to other subject areas.
The ability to take a problem, analyse what is required to solve that problem, decompose it into appropriate blocks, create algorithms for those blocks and then implement them in code is a key skill that all programmers must eventually master.
Although very few teachers and students are aware of them, version control systems are an incredibly useful tool in the programmer's arsenal. They allow teams of programmers to share code, work on the same parts of code simultaneously, and then reintegrate the results relatively easily.
Links and Resources
This resource produced by the team behind Scratch, comes in two parts, a teachers' guide which has an overview of Scratch and a workbook for students, to work through. All curriculum references are to the US Curriculum. It uses Scratch 2.0
This book produced by the team behind the Magpi magazine and the Raspberry Pi contains a series of projects suitable for students of all ages. It consists of 13 chapters which start off by introducing students to Scratch on the Raspberry Pi, it then builds up the complexity of the tasks chapter on chapter. A brief detour into using the GPIO pins on the Raspberry Pi occurs in chapters 7 and 8, but the rest of the book can be used on any computer with Scratch 1.4 installed (indeed most of the rest of the content could easily be adapted to run on Scratch 2.0).
A series of five lesson plans aimed at students with no knowledge of Python. In the description it is stated that depending on the students' level of ability these might be adapted to take up to eight lessons. The resource contains some discussion about how and why you might want to start using Python as your programming language, as well as a variety of techniques you might make use of throughout the lessons. These resources could be used with students from any of Years 7-9 (or beyond) to introduce them to programming in Python. Teachers may wish to review the video regarding a voice activated lift, as to the suitableness of the content and language used with regards to their students.
A booklet containing 27 small, programming challenges. This book although mostly programming language agnostic, was not originally aimed at Python programmers, so some of the hints and pseudocode are not directly transferable to Python. It is recommended that teachers pick and choose carefully amongst the problems, before setting them for a class to solve.
This is a structured, workbook taking students through a series of exercises, covering the basics of learning Python. The content is suitable for use as either a self-paced activity (possibly with some additional tasks to check understanding) or as an add-on to a more teacher-led, structured set of lessons. The content is squarely, aimed at school age students. A booklet with the answers is also supplied.
This is another book covering the basics of learning to program in Python. It may be suitable to give to students for them to work through at their own pace, depending on their literacy ability, or as an adjunct to teacher led lessons. It would also be suitable for use as a reference book, that students could be given access to, in order to facilitate the encouragement of independent learning in the classroom. It includes topics such as Regular Expressions, which most of the other texts listed here do not.
A booklet containing lots of generic programming theory. The topics include:
- What is a program?
- High level languages and machine code
- Design methodologies
- Programming construct definitions
- Program constructs exemplified in pseudocode (with several tasks to teach pupils design and pseudocode at the same time)
- Types of errors
- Interpreters vs compilers
The content is geared towards the Scottish system, but editable files are included so it should be possible to edit the content to match whichever content the user wants.
Although not a resource that is usable to create individual lessons, this poster should be on display in every classroom where students are learning to program in Python, as it contains lots of useful information, relevant to new programmers getting to grips with Python
A resource which provides learners with a user friendly strategy to utilise when they come across a bug they do not understand. SNOT stands for Self, Neighbour, Other, Teacher, and it includes a framework for recording who students have sought help from, and who they have helped along with record sheets to record what they have done, and a poster to help remind students of the process.
A small resource which includes a "debugging strategy" sheet with suggestions to students as to how to proceed. It also contains a bug-ridden Scratch game. The activity requires students to identify and fix the bugs. Although this is a single worksheet activity, it can serve as an example/template for a whole host of similar activities that teachers may like to produce for their students.