Time (mins)
LessonCodingAbstraction4+50+Mad glibs is one of the most important skills for a computer scientist to understand. It simplifies problems and prevents unnecessary repetition. A good coder uses abstraction just about every time she creates a program. This activity will have your students analyze stories for differences so that they can abstract them away.
LessonCodingAlgorithms.K+10-15+Peanut butter and jelly robot is an activity about robotics programming. Learners will discover how precise programmers have to be as they instruct a friend to make a peanut butter and jelly sandwich. This is a great activity for both the "programmer" and the "robot" to use their creativity to its fullest.
LessonCodingAlgorithms.K+45-50+fuzzFamily Frenzy (Advanced) advanced unplugged lesson on using algorithms to move a "robot" (coder) around a path.
LessonCodingAlgorithms.K+45-50+fuzzFamily Frenzy (Beginner) beginner unplugged lesson on using algorithms to move a "robot" (coder) around a path.
LessonCodingAlgorithms.K+45+Happy maps the root of all computer science is something called an algorithm. The word “algorithm” may sound like something complicated, but really it’s just a list of instructions that someone can follow to achieve a result.
LessonCodingAlgorithms.K+50+Move it, move it lesson will help students realize that in order to give clear instructions, they need a common language. Students will practice controlling one another using a simple combination of hand gestures.
Real life algorithms: Plant a seed this lesson, students will relate the concept of algorithms back to everyday real-life activities by planting an actual seed. The goal here is to start building the skills to translate real-world situations to online scenarios and vice versa.
LessonCodingAlgorithms.K+60+My robotic friends a predefined “Robot Vocabulary” your students will figure out how to guide one another to accomplish specific tasks without discussing them first. This segment teaches students the connection between symbols and actions, as well as the valuable skill of debugging.
Sentence puzzles (ELA Integration) ELA centered lesson plan on using algorithmic sequences to write a sentence.
LessonCodingAlgorithms.K+NAHow to train your robot game works as follows: every kid is turned into a “robot master” and their mom or dad becomes their “robot”. I give each kid a “Robot Language Dictionary” and explain to them that this is the language their robot understands. The dictionary has symbols for “move left leg forward”, “turn left”, “grab”, “drop” etc.
LessonCodingAlgorithms.K+NAHuman crane lesson where kids create and test crane algorithms that move blocks from one bowl to another.
LessonCodingAlgorithms.K+NAThe hokey pokey code to program the hokey pokey.
LessonCodingAlgorithms1+45-50+fuzzFamily Frenzy (Beginner) beginner unplugged lesson on using algorithms to move a "robot" (coder) around a path.
Letter to a friend (ELA Integration) ELA centered lesson plan on using algorithmic sequences to write a letter.
LessonCodingAlgorithms2+10-15+Sentence checker algorithm activity to reinforce grammar rules using computing science concepts. This could be used as a homework activity or as an alternative strategy within a literacy lesson. Pupils convert sentence grammar rules into a flowchart algorithm they can use to check their sentences.
LessonCodingAlgorithms2+30+The poor cartographer a map (which is equivalent to a graph) sounds like a simple task, but in computer science this problem epitomizes a major area of research looking for solutions to problems that are easy to make up, but seem to require an intractable amount of time to solve. This activity introduces graph colouring, and leads on to many variations and extensions that reach the cutting edge of computer science.
LessonCodingAlgorithms2+45-50+fuzzFamily Frenzy (Beginner) beginner unplugged lesson on using algorithms to move a "robot" (coder) around a path
Letter to a friend (ELA Integration) ELA centered lesson plan on using algorithmic sequences to write a letter.
LessonCodingAlgorithms2+NABeat the clock 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.
LessonCodingAlgorithms2+NAGetting up an algorithm (accurate sequence of instructions to achieve a goal) focussed around getting up and getting to school, using Microsoft Publisher as the recording medium. Although this can be done on paper, pupils make so many mistakes that easy editing and rearranging is of real value.
LessonCodingAlgorithms2+NAMarching orders programs are sequences of instructions that the computer must follow. There are hundreds of computer languages, but all involve giving clear and unambiguous instructions to a devices that doesn’t understand meanings. This activity demonstrates some of the issues that arise when we try to give precise instructions to achieve a desired outcome.
LessonCodingAlgorithms3+10+Emotional robot video activity aims to show that the future of human-computer interaction is not about keyboards and mice. In the future computers will be able to understand the subtleties of human-human interaction. We focus here on the way we react to facial expressions and tone of voice. it also demonstrates that a robot "brain" based on a neural network can learn human-like behaviour in the form of emotions.
LessonCodingAlgorithms3+45-50+fuzzFamily Frenzy (Beginner) beginner unplugged lesson on using algorithms to move a "robot" (coder) around a path.
LessonCodingAlgorithms3+50+Graph paper programming "programming" one another to draw pictures, students will begin to understand what programming is really about. The class will begin by having students instruct each other to color squares in on graph paper in an effort to reproduce an existing picture.
Real life algorithms: Paper planes this lesson, students will relate the concept of algorithms back to everyday real-life activities by making paper airplanes. The goal here is to start building the skills to translate real-world situations to online scenarios and vice versa.
Write a short story (ELA Integration) ELA centered lesson plan on using algorithmic sequences to create a story.
LessonCodingAlgorithms3+NALightest and heaviest any list that comes out of a computer is sorted into some sort of order, and there are many more sorted lists inside computers that the user doesn’t see. Many clever algorithms have been devised for putting values into order efficiently. In this activity students compare different algorithms to sort weights in order.
LessonCodingAlgorithms4+45-50+fuzzFamily Frenzy (Beginner) beginner unplugged lesson on using algorithms to move a "robot" (coder) around a path.
Create-a-face: Programming an emotional robot is an exploration of affective computing, which relates to moods and emotions. The class make an affective (relating to moods and emotions) robot face out of card, tubes and themselves. It is programmed to react to different kinds of sounds (nasty, nice or sudden) and show different emotions (sad, happy, surprised). The class then think up some other facial expressions and program sets of rules to make the face respond to sounds with new expressions.
LessonCodingAlgorithms4+50+Dice race this lesson, students will relate the concept of algorithms back to everyday real-life activities by playing the Dice Race game. The goal here is to start building the skills to translate real-world situations to online scenarios and vice versa.
Write a short story (ELA Integration) ELA centered lesson plan on using algorithmic sequences to create a story.
LessonCodingAlgorithms4+NABattleships 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.
LessonCodingAlgorithms5+20+Conversations with computers intelligence has been researched for decades, and has resulted in many useful products, but still no system that is as intelligent as a human. This activity explores just how we might recognise whether a system is truly “intelligent”. It involves reasoning about what it means to be intelligent, and even what makes us human.
LessonCodingAlgorithms5+45-50+fuzzFamily Frenzy (Beginner) beginner unplugged lesson on using algorithms to move a "robot" (coder) around a path.
LessonCodingAlgorithms5+50+Tangrams lesson shows us something important about algorithms. If you keep an algorithm simple there are lots of ways to use it. If you want to make sure everyone ends up with the same thing, then your algorithm needs more detail.
Writing & coding (ELA Integration) ELA centered lesson plan on using coding vocabulary within a graphic organizer to understanding algorithmic sequences.
LessonCodingAlgorithmsNA15+The robots game is a race game played by two teams. The winning team is the first to get all their "robots" from the start to the finish and off the board. (Note: the winner is the first team to get all their robots off the board, not just the first one.)
LessonCodingAlgorithmsNANAAlgorithms activitis for introducing algorithms.
LessonCodingAlgorithmsNANAExchange sort investigation this module pupils investigate all the possible ways of comparing two cards in a list such as starting with the end cards and working into the centre or comparing pairs next to each other starting on the right of the list. They then move on to test which patterns can be turned into Exchange sorts.
LessonCodingAlgorithmsNANAHarold the robot this activity children simply give directions to a “robot” (either an adult or another child) and find out which instructions the robot is able to follow, and how their instructions are taken literally.
LessonCodingAlgorithmsNANAJam sandwich algorithm an algorithm (a precise set of instructions or rules to achieve an outcome or solve a problem) to instruct a pretend robot (teacher) to make a jam sandwich. One of the steps towards writing a good algorithm, that can be converted into code, is precision. Precision doesn’t come naturally to most humans. Another computational thinking skill is evaluation in this case is my algorithm fit for purpose. The robot teacher interpretation of their algorithm helps pupils to evaluate its effectiveness and make changes if needed. Is it an algorithm or is it coding though, who cares its lots of fun!
LessonCodingAlgorithmsNANAObstacle course robot algorithms to navigate a human "robot" through an obstacle course.
LessonCodingAlgorithmsNANAPlayground games algorithm learn how to use a flow chart by trying to work out what playground game it describes. This is a great introduction to flow charts as pupils need to use them purposefully before they can write their own. Pupils then go on to trying to work out what is wrong with the bugged version of the chart.
LessonCodingAlgorithmsNANARosie's Runtime Rosie's Runtime – an unplugged computer science activity from PLTW Launch – students get an introduction to computer science through an interactive game that rivals recess.
LessonCodingAlgorithmsNANASorting look with the kids at what sorting is, what it is for, by what criteria can one sort things, and different sorting algorithms (selection, insertion and bubble sort).
LessonCodingAlgorithmsNANASpelling algorithms spelling algorithm activities.
Computaional thinking
Computational thinking with monsters nothing but paper and markers, students will learn the four steps of computational thinking. After a brief introduction, students should be split into groups where they will have to create directions for other students to draw a specific monster (from a catalog of pre-selected monsters).
Computaional thinking
5+55+Computational thinking this activity, no instructions are provided. Instead, students will use examples of what imaginary players have done to figure out how to play the game. This lesson gives students the opportunity to practice the four arts of computational thinking (decomposition, pattern matching, abstraction, and algorithms) in one cohesive activity.
LessonCodingConditionals4+45-55+Similar but different (Advanced) advanced unplugged lesson on object-oriented programming; however, the lesson could be changed to focus on conditionals by doing "red light, green light" for different conditions.
LessonCodingConditionals4+60+Conditionals with cards don’t always know ahead of time what things will be like when we run our computer programs. Different users have different needs, and sometimes you will want to do something based off of one user's need that you don’t want to do with someone else.
LessonCodingConditionals5+30-40+The Imp computer compile simple programs that involve if statements on to a computer made of studetns roped together. Each student represents an instruction. A baton represents the flow of control. It is passed to teh first student who carries out their instruction before passing it on. When it is returned the program has been executed and the appropriate result has appeared on the screen. This makes the program execution both visible and tangible allowing a variety of concepts to be explained and discussed.
If-Then Backyard Coding Game for Kids we’re talking coding and I had one goal in mind. Help kids learn to code with no expensive equipment. No computer, no tablet, no apps, just their bodies and their mind. So we’re starting with one of the most basic parts of computer programming, the If Then statement and turning it into a fun and active game. It’s an If-Then Backyard Coding Game for Kids. This post contains affiliate links.
LessonCodingConditionalsNANARobotic board game board game for reinforcing if/else statements.
Building a foundation (persistence) and unsolved problems are often pretty hard. If we want to have any chance of making something creative, useful, and clever, then we need to be willing to attack hard problems. This lesson teaches that failure is not the end of a journey, but a hint for how to succeed.
LessonCodingDebugging3+55+Relay programming activity will begin with a short review of Graph Paper Programming, then will quickly move to a race against the clock, as students break into teams and work together to create a program, one instruction at a time.
LessonCodingDebuggingNANABugs and debugging handout with suggestions and activites.
LessonCodingError detection4+NACard flip magic world is 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.
LessonCodingEvents.K+45+The big event are a great way to add variety to a pre-written algorithm. Sometimes you want your program to be able to respond to the user exactly when the user wants it to. That is what events are for.
LessonCodingFunctions2+45-55+fuzzFamily Fitness (Advanced) advanced unplugged lesson that introduces functions.
LessonCodingFunctions3+50+Functional suncatchers this lesson, students will make a suncatcher out of string, beads, and a special charm. The students will follow a series of repetitive steps, then be asked to identify certain sets of “skills” that are duplicated several times. Once those skills are defined, they will be called from a main program and the whole beautiful process of creation will be recorded on a single sheet of paper.
LessonCodingFunctions3+50+Songwriting of the most magnificent structures in the computer science world is the function. Functions (sometimes called procedures) are mini programs that you can use over and over inside of your bigger program. This lesson will help students intuitively understand why combining chunks of code into functions is such a helpful practice.
LessonCodingFunctions3+55+Songwriting with parameters of the most magnificent structures in the computer science world is the function. Functions (sometimes called procedures) are mini programs that you can use over and over inside of your bigger program. This lesson will help students intuitively understand why combining chunks of code into functions is such a helpful practice.
LessonCodingImage representation2+NAColour by numbers activity explores how images 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.
LessonCodingInformation theory5+NATwenty guesses are all about storing and moving information, but what actually is information? How do we measure the amount of information in a message? This activity uses some intriguing variations on the game of 20 questions to demonstrate how we can quantify information content, which in turn shows us how to store and share it efficiently.
LessonCodingLoop1+45-55+Fuzz Dance Party (Advanced) advanced unplugged lesson on using loops to create a dance.
LessonCodingLoops.K+50+Getting loopy are a handy way of describing actions that repeat a certain numbers of times. In this lesson, students will practice converting sets of actions into a single loop.
LessonCodingLoops4+55+For loop fun know that loops allow us to do things over and over again, but now we’re going to learn how to use loops with extra structure built right in.
Object-oriented programming (Advanced) advanced unplugged lesson on object-oriented programming properties.
Program development
5+60+The chocolate factory don’t need to go far to find a frustrated computer user. Often it will be because they find the interface difficult to use. Designing good interfaces has become an important industry, and successful products often depend on having excellent interfaces. This activity explores just how hard it is to get things right.
Program development
Several classes
Making movie storyboards example lesson on making movie storyboards. This lesson would need to be adapted for coding purposes.
LessonCodingText compression4+NAYou can say that again 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 for text compression, because they often involve repeated words and sequences.
LessonCodingVariables3+20-50+Variable dry run (for Scratch) a series of dry run exercises where students have to step through short fragmetns of code working out what they do on paper. This is an important activity to do after explaining variables and assignment. It reinforces understanding and helps identify faulty mental models so they can be fixed. Being able to do this kind of dry run for any new construct is an important prerequisite to being able to actually write code.
LessonCodingVariables3+45-55+Violet's Variables (Advanced) advanced unplugged lesson that introduces variables.
LessonCodingVariables5+15-20+Box variables dry run simple programs that involve variables and assignment by running them on a computer made of students. Students with boxes act as variables as values are copied between them following the instructions of the program. You physically demonstrate the creation of variables, how accessing a variable involves taking a copy of its value, and how storing values in a variable destroys any previous value stored.
LessonCodingVariables5+50+Variables in envelopes allow for a lot of freedom in computer science. This lesson helps to explain what variables are and how we can use them in many different ways. Use this activity before (or in conjunction with) the lesson on abstraction to really hit the idea home.
LessonComputer scienceBinary2+NACount the dots 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.
LessonComputer scienceBinary3+45+Binary bracelets is extremely important to the computer world. The majority of computers today store all sorts of information in binary form. This lesson helps to demonstrate how it is possible to take something that we know and translate it into a series of ons and offs.
LessonComputer scienceBinary3+50+Binary images many people think of binary as strictly zeros and ones, our previous courses taught students that information can be represented in a variety of binary options. This lesson takes that concept one step further as it illustrates how a computer can store even more complex information (such as images and colors) in binary, as well.
LessonComputer scienceBinaryNANABinary counter handout with suggestions and activites.
LessonComputer scienceBinaryNANABinary system introductory unplugged lesson on binary.
LessonComputer scienceBinaryNANAThink like a computer the incredible power of the human brain as we explore the 5 senses and gain an understanding of how the human brain processes data in comparison to the manner in which a computer processes data. Embark Labs students will engage in a variety of exercises and challenges to demonstrate these differences in order to build a foundational working understanding of Binary Code and the logic and sequencing of modern coding languages. Students will explore concepts of coding, decoding, and debugging.
LessonComputer scienceComputation.K+NA
Concurrency and synchronization workshop has kids split into teams and work on tasks that require synchronization between them. It is a great team building and leadership exercise. Thanks to German Nudelman for the idea.
LessonComputer scienceComputation.K+NAHow computers work purpose of this activity is to give the students a basic sense of how computers work by having them act out a simple computer simulation. Each student takes on the role of a different part of a simplified computer and they work in groups to run a simple program. The end result of this program is to draw a picture on a simulated computer display.
LessonComputer scienceComputation1+NASimulating an iPad calculator application on an ipad with kids role playing various components, such as operating system, processor, button controls.
LessonComputer scienceComputation4+60-75+Human computer game activity that introduces the parts and processes of a computer.
LessonComputer scienceComputation4+NATreasure hunt state automata (FSAs) sound complicated, but the basic idea is as simple as drawing a map. This fun activity is based around a fictitious pirate story which leads to the unlikely topic of reasoning about patterns in sequences of characters
LessonComputer scienceComputationNANAFetch, decode, and execute handout with suggestions and activites.
LessonComputer scienceComputationNANATaking command handout with suggestions and activites.
LessonComputer scienceEncryption5+30+The Peruvian coin flip is another activity that achieves something that doesn’t seem possible – people who don’t trust each other and can’t see each other are able to agree on the outcome of a random coin flip. This is an absorbing activity for an individual student or a whole classroom.
LessonComputer scienceEncryption5+5+Sharing secrets are often used to store private information, and we often want to share parts of it without giving up our full privacy. This activity shows a surprising technique discovered by computer scientists that seems impossible; it allows people to share personal certain kinds of information accurately without having to give up any privacy at all.
LessonComputer scienceEncryption6+30+Kid krypto key encryption is an extraordinary recent development that has made internet commerce possible. It allows people to encrypt and decrpyt messages without having to share a password to unlock them. It is hard to believe that such a system could exist, yet this mode of encryption is widely used because it is This activity works with two people, but it’s most exciting with a whole class, with everybody else trying to intercept a message sent between two easy to set up. This activity is fairly demanding, and requires students to be careful in the way the encode messages. Also, the samples provided here are aimed at junior high students; some younger students may find it too difficult, and more capable or older students are likely to need more complex “maps” to make the encryption convincing, since the one provided can be solved relatively easily. Balancing the amount of tedious effort required for large maps against the insecurity of smaller maps needs to be done by the teacher, although this issue can be a discussion point for the class, since the goal is to understand the issues around encryption.
LessonComputer scienceHardware.K+NASimulate a computer a computer and look at computer components. Use children to simulate mouse, IO controller and a processor on the example of Calculator program. Before simulating the whole system, let kids get a feel of each individual component.
LessonComputer scienceHardwareNA45-60+My first computer exercise First Computer exercise is an introduction to the amazing machine that is the computer. Few things are as exciting as computers. And now kids will get to design their very own one.
LessonComputer scienceInternetNANAHow the internet works activity is an interactive demonstration of what happens when you type a URL into a browser. In this activity the students will be guided to act out the various parts of the internet: websites, routers, name servers, ISPs and home computers.
LessonComputer scienceNetworking2+NA
Introducing the internet: Telephone and networks lesson provides studetns with an understanding of the basic structure of electronic network communications and how Internet communications are different from telephone conversations. In a hands-on classroom activity, children create and use paper cup telephones and compare this to sending messages over a computer "web" created with photocopies of computers linked by yarn.
LessonComputer scienceNetworking2+NATourist town the Graph Coloring problem, the dominating set problem is one that no efficient solution has been found for, even though it is very simple to describe.
LessonComputer scienceNetworking4+NATablets of stone talk to each other over the internet via messages. However, the internet is not reliable and sometimes these messages get lost. There are certain bits of information we can add to messages to make sure they are sent. This information makes up a protocol.
LessonComputer scienceNetworking4+NAThe muddy city are everywhere in modern society: roads, wires, water and gas pipes all connect one place to another. Computers are built of networks at many levels, from the microscopic connections between transistors in a chip to the cables and satellites that link the internet around the world. People who build networks often need to work out the most efficient way to make connections, which can be a difficult problem. This puzzle shows students the decisions involved in linking a network between houses in a muddy city. It can lead on to a discussion of minimal spanning tree algorithms for optimizing networks.
LessonComputer scienceNetworking4+NAThe orange game networks are based on passing messages from computer to computer. This sounds simple in principle, but in practice all sorts of contention and bottlenecks can occur. This activity gives some first hand experience of such issues, with a game for a group of students.