Hero image

The Old Coder's Shack

Average Rating5.00
(based on 1 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.
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.
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.
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 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 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.
Binary and Hexadecimal - Number Base Arithmetic
ThomasJMurphyThomasJMurphy

Binary and Hexadecimal - Number Base Arithmetic

(0)
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.
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 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 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.
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 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 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.
SQL Challenge 12 CSI
ThomasJMurphyThomasJMurphy

SQL Challenge 12 CSI

(0)
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.
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.
Challenge 27 027_Your Dying Day
ThomasJMurphyThomasJMurphy

Challenge 27 027_Your Dying Day

(0)
A python challenge that allows discussion of interfaces and the way computers use mathematical modeling in a variety of circumstances. This gives the opportunity to decide which factors students think are most significant in predicting future lifespan, for example is it better to be a non-smoker or be aged over 95 years? The problem lends itself to a functional style as each of the factors can be modeled and tweaked independently. I have used the datetime library and included a quick example file of its use. The files with filenames ending py are python files and will need the .txt part removed and a dot inserted to make .py files. NB: The numbering system does not indicate difficulty or teaching order but is to help with my resource management.
Logic Challenge 41 041_Dear Comrade
ThomasJMurphyThomasJMurphy

Logic Challenge 41 041_Dear Comrade

(0)
Designing for Stalin’s Secret Police can be a tricky business, my students have had fun using logic.ly to try to solve this, its not easy but a number of my Year 11s managed it as did all the sixth form, Russian funeral music and a ticking clock add nicely to the tension. Obviously no solution provided to this one as breaching Stalin’s official secrets act has dire consequences. Enjoy Comrades NB: As usual the numbering system does not indicate difficulty or order of teaching but simply helps me keep track of resources.
Python Challenge 25 025_Shakespearean Insulter
ThomasJMurphyThomasJMurphy

Python Challenge 25 025_Shakespearean Insulter

(0)
This is challenge to write a Shakespearean insulter. This challenge involves basic manipulation of strings using the split() and strip() methods and handling of text files. I have included a copy of the PySimpleGUI library that allows students to add a GUI interface really easily. Just remove the .txt extension and add a dot to make it .py and import it, it shouldn’t be run directly. Other python files will need similar treatment, the file insults.txt is the data file and should be left as is. Some extensions include asking the user for their name and personalizing the insults such as "Fred thou art a … " and issues about managing vowels can arise. NB: The numbering system does not indicate difficulty or order of teaching, it just helps me keep track. Python files will have had their extension changed to facilitate uploading, usually I incorporate the original py ending into the filename so these can be distinguished from data files etc.
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.