Hero image

The Old Coder's Shack

Average Rating5.00
(based on 3 reviews)

Just a place to share some resources I have developed to support my teaching of Computer Science and Coding. I shall update these resources as I can. If you find these free resources useful please say thank you by making a donation (or better still getting your department to make an annual one) to The Keech Hospice in Luton and mentioning 'The Old Coder's Shack.' Please encourage colleagues in other schools to do the same, that way schools can help those needing end of life care.

Just a place to share some resources I have developed to support my teaching of Computer Science and Coding. I shall update these resources as I can. If you find these free resources useful please say thank you by making a donation (or better still getting your department to make an annual one) to The Keech Hospice in Luton and mentioning 'The Old Coder's Shack.' Please encourage colleagues in other schools to do the same, that way schools can help those needing end of life care.
Free Christmas Python Activity
ThomasJMurphyThomasJMurphy

Free Christmas Python Activity

(0)
This is a Christmas activity in which students are asked to generate the verses of the “Twelve Days of Christmas” (Partridge in a pear tree) Carol. The relevant data is given as lists, so they must NOT actually write any of the words. There is a link in the Power Point to a Trinket with the code, have them remix. I have also put the code on here and a direct link to the trinket. Feel free to reuse. If using the code directly you will need to change the file extension from txt to py or just copy and paste. Trinket is https://trinket.io/python/7ab15d025d41 The Gift(x,y) function isn’t efficient, but I use it as a discussion exercise and to remind students how the loop works in it.
Binary and Hexadecimal - Number Base Arithmetic
ThomasJMurphyThomasJMurphy

Binary and Hexadecimal - Number Base Arithmetic

(1)
A series of spreadsheets to support the teaching of Binary and Hexadecimal for GCSE Computer Science. Each takes a different aspect and allows students to automatically generate questions, these are then self marking. Macros will need enabling.
SQL Challenge 12 CSI
ThomasJMurphyThomasJMurphy

SQL Challenge 12 CSI

(1)
This is a CSI style Hit and Run murder to be solved using SQL. There is a database of evidence and suspects and the clues are on the worksheet. As the analyst it is the students job to prepare a report based on the evidence, therefore the clues narrow down to two possibilities after which it becomes informed conjecture … this allows discussion of using data in isolation to draw conclusions. To be fair big people with tiny feet are rare, but the police really need to visit both suspects. The hyperlinks on the worksheet did not survive export from the original Linux format, so a links file has been provided. I will attempt uploading the original database file csi.db if this fails the file named csidb.txt will need renaming to csi.db for use with sqlite. This works well at A level too, in this case the database can be interrogated from within Python using the sqlite library. NB: The numbering system does not indicate difficulty or teaching order, it simply lets me keep track of resources. Following a request a CSV version of the tables from the SQL database have been added – the .txt will need to be changed to .csv in the filename to use.
Python Challenge 3 003_Vowels
ThomasJMurphyThomasJMurphy

Python Challenge 3 003_Vowels

(1)
A Python coding challenge that involves nesting and using ASCII codes in order to count vowels and consonants. The supporting files include solutions, starting code and some code to allow students to play with the ord and chr keywords. The not using of built in methods adds challenge but also addresses a common GCSE question. NB: The numbering system is to allow me to track resources it does not indicate teaching order or difficulty. To facilitate uploading Python files have had file extension changed to .txt you may need to change this back to the .py extension.
Halloween Coding Competition
ThomasJMurphyThomasJMurphy

Halloween Coding Competition

(0)
A Coding Challenge set as a competition for students that should be suitable for more able coders of all ages. A solution is provided in Python as txt file using only GCSE techniques, but the challenge is not language specific and other techniques could also be used. The basic problem is to find the first prime palindrome in base 13 which is larger than the base 10 number 666. It dressed up a bit to make it more Halloweenish. Sending the solution during the witching hour is to add an element of interest and shouldn’t prove onerous to a competent computer user.
Python Challenge 9 009_TakeAway
ThomasJMurphyThomasJMurphy

Python Challenge 9 009_TakeAway

(0)
This involves list indexing, validations, robust code, data-types and casting and tracing given algorithms. This challenge simulates a simple take away ordering system. Students are asked study a pseudocode version of the algorithm and then implement it in Python. Solutions in Python and AQA pseudocode are given as is some code to illustrate different validations. May be suitable for GCSE or AS level depending on students. NB: The numbering system is to allow me to track resources it does not indicate teaching order or difficulty. To facilitate uploading Python files have had file extension changed to .txt you may need to change this back to the .py extension. Where pseudocode can be interpreted using the resource indicated the .txt extension may need removal.
Python Challenge 24 024_Sort & Search
ThomasJMurphyThomasJMurphy

Python Challenge 24 024_Sort & Search

(0)
This challenge asks students to explore linear and binary searches and bubble and merge sorts. It uses text and numerical data and requires casting. The way in which it is used will depend heavily on the group, merge sorts can prove challenging to code, but the included solutions could be used to illustrate key points or allow students to discover them. My special prime will require some interpretation of the file referred to on the worksheet. I have included numerous files including text files of prime numbers and some pseudocode, I have also included a prime generator so bespoke problems can be set. Files named with a py ending and a .txt extension will need to be changed back to .py extension, but, hopefully this is fairly clear. NB: The numbering system is not an indication of difficulty or teaching order by simply to help me keep track of my resources.
Python Challenge 10 010_Waiter
ThomasJMurphyThomasJMurphy

Python Challenge 10 010_Waiter

(0)
This is a debugging exercise, including syntax, runtime and logical errors, in is linked to challenge 9 in that it addresses a similar problem. Solutions are included as is the original code as on the worksheet. The client Bob Marley is no relation, the dialect is purely fun, but it may be useful to remind students that the users of software are very diverse. It also gives the opportunity to discuss testing (Alpha, Beta and usability). NB: The numbering system is to allow me to track resources it does not indicate teaching order or difficulty. To facilitate uploading Python files have had file extension changed to .txt you may need to change this back to the .py extension.
Coding Christmas Challenge - Midsomer Christmas GCSE
ThomasJMurphyThomasJMurphy

Coding Christmas Challenge - Midsomer Christmas GCSE

(0)
This is a Secret Santa Coding Challenge based around a Toy company in the village of Midsomer. The first challenge is aimed at GCSE with the extension at a higher level allowing extension and into A level. Possible solutions for both the simple the Advanced tasks added.
Python Challenge 1 001_Length
ThomasJMurphyThomasJMurphy

Python Challenge 1 001_Length

(0)
A coding activity in Python, looking at flowcharts, definite iteration, iterable objects and allowing for discussion of high level languages. NB: Numbering system helps me keep track of resources but does not indicate difficulty or teaching order. Python files uploaded with txt extension, this will need changing.
Python Challenge 6 006_NumberPlates
ThomasJMurphyThomasJMurphy

Python Challenge 6 006_NumberPlates

(0)
This is a Python and pseudocode challenge involving slicing strings (Substrings) and casting datatypes. It also presents a good opportunity to discuss robust code and testing with Normal, Boundary and Erroneous data. It gives an opportunity to talk about how we often encode data inside identifiers and how the techniques of data representation go beyond their use in computer science. NB: The numbering system is to allow me to track resources it does not indicate teaching order or difficulty. To facilitate uploading Python files have had file extension changed to .txt you may need to change this back to the .py extension.
Python Challenge 4 004_Little Lamb
ThomasJMurphyThomasJMurphy

Python Challenge 4 004_Little Lamb

(0)
A coding resource that deals with pseudocode to Python conversion, flowcharts, indefinite iteration and string concatenation, based on the ‘Mary had a little lamb’ rhyme. NB: The numbering system is to allow me to track resources it does not indicate teaching order or difficulty. To facilitate uploading Python files have had file extension changed to .txt you may need to change this back to the .py extension.
Python Challenge 2 002_Nofin
ThomasJMurphyThomasJMurphy

Python Challenge 2 002_Nofin

(0)
Python challenge in which students are asked to consider the use of the logical operators OR and AND, it also uses definite iteration and selection. NB: The numbering system is only to help me track resources and does not indicate order of teaching or difficulty. Python files have had extension changed to txt and may need changing back to py.
Python Challenge 8 008_CheckSum
ThomasJMurphyThomasJMurphy

Python Challenge 8 008_CheckSum

(0)
Students are asked to implement the barcode check sum algorithm using pseudocode. I have provided some possible solutions in AQA pseudocode some of which I have implemented using Martin Hart’s AQA interpreter a link to which is on the worksheet. Student’s do find this useful but need to be reassured that pseudocode just needs to be clear and consistent. Of course this could be done in Python or another language or any other pseudocode. NB: The numbering system is to allow me to track resources it does not indicate teaching order or difficulty. To facilitate uploading some files have had file extension .txt added, this may need removing before using in the interpreter.
Python Challenge 11 011_Neanderthal
ThomasJMurphyThomasJMurphy

Python Challenge 11 011_Neanderthal

(0)
This is a Python challenge involving iteration, file handling and calculation. I have provided the worksheet in PowerPoint format so it can be edited. When I use it I replace the placeholder teachers with photos of staff in my school, the students quite enjoy guessing which one will be the most Neanderthal! The problem to be solved is to count the number of Neanderthal genetic markers in each teachers DNA strand and calculate the percentage of Neanderthal DNA for each. I have also included a generator so that it can be adapted to use with larger groups etc and of course there is a solution provided. Where a filename ends py the .txt extension should be removed and a dot added to make a .py extension. Filenames that do not end with py should retain their .txt extension as they are data files. The video makes a good starter. NB: The numbering system does not indicate difficulty or teaching order but simply helps me keep track of resources.
Python Challenge 13  Who's The Daddy?
ThomasJMurphyThomasJMurphy

Python Challenge 13 Who's The Daddy?

(0)
This challenge involves using string manipulation, file reading and the .split() and .strip() methods to identify Baby J’s father from a sample of their DNA supplied as a text file. There is room here to discuss the in keyword as well and hence to get students to think about how higher level languages might hide things from their users. On a wider note there is ample scope here to discuss the role of computers in modern genetics. The solution file will need the .txt removed and a dot inserted to create a .py file. NB: The numbering system does not indicate difficulty or teaching order, I use it to keep track of resources.
Python Challenge 20 Hanging Harry
ThomasJMurphyThomasJMurphy

Python Challenge 20 Hanging Harry

(0)
This is a code a version of Hangman, based around a Harry Potter theme. Students a re give a starter as a steer and also to prevent them simply copying one of the many solutions on the Internet, they are also given specific requirements to match the starter, for the same reason. A procedural approach is encouraged. Extensions include a menu system and using a file for the clues, words. Data files are included as is a possible solution. NB: The Python files, filenames ending py, will need the .txt extension removed and a dot inserted to give the correct file extension. The csv file will need to be treated similarly. The numbering system does not indicate difficulty or teaching order but is used to help me track resources.
Challenge 16 016_password
ThomasJMurphyThomasJMurphy

Challenge 16 016_password

(0)
This is a challenge set in Python that requires students to write a program that checks that a proposed password meets given criteria. It allows discussion of verification and validation as well as testing using normal, erroneous and boundary data. As written it also expects students to use self documentation techniques, although not explicitly asked for a test plan would be needed so that full compliance could be demonstrated. I have included a solution. NB: The solution will need to have its .txt extension changed to .py in order to work. The number system used on these resources does not indicate difficulty or teaching order, it is used for my tracking of resources.
Python Challenge 7 007_Driver Number
ThomasJMurphyThomasJMurphy

Python Challenge 7 007_Driver Number

(0)
This is a Python coding activity involving string manipulation and encouraging structured coding that asks students to develop an application to collect data from UK drivers and generate a DVLA driver number for them. It provides opportunities to encourage the use of subroutines and functions and to discuss how they help solve the problem. It also provides opportunities to discuss user interfaces and the complexity of building systems for diverse populations. The provided solution is of course just one of many approaches, more able students night expand on this … and should be encouraged to. There is also room to discuss the importance of personal data and how check codes are used to prevent fraud. I have added a video link about the use of this number from GOV.UK NB: The numbering system is to allow me to track resources it does not indicate teaching order or difficulty. To facilitate uploading Python files have had file extension changed to .txt you may need to change this back to the .py extension.
Python Challenge 5 005_Craps
ThomasJMurphyThomasJMurphy

Python Challenge 5 005_Craps

(0)
A Python coding challenge in which students are asked to interpret a flow chart in order to build a computer program to play the dice game craps. It also uses the random module and suggests expansion to include a appropriate text based user interface. It provides opportunity to discuss the ethics of using computing for gambling. NB: The numbering system is to allow me to track resources it does not indicate teaching order or difficulty. To facilitate uploading Python files have had file extension changed to .txt you may need to change this back to the .py extension.