Have you ever had a complex problem that you needed to solve? This could be a math problem, science experiment, an essay you need to write, and coding and game design. It could even be as simple as planning the best route to school or baking your favorite cookies!
Computational thinking can be used to take a complex problem, understand what the problem is and develop possible solutions to solve or explain it.
Students will complete Quests to learn about the four stages of computational thinking:
LEARNING OBJECTIVES:
When you have completed this activity you will:
Networks 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 to a discussion of minimal spanning tree algorithms for optimizing networks.
Students take what they've learned through Unit 6 Chapter 1 and develop an app of their own design that uses the circuit board to output information.
Note: You will need to create a free account on code.org before you can view this resource.
Students, working with a partner or team will brainstorm physical devices they wish to prototype. Students have the option to design a new creation or recreate a device they have found in the "real world". Students will complete a planning guide to determine the resources (physical and digital) they will need to create their prototype. Students will design a user interface (typically an app or circuit board) that may control some output device (like a circuit board). It will be necessary for students to develop pseudocode or algorithms to aid in the coding process. Students will need to complete the problem-solving process during this lesson plan which will include testing a revising the prototype.
This lesson introduces the process the class will use to design games for the remainder of the unit. The class walks through this process in a series of levels. As part of this lesson the class also briefly learns to use multi-frame animations in the Game Lab. At the end of the lesson, they have an opportunity to make improvements to the game to make it their own.
In this multi-day lesson, the class uses the problem-solving process from Unit 1 to create a platform jumper game. After looking at a sample game, the class defines what their games will look like and uses a structured process to build them. Finally, the class reflects on how the games could be improved and implements those changes.
The class plans and builds original games using the project guide from the previous two lessons. Working individually or in pairs, the class plans, develops, and gives feedback on the games. After incorporating the peer feedback, the class shares out the completed games.
After a brief review of how the counter pattern is used to move sprites, the class is introduced to the properties that set velocity and rotation speed directly. As they use these new properties in different ways, they build up the skills they need to create a basic side scroller game.
This lesson covers functions as a way to organize code, make it more readable, and remove repeated blocks of code. The class learns that higher level or more abstract steps make it easier to understand and reason about steps, then begins to create functions in Game Lab. At the end of the lesson, the class uses these skills to organize and add functionality to the final version of their side scroller game.
In this lesson, the class applies the problem-solving process to three different problems: a word search, a seating arrangement for a birthday party, and planning a trip. The problems grow increasingly complex and poorly defined to highlight how the problem-solving process is particularly helpful when tackling these types of problems.
In the last few days of the unit, the class finalizes their personal websites, working with peers to get feedback. Then, the students will review the rubric and put the finishing touches on the site. To cap off the unit, everyone shares their projects and how they were developed.
This lesson explores the challenges of communicating how to draw with shapes and uses a tool that introduces how this problem is approached in the Game Lab. The class uses a Game Lab tool to interactively place shapes on Game Lab's 400 by 400 grid. Partners then take turns instructing each other how to draw a hidden image using this tool, accounting for many of the challenges of programming in Game Lab.
The class is introduced to the Game Lab, the programming environment for this unit, and begins to use it to position shapes on the screen. The lesson covers the basics of sequencing and debugging, as well as a few simple commands. At the end of the lesson, the class creates an online version of the image they designed in the previous lesson.
This lesson extends the drawing skills to include width and height and introduces the concept of random number generation. The class learns to draw with versions of the ellipse() and rect() that include width and height parameters and to use the background() block to fill the screen with color. At the end of the progression, the class is introduced to the randomNumber() block and uses the new blocks to draw a randomized rainbow snake.
This lesson introduces websites as a means of personal expression. The class first discusses different ways that people express and share their interests and ideas, then looks at a few exemplary websites made by students from a previous course. Finally, everyone brainstorms and shares a list of topics and interests to include, creating a resource for developing a personal website in the rest of the unit.
This lesson continues the introduction to HTML tags, this time with headers. The class practices using header tags to create page and section titles and learns how the different header elements are displayed by default. Next, the class plans how to organize their content on the personal web pages that will be built across the unit and begins the first page of the project.
This lesson takes a step back from creating the personal website to talk about personal information people choose to share digitally. The class begins by discussing what types of information are good to share with other people, then looks at several sample social media pages to see what types of personal information could be shared intentionally or unintentionally. Finally, the class comes up with a set of guidelines to follow when putting information online.
The class works in groups to design aluminum foil boats that will support as many pennies as possible. At the end of the lesson, groups reflect on their experiences with the activity and make connections to the types of problem-solving they will be doing for the rest of the course.
To conclude the study of the problem-solving process and the input/output/store/process model of a computer, the class proposes apps designed to solve real-world problems. This project is completed across multiple days and culminates in a poster presentation highlighting the features of each app. The project is designed to be completed in pairs though it can be completed individually.
This lesson covers the input and output aspects of computers in a context that is relevant and familiar to students: apps. The class evaluates various web applications to analyze the specific problems that they were designed to solve, the inputs that they need to work, and the outputs they provide to users. The class concludes with observations of these apps as well as a teacher-led discussion about the impact of apps on society.