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.
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.
Using characters from the game Angry Birds, students will develop sequential algorithms to move a bird from one side of a maze to the pig at the other side. To do this, they will stack code blocks together in a linear sequence, making them move straight, turn left, or turn right.
In this lesson, students will develop programming and debugging skills on a computer platform. The block-based format of these puzzles helps students learn about sequence and concepts, without having to worry about perfecting syntax.
Students will be able to:- translate movements into a series of commands.- identify and locate bugs in a program.
Note: You will need to create a free account on code.org before you can view this resource.
As we start to write longer and more interesting programs, our code often contains a lot of repetition. In this lesson, students will learn about how loops can be used to more easily communicate instructions that have a lot of repetition by looking at the repeated patterns of movement in a dance.
At this point in the course, students should have developed comfort with programming a set of linear instructions. Frequently the linear set of instructions includes patterns that are repeated multiple times and as students want to write more complex and interesting programs, manually duplicating that code becomes cumbersome and inefficient. To enable students to write more powerful programs, we'll need to rely on structures that break out of that single linear list. Loops allow for students to structure their code in a way that repeats. In this lesson, we will focus on identifying patterns in physical movement before moving back onto the computer to look for patterns in our code.
Students will be able to:- repeat actions initiated by the instructor.- translate a picture program into a real-world dance.- convert a series of multiple actions into a single loop.
In this lesson, students will be learning more about loops and how to implement them in Blockly code. Using loops is an important skill in programming because manually repeating commands is tedious and inefficient. With the Code.org puzzles, students will learn to add instructions to existing loops, gather repeated code into loops, and recognize patterns that need to be looped. It should be noted that students will face puzzles with many different solutions. This will open up discussions on the various ways to solve puzzles with advantages and disadvantages to each approach.
Students will be able to:- identify the benefits of using a loop structure instead of manual repetition.- break down a long sequence of instructions into the largest repeatable sequence.- employ a combination of sequential and looped commands to reach the end of a maze.
Watch student faces light up as they make their own gorgeous designs using a small number of blocks and digital stickers! This lesson builds on the understanding of loops from previous lessons and gives students a chance to be truly creative. This activity is fantastic for producing artifacts for portfolios or parent/teacher conferences.
This series highlights the power of loops with creative and personal designs.
Offered as a project-backed sequence, this progression will allow students to build on top of their own work and create amazing artifacts.
Students will be able to:- identify the benefits of using a loop structure instead of manual repetition.- differentiate between commands that need to be repeated in loops and commands that should be used on their own.
In the preceding stage, students used loops to create fantastic drawings. Now they're going to loop new actions in order to help the harvester collect multiple veggies growing in large bunches.
It may seem unnecessarily repetitive to have two plugged stages introducing loops, but the practice of using loops for different reasons develops a student's understanding of what loops can do. In "Loops in Maze" students only used loops to repeat movements. In this lesson, students will use loops to repeat other actions like harvesting pumpkins. New patterns will emerge and students will use creativity and logical thinking to determine what code needs to be repeated and how many times.
Students will be able to:- write a program for a given task which loops a single command.- identify when a loop can be used to simplify a repetitive action.- employ a combination of sequential and looped commands to move and perform actions.
Students will soon learn that events are a great way to add flexibility 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. Events can make your program more interesting and interactive.
Today, students will learn to distinguish events and actions. The students will see activities interrupted by having a "button" pressed on a paper remote. When seeing this event, the class will react with a unique action. Events are widely used in programming and should be easily recognizable after this lesson.
Students will be able to:- repeat commands given by an instructor.- recognize the movements of the teacher as signals to initiate commands.- practice differentiating pre-defined actions and event-driven ones.
In this special stage, students get to build their own Flappy Bird game by using event handlers to detect mouse clicks and object collisions. At the end of the level, students will be able to customize their game by changing the visuals or rules.
Events are very common in computer programs. In this lesson, students will further develop their understanding of events by making a Flappy Bird game. Students will learn to make their character move across the screen, make noises, and react to obstacles based on user-initiated events.
Students will be able to:- match blocks with the appropriate event handler.- create a game using event handlers.- share a creative artifact with other students.
In this online activity, students will have the opportunity to learn how to use events in Play Lab and to apply all the coding skills they've learned to create an animated game. It's time to get creative and make a game in Play Lab!
Here, students will further develop their understanding of events using Play Lab. Students will use events to make characters move around the screen, make noises, and change backgrounds based on user input. At the end of the puzzle sequence, students will be presented with the opportunity to share their projects.
Students will be able to:- create an animated, interactive game using sequence and event-handlers.- identify actions that correlate to input events.
Binary is extremely important in the world of computers. The majority of computers today store all sorts of information in binary form. This lesson helps demonstrate how it is possible to take something from real life and translate it into a series of "ons" and "offs".
In this lesson, students will learn how information is represented in a way such that a computer can interpret and store it. When learning binary, students will have the opportunity to write codes and share them with peers as secret messages. This can then be related back to how computers read a program, translate it to binary, use the information in some way, then reply back in a way humans can understand. For example, when we type a sentence into a document then press save, a computer translates the sentence into binary, stores the information, then posts a message indicating the document has been saved.
Students will be able to:- encode letters into binary.- decode binary back to letters.- relate the idea of storing letters on paper to the idea of storing information in a computer.
In this lesson, students will relate the concept of algorithms back to everyday activities. After discussing their steps, students will make paper planes using an algorithm. The goal here is to start building the skills to translate real-world situations to online scenarios and vice versa.
This lesson exists to help students see that an "algorithm" is just a list of steps that someone can take to finish a task. Students will also learn that the order of the individual steps can make a difference in the final product. This should help lay a foundation of understanding for arranging blocks into programs.
Students will be able to:- decompose large activities into a series of smaller events.- organize sequential events into their logical order.
Note: You will need to create a free account on code.org before you can view this resource.
In this series of puzzles, students will continue to develop their understanding of algorithms and debugging. With a new character, Laurel the Adventurer, students will create sequential algorithms to get Laurel to pick up treasure as she walks along a path.
In this lesson, students will be practicing their programming skills using a new character, Laurel the Adventurer. When someone starts programming they piece together instructions in a specific order using something that a machine can read. Through the use of programming, students will develop an understanding of how a computer navigates instructions and order. Using a new character with a different puzzle objective will help students widen their scope of experience with sequencing and algorithms in programming.
Students will be able to:- order movement commands as sequential steps in a program.- represent an algorithm as a computer program.- develop problem-solving and critical thinking skills by reviewing debugging practices.
In this lesson, students will take control of the Artist to complete drawings on the screen. This Artist stage will allow students to create images of increasing complexity using new blocks like move forward by 100 pixels and turn right by 90 degrees.
move forward by 100 pixels
urn right by 90 degrees
Building off of the students' previous experience with sequencing, this lesson will work to inspire more creativity with coding. The purpose of this lesson is to solidify knowledge of sequencing by introducing new blocks and goals. In this case, students learn more about pixels and angles using the new blocks, while still practicing their sequencing skills. Also, students will be able to visualize new goals such as coding the Artist to draw a square.
Students will be able to:- create a program to complete an image using sequential steps.- break complex shapes into simple parts.
In this activity students work in small groups to write the steps to an everyday task or the steps in a "how to" scenario. The steps the groups write serve as an algorithm. The groups will then swap their writing for the teams to now "debug" each other's work to make the steps more precise.
This activity was demonstrated during the Exploring Today's Classroom (ETC) Summit.