Computing teacher: Mark Cullen
The Teach Computing curriculum is structured into units for each year group, and each unit is broken down into lessons. Units can generally be taught in any order, with the exception of programming units - where concepts and skills rely on prior knowledge and experiences - and year 7 - where “Clear messaging in digital media” should be taught first. Lessons must be taught in numerical order.
This unit offers learners the opportunity to design graphics using vector graphic editing software. By the end of the unit learners will have produced an illustration, a logo, or some icons using vector graphics. The lessons are tailored to Inkscape (inkscape.org), which is open source and cross-platform, but the resources should be readily adaptable to any vector graphics editor. Vector graphics can be used to design anything from logos and icons to posters, board games, and complex illustrations. Through this unit, learners will be able to better understand the processes involved in creating such graphics and will be provided with the knowledge and tools to create their own.
Lesson 1 Get into shapes
In this lesson learners are introduced to using Inkscape (or equivalent software) to create vector graphics. Learners start by simply looking at using shapes to create an image. They will spend time drawing and modifying shapes using shape tools. The idea of z-order (sometimes called layers) is introduced to learners, who will then change the x, y, and z position of shapes they have created.
Learning objectives
- Use tools to draw and modify shapes
- Change the position and rotation shapes
- Explain how z-order determines what is visible
Lesson 2 Working with multiple objects
During this lesson learners will work with multiple objects. They will use tools to align, distribute, group, and combine objects. In this lesson the term object and shape is used interchangeably. In vector drawing every item added to a drawing is seen as an object by the program. Later in the unit learners will also work with lines, which can also be described as objects.
Learning objectives
- Use tools to align and distribute objects to create uniformity
- Explain how grouping can be used to work with several objects at once
- Combine two shapes using union, intersection, and difference
Year 8 Lesson 3 Paths
During this lesson students learn that vector graphics are made up of paths and that these paths include nodes at the start, end, and at changes of path direction. Learners see how the shapes, which they have already learned how to create, can be converted to paths and then edited. Learners will create superhero faces using a combination of paths and shapes that they have converted to paths.
Learning objectives
- Explain that vector graphics are made up of paths
- Create and modify straight and curved paths
- Change shapes to paths and edit them
Year 8 Lesson 4 What will you make?
Learners start an open-ended project from a range of suggestions and work in pairs. Learners are given the opportunity to review and develop their work further in Lessons 5 and 6.
Learning objectives
- Choose a project and plan a design
- Combine tools and techniques to create a vector image
- Evaluate the project against its given purpose
Lesson 5 Behind the scenes
During this lesson learners investigate how vector images are stored. They look at svg markup and modify markup values in Inkscape. Learners are also given time to review and develop their projects further.
Learning objectives
- Explain how markup defines what a vector graphic looks like
- Change an object by modifying its markup
- Plan improvements and implement them to develop a project
Lesson 6 Showcase
In this lesson learners compare vector images with bitmaps images. They consider which image type best suits which situation. Learners are given a final chance to make small changes to their project before they review it and share it with the rest of the class. The lesson ends with a multiple choice quiz.
Learning objectives
- Explain key differences between vector and bitmap images
- Outline which image type best suits which uses
- Evaluate their image against a rubric
This unit takes learners on a tour through the different layers of computing systems: from programs and the operating system, to the physical components that store and execute these programs, to the fundamental binary building blocks that these components consist of. The aim is to provide a concise overview of how computing systems operate, conveying the essentials and abstracting away the technical details that might confuse or put off learners.The last lessons cover two interesting contemporary topics: artificial intelligence and open source software. These are linked back to the content of the unit, helping learners to both broaden their knowledge and focus on the topics addressed in the unit. The unit assumes no prior knowledge. There are, however, links to the 'Representations' units taught in Years 8 and 9, the Year 7 unit 'Networks from semaphores to the Internet' and Year 8 unit 'Developing for the web'.
Lesson 1 Get in gear
In this first lesson about computing systems, you will focus on what sets these devices apart from other purpose-built machinery: it is their ability to execute programs that allows them to modify their operation and perform different tasks, and thus become our most versatile ‘tool for thought’. To develop an understanding of this unique characteristic, learners will compare calculating machines from the past to modern general-purpose computers. After that, they will connect the important but perhaps abstract idea of a program to the applications that they use every day. Finally, they will execute a program themselves, playing noughts and crosses with a human opponent. This is a gentle introduction to a broad and technical subject. There is as yet no mention of how programs are represented, or the hardware that is required to execute them in practice. This lesson lays the foundation for introducing these concepts.
Learning objectives
- Recall that a general-purpose computing system is a device for executing programs
- Recall that a program is a sequence of instructions that specify operations that are to be performed on data
- Explain the difference between a general-purpose computing system and a purpose-built device
Lesson 2 Under the hood
For most humans, reading instructions (and sometimes memorising them), following them one at a time, and keeping track of where they are and what the current state is comes very naturally. We rarely reflect about the details of that process, so it is not surprising that we rarely wonder about the components that perform these tasks in machines. The previous lesson established how the main purpose of computing systems is to execute programs that operate on data. It is now time to introduce learners to the hardware components, i.e. the actual ‘machinery’ that allows computing systems to fulfil this purpose. Learners will discover how all computing systems, regardless of form or capabilities, make use of the same components: a processor, memory, storage, input and output devices, and communication components. They will form a simple, concise picture of what each of these ‘universal’ components does, and how they work together in order to execute programs.
Learning objectives
- Describe the function of the hardware components used in computing systems
- Describe how the hardware components used in computing systems work together in order to execute programs
- Recall that all computing systems, regardless of form, have a similar structure (‘architecture’)
Lesson 3 Orchestra conductor
The previous lesson introduced the main hardware components required to execute programs. This lesson will build on that knowledge and relate it to the computing systems that learners see and use every day. The abstract descriptions of how the processor, memory, storage, and communication components interact with each other and function as a system will now be embedded in concrete, familiar scenarios that the learners will investigate. Through the activities in this lesson, learners will look under the surface and gain a further glimpse into what goes on under the hood when they use computing devices. This lesson will also introduce the operating system, which is responsible for managing the complexity of modern computing devices. Here, operating systems will serve as an additional bridge between theory and practice.
Learning objectives
- Analyse how the hardware components used in computing systems work together in order to execute programs
- Define what an operating system is, and recall its role in controlling program execution
In this unit, learners will explore the technologies that make up the internet and World Wide Web. Starting with an exploration of the building blocks of the World Wide Web, HTML, and CSS, learners will investigate how websites are catalogued and organised for effective retrieval using search engines. By the end of the unit, learners will have a functioning website.
Lesson 1 Website building blocks
We use web pages every day without questioning how they work. This lesson looks behind the curtain to help learners start to understand how web pages are constructed using HTML tags, and how they can be modified to start to resemble the websites they are accustomed to. Learners will begin by considering the power of automation for repetitive tasks, before delving into some practical web page formatting activities using HTML tags. Firstly, they will practise formatting sections of text to improve readability. Learners will then modify tags to change their appearance in a document, to make them different from the defaults provided.
Learning objectives
- Describe what HTML is
- Use HTML to structure static web pages
- Modify HTML tags using inline styling to improve the appearance of web pages
Lesson 2 Words are not enough
It is said that a picture paints a thousand words. Web pages that only use text are not going to be read for long on a screen. The use of images on web pages is important as it can bring them to life and help improve the reader’s experience. Learners will begin by recapping the important fundamentals of web page design, specifically the use of tags and their modification. They will explore the structure and operation of the img tag and understand how they can be used to ‘add’ images to web pages. To consolidate the learning of the first two lessons, they will also try to replicate a given web page design to see if they can use what they have learnt in the most effective way.
Learning objectives
- Display images within a web page
- Apply HTML tags to construct a web page structure from a provided design
Lesson 3 Taking shortcuts
Computer scientists shouldn’t work too hard! The benefit of using a computer is that it is a device that allows the easy editing of content. It is not like writing an essay on a sheet of A4 where any small mistake or change requires the work to be reproduced again. Computer scientists like to find efficient ways to automate what they do and in this lesson learners will see that CSS is a more efficient way of styling HTML documents. Learners will begin by recapping how formatting is controlled using inline HTML formatting. They will appreciate that this approach is time consuming and allows inconsistencies in design to manifest. Learners will start to experiment with using CSS to format tags in a HTML document. They will then progress on to applying their own formatting schemes to work they have already created. As they become more experienced in the structure of CSS learners should look to extend their knowledge by researching the numerous attributes that can be controlled by CSS.
Learning objectives
- Describe what CSS is
- Use CSS to style static web pages
- Assess the benefits of using CSS to style pages instead of in-line formatting
Year 8 Lesson 4 Searching the web
Like artists, web developers create works of art that they want people to see. There is so much content on the World Wide Web, that making sure your web page stands out can be difficult. Consider how people get to web pages. The start of the journey is usually a search engine, which people use to search for a few keywords and pick something from the list. The problem is, that list usually contains millions of different pages. In this lesson, learners will consider how web pages are found and catalogued, ready for people to search for them. By considering how search engines find and rank web pages, they will learn how they can make their designs appear towards the top of search engine lists, so that more people will view what they have created.
Learning objectives
- Describe what a search engine is
- Explain how search engines ‘crawl’ through the World Wide Web and how they select and rank results
- Analyse how search engines select and rank results when searches are made
Lesson 5 Tightening the web
Search engines index a huge number of web pages against an equally large number of possible search terms. Finding useful information therefore is quite tricky. If we understand how to control what we search for more carefully, we have a higher chance of finding what we want and what may be more useful than the other millions of web pages we could look at. In this lesson learners will investigate advanced search techniques. They will understand how search operators can be used to combine or exclude search terms to either expand or narrow search results. They will practice using these terms for specific purposes and then build on the work from the last lesson to create a new page that can be used to summarise their learning from this lesson. They will also learn how to hyperlink web pages into a complete website allowing navigation between the pages that they create.
Learning objectives
- Use search technologies effectively
- Discuss the impact of search technologies and the issues that arise by the way they function and the way they are used
- Create hyperlinks to allow users to navigate between multiple web pages
Lesson 6 Navigating the web
In this lesson learners will begin by creating a web page to summarise their learning over the entire unit by creating an additional ‘How to’ web page, they will follow this up by adding navigation to all pages of the website. By reviewing what they have created they will also be refreshing their memories for a summative assessment of their learning at the end of the lesson.
Learning objectives
- Implement navigation to complete a functioning website
- Complete summative assessment
Humans use symbols to record, process and transmit information. Introduce binary digits to your learners as the symbols computers use to perform these tasks and focus on the representation of text and numbers.
Year 8 Lesson 1 Across time and space
Learners discuss familiar examples of representations, some of which date back millennia, to better understand their use and characteristics. This prepares learners for their encounter with binary representations in the context of computing, and places these within a much broader (and more familiar) context.
Learning objectives
- List examples of representations
- Recall that representations are used to store, communicate, and process information
- Provide examples of how different representations are appropriate for different tasks
Lesson 2 Lights and drums
Learners work in groups through an activity that requires them to encode, transmit, and decode short messages, with each group using a different coding scheme and communication medium (signals, light, sounds, holes on paper, etc.). The activity reinforces the learners’ understanding of text representation using sequences of symbols, while emphasis is placed on distinguishing between symbols and the way in which they are embodied in physical media.
Learning objectives
- Recall that characters can be represented as sequences of symbols and list examples of character coding schemes
- Measure the length of a representation as the number of symbols that it contains
- Provide examples of how symbols are carried on physical media
Year 8 Lesson 3 Binary digits
Learners grasp what binary digits are by associating them with familiar sets of symbols such as letters and decimal digits. Learners solve simple problems that reinforce the connection between (alphanumeric) information and its binary representation. They also consider the question of why binary digits are predominantly used in conjunction with computing systems.
Learning objectives
- Explain what binary digits (bits) are, in terms of familiar symbols such as digits or letters
- Measure the size or length of a sequence of bits as the number of binary digits that it contains
Lesson 4 Numbers in binary
Learners build upon their familiarity with using a decimal numbering system, in order to draw analogies with how numbers can be represented using binary. They use activities, either unplugged or software-based, to become familiar with binary number representation and convert between binary and decimal.
Learning objectives
- Describe how natural numbers are represented as sequences of binary digits
- Convert a decimal number to binary and vice versa
Lesson 5 Large quantities
This lesson familiarises learners with bytes and the prefixes used for measuring representation size, such as ‘kilo-’, ‘mega-’, ‘giga-’ and ‘tera-’. Simple activities embed these concepts in real-life settings and introduce learners to conversions between the different units and multiples.
Learning objectives
- Convert between different units and multiples of representation size
- Provide examples of the different ways that binary digits are physically represented in digital devices
Year 8 Lesson 6 Turing's mug
The unit is concluded with a summative assessment quiz and a puzzle activity that challenges learners to unchain Alan Turing’s mug.
Learning objectives
- Apply all of the skills covered in this unit
Today, there’s an app for every possible need. With this unit you can take learners through the design and development process of creating their own mobile app, using App Lab from code.org. Learners will explore design techniques, understand how hardware components can improve user experience and safety, before developing a working app.
Lesson 1 Designing a mobile app
This lesson will introduce learners to the unit. Learners will delve into the principles of user-centred design, emphasising the importance of creating apps that are intuitive and user-friendly. Learners will have the opportunity to sketch out their app designs using wireframes, visualizing the layout and navigation flow.
Learning objectives
- Understand the objectives and requirements of the Health and Fitness Tracker app.
- Recognise the importance of user-centred design principles
- Be able to brainstorm and design ideas for an app, considering key features and user interface design
Lesson 2 Introduction to online safety
During this lesson, learners will gain a deeper understanding of safety tools such as encryption, password security, and data privacy and explore how these concepts can be applied when designing a mobile app.
Learning objectives
- Understand key online safety concepts and their importance in app development.
- Identify specific online safety measures applicable to mobile apps.
- Identify online safety best practices and potential pitfalls
Year 8 Lesson 3 Understanding Mobile Phone Hardware
In this lesson, learners delve into the fascinating world of mobile phone hardware and explore how these components impact app development.
Learning objectives
- Understand the hardware components of mobile phones and their functions in app development.
- Recognise how hardware capabilities influence app functionality and user experience.
- Consider the implications of hardware limitations on the design and performance of mobile apps
Year 8 Lesson 4 Online Safety in App development
In this lesson, we explore the crucial aspect of online safety in app development. We'll focus on integrating online safety features into app designs, emphasising secure data handling and user privacy. By understanding these concepts, learners will learn to develop apps that prioritise user security and adhere to ethical standards.
Learning objectives
- Learn strategies for securely handling user data in app development.
- Understand the importance of user privacy and consent in app design and development.
- Explore the ethical considerations related to online safety in app development and identify ways to address them
Year 8 Lesson 5 App development (part 1)
In this lesson, learners will take their first steps into app design and coding using App Lab. They will learn the basics of creating an app interface and begin implementing their app designs. By the end of the lesson, learners will have a solid understanding of the App Lab environment and how to get started with app development.
Learning objectives
- Understand the app development process and tools used in mobile app development.
- Be able to start building the core features of a Health and Fitness Tracker app.
- Collaborate with peers to share ideas, solve problems, and provide feedback on app development progress.
Year 8 Lesson 6 App development (part 2)
This is the final lesson of the unit; learners will focus completing and evaluating the learners’ app projects. In today's lesson, learners will have the opportunity to review and provide feedback on their peers' app designs.
Learning objectives
- Continue constructing a working health and fitness tracker app
- Collaborate with peers to troubleshoot problems, test app functionality, and provide feedback on each other's app development progress.
- Reflect on the app development experience and identify areas for improvement in future projects
This unit introduces learners to text-based programming with Python. The lessons form a journey that starts with simple programs involving input and output, and gradually moves on through arithmetic operations, randomness, selection, and iteration. Emphasis is placed on tackling common misconceptions and elucidating the mechanics of program execution. A range of pedagogical tools is employed throughout the unit, with the most prominent being pair programming, live coding, and worked examples. The Year 7 Programming units are a prerequisite for this unit.
Lesson 1 First steps
In this introductory lesson, learners will write and execute their first programs in Python. They will go through the basics of displaying messages, assigning values to variables, and receiving input from the keyboard. They will familiarise themselves with an entirely different programming environment than the block-based one that they may be accustomed to. It is an environment where they will need to know by heart all of the constructs that they can use, instead of having the options laid out in front of them. It is also an environment in which errors arise if they get a single letter or symbol wrong. One of the main goals of this lesson (and of the unit) is to support them in this transition, by providing associations with concepts that they are already familiar with and building their confidence in overcoming common obstacles. Before doing any programming, learners will be introduced to what algorithms and programs are, and how they are different. Through this discussion, they will start to build an understanding of what it means to express instructions in a formal language, and how these instructions can eventually be executed by a machine.
Learning objectives
- Describe what algorithms and programs are and how they differ
- Recall that a program written in a programming language needs to be translated in order to be executed by a machine
- Write simple Python programs that display messages, assign values to variables, and receive keyboard input
- Locate and correct common syntax errors
Lesson 2 Crunching numbers
In the previous lesson, learners were introduced to displaying messages, assigning values to variables, and receiving input from the keyboard. This lesson will help them gain a deeper understanding of assignments, and explicitly address some of the common misconceptions around the semantics of assignment statements. Learners will also be introduced to using arithmetic expressions and receiving numerical input from the keyboard. These are two key components that will allow them to progress to building more elaborate programs in the lessons to follow. The main activity in this lesson will require learners to construct their own short programs for the first time, through scaffolded tasks.
Learning objectives
- Describe the semantics of assignment statements
- Use simple arithmetic expressions in assignment statements to calculate values
- Receive input from the keyboard and convert it to a numerical value
Lesson 3 At a crossroads
This lesson introduces selection and randomness. These are two features that will allow learners to develop programs with a very diverse range of behaviours. Learners will revisit some of the programs that they have encountered in previous lessons and extend them into more versatile programs that use selection. They will develop a simple number guessing game, which will eventually include randomness.
Learning objectives
- Use relational operators to form logical expressions
- Use binary selection (if, else statements) to control the flow of program execution
- Generate and use random integers
Lesson 4 More branches
This lesson progresses to multi-branch selection, then introduces while, the general-purpose iterative structure available in Python. Learners will explore problems that will allow them to deepen their comprehension of when and how selection should be used. For example, they will build programs that check the weather conditions where they are living and display appropriate responses. They will also be introduced to iteration, making sure that they understand the mechanics of how it works, before they go on to build their own iterative programs in the next lesson.
Learning objectives
- Use multi-branch selection (if, elif, else statements) to control the flow of program execution
- Describe how iteration (while statements) controls the flow of program execution
Lesson 5 Round and round
In the first part of this lesson, learners will be introduced to counting. Counters are important, as they are the simplest example of variables that are used to compute results iteratively, with each new value accumulated over the previous ones. In the second part of the lesson, learners will apply the skills and knowledge that they have developed to create a times tables practice game. It is an example that naturally combines iteration and selection, while also being useful.
Learning objectives
- Use iteration (while loops) to control the flow of program execution
- Use variables as counters in iterative programs
Lesson 6 Putting it all together
In this final lesson of the unit, learners will apply and consolidate what they’ve learnt by extending the number guessing game that they developed previously into an iterative version that allows them multiple guesses. They will then conclude the unit with a summative assessment quiz.
Learning objectives
- Combine iteration and selection to control the flow of program execution
- Use Boolean variables as flags