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
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 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.
Endless Unguided Floating Point Binary Mathematics questions
gbartle_shsgbartle_shs

Endless Unguided Floating Point Binary Mathematics questions

(0)
This macro-enabled spreadsheet is designed to demonstrate the ability to add and subtract Floating Point Binary numbers as used in Computing. There are two worksheets, one with addition, and one with subtraction. The following options can be selected: • The size of the Mantissa can be varied between 4 and 8 bits in size. This both changes the question difficulty and also gives learners an opportunity to appreciate how altering the size of the Mantissa affects the accuracy with which values can be represented. • The size of the Exponent can be either 3 or 4 bits in size. This both changes the question difficulty and also gives learners an opportunity to appreciate how altering the size of the Exponent affects the range of values which can be stored. • Both positive and negative Mantissae can be generated, or questions can be made simpler by allowing only positive Mantissae to be generated. • There is an option to emulate how some processors treat the Carry Bit as an additional Sign Bit in certain conditions, allowing learners to determine the circumstances when this happens and the effect it has on eliminating Overflow. With the Binary Exponent, both types of question use the convention with negative Binary numbers whereby if only the Sign Bit is a 1, it represents both sign and magnitude. For example, with a signed 4 bit Binary number, 1000 represents -8 in Decimal. Each worksheet generates five questions every time the ‘Generate Questions’ button is clicked. Once the learners have completed a question, clicking the associated ‘Mark It’ button reveals whether their answer are right or wrong, and the steps required to complete the question successfully, namely: • Converting the two values from Floating Point form to raw binary; • Aligning the points of the raw binary values and padding out with additional Sign Bits and trailing zeroes as necessary; • Twos Complementing the bottom of the point-aligned values (subtraction only); • Performing the addition or subtraction of the point-aligned values; • Determining the Mantissa, or if Overflow has occurred; • Determining the Exponent, or if Overflow (the Exponent is a positive value too big to be represented in its selected number of bits) or Underflow (the Exponent is a negative value too big to be represented in its selected number of bits) has occurred; • Giving the full Floating Point binary string if possible, or stating it is impossible to do so if not; • Stating whether the Floating Point value has been truncated or not if it was possible to generate it. Changing an answer removes the marking until the button is clicked again. This worksheet is designed to be used after completing our ‘Guided Floating Point Binary questions’, ‘Unguided Floating Point Binary questions’ and ‘Guided Floating Point mathematics questions’ worksheets.
Endless Guided Floating Point Binary Mathematics questions
gbartle_shsgbartle_shs

Endless Guided Floating Point Binary Mathematics questions

(0)
This macro-enabled spreadsheet is designed to practice adding and subtracting Floating Point Binary numbers as used in Computing. There are two worksheets, one with addition, and one with subtraction. Learners are guided through the steps necessary to complete each type of question, namely: • Converting the two values from Floating Point form to raw binary; • Aligning the points of the raw binary values and padding out with additional Sign Bits and trailing zeroes as necessary; • Twos Complementing the bottom of the point-aligned values (subtraction only); • Performing the addition or subtraction of the point-aligned values; • Determining the Mantissa, or if Overflow has occurred; • Determining the Exponent, or if Overflow (the Exponent is a positive value too big to be represented in its selected number of bits) or Underflow (the Exponent is a negative value too big to be represented in its selected number of bits) has occurred; • Giving the full Floating Point binary string if possible, or stating it is impossible to do so if not; • Stating whether the Floating Point value has been truncated or not if it was possible to generate it. The following options can be selected: • The size of the Mantissa can be varied between 4 and 8 bits in size. This both changes the question difficulty and also gives learners an opportunity to appreciate how altering the size of the Mantissa affects the accuracy with which values can be represented. • The size of the Exponent can be either 3 or 4 bits in size. This both changes the question difficulty and also gives learners an opportunity to appreciate how altering the size of the Exponent affects the range of values which can be stored. • Both positive and negative Mantissae can be generated, or questions can be made simpler by allowing only positive Mantissae to be generated. • There is an option to emulate how some processors treat the Carry Bit as an additional Sign Bit in certain conditions, allowing learners to determine the circumstances when this happens and the effect it has on eliminating Overflow. With the Binary Exponent, both types of question use the convention with negative Binary numbers whereby if only the Sign Bit is a 1, it represents both sign and magnitude. For example, with a signed 4 bit Binary number, 1000 represents -8 in Decimal. Each worksheet generates five questions every time the ‘Generate Questions’ button is clicked. Once the learners have completed a question, clicking the associated ‘Mark It’ button reveals which steps of their answer are right or wrong. Changing an answer removes the marking until the button is clicked again. This worksheet is designed to be used after completing our ‘Guided Floating Point Binary questions’ and ‘Unguided Floating Point Binary questions’ worksheets, and prior to completing our ‘Unguided Floating Point mathematics questions’ worksheet.
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 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.
Math Parser Compiler Emulator with Math Parser Virtual Machine (single Windows PC only)
gbartle_shsgbartle_shs

Math Parser Compiler Emulator with Math Parser Virtual Machine (single Windows PC only)

(0)
Math Parser Virtual Machine supports learning how Reverse Polish Notation (RPN) is evaluated to produce answers. Using RPN files created using Math Parser Compiler Emulator (supplied) as input, Math Parser Virtual Machine shows how: The Stack is used in evaluation How the X Register in the CPU is used How the Y Register in the CPU is used How the Accumulator in the CPU is used How run-time errors are handled Fully supported by a comprehensive Help file, Math Parser Virtual Machine includes the algorithm used and explains all the technical terminology.
Data Sorts (for single Windows PC only)
gbartle_shsgbartle_shs

Data Sorts (for single Windows PC only)

(0)
Data Sorts provides theory notes and interactive models of four common data sorting routines used in computing: the Bubble Sort, Insertion Sort, Merge Sort and Quicksort. The models include a delay feature so sorting occurs at a speed to suit the user, or, alternatively, instantaneously. In addition, the element of the Sort that is currently being processed is highlighted, making it easier to see what is going on and to relate it to the algorithm being used. There is an option to switch on a step-by-step explanation of how each algorithm is functioning. Speed Trials generates a large data set and then allows the user to sort that data using one of the sorting algorithms, timing how long it took. The data can then be returned to its original order, and one of the other sorts used, allowing comparisons to be drawn. Further sets of data can then be generated to substantiate results. Unlike the standalone models, Speed Trials is not deliberately slowed down and has all unnecessary formatting code removed to optimise performance and therefore provide true comparative data. Alongside the five interactive models are a set of theory notes describing each of the sort algorithms and designed to be read before interacting with the models and to reinforce learning as they are used. Data Sorts is supported by a comprehensive help file.
Data Structures (for single Windows PC only)
gbartle_shsgbartle_shs

Data Structures (for single Windows PC only)

(0)
Data Structures provides interactive models and theory notes of four common data structures used in computing: the Stack, Circular Queue, Binary Search Tree and Linked List. Each is designed to prevent the user from performing illegal operations such as adding data to an already full structure and explains why such actions are being taken. The Binary Search Tree and Linked List models include a delay feature so that the Tree may be traversed, and the List read at a speed to suit the user, or, alternatively, instantaneously. In addition, the element of the Tree or List that is currently being accessed is highlighted, making it easier to see what is going on and to relate it to the algorithm being used. The Binary Search Tree includes removal of data from the tree, complete with a Structured English description and a Pseudocode algorithm in the theory notes of how it is accomplished. There is an option to switch on a step-by-step explanation of how data is entered into a Binary Search Tree and how the three traversal methods operate, and how data is inserted into, read from and removed from a Linked List. Alongside the four interactive models are a set of theory notes describing each of the data structures and designed to be read before interacting with the models and to reinforce learning as they are used. Data Structures is supported by a comprehensive help file.
Floating Point Multi-Buy offer
gbartle_shsgbartle_shs

Floating Point Multi-Buy offer

4 Resources
Buy all four floating point question spreadsheets together and save £10: Endless Guided Floating Point Binary Conversion question generator Endless Unguided Floating Point Binary Conversion question generator Endless Guided Floating Point Binary Mathematics questions Endless Guided Floating Point Binary Mathematics questions Endless Unguided Floating Point Binary Mathematics questions
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.
Mathematics for Computing Multi-Buy offer
gbartle_shsgbartle_shs

Mathematics for Computing Multi-Buy offer

7 Resources
Buy all seven products together and save £15 Endless Number Base Conversion question generator Endless Unsigned Binary Addition and Subtraction question generator Endless Signed Binary Addition and Subtraction question generator Endless Guided Floating Point Binary Conversion question generator Endless Unguided Floating Point Binary Conversion question generator Endless Guided Floating Point Binary Mathematics questions Endless Unguided Floating Point Binary Mathematics questions
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 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.