Hero image

Guy Bartle's Shop

Guy Bartle is a retired teacher, who still freelances as a programmer, systems analyst, web designer, database manager and spreadsheet builder. This shop provides a wealth of resources for teaching and learning Computing from Year 7 onwards with an emphasis on Programming, GCSE and AS/A Level. There are resources for learning to program in Python for Year 7 onwards and interactive models for AS and A Level specifications: Data Structures, Data Sorts and Compilation. There are also spreadsheet in

Guy Bartle is a retired teacher, who still freelances as a programmer, systems analyst, web designer, database manager and spreadsheet builder. This shop provides a wealth of resources for teaching and learning Computing from Year 7 onwards with an emphasis on Programming, GCSE and AS/A Level. There are resources for learning to program in Python for Year 7 onwards and interactive models for AS and A Level specifications: Data Structures, Data Sorts and Compilation. There are also spreadsheet in
Addressing Mode investigation
gbartle_shsgbartle_shs

Addressing Mode investigation

(0)
This macro-enabled spreadsheet is designed to support learning how different memory addressing modes work in Computing. The addressing modes supported are Immediate, Direct, Indirect and Indexed. Clicking the ‘New question’ button clears any previous answers and generates a new base address and an offset for Indexed Addressing. The learner then enters the data that will be found using each of the addressing modes. Clicking the ‘Show answers’ button then reveals the correct answers. NOTE: for this spreadsheet to work correctly, the copy of Excel in which it is running must allow macros to execute, and ‘Enable Content’ must be clicked when the spreadsheet is opened.
Endless Signed Binary Addition and Subtraction question generator
gbartle_shsgbartle_shs

Endless Signed Binary Addition and Subtraction question generator

(0)
This macro-enabled spreadsheet is designed to practice signed integer binary addition and subtraction in Computing. Each worksheet generates ten questions every time the ‘Generate Questions’ button is clicked. Once the learners have completed a question, clicking the associated ‘Mark It’ button reveals which bits are right and which are wrong. Changing an answer removes the marking until the button is clicked again. Both worksheets allow for difficulty to be adjusted by selecting whether negative numbers can form part of the question. They also have space for the learner to place carry bits and any necessary Twos Complementation as part of their working. The Addition worksheet further allows for difficulty to be adjusted by selecting whether questions generate overflow or not which the learner then has to pick up. NOTE: for this spreadsheet to work correctly, the copy of Excel in which it is running must allow macros to execute, and ‘Enable Content’ must be clicked when the spreadsheet is opened.
Resistivity Investigation (for single Windows PC only)
gbartle_shsgbartle_shs

Resistivity Investigation (for single Windows PC only)

(0)
This software models the passing of a voltage through metal wires of varying dimensions to see how resistance and current varies until a power equilibrium is reached, when the power going into the circuit equals the power coming out via heat emission. It is designed to support the teaching of Science and Physics at GCSE and A Level. The model takes into account the resistivity and temperature coefficient of the metal. The following parameters can be varied within the model: Voltage applied; Length and diameter of the wire; Room temperature; The required sample interval. As these parameters are varied, the number of samples that will be taken is displayed so that the optimum number for a particular experiment can be selected. The temperature, resistance, power in and out and current are calculated for each sample. Parameters can be adjusted and the metals list modified to the user’s specification. These new settings can be saved in a file for later use. The results can be printed and also exported as a CSV file for further analysis or graphing. The application is supported by a comprehensive help file which includes guidance on how to generate the required number of samples.
Electrolysis Solution Finder shows (for single Windows PC only)
gbartle_shsgbartle_shs

Electrolysis Solution Finder shows (for single Windows PC only)

(0)
Electrolysis Solution Finder shows what ions from an ionic compound (either molten or dissolved in water) are attracted to the cathode and anode during electrolysis. It is designed to support the teaching of Science and Chemistry at GCSE and A Level. The following parameters can be varied within the model: The Ionic Compound to test; Whether the Ionic Compound is dissolved in water or molten. The ions and half equations involved are displayed, while in a graphic, solids forming on an electrode are demonstrated by an appropriate colour change at the electrode, liquid forming shown by a cloud forming around the electrode, and gas by a bubbling animation and sound effect. The application is supported by a comprehensive help file.
Fundamental Frequency Investigations (for single Windows PC only)
gbartle_shsgbartle_shs

Fundamental Frequency Investigations (for single Windows PC only)

(0)
This software contains two models: The Fundamental Frequency Of A String Or Wire Under Tension This software calculates the Fundamental Frequency of a string or wire under tension and plays a tone at that frequency. It is designed to support the teaching of Science and Physics at GCSE and A Level. The model takes into account the density of the material. The following parameters can be varied within the model: Length of the string or wire; Diameter of the string or wire; Tension the string or wire is under. The volume and mass of the string or wire are calculated as well as the Fundamental Frequency. Parameters can be adjusted and the materials list modified to the user’s specification. These new settings can be saved in a file for later use. The results are calculated in real time as the parameters are changed, and can be printed. A tone can be played at the currently calculated Fundamental Frequency if it is within the system boundaries. The Fundamental Frequency Of A Gas Filled Tube Or Pipe This software calculates the Fundamental Frequency of a gas filled tube or pipe and plays a tone at that frequency. It is designed to support the teaching of Science and Physics at GCSE and A Level. The model takes into account the Heat Capacity Ratio and the Molecular Mass of the gas. The following parameters can be varied within the model: Length of the tube or pipe; Temperature within the tube or pipe; Whether or not the tube or pipe has one end closed. The speed of sound is calculated as well as the Fundamental Frequency. Parameters can be adjusted and the gases list modified to the user’s specification. These new settings can be saved in a file for later use. The results are calculated in real time as the parameters are changed, and can be printed. A tone can be played at the currently calculated Fundamental Frequency if it is within the system boundaries. The application is supported by a comprehensive help file.
Heating Liquid Investigation (for single Windows PC only)
gbartle_shsgbartle_shs

Heating Liquid Investigation (for single Windows PC only)

(0)
This software models the heating of liquids in an insulated container over time and is designed to support the teaching of Science and Physics at GCSE and A Level. The model takes into account the density, boiling point and specific heat capacity of the liquid. The following parameters can be varied within the model: Mass and initial temperature of the liquid; Room temperature; Resistance and current of the heater; Heating time; Container diameter and insulation thickness; The required sample interval. As these parameters are varied, the number of samples that will be taken is displayed so that the optimum number for a particular experiment can be selected. The energy used, liquid temperature and the temperature rise are calculated for each sample. Parameters can be adjusted and the liquids list modified to the user’s specification. These new settings can be saved in a file for later use. The results can be printed and also exported as a CSV file for further analysis or graphing. The application is supported by a comprehensive help file which includes guidance on how to generate the required number of samples.
Falling Objects Investigation (for single Windows PC only)
gbartle_shsgbartle_shs

Falling Objects Investigation (for single Windows PC only)

(0)
This software models spheres falling through different fluids. It also models their rising after bouncing, should they bounce. It is designed to support the teaching of Science and Physics at GCSE and A Level. The model takes into account the viscosity and density of the fluid. The following parameters can be varied within the model: Height from which the sphere falls; Mass and diameter of the sphere; Energy loss on impact; The required sample interval. As these parameters are varied, the number of samples that will be taken is displayed so that the optimum number for a particular experiment can be selected. The fall time, fall velocity and fall distance are calculated for each sample as the object falls. The rise time, rise velocity and rise distance are calculated for each sample as the object rises. If the object instead floats in the fluid when released, then this is reported. Parameters can be adjusted and the fluids list modified to the user’s specification. These new settings can be saved in a file for later use. The results can be printed and also exported as a CSV file for further analysis or graphing. The application is supported by a comprehensive help file which includes guidance on how to generate the required number of samples.
Payback Period Calculator (for single Windows PC only)
gbartle_shsgbartle_shs

Payback Period Calculator (for single Windows PC only)

(0)
Payback Period Calculator models when an initial investment in a business will be repaid within a five-year period, if at all. Sales for each of the five years can be input, as can the initial investment, cost price, desired profit, and whether that profit will be a mark-up or a margin. The payback period is displayed as years and weeks as well as years and months. Revenue, costs, net return and outstanding repayment are calculated for each of the five years. Payback Period Calculator is fully supported by a comprehensive help file which includes an explanation of the difference between mark-up and margin when determining profit and also how to use the system to set a sale price.
Python Resource Pack 4 - Debugging
gbartle_shsgbartle_shs

Python Resource Pack 4 - Debugging

(0)
Python Resource Pack 4 is a set of coding challenges designed to support the teaching and learning of the Python programming language. This pack is designed for those who have some experience of programming in Python, such as completing the exercises in Resource Packs 1, 2 and 3. It is suitable for teaching Python in schools from Year 8 onwards, tutors and learners in adult learning classes or for the hobbyist learning at home. The pack gives learners an opportunity to practice debugging (fixing) third party code rather than their own. It consists of six graduated programs, all with errors in them, which need to be studied and the bugs diagnosed and corrected. The pack is designed to support learning that has previously taken place in the classroom, via self-directed study, or by following tutorials. The pack contains: Six programs with bugs in them. Working solutions to each of the six programs. A pdf file ‘Cheat Sheet’ for teachers/tutors explaining where the bugs are.** The challenges are designed so that self-directed research will be required to complete them; they are not a cut-and-paste tutorial.
Python Resource Pack 8
gbartle_shsgbartle_shs

Python Resource Pack 8

(0)
Python Resource Pack 8 is a set of coding challenges designed to support the teaching and learning of the Python programming language. This pack is designed for those who have some experience of programming in Python, such as completing the exercises in Resource Packs 1 - 7. It is suitable for teaching Python in schools at AS and A Level, for tutors and learners in adult learning classes or for the hobbyist learning at home. As part of the higher-level learning and exam preparation for which the pack is designed, these challenges necessitate a greater degree of design and coding ability than the challenges in Resource Packs 6 and 7. Emphasis is placed on the system life cycle and program documentation by requiring: Full design prior to coding (system flowchart, program flowchart, pseudocode, data dictionary). Full validation so only valid data can be entered by the user. Meaningful names for variables, procedures and functions. Full error trapping. Fully commented code. Complete evidence of the program being tested during development (Alpha Testing or White Box Testing). Complete evidence of the program being tested post development (Beta Testing or Black Box Testing). The pack is designed to support learning that has previously taken place in the classroom, via self-directed study, or by following tutorials. The pack contains five challenges, each consisting of: A pdf file with one or more coding challenges and, in some cases, supplementary extension work. Fully commented example solutions to the challenge or challenges and any extensions. The following topics are introduced: The datetime module, and specifically date() and datetime() within it. The dateutil add-on module, and specifically relativedelta() within it. The challenges are designed so that self-directed research will be required to complete them; they are not a cut-and-paste tutorial.
Python Resource Pack 5 - File Handling
gbartle_shsgbartle_shs

Python Resource Pack 5 - File Handling

(0)
Python Resource Pack 5 is a set of coding challenges designed to support the teaching and learning of the Python programming language. This pack is designed for those who have some experience of programming in Python, such as completing the exercises in Resource Packs 1 - 4. It is suitable for teaching Python in schools from Year 8 onwards, tutors and learners in adult learning classes or for the hobbyist learning at home. The pack gives learners an opportunity to investigate how to write, append and read text files using Python. It consists of eight programming challenges, each of which introduces different elements of file handling. The pack is designed to support learning that has previously taken place in the classroom, via self-directed study, or by following tutorials. The pack contains: Eight pdf files each containing a file handling coding challenge. Working solutions to each of the eight programs. The challenges are designed so that self-directed research will be required to complete them; they are not a cut-and-paste tutorial.
Python Resource Pack 2
gbartle_shsgbartle_shs

Python Resource Pack 2

(0)
Python Resource Pack 2 is a set of coding challenges designed to support the teaching and learning of the Python programming language. This pack is designed for those who have some experience of programming in Python, such as completing the exercises in Resource Pack 1. It is suitable for teaching Python in schools from Year 7 onwards, tutors and learners in adult learning classes or for the hobbyist learning at home. The pack also encourages the learner to start to consider the whole system life cycle and program documentation by including a requirement for all testing (both unsuccessful and successful tests, together with any corrective actions) to be recorded as a part of the solution alongside the code. Some of the tasks also require preparatory design before attempting to code the solution to the challenge. The pack is designed to support learning that has previously taken place in the classroom, via self-directed study, or by following tutorials. The pack contains: A pdf file with five coding challenges. Fully commented example solutions to each of the challenges. The following topics are introduced: Combining individual instructions into more complex instructions. The .format command as an alternative to the str command when concatenating strings with numbers. The import command to access specialised commands in addition to the basic Python command set. The math.fmod command to perform modulo division (finding the remainder). The .upper() command to convert text to all capitals and its help with data entry verification. The use of logical or. The if… elif… else command for multiple options in a selection command. The use of functions to segregate programs and generate and return data. The random.randint command to generate random integers. Using while True to create endless loops. The .lower() command to convert text to all capitals and its help with data entry verification. Use of the comma to concatenate and space integers and strings. The challenges are designed so that some self-directed research will be required to complete them; they are not a cut-and-paste tutorial. The challenges: Input how many integers are to be added together. Input and add that many integers and display the sum with an informative message. Input a month name and output how many days are in that month, taking leap years into consideration. Write a dice rolling game according to the given rules. Write a Rock, Paper, Scissors game. Write a Rock, Paper, Scissors, Lizard, Spock game.
Python Resource Pack 1
gbartle_shsgbartle_shs

Python Resource Pack 1

(0)
Python Resource Pack 1 is a set of coding challenges designed to support the teaching and learning of the Python programming language. This pack is designed for anyone who has no experience of programming in Python, or no experience of programming at all. It is suitable for teaching Python in schools from Year 7 onwards, tutors and learners in adult learning classes or for the hobbyist learning at home. The pack is designed to support learning that has previously taken place in the classroom, via self-directed study, or by following tutorials. The pack contains: A pdf file with eight coding challenges. Fully commented example solutions to each of the challenges. The following topics are introduced: Displaying text on the screen with the print command. The input command to accept data typed in by the program’s user. Using variables to store data. The int command to convert text strings to integers (whole numbers). The for… in range command to perform commands more than once in count controlled loops. The /n newline command. The .title() command to capitalize the first letter in a string. String concatenation. String replication. The str command to convert other data types into strings. Basic mathematics. The float command to convert text strings to real numbers (decimals). The if command to perform instructions if a condition is met. The if… else command to perform instructions if a condition is met and alternative instructions if not. The while command to perform commands more than once in condition controlled loops. The comparison operators. The break command to jump out of instructions. The challenges are designed so that a degree of self-directed research will be required to complete them; they are not a cut-and-paste tutorial. The challenges: A single line program which prints your name four times. A single line program which prints a box. Print "Hello " followed by a name with the first letter capitalised. Input a first name and surname, capitalise them and print them three times. Calculate an area from an input width and length then print it with an informative message. Input a number and display a different message depending on the number entered. Set a password and allow as many input attempts as necessary to let the user input it correctly. Includes extension work. Set a password and allow five attempts to let the user input it correctly, displaying appropriate messages if they succeed or not.
Python Resource Pack 6
gbartle_shsgbartle_shs

Python Resource Pack 6

(0)
Python Resource Pack 6 is a set of coding challenges designed to support the teaching and learning of the Python programming language. This pack is designed for those who have some experience of programming in Python, such as completing the exercises in Resource Packs 1 - 5. It is suitable for teaching Python in schools at GCSE, AS and A Level, for tutors and learners in adult learning classes or for the hobbyist learning at home. As part of the higher-level learning and exam preparation for which the pack is designed, emphasis is placed on the system life cycle and program documentation by requiring: Preparatory design before attempting to code the solution to the challenge. Full validation to prevent the wrong type of data or incorrect values from being entered. The use of meaningful names for variables, functions and procedures. Fully commenting code. Full testing (both unsuccessful and successful tests, together with any corrective actions) to be recorded as a part of the solution alongside the code. The pack is designed to support learning that has previously taken place in the classroom, via self-directed study, or by following tutorials. The pack contains eleven challenges, each consisting of: A pdf file with one or more coding challenges and, in some cases, supplementary extension work. Fully commented example solutions to the challenge or challenges and any extensions. The following topics are introduced: Writing recursive as opposed to iterative solutions. The global command to create static variables. The round command to round numbers to a given degree of accuracy. The use of end= in print commands. The % mathematical operator to perform modulo division. The** .append()** command with lists. The ** function for calculating exponents; The math module; The import math command. The math.degrees() command to convert from radians to degrees. The math.asin() command (the equivalent of sin-1) The math.pi() command representing π. The math.sin() command. The math.cos() command. The in command for checking if an item is in a list. The pass command in error trapping. The match… case command to make selections based on the value of a variable. The not in command to search for strings within strings. The use of constants and a constants file. The challenges are designed so that self-directed research will be required to complete them; they are not a cut-and-paste tutorial. The challenges: Calculate factorials. Includes extension work. Temperature scale converter. Fibonacci Sequence. Includes extension work. Perfect Numbers. Problems inspired by Isambard Kingdom Brunel. Platonic Solids. Happy Numbers. String interrogation. Includes extension work. Counting game. Includes extension work. Kaprekar and Harshad Numbers. Includes extension work. Thue-Morse Sequence. Palindromes. Number Base Converter.
Python Resource Pack 3
gbartle_shsgbartle_shs

Python Resource Pack 3

(0)
Python Resource Pack 3 is a set of coding challenges designed to support the teaching and learning of the Python programming language. This pack is designed for those who have some experience of programming in Python, such as completing the exercises in Resource Packs 1 and 2. It is suitable for teaching Python in schools from Year 8 onwards, tutors and learners in adult learning classes or for the hobbyist learning at home. The pack also encourages the learner to start to consider the whole system life cycle and program documentation by introducing the following requirements: Preparatory design before attempting to code the solution to the challenge. Full validation to prevent the wrong type of data or incorrect values from being entered. Full testing (both unsuccessful and successful tests, together with any corrective actions) to be recorded as a part of the solution alongside the code. The pack is designed to support learning that has previously taken place in the classroom, via self-directed study, or by following tutorials. The pack contains: A pdf file with four coding challenges. Fully commented example solutions to each of the challenges. The following topics are introduced: The regular expression module. The re.match command to determine if a string matches a format defined by a regular expression. .isspace() to detect strings made completely of spaces. The len command to find the length of a string. The lstrip() and rstrip() commands to remove spaces, newline and tab characters from the start and end of a string. Parameter passing to procedures/functions. The random.seed command to seed the random number generator. The random.randrange to set the range of random numbers to be generated. The try… except ValueError command for error trapping. Lists. The sum command to add the values in a list of numbers. The statistics module. The chr command to get a character from an ASCII value. The count() command to determine how many times one string appears in another. The challenges are designed so that self-directed research will be required to complete them; they are not a cut-and-paste tutorial. The challenges: Input a message from a restricted character set and display it capitalised as an on-screen banner. Implement a version of the board game ‘Mastermind’. User chooses how many numbers are to be input. Enter that number of non-negative integers and calculate the sum, mean, mode and median. Enter a putative email address and tell the user if it is valid; otherwise explain all the reasons why it is invalid.
Python Resource Pack 7
gbartle_shsgbartle_shs

Python Resource Pack 7

(0)
Python Resource Pack 7 is a set of coding challenges designed to support the teaching and learning of the Python programming language. This pack is designed for those who have some experience of programming in Python, such as completing the exercises in Resource Packs 1 - 6. It is suitable for teaching Python in schools at AS and A Level, for tutors and learners in adult learning classes or for the hobbyist learning at home. As part of the higher-level learning and exam preparation for which the pack is designed, these challenges necessitate a greater degree of design and coding ability than the challenges in Resource Pack 6. Emphasis is placed on the system life cycle and program documentation by requiring: Preparatory design before attempting to code the solution to the challenge. Full validation to prevent the wrong type of data or incorrect values from being entered. The use of meaningful names for variables, functions and procedures. Fully commenting code. Full testing (both unsuccessful and successful tests, together with any corrective actions) to be recorded as a part of the solution alongside the code. The pack is designed to support learning that has previously taken place in the classroom, via self-directed study, or by following tutorials. The pack contains nine challenges, each consisting of: A pdf file with one or more coding challenges and, in some cases, supplementary extension work. Fully commented example solutions to the challenge or challenges and any extensions. The following topics are introduced: The // mathematical operator to perform integer division. The [:n] string operator to get the leftmost n characters of a string. The [-n:] string operator to get the rightmost n characters of a string. The re.sub regular expression function. The chr() and ord() commands to get a character from an ASCII value. The pow() command to calculate powers. The math.sqrt() command for calculating square roots. The challenges are designed so that self-directed research will be required to complete them; they are not a cut-and-paste tutorial.
Python Resource Pack Multi-Buy Offer
gbartle_shsgbartle_shs

Python Resource Pack Multi-Buy Offer

8 Resources
Buy all eight Python Resource Packs together and save over £60! A complete set of coding challenges for the complete beginner to A Level Computing student.
Complexity Comparisons investigation
gbartle_shsgbartle_shs

Complexity Comparisons investigation

(0)
This spreadsheet is designed to support learning how well algorithms of differing time complexities scale in Computing. By changing the size of the data set, n, the learner can see how well algorithms with Constant, Linear and differing Polynomial, Exponential and Logarithmic complexities scale, even with small data sets.
Binary Search investigation
gbartle_shsgbartle_shs

Binary Search investigation

(0)
This macro-enabled spreadsheet is designed to support learning how a Binary Search works in Computing. It simulates a database with record keys in the range zero to the user’s choice of between ten and one million. After entering the record number to be found, the spreadsheet shows how each iteration of the Binary Search focusses in tighter and tighter on the required record until it is found. It also gives learners the opportunity to see how algorithms of logarithmic complexity O(Log n) scale, i.e. how doubling the number of records only adds one to the maximum number of searches required to find the target. NOTE: for this spreadsheet to work correctly, the copy of Excel in which it is running must allow macros to execute, and ‘Enable Content’ must be clicked when the spreadsheet is opened.