Classroom Resources

In this activity, pupils are challenged to detect and correct the error in a number of water cycle programs (debugging). They use logical reasoning to do this, comparing what the program should do with what it does do, and systematically homing in on the error (bug) by ‘thinking through’ the code in the program.

PUPIL OBJECTIVES:
I can use logical reasoning to debug a program.
I can explain how I debugged a program.


TEACHING ASSESSMENT OPPORTUNITIES:
Informal teacher assessment of pupils as they tackle the debugging challenge: focus on pupils’ logical approach and ability to explain the bugs they found, why they are bugs and how they corrected them.
Summative assessment of pupils’ debugging challenge sheets.

Grade(s)

3, 4

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

An algorithm is a precisely defined sequence of instructions or a set of rules for performing a specific task. By teaching this short, unplugged activity your pupils will create a set of instructions on how to draw a crazy character and so start to understand what algorithms are.

PUPIL OBJECTIVES:
I know what an algorithm is.
I can write an algorithm.
I can use an algorithm.
I can improve my algorithm.


TEACHING ASSESSMENT OPPORTUNITIES:
Pupils can say an algorithm is a set of detailed steps to make something happen or work something out.
Pupils can create an algorithm which is precise and in the correct order. Pupils can debug their algorithm, improving the precision in each step.
Pupils can follow an algorithm precisely.

Grade(s)

1, 2

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

An Unusual Discovery is designed to be completed within 45-75 minutes. Students watch a series of videos to create a coding project. Students personalize their project using mini-coding challenges called "add-ons.”

In this activity, students will sequence dialogue to tell a story. They animate interactions between characters, their backdrops, and a surprising object. This activity introduces students to computer science and the programming language Scratch. Students will use different Scratch blocks to create their own unique stories.

By selecting add-on videos that present coding challenges, students will:
- Use event blocks (like “when flag clicked”) to trigger a series of code.
- Sequence at least 3 “say” blocks between two sprites (characters) to construct a dialogue.
- Program a conditional so that the computer can make a decision based on user response.
- Produce repeated movements by applying control blocks to their program.

The teacher's resource can be accessed here and a lesson plan is available here

Grade(s)

3, 4, 5

Subject Area

English Language Arts
Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

This sample activity is a collaboration between Cartoon Network and CS First. Students will tell a story using the characters from “The Amazing World of Gumball". This activity introduces students to computer science and the programming language Scratch. Students will use different Scratch blocks to create their own unique stories.

Gumball’s Coding Adventure is a simple activity designed to be completed within 45-75 minutes. Students will watch a series of videos and create one coding project with opportunities to personalize their work using “Add-Ons”, which are mini-coding challenges that build on top of the core project.

Be sure to review the Materials tab for the lesson plan, starter guide, and more. 

Users will need a Google account to use this resource. 

Grade(s)

3, 4, 5, 6

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

In each of the “Create your own Google logo” activities, students code and design their own versions of the Google logo. These activities introduce students to computer science and the programming language Scratch. These activities are most appropriate for students ages 9-14 and take 15-60 minutes to run.

Be sure to review the Materials tab for the lesson plan, starter guide, and more. 

Users will need a Google account to use this resource. 

Grade(s)

5, 6, 7, 8

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

In Storytelling, students use computer science to tell fun and interactive stories. Storytelling emphasizes creativity by encouraging students to tell a unique story each day.

Storytelling is a complete theme designed to be completed over eight, 45-75 minute sessions. For each Activity, students will watch a series of videos and create one coding project with opportunities to personalize their work using “Add-Ons”, which are mini-coding challenges that build on top of the core project.

This Unit Plan consists of eight activities to be completed over multiple days or weeks. 

Be sure to review the Materials tab for the lesson plan, starter guide, and more. 

Users will need a Google account to use this resource. 

Grade(s)

3, 4, 5, 6

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

In Fashion & Design, students learn how computer science and technology are used in the fashion industry while building fashion-themed programs, like a fashion walk, a stylist tool, and a pattern maker. 

Fashion & Design is a complete theme designed to be completed over eight, 45-75 minute, sessions. For each Activity, students will watch a series of videos and create one coding project with opportunities to personalize their work using “Add-Ons”, which are mini-coding challenges that build on top of the core project.

This unit contains eight lessons which culminate in a unit project. Lessons can be completed individually if students have some experience with Scratch. 

Be sure to review the Materials tab for the lesson plan, starter guide, and more.

Users will need a Google account to use this resource.  

Grade(s)

5, 6, 7, 8

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

Art

In Art, students create animations, interactive artwork, photograph filters, and other exciting, artistic projects.

Art is a complete theme designed to be completed over eight, 45-75 minute, sessions. For each Activity, students will watch a series of videos and create one coding project with opportunities to personalize their work using “Add-Ons”, which are mini-coding challenges that build on top of the core project.

Be sure to review the Materials tab for the lesson plan, starter guide, and more.

Users will need a Google account to use this resource.  

Grade(s)

3, 4, 5, 6, 7, 8

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

Students use computer science to simulate extreme sports, make their own fitness gadget commercial, and create commentary for a big sporting event.

Sports is a complete theme designed to be completed over eight, 45-75 minute, sessions. For each activity, students will watch a series of videos and create one coding project with opportunities to personalize their work using “Add-Ons,” which are mini-coding challenges that build on top of the core project.

Be sure to review the Materials tab for the lesson plan, starter guide, and more.

Users will need a Google account to use this resource.

Grade(s)

3, 4, 5, 6, 7

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

In Music & Sound, students use the computer to play musical notes, create a music video, and build an interactive music display while learning how programming is used to create music.

Music is a complete theme designed to be completed over eight, 45-75 minute, sessions. For each activity, students will watch a series of videos and create one coding project with opportunities to personalize their work using “Add-Ons,” which are mini-coding challenges that build on top of the core project.

Be sure to review the Materials tab for the lesson plan, starter guide, and more.

Users will need a Google account to use this resource.

Grade(s)

3, 4, 5, 6, 7, 8

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

In Game Design, students learn basic video game coding concepts by making different types of games, including racing, platform, launching, and more! 

Game Design is a complete theme designed to be completed over eight, 45-75 minute, sessions. For each activity, students will watch a series of videos and create one coding project with opportunities to personalize their work using “Add-Ons”, which are mini-coding challenges that build on top of the core project.

Be sure to review the Materials tab for the lesson plan, starter guide, and more.

Users will need a Google account to use this resource. 

Grade(s)

4, 5, 6, 7, 8

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

The binary number system plays a central role in how information of all kinds is stored on computers. Understanding binary can lift a lot of the mystery from computers, because at a fundamental level they’re really just machines for flipping binary digits on and off. There are several activities on binary numbers in this document, all simple enough that they can be used to teach the binary system to anyone who can count! Generally children learn the binary system very quickly using this approach, but we find that many adults are also excited when they finally understand what bits and bytes really are.

Available in 13 languages. 

Grade(s)

6

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

Images are everywhere on computers. Some are obvious, like photos on web pages and icons on buttons, but others are more subtle: a font is really a collection of images of characters, and a fax machine is really a computer that is good at scanning and printing.

This activity explores how images as data structures are displayed, based on the pixel as a building block. In particular, the great quantity of data in an image means that we need to use compression to be able to store and transmit it efficiently. The compression method used in this activity is based on the one used in fax machines, for black and white images.

Grade(s)

6

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

Many computer users are familiar with compressed formats such as zip, gzip, or gif images. These are based on a method called Ziv-Lempel coding, which turns out to be an interesting exercise in finding patterns in text.

Children’s rhymes and stories are good examples of text compression because they often involve repeated words and sequences.

Grade(s)

6

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

The world is a noisy place, and errors can occur whenever information is stored or transmitted. Error detection techniques add extra parity bits to data to determine when errors have occurred.

This activity is a magic trick which most audiences find intriguing. In the trick the demonstrator is “magically” able to figure which one out of dozens of cards has been turned over, using the same methods that computers use to figure out if an error has occurred in data storage.

Grade(s)

6, 7

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

This activity involves listening to songs and finding hidden messages based on the same principle as a modem.

The binary number activity briefly mentions how text could be coded using sound — high and low beeps represent binary digits, which in turn can be decoded to numbers that represent the letters of the alphabet.

All data on computers is stored and transmitted using the binary number system.  When the binary digits need to be sent over phone lines which used to be standard in home internet connections, the digits are converted to sound and decoded at the other end, using a modem. This activity uses an audio coding similar to that used by a modem, but the sounds are recorded as songs, which students can decode.

Grade(s)

6, 8

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

This activity provides several ways to introduce students to databases, with follow-up lesson extensions for increasing database understanding. 

This report gives details of a series of computing lessons designed to relate fundamental concepts of database use and design to children in Primary and Secondary Education (ages of 6 to 16). The skills and concepts developed in these lessons begin at a very simple level but progress to cover abstract concepts such as Relational Databases. The series has been aligned to match the scope, range and targets recommended in the Computing At Schools document A Curriculum for Computing.

Contents:

  • Human Branching Databases
  • Human Databases: Introduction
  • Human Databases: Intermediate
  • Human Databases: Advanced
  • Databases: Plugged-in
  • Relational Databases: Introduction
  • Philosophy of Computing: Introduction to databases

This activity concludes with a “plugged-in” activity using a database system. The Digital Schoolhouse Database Detectives lesson is aimed at Key Stage 2 pupils and based on the book Certain Death by Tanya Landman. Before completing the series of database unplugged activities, the class teacher is encouraged to read the book (except the last chapter) and complete a series of encryption activities loosely based on the book, the answers providing pupils with the clues to question the database and identify the murderer.

Pupils use cloud computing technology e.g. Google Documents: Spreadsheets, to collaboratively input data about the suspects from profile cards based on the book. Pupils then perform verification on their neighbor’s data entry before downloading the spreadsheet and importing it into Microsoft Access. After importing the data, pupils first use the filter tool to solve the murder using the answers from the numeracy challenges, then create a report for the Court based on a query identifying the murderer.

Grade(s)

3, 6, 7, 8

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

Searching for a keyword or value is the basis of many computing applications, whether on an internet search engine or looking up a bank account balance.

This activity explores the main algorithms that are used as the basis for searching on computers, using different variations on the game of battleships.

Computers are often required to find information in large collections of data. They need to develop quick and efficient ways of doing this. This activity demonstrates three different search methods: linear searching, binary searching, and hashing.

Grade(s)

5, 6, 7

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

Every computer device you have ever used, from your school computers to your calculator, has been using algorithms to tell it how to do whatever it was doing. Algorithms are a very important topic in Computer Science because they help software developers create efficient and error-free programs. The most important thing to remember about algorithms is that there can be many different algorithms for the same problem, but some are much better than others!

In this chapter, students will examine algorithms, including searching and sorting algorithms.

Grade(s)

9, 10, 11, 12

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

Programming--sometimes referred to as coding--is a nuts and bolts activity for computer scientists. While this chapter won't teach you how to program (we've given some links to sites that can do this in the introduction), we are going to look at what a programming language is, and how computer scientists breathe life into a language. From a programmer's point of view, they type some instructions, and the computer follows them. But how does the computer know what to do? Bear in mind that you might be using one of the many languages such as Python, Java, Scratch, Basic or C#, yet computers only have the hardware to follow instructions in one language: a very simple "machine code" that is difficult for humans to read and write. Then if you invent a new programming language, how do you tell the computer how to use it?

In this chapter, we'll look at what happens when you write and run a program, and how this affects the way that you distribute the program for others to use.

Grade(s)

9, 10, 11, 12

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

People often become frustrated with computers and other digital devices. At some point when using these devices, you are likely to become annoyed that the system did something you didn't want it to do, or you can't figure out how to get the computer to do what you want, but why is that? Humans made computers, so why are computers often so frustrating for humans to use?

Human-computer interaction (HCI) is about trying to make programs useful, usable, and accessible to humans. It goes way beyond choosing layouts, colors, and fonts for an interface. It's strongly influenced by the psychology of how people interact with digital devices, which means understanding many issues about how people behave, how they perceive things, and how they understand things so that they feel that a system is working to help them and not hinder them. By understanding HCI, developers are more likely to create software that is effective and popular. If you ask people if they have ever been frustrated using a computer system, you’ll probably get a clear message that HCI isn’t always done well.

This chapter explores user interfaces, usability, and overall user experience with technology. 

Grade(s)

9, 10, 11, 12

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

Computers are machines that do stuff with information. They let you view, listen, create, and edit information in documents, images, videos, sound, spreadsheets, and databases. They let you play games in simulated worlds that don’t really exist except as information inside the computer’s memory and displayed on the screen. They let you compute and calculate with numerical information; they let you send and receive information over networks. Fundamental to all of this is that the computer has to represent that information in some way inside the computer’s memory, as well as storing it on disk or sending it over a network.

To make computers easier to build and keep them reliable, everything is represented using just two values. You may have seen these two values represented as 0 and 1, but on a computer, they are represented by anything that can be in two states. For example, in memory, a low or high voltage is used to store each 0 or 1. On a magnetic disk, it's stored with magnetism (whether a tiny spot on the disk is magnetized north or south).

This chapter will examine how data is stored on computers, be it text, images, colors, etc. 

Grade(s)

9, 10, 11, 12

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

The word "code" has lots of meanings in computer science. It's often used to talk about programming, and a program can be referred to as "source code". Even binary representation of information is sometimes referred to as a code. However, in this chapter (and the next three chapters), the sense of coding that will be used is about clever representations of information that address a practical issue, such as encrypting the data to keep it secret.

In the previous chapter, we looked at using binary representations to store all kinds of data — numbers, text, images and more. But often simple binary representations don't work so well. Sometimes they take up too much space, sometimes small errors in the data can cause big problems, and sometimes we worry that someone else could easily read our messages. Most of the time all three of these things are a problem! The codes that we will look at here overcome all of these problems and are widely used for storing and transmitting important information.

The three main reasons that we use more complex representations of binary data are:

  • Compression: this reduces the amount of space the data needs (for example, coding an audio file using MP3 compression can reduce the size of an audio file to well under 10% of its original size).

  • Encryption: this changes the representation of data so that you need to have a "key" to unlock the message (for example, whenever your browser uses "https" instead of "http" to communicate with a website, encryption is being used to make sure that anyone eavesdropping on the connection can't make any sense of the information).

  • Error Control: this adds extra information to your data so that if there are minor failures in the storage device or transmission, it is possible to detect that the data has been corrupted, and even reconstruct the information (for example, bar codes on products have an extra digit added to them so that if the bar code is scanned incorrectly in a checkout, it makes a warning sound instead of charging you for the wrong product).

Often all three of these are applied to the same data; for example, if you take a photo on a smartphone it is usually compressed using JPEG, stored in the phone's memory with error correction, and uploaded to the web through a wireless connection using an encryption protocol to prevent other people nearby getting a copy of the photo.

Without these forms of coding, digital devices would be very slow, have limited capacity, be unreliable, and be unable to keep your information private.

Grade(s)

9, 10, 11, 12

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

Data compression reduces the amount of space needed to store files. If you can halve the size of a file, you can store twice as many files for the same cost, or you can download the files twice as fast (and at half the cost if you're paying for the download). Even though disks are getting bigger and high bandwidth is becoming common, it's nice to get even more value by working with smaller, compressed files. For large data warehouses, like those kept by Google and Facebook, halving the amount of space taken can represent a massive reduction in the space and computing required, and consequently big savings in power consumption and cooling, and a huge reduction in the impact on the environment.

Common forms of compression that are currently in use include JPEG (used for photos), MP3 (used for audio), MPEG (used for videos including DVDs), and ZIP (for many kinds of data). For example, the JPEG method reduces photos to a tenth or smaller of their original size, which means that a camera can store 10 times as many photos, and images on the web can be downloaded 10 times faster.

So what's the catch? Well, there can be an issue with the quality of the data – for example, a highly compressed JPEG image doesn't look as sharp as an image that hasn't been compressed. Also, it takes processing time to compress and decompress the data. In most cases, the tradeoff is worth it, but not always.

Grade(s)

9, 10, 11, 12

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

Encryption is used to keep data secret. In its simplest form, a file or data transmission is garbled so that only authorized people with a secret "key" can unlock the original text. If you're using digital devices then you'll be using systems based on encryption all the time: when you use online banking, when you access data through WiFi, when you pay for something with a credit card (either by swiping, inserting or tapping), in fact, nearly every activity will involve layers of encryption. Without encryption, your information would be wide open to the world – anyone could pull up outside a house and read all the data going over your WiFi, and stolen laptops, hard disks, and SIM cards would yield all sorts of information about you – so encryption is critical to make computer systems usable.

An encryption system often consists of two computer programs: one to encrypt some data (referred to as plaintext) into a form that looks like nonsense (the ciphertext), and a second program that can decrypt the ciphertext back into the plaintext form. The encryption and decryption are carried out using some very clever math on the text with a chosen key. You will learn more about these concepts shortly.

Of course, we wouldn't need encryption if we lived in a world where everyone was honest and could be trusted, and it was okay for anyone to have access to all your personal information such as health records, online discussions, bank accounts and so on, and if you knew that no one would interfere with things like aircraft control systems and computer controlled weapons. However, information is worth money, people value their privacy, and safety is important, so encryption has become fundamental to the design of computer systems. Even breaking the security on a traffic light system could be used to personal advantage.

Grade(s)

9, 10, 11, 12

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

This chapter is about guarding against errors in data in its many different forms — data stored on a hard drive, on a CD, on a floppy disk, on a solid state drive (such as that inside a cellphone, camera, or MP3 player), data currently in RAM (particularly on servers where the data correctness is critical), data going between the RAM and hard drive or between an external hard drive and the internal hard drive, data currently being processed in the processor or data going over a wired or wireless network such as from your computer to a server on the other side of the world. It even includes data such as the barcodes printed on products or the number on your credit card.

If we don't detect that data has been changed by some physical problem (such as a small scratch on a CD, or a failing circuit in a flash drive), the information will just be used with incorrect values. A very poorly written banking system could potentially result in your bank balance being changed if just one of the bits in a number was changed by a cosmic ray affecting a value in the computer's memory! If the barcode on the packet of chips you buy from the shop is scanned incorrectly, you might be charged for shampoo instead. If you transfer a music file from your laptop to your MP3 player and a few of the bits were transferred incorrectly, the MP3 player might play annoying glitches in the music. Error control codes guard against all these things, so that (most of the time) things just work without you having to worry about such errors.

Grade(s)

9, 10, 11, 12

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

Artificial Intelligence conjures up all sorts of images – perhaps you think of friendly systems that can talk to you and solve tough problems; or maniac robots that are bent on world domination? There's the promise of driverless cars that are safer than human drivers, and the worry of medical advice systems that hold people's lives in their virtual hands. The field of Artificial Intelligence is a part of computer science that has a lot of promise and also raises a lot of concerns. It can be used to make decisions in systems as large as an airplane or an autonomous dump truck, or as small as a mobile phone that accurately predicts text being typed into it. What they have in common is that they try to mimic aspects of human intelligence. And importantly, such systems can be of significant help in people's everyday lives.

AI (also known as intelligent systems) is primarily a branch of computer science but it has borrowed a lot of concepts and ideas from other fields, especially mathematics (particularly logic, combinatorics, statistics, probability and optimization theory), biology, psychology, linguistics, neuroscience, and philosophy.

In this chapter, we'll explore a range of these intelligent systems. Inevitably this will mean dealing with ethical and philosophical issues too – do we really want machines to take over some of our jobs? Can we trust them? Might it all go too far one day? What do we really mean by a computer being intelligent? While we won't address these questions directly in this chapter, gaining some technical knowledge about AI will enable you to make more informed decisions about the deeper issues.

Grade(s)

9, 10, 11, 12

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

Are there problems that are too hard even for computers? It turns out that there are. In the chapter on Artificial Intelligence, we'll see that just having a conversation – chatting – is something computers can't do well, not because they can't speak but rather because they can't understand or think of sensible things to say. However, that’s not the kind of hard problem we’re talking about here – it's not that computers couldn’t have conversations, it's more that we don't know just how we do it ourselves and so we can't tell the computer what to do.

In this chapter, we're going to look at problems where it's easy to tell the computer what to do – by writing a program – but the computer can’t do what we want because it takes far too long: millions of centuries, perhaps. Not much good buying a faster computer either: if it were a hundred times faster it would still take millions of years; even one a million times faster would take hundreds of years. That's what you call a hard problem – one where it takes far longer than the lifetime of the fastest computer imaginable to come up with a solution.

Grade(s)

9, 10, 11, 12

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

You will be familiar with computer graphics from games, films, and images, and there is amazing software available to create images, but how does the software work? The role of a computer scientist is not just to use graphics systems, but to create them, and especially invent new techniques.

The entertainment industry is always trying to develop new graphics software so that they can push the boundaries and create new experiences. We've seen this in the evolution of animated films, from simple 2D films to realistic computer-generated movies with detailed 3D images. The names of dozens of computer scientists now regularly appear in the credits for films that use CGI or animation, and some have even won Oscars for their innovative software!

Movie and gaming companies can't always use existing software to make the next great thing – they need computer scientists to come up with better graphics techniques to make something that's never been seen before. The creative possibilities are endless!

Computer graphics are used in a wide variety of situations: games and animated movies are common examples, but graphics techniques are also used to visualize large amounts of data (such as all cellphone calls being made in one day or friend connections in a social network), to display and animate graphical user interfaces, to create virtual reality and augmented reality worlds, and much more.

Grade(s)

9, 10, 11, 12

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

When computers were first developed, the only way they could interact with the outside world was through the input that people wired or typed into them. Digital devices today often have cameras, microphones, and other sensors through which programs can perceive the world we live in automatically. Processing images from a camera, and looking for interesting information in them, is what we call computer vision.

With increases in computer power, the decrease in the size of computers and progressively more advanced algorithms, computer vision has a growing range of applications. While it is commonly used in fields like healthcare, security, and manufacturing, we are finding more and more uses for them in our everyday life, too.

Grade(s)

9, 10, 11, 12

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

If you've ever written a text-based program or typed a formula in a spreadsheet, chances are that at some stage the system has told you there's an error and won't even attempt to follow your instructions.

These "syntax errors" are annoying messages that programmers become excruciatingly familiar with... it means that they didn't follow the rules somehow, even if it's just a tiny mistake. 

When you try to compile or run the program, the computer will tell you that there's an error. If it's really helpful, it might even suggest where the error is, but it won't run the program until you fix it.

This might seem annoying, but in fact, by enforcing precision and attention to detail it helps pinpoint mistakes before they become bugs in the program that go undetected until someone using it complains that it's not working correctly.

Grade(s)

9, 10, 11, 12

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

Think about the last time someone sent you mail. They probably wrote some content on some paper, put it in an envelope, wrote an address and put it in a mailbox. From there, the letter probably went into a sorting center, got sorted, and was put in a bag. The bag then went into a vehicle like a truck, plane or boat. The vehicle either traveled through water, the air, or on the road. The postal system is a complicated one, designed to let individuals communicate easily, yet being efficient enough to group many letters into one postal delivery. The same ideas apply to how messages move around the internet. Whether it be a ‘like’ on Facebook, a video stream or an email – the internet and its various protocols look after it for you so it is delivered on time and intact to the other person.

In this chapter we introduce some concepts, algorithms, techniques, applications, and problems that relate to network protocols; it isn’t a complete list of all ideas in the area but should be enough to give you a good idea of what this area of computer science is about.

Grade(s)

9, 10, 11, 12

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

Software failures happen all the time. Sometimes it’s a little bug that makes a program difficult to use; other times an error might crash your entire computer. Some software failures are more spectacular than others.

In 1996, The ARIANE 5 rocket of the European Space Agency was launched for its first test flight: Countdown, ignition, flame and smoke, soaring rocket... then BANG! Lots of little pieces scattered through the South American rainforest. Investigators had to piece together what happened and finally tracked down this tiny, irrelevant bug. A piece of software onboard the rocket which was not even needed had reported a value that was too big to be stored. An error was stored instead, but other software interpreted the error as saying the rocket was 90 degrees off course. Thankfully, no one was on board but the failure still caused about $370 million of damage.

Software engineering is all about how we can create software despite this enormous size and complexity while hopefully get a working product in the end. It was first introduced as a topic of computer science in the 1960s during the so-called "software crisis" when people realized that the capability of hardware was increasing at incredible speeds while our ability to develop software is staying pretty much the same.

As the name software engineering suggests, we are taking ideas and processes from other engineering disciplines (such as building bridges or computer hardware) and applying them to software. Having a structured process in place for developing software turns out to be hugely important because it allows us to manage the size and complexity of software. As a result of advances in software engineering, there are many success stories of large and complex software products that work well and contain few bugs. For example, Google's huge projects (Google search, Gmail, etc.) are built by teams of thousands of engineers, yet they still manage to create software that does what it should.

Grade(s)

9, 10, 11, 12

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

Computers are often used to put lists into some sort of order, for example, names into alphabetical order, appointments or e-mail by date, or items in numerical order. Sorting lists helps us find things quickly, and also makes extreme values easy to see. If you sort the marks for a class test into numeric order, the lowest and highest marks become obvious.

If you use the wrong method, it can take a long time to sort a large list into order, even on a fast computer. Fortunately, several fast methods are known for sorting. In this activity, children will discover different methods for sorting and see how a clever method can perform the task much more quickly than a simple one.

Grade(s)

3, 4, 5, 6, 7

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource

To make computers go faster, it can be a lot more effective to have several slower computers working on a problem than a single fast one. This raises questions about how much of the computation can be done at the same time.

Here we use a fun team activity to demonstrate an approach to parallel sorting. It can be done on paper, but we like to get students to do it on a large scale, running from node to node in the network.

Grade(s)

2, 3, 4, 5

Subject Area

Digital Literacy and Computer Science

Learning Resource Type

Classroom Resource
ALSDE LOGO