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.
Students have practiced creating impressive designs in Artist and navigating mazes in Bee, but today they will use functions to harvest crops in Harvester. This lesson will push students to use functions in new ways by combining them with while loops and if / else statements.
while
if / else
This lesson is meant to further push students to use functions in more creative ways. By also using conditionals and loops, students will learn there are many ways to approach a problem, but some are more efficient than others. These puzzles are intended to increase problem-solving and critical thinking skills.
Students will be able to:- recognize when a function could help to simplify a program.- use pre-determined functions to complete commonly repeated tasks.
Note: You will need to create a free account on code.org before you can view this resource.
Students will be introduced to using functions on Code.org. Magnificent images will be created and modified with functions in Artist. For more complicated patterns, students will learn about nesting functions by calling one function from inside another.
One of the most important components of this lesson is providing students with a space to create something they are proud of. These puzzles progress to more and more complex images, but each new puzzle only builds off the previous puzzle. At the end of this lesson, students will feel confident with themselves and proud of their hard work.
Students will be able to:- categorize and generalize code into useful functions.- recognize when a function could help to simplify a program.
This series brings together concepts from previous lessons and gives students a chance to think critically about how they would solve each problem, but without telling them which concept to apply. Students will review basic algorithms, debugging, repeat loops, conditionals, while loops, and functions.
repeat
It's important for students to remember that computer science provides plenty of opportunities to be creative. Every topic can be combined with another to make something bigger and better. In this lesson, students will use previously learned concepts together, allowing for a "big picture" view of programming projects. This lesson will also bridge any gaps in understanding of when to use certain programming tools over others.
Students will be able to:- recognize which programming concept to use to solve a given problem.- describe the different ways one could solve a given problem.
Using a special set of offline commands, students will design algorithms to instruct a "robot" to stack cups in different patterns. Students will take turns participating as the robot, responding only to the algorithm defined by their peers. This segment teaches students the connection between symbols and actions, the difference between an algorithm and a program, and the valuable skill of debugging.
This unplugged lesson brings the class together as a team with a simple task to complete: get a "robot" to stack cups in a specific design. Students will work to recognize real-world actions as potential instructions in code. The art of following precise instructions will also be practiced, as students work to translate algorithms into code, using the symbols provided. If problems arise in the code, students should work together to recognize bugs and build solutions. This activity lays the groundwork for the programming that students will do throughout the course as they learn the importance of defining a clearly communicated algorithm.
Students will be able to:- reframe a sequence of steps as an encoded program.- identify and address bugs or errors in sequenced instructions.
New 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 even if it means failing a few times before we succeed. In this lesson, students will be building a structure with common materials. The structure will be tested on its ability to hold a textbook for more than ten seconds. Most students will not get this right the first time, but it's important they push through and keep trying.
This lesson teaches that failure is not the end of a journey, but a hint for how to succeed. The majority of students will feel frustrated at some point in this lesson, but it's important to emphasize that failure and frustration are common steps to creativity and success.
Students will be able to:- outline steps to complete a structural engineering challenge.- predict and discuss potential issues in structure creation.- build a structure based on a team plan.- revise both the plan and the structure until they satisfy the challenge.
Debugging is an essential element of learning to program. In this lesson, students will encounter puzzles that have been solved incorrectly. They will need to step through the existing code to identify errors, including incorrect loops, missing blocks, extra blocks, and blocks that are out of order.
Students in your class might become frustrated with this lesson because of the essence of debugging. Debugging is a concept that is very important to computer programming. Computer scientists have to get really good at facing the bugs in their own programs. Debugging forces the students to recognize problems and overcome them while building critical thinking and problem-solving skills.
Students will be able to:- predict where a program will fail.- modify an existing program to solve errors.- reflect on the debugging process in an age-appropriate way.
Building on the initial "My Robotic Friends" activity, students learn to use loops when programming their robots in order to build bigger structures more efficiently.
This lesson serves as a reintroduction to loops, using the now-familiar set of "robot" programming instructions. Students will develop critical thinking skills by looking for patterns of repetition in the movements of classmates and determining how to simplify those repeated patterns using loops.
Students will be able to:- identify repeated patterns in code that could be replaced with a loop- write instructions that use loops to repeat patterns.
In this online activity, students will have the opportunity to push their understanding of loops to a whole new level. Playing with the Bee and Plants vs. Zombies, students will learn how to program a loop to be inside of another loop. They will also be encouraged to figure out how little changes in either loop will affect their program when they click Run.
Run
In this introduction to nested loops, students will go outside of their comfort zone to create more efficient solutions to puzzles. In earlier puzzles, loops pushed students to recognize repetition. Here, students will learn to recognize patterns within repeated patterns to develop these nested loops. This stage starts off by encouraging students to try to solve a puzzle where the code is irritating and complex to write out the long way. After a video introduces nested loops, students are shown an example and asked to predict what will happen when a loop is put inside of another loop. This progression leads to plenty of practice for students to solidify and build on their understanding of looping in programming.
Students will be able to:- break complex tasks into smaller repeatable sections.- recognize large repeated patterns as made from smaller repeated patterns.- identify the benefits of using a loop structure instead of manual repetition.
One 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 can be such a helpful practice.
The use of functions helps simplify code and develop the students' ability to organize their program. Students will quickly recognize that writing functions can make their long programs easier to read and easier to debug if something goes wrong.
Students will be able to:- locate repeating phrases inside song lyrics.- identify sections of a song to pull into a function.- describe how functions can make programs easier to write.