This repository is for coding activities developed in Jupyter notebooks using the Noteable platform (www.noteable.edina.ac.uk) for Scottish teachers and learners. These materials were developed between February and May 2021 and cover topics from the SQA curriculum in Computing Science, Mathematics, Statistics and other fields involving data analysis. The content in these notebooks aims to provide support and learning materials for teachers to adopt and use the Noteable service across school in Scotland, to deliver curriculum topics involving the analysis of numbers, data or other types of information and programming elements at Scottish Qualifications Authority National Levels 3, 4, 5, Higher and Advanced Higher.
This content aims to provide support and learning materials for teachers to adopt and use the Noteable service across schools in Scotland.
- Click on the +GitRepo button
- Paste into the Git Repository URL input the url from the web browser (in this case https://github.com/edina/Notebook-exemplars-for-GLOW-users)
- Change the branch to main
- click on Clone
- All Coding Activities in this repository will now be available to you on Noteable
These exemplars were informed by a number of resources, including:
- The PRIMM approach for teaching and learning programming - https://blogs.kcl.ac.uk/cser/2017/09/01/primm-a-structured-approach-to-teaching-programming/
- Geeks for Geeks, a computing science portal for well-written examples of code, documentation and related materials: https://www.geeksforgeeks.org/
- Scottish Qualification Authority curricula - https://www.sqa.org.uk/sqa/48486.html
This a breakdown of available materials in this repository:
Learning Outcomes for National 3 level Computing Science include:
A learner should be able to explore computational thinking processes and identify patterns in objects or information. A learner should be able to develop a sequence of instructions and run this sequence using programmable devices.
The course specification includes core skills to complete for the unit at Information and Communication Technology at SCQF level 3. It is expected that learners will develop broad, generic skills through this unit. The main skills areas identified in the specification are Numeracy: Information handling, Employability, enterprise and citizenship and applying thinking skills.
An introductory notebook has been developed to understand the print function and working with variables with assigned values inside the notebook, following the PRIMM method for teaching programming, PRIMM stands for Predict, Run, Investigate, Modify and Make and is based on research into the learning of programming but combines different areas [https://blogs.kcl.ac.uk/cser/2017/09/01/primm-a-structured-approach-to-teaching-programming/]. This introductory notebook also provides an overview of the four main data types on Python – int, float, string and bool. The notebook then distinguishes between = and == on Python for learners.
The first notebook, as shown above, covers some basic programming elements, starting with printing statements, progressing to some arithmetic operations (addition, multiplication and division, raising a number to a power or comparing values and output proofs such as print(3>5) with output ‘False’. The ‘Part 2’ introductory notebook also follows the PRIMM approach and covers Variable Types, including exercises to explore how variables can have various types. This notebook also explores the four main data types in Python, strings, Booleans, floats and integers.
A notebook which follows this 2-part introduction progresses from the end of the introduction as the student should be more familiar with printing conditional statements, sentences and numbers and in this notebook will become more familiar with the while instructions and arrays as a way of storing data (curriculum topic). A simple game has been developed in this notebook, applicable to National 3 level, where a student is tasked with understanding that the game runs through a word that the user inputs and asks for a following word to begin with the last letter of the first word, and so on. If the user does this correctly they can progress in the game.
There is a separate introductory notebook for the ‘if’ and ‘for’ statements on Python, which covers using this statement to determine if a number is odd or even, progressing to using the elif statement for some further conditions, such as checking whether a number has one, two or three digits. The for statement is explored through an activity which lists a print text decided by the user 10 times, across a range from 1 to 10 for ‘i’. The last exercise in the notebook explores making loops with classmates to list some of their traits and preferences, such as ‘What is Johnny’s favourite game?’ and setting the reply to ‘Football’. This could be extended to interactive classroom activities.
A following notebook provides an overview of the array data structure used across programming languages. This notebook explores elements in an array, calculating their sum using code on Noteable, as well as listing an index of numbers. This notebook activity aims to satisfy the numeracy element of the unit specification, as well as applying thinking skills.
A notebook including more complex visualisations and functions may potentially be used for National 3 as well, which is described in the section for National 4.
Learning Outcomes for Level 4 include:
A learner should be able to organise information in a logical way.
A learner should be able to understand the instructions of a visual programming language and predict the outcome of a programme written using that language. A student should also develop an understanding of how computers process information and build simple programmes to carry out a simple task.
The course specification includes core skills to complete for the unit at Information and Communication Technology at SCQF level 4 and is a progression from the National 3 set of notebooks and the relevant experiences and outcomes. It is expected that learners will develop an understanding of how computing science is vital to everyday life – socially, technologically and economically, through this unit. The main skills areas identified in the specification are aspects of computational thinking across a range of contemporary contexts, developing knowledge and understanding of key facts and ideas in computing science, applying skills and knowledge in analysis, design, implementation and testing to a range of digital solutions, communicate computing concepts clearly and concisely using appropriate terminology and develop an understanding of the impact of computing science in changing and influencing our environment and society. Skills are expected in Numeracy: number process and information handling.
The learner will be able to explain how simple programs work, drawing on understanding of basic concepts in software development, by reading and explaining code, identify the purpose of a range of programming constructs and how they work and identify variable types.
An introductory notebook has been developed to understand data types such as strings, as well as developing and utilising string functions and methods for replacing part of the strings, both manually and making use of the replace function. The split function is also used. Finally, this notebook explores Unicode characters, printing some emojis. This notebook offers a natural progression from Level 3 and aims to add a suitable level of complexity to what is expected from the learner at Level 4.
A follow-up notebook has been developed which both includes and builds upon the materials in the ‘if’ and ‘for’ statement notebook developed for Nat 3 level. This notebook expands on the elif exercises from Nat 3.
Another notebook has been developed, appropriate for National Level 4, focussing on how strings can be formed with any character or arrangement of characters. This notebook elaborates on strings.
Learning Outcomes for Level 5 include:
A learner should be able to understand the operation of a process and its outcome. They should be able to structure related items of information.
A learner should be able to explain core programming language concepts using appropriate technical language, as well as understand how information is stored and how key components in computing connect and interact through networks.
A learner should also be able to create, develop and evaluate computing solutions in response to a design challenge.
The course specification includes core skills to complete at SCQF level 5 and is a progression from the National 4 notebooks and the relevant experiences and outcomes. The main skills areas identified in the specification are aspects of computational thinking across a range of contemporary contexts, developing knowledge and understanding of key facts and ideas in computing science, applying skills and knowledge in analysis, design, implementation and testing to a range of digital solutions, communicating computing concepts and explaining computational behaviour clearly and concisely using appropriate terminology.
The course is designed for learners considering further study or a career in computing science and, as such, materials should be relevant to real world applications. The learner will be able to understand practical problem-solving skills in software design and development. They will gain an understanding of how data and instructions are stored in binary form and basic computer architecture. There are also expectations for practical problem-solving skills in database design and development, through a range of practical and investigative tasks. Finally, there are elements at this level of web design and development, using development tools such as HTML, CSS and Javascript. The course specification includes inputs, processes and inputs, understanding data types and structures including structure diagrams, flowcharts, pseudocode as well as characters, strings, numerical types (integer and real), Boolean and 1-D arrays.
The following topics are addressed at this level: • Describe and identify syntax, execution, and logic errors. • Describe, identify, and exemplify the evaluation of a solution in terms of: fitness for purpose • efficient use of coding constructs
A notebook has been developed which includes and expands upon the ‘if’ and ‘for’ for statements covered in the National 3 and National 4 notebooks. This notebook builds on previous materials by adding sums and determining conditions for calculations, such as calculating the sum of all numbers in a set divisible by either 3 or 5.
Materials have been developed to provide further understanding of operations and how they connect in computing science. A notebook has been developed for Boolean operators, recognising conditions to satisfy programming conditions and visualise operators with an image analysis. This notebook describes how images can be edited using Boolean operators.
At level 5, a learner should be able to describe and exemplify the use of binary to represent positive integers, as well as describe floating point representation of positive real numbers and describe extended ASCII code (8-bit) used to represent characters. A notebook has been developed to provide activities on binary systems, covering distinctions between data and information, binary representations of data and an additional, optional section for this level on converting to hexadecimal units. This notebook can be found in the Tutorials folder.
Learning Outcomes for Higher include:
A learner should be able to describe different fundamental information processes and how they communicate and can identify their use in solving different problems.
A learner should be able to develop an understanding of information and use a model to describe particular aspects of a system.
A learner should also be able to describe the structure and operation of computing systems which have multiple components interacting with each other, and select appropriate development tools to design, build, evaluate and refine computing solutions based on requirements.
These skills build from National 5 and require a learner to develop further skills in security risks and describing how encryption is used to secure the transmission of data using public and private keys and exemplify the design of a solution to a query, such as sort order, grouping, and calculations.
*The encryption notebooks, part 1 and part 2, can be found in the Tutorials folder.
Materials have been developed to provide further understanding of exercises developed across previous levels, including a notebook for encryption and decryption exercises as well as a new notebook in statistics. This mentioned field has huge applications in many areas of industry and research areas - data science, artificial intelligence, biological simulations of cells and statistical mechanics are just a few. This also has some crossover with the course specification for Statistics at Higher level and Mathematics at Advanced Higher. The course specification for Statistics at National Level 6 includes normal distribution and requires a learner to understand histograms and randomness, and the course specification for Mathematics at Advanced Higher includes more advanced Gaussian (normal) distribution skills.
For Higher Level in Computing Science activities, the aforementioned notebooks focussing on Boolean operators and Binary units include suitable material, progressing to include image manipulation using numpy arrays and matrices to apply operators such as AND. These notebooks are available in the Tutorials folder
The ‘if’ and ‘for’ statement notebook has been expanded for Higher level with exercises looking at prime numbers, determining if a number is prime through division, as well as making simple algorithms more effective by reducing the number of steps in a calculation.
The statistics notebook is designed for the Higher National Level qualification by providing some initial exercises in statistics. The notebook describes how computers can manage large quantities of data in order to calculate the outcomes of throwing a six-faced die.
Learning Outcomes for Higher include:
A learner should be able to describe in detail the processes used in real-world solutions, informally compare algorithms for correctness and efficiency, as well as understand constructs and data structures in a textual programming language.
A learner should be able to distinguish the relationship between high level languages and the operation of a computer and select appropriate development tools to design, build, evaluate and refine computing solutions to process and present information whilst making reasoned arguments to justify decisions.
These skills build from National Higher Level and require a learner to develop further skills in computational thinking, including abstraction, algorithms, decomposition, pattern recognition and generalisation. This level also requires the learner to demonstrate advanced skills in computer programming as well as communicate how a programme works. Learners should also be able to build their knowledge of data types and structures, including arrays of records, 2-D arrays, arrays of objects, attribute types (varchar, etc) and do data analysis with planning in terms of scheduling and Gantt charts. Algorithmic specification is expanded at this level to include binary search, insertion sort and bubble sort, as well as how encryption is used to secure the transmission of data.
A notebook has been developed which builds upon the ‘if’ and ‘for’ statement notebook that was introduced at National 3 level. At Advanced Higher level this notebook introduces functions to make a programme more efficient as well as an activity to check whether a number can be written as the sum of three prime numbers.
Materials have been developed to provide further understanding of exercises developed across previous levels, including a notebook for encryption and decryption exercises as well as more advanced exercises in the notebook for statistics. This also has some crossover with the course specification for Mathematics at Advanced Higher level, which requires using Gaussian elimination. The course specification for Statistics at National Level 6 includes normal distribution and requires a learner to understand histograms and randomness. The statistics notebook also provides some activities suitable at Higher Advanced Level, building from Gaussian (normal distribution) to some combinatronics exercises, as well as an exploration of estimating pi. The statistics notebooks ends with the application of calculating the Birthday Paradox (23 randomly chosen people have a 50% chance of two randomly chosen people to have the same birthday).
The encryption and decryption notebook aims to familiarise the learner with ways of sending a hidden message or code, and deciphering it.
Authors and acknowledgements
Alexandru Hau - Student Coding Experience Intern for Noteable, Edina
If you have any questions or would like to find out more about Noteable please visit www.noteable.edina.ac.uk.