GCSE Practical Programming
Programming is a fundamental skill for computer scientists. It allows them to understand the interactions of the computer system they are working with at a fundamental level. It also helps them to develop problem solving skills applicable to dealing with computer problems. These may be presented to students in the form of pseudocode, executable as program code. Contextualising the problems allows new programmers to draw parallels with their real world experiences and apply that knowledge to the programming problem being undertaken.
There are many useful and varied resources here for the beginning programmer who is learning Python as their first language. Some are teacher led and many others lend themselves to more self-directed study.
Python
This series of three lessons introduces Python programming to students in secondary school. The resource provides detailed lesson plans, teacher presentation files, activity sheets and homework tasks . An end-of-unit teacher assessment grid provides pupil levels.
The lesson objectives include creating simple code including the input and print scripts, using "If statements" to make a decision and using the random function in programs.
Python Projects
This series of resources supports the teaching and learning of the computer programming language Python. The series of activities, produced by Code Club have support sheets for each of the activity projects. They are easy to follow and support progression in the learning. The activities require studenst to: *control turtles on the screen *send secret messages using ciphers, *design and play hangman and noughts and crosses against the computer.
Python 3: Format ‘Cheat Sheet’
This handy guide sheet shows how the format () method can be used in a variety of situations:
• Inserting values into strings,
• Formatting layout and alignment,
• Displaying numbers with specific formats
A print-out-and-keep quick guide shows all the options available when using the format ‘mini-language’.
Python 3: Sequences
This intermediate-level resource for those learning to program with Python 3.x looks at lists (called arrays in other languages), strings and tuples. It covers the main features of these sequences, including the differences between them, how the elements of each are referenced, and some of the functions and calculations that can be applied to them. Tutorial sections are also included on: • how to convert lists to tuples (and vice versa) • how to ‘unpack’ them • locating elements in list with positive and negative indices • slicing lists • ranges as sequences • modifying lists with a range of functions (tuples cannot be modified) • working with lists of lists • defining constants and using them in triangular lists Each section contains a short set of exercises – these can be carried out using a Python interpreter or can be set as a ‘computational thinking’ mental challenge. A summary of the available operations for lists, and for all sequences, is found at the end of the document.
Python 3: Iteration
For students with some prior experience of using simple For and While loops, this intermediate-level resource explores how they can be used for more complex coding while maintaining efficiency.
Exercises include arithmetic applications of While loops, and development of simple For loops to be usable in more flexible ways. Use of Break in For and While loops is covered, and Else is used for conditionally branching code. Guidance is included for using In with For loops, to iterate over items in a list.
Some simple tutorials and exercises using Range () include conversions to lists and printing values, as well as stepping through ranges using positive and negative numbers. The reversed() function is applied to ranges, too, as are a selection of other functions that can be used with ranges, lists and strings.
Python 3: Selection and Conditionals
This intermediate-level resource for those learning to program with Python 3.x looks at conditional statements including ELSE and ELIF. The use of arithmetic and logical operators is covered, along with tricks and tips for more efficient and fault-free code.
An explanation of how different data values and types evaluate as Boolean ‘True’ or ‘False’ is included, with some guidance on inserting them into functions.
The resource concludes with a set of student exercises to reinforce the learning. In order to test out the predications made by students at this point, access to a computer running the Python interpreter is required. Answers are not provided.
Python Programming Challenges
This booklet consists of 16 introductory programming challenges, some of the challenges also provide further extension challenges, for every challenge there is a "Self Review" section which asks students to comment on whether they managed to complete the task successfully, whether they had any errors initially and what they were, how the student solved these errors, and finally what they found difficult about the task. There is a brief overview at the start of how to fill out this self review section, plus a "Coaching record", which provides space to note down any members of the class that the student has helped, what topic it was on and how they helped. The challenges could be used as is as the basis of a self paced series of lessons or extracted to be used in a different format. Specific topics could be identified and lessons on those topics given, before students were asked to complete specific task numbers.
Python Beginners Challenges
This resource consists of a 50 page workbook with 39 different programming challenges listed, along with hints and suggestions for how to proceed with solving them along with explanations of various programming ideas. The workbook as a whole could be used as a detailed introduction to programming in Python, with the removal of some school specific branding, or individual tasks could be modified and used as the basis of lessons on specific topics. The second part of the resource consists of a log book which details various aspects of programming in Python, and asks students to paste in specific pieces of their code to illustrate these programming concepts (eg paste in an example of your code where you have used an if-elif construct in your code). This again could be used as is, or drawn from as a resource, or the concept could be used as the basis for a similar log book.
70 Programming Challenges
This resource contains a large number of activities which were originally aimed at students using Visual Basic, other than a few mentions of pressing a button to make something happen, they should all be readily implementable in plain python. The booklet has 7 or 8 missing challenges on Sorting and Searching, but is otherwise mostly complete. Each challenge asks the students to create an IPO diagram (Inputs, Processes, Outputs), students are then asked to create a flowchart, write out the pseudocode, list all the variables used and complete a test plan for their solution to each challenge. The later challenges may be sufficiently complex to be used as preparation for the GCSE NEA. An editable version of the booklet is available so that school branding can be removed/added and modifications can be made to the original versions. The booklet could be used as is or sections could be used in a variety of ways as the basis of a Year 10 programming course.
Python Validation
This resource consists of an information sheet detailing various methods for validating user input in Python, these come in the form of a table consisting of some code in one column and an overview of what the corresponding code does. There is an associated zip file with code examples in it and a presentation which covers the same topics. Teachers may want to edit the presentation to match their own specific needs before using it in a lesson. The information sheet could be stored on the network as a reference resource, printed out and turned into posters, or printed out, laminated and used as "mouse mat" style resources.
Geocraft -Giant's Causeway
These resources provided by GeoCraft, consist of lesson plans, worksheets, Minecraft Maps (Raspberry Pi version) for the area around the Giant's Causeway in Northern Ireland, and some general how to guides. The guides take teachers through the steps to update a Raspberry Pi, and install one of the Giant's Causeway maps into the correct folder, so that students can use it as part of the activities detailed here. The Lesson Plans and supporting Worksheets detail a number of intermediate Python activities (nominally for four, one hour lessons but it may take longer depending on students’ abilities and prior knowledge) to introduce students to the concepts of Sequencing, Selection and Iteration, using Python to interact with the Minecraft world on a Raspberry Pi. The final lesson serves as an introduction to Python functions and how they work along with a supplementary worksheet which covers the same topic in more detail. The activities are specific to the map, which is a quarter scale model of two areas along the section of coast where the Giant's Causeway is located in Northern Ireland, produced by the Ordnance Survey.
Sense Hat Essentials
The sense hat is a relatively cheap add on board for the Raspberry Pi, which allows users to sense and interact with the environment around the Raspberry Pi in a variety of ways. This book details some projects which students can undertake for themselves without the need for additional hardware, other than a Raspberry Pi with Sense Hat. The book starts with an overview of the Sense Hat before looking at the activities it was used for on the International Space Station. The projects include using the Sense Hat as a Data Logger to record environmental data in Python, making an astronaut reaction timer game in Scratch, using the 8x8 grid of neo-pixels built into the Sense Hat to create "pixel art" in Python, creating a Digital Magic 8 Ball in Python, making a Gravity Simulator in Scratch and a general chapter on different ways to interact with the Sense Hat from Python. These projects could form the basis of an ongoing project based series of lessons, or specific chapters could form the basis of a discrete part of a KS4 Scheme of work on using programming to solve real world problems.
Raspberry Pi Essential Games
This book details how to use the Pygame library with Python to create two dimensional video games. This book covers many of the basic building blocks for creating games, from the structure all games take, with a game loop, that displays the current status of the game, getting user input, updating the game state accordingly and checking for end of game conditions. The book details how to add sound effects as well as adding forces and physics to games. Although it moves on to detail how to create classes for actors (ie the player or other characters within a game) this is beyond the scope of GCSE programming and can be safely ignored, or used to stretch and challenge the very brightest students.
Programming - Cost per mile
This Python programming task asks pupils to create a program to calculate the cost of a journey. Students are encouraged to plan their program before coding. Once completed they then test and debug it.
Programming - Calculating wages
This Python programming task asks pupils to create a program to calculate the amount of money to pay to delivery drivers based on either the number of parcels they deliver or the hours they work. Students are encouraged to plan their program before coding. Once completed they then test and debug it.