Lesson 1: Intro to Problem Solving


In this lesson, students work in groups to design aluminum foil boats that will support as many pennies as possible. Groups have two rounds to work on their boats, with the goal of trying to hold more pennies than they did in round 1. The structure of the activity foreshadows different steps of the problem solving process that students will be introduced to in more detail in the following lesson. At the end of the lesson students 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.


This lesson is a fun introduction to the open-ended, collaborative, and creative problem solving students will be using over the rest of this unit and course. The aluminum boats problem could easily be substituted out for any number of other problems that require students to define their goals, devise a plan, try a solution, evaluate their results, and then iteratively improve from there. The fact that the problem chosen is "non-computational" is intentional. Computer science is fundamentally a problem-solving discipline and staying away from traditional computer science problems at this point helps to frame this class as one about problem-solving more generally with computer science being a new "tool" to help attack certain types of problems.


Tech Setup

CSD Pre-Course Survey

Warm Up (10 min)

Activity (30 min)

Wrap Up (10 mins)

Assessment Opportunities

View on Code Studio


Students will be able to:

  • Communicate and collaborate with classmates in order to solve a problem
  • Iteratively improve a solution to a problem
  • Identify different strategies used to solve a problem


For each group

  • 2 sheets of aluminum foil, 5x5 inches in length each
  • 1 container that can hold 3-5 inches of water
  • Several paper towels or rags that can be placed under the container
  • 15 pennies
  • One copy of the Aluminum Boats - Activity Guide

For the teacher

  • 1 container that can hold 3-5 inches of water
  • 50 pennies
  • Extra paper towels or rags


Heads Up! Please make a copy of any documents you plan to share with students.

For the Teachers

For the Students

Teaching Guide

Tech Setup

Throughout the year, in order for you to be able to see student work, and for students to be able to access online tools and resources, all students need to be in the same section on Code Studio. To see assessments and answer keys that Code.org provides, you also need to be a "verified teacher".

Before class

Ensure you are registered on Code Studio as a "verified" teacher account

Anyone can create a teacher account on Code Studio, which means that we need an extra layer of authorization to allow CS Discoveries teachers to see assessments, answer keys, and any other collateral that students should not be able to trivially get access to. If you attended a Code.org TeacherCon during the summer, you should already have this access.

To check whether you have access:

  1. Navigate to the Unit 1 course overview page
  2. Do you see the CS Discoveries Pre-course Survey as the first "stage" of the course?
  3. If not, please fill out this form. Note that it can take a day or so to become a verified teacher account, so please do this step early!

If you are not a verified teacher account, you can still create a section for your class, but you will not be able to administer the pre-course survey on the first day.

Create a class section on Code Studio.

To create a section:

  1. Navigate to the Teacher Home Page
  2. Click 'New section' under 'Classroom Sections'
  3. Choose 'Email Logins'
  4. In the space provided, give your section a name (e.g. CSD Period 1), the grade of your students, Course: 'Computer Science Discoveries', Current Unit: 'Unit 1: Problem Solving', and click 'Save'
  5. Once the section is created, click the name of the section
  6. On the new page, you will see a unique Join URL that you will distribute to your students in class.

For a video walkthrough of these steps and more on navigating your Code.org account, go to the Code.org How-to Video Playlist

At the beginning of class

  1. Have students create a Code Studio account at https://studio.code.org if they don't already have one
  2. Share the section Join URL with students and tell them to navigate to it to join your section
    • You can confirm that a student successfully joined your section by having the section progress page on the Teacher Home Page open and hitting refresh as students join. Students should see a small green bar at the top of their page that says 'You've successfully joined ...'
  3. From studio.code.org have students locate the Computer Science Discoveries tile and click 'View course', then go to Unit 1.

Once students are looking at the Unit 1 overview page, they will be ready to take the CSD Pre-Course survey

CSD Pre-Course Survey

Why do the pre-course survey?

  • A major goal of CS Discoveries is to broaden participation in computer science.
  • It is crucial therefore to have insight into students' attitudes and beliefs about computer science before the course so that we can measure the amount of change that occurred after the course is over.
  • Please note that this survey is anonymous for students
  • Completing it also helps us understand important improvements we can make to the curriculum to improve the teacher and student experience.

Please help by having your students contribute to this vital dataset. Their voices make the difference!

Important! Have your students take the CSD Pre-Course Survey!

Students can find a link to the survey in Code Studio as the first item on the Unit 1 overview page. To ensure that students only take the survey at the appropriate time, it is "locked" and unviewable by them until you "unlock" the survey. The How to Administer a Locked Assessment document provides details on how to do that when you are ready. Note that the instructions for administering an assessment and a survey are the same.

How much time does it take?

The survey does take some time - it is roughly 30 questions. You might consider administering it on an admin day at school, or as an early homework.

Because it is a pre-course survey it is important that students take it as early in the course as possible, before they have had much (or any) exposure to the class so that we may accurately gauge changes in attitudes and beliefs caused by the course.

Thank you!

-- The Code.org Team

Warm Up (10 min)

Set the Stage

Teaching Tip

Feel free to use any icebreaker activity or other introduction you like here. The goal is to move quickly to the main activity after which you'll have more opportunity to reflect about problem solving in the context of today's activity.

Teaching Tip

Getting Copies of Google Docs: Activity Guides in this curriculum are available as Google Docs, Word Docs, and PDFs. If you'd like to edit or make your own copy of a Google Doc you may without requesting access. Simply log in with a Google account, click "File" and "Make a copy" from the menu. You may then share your own copy with your students.


Hello everyone, welcome to Computer Science Discoveries! You may have a lot of questions about what we're going to do or learn this year. All I'll say for now is that we're going to be having a lot of fun learning how we can use computer science to help us build things, express ourselves, and solve problems. In fact, solving problems with or without computers is going to be one of the primary focuses of this class. But enough of me talking, let's get to today's activity.

Group: Put students in groups of 2 or 3.

Distribute: One copy of the Aluminum Boats - Activity Guide to each group. As a class, read through the Goal and Rules sections of the activity guide and answer questions.

Activity (30 min)

Building an Aluminum Boat

Prompt: Today we're going to be building aluminum boats. You'll have an opportunity to build at least two boats and use your experience with each one to improve your designs. Before we get started, decide as a group what kind of design you'd like to make with your first boat. Record your ideas and any possible weaknesses of this design on your activity guide.

Teaching Tip

This activity can get your room wet! Ideally, each group should have its own bucket/container with water to conduct its own tests. If needed, you can have several groups share one container, but be mindful to set guidelines for sharing that container. Place towel/rag under each container. You may also want to consider to have this activity in the hallway or some other space if your room is very restrictive.

Support: Give students a couple minutes to discuss in groups the approach they will be taking with this first boat. Once groups have recorded their ideas and some possible weaknesses they can come to you to get their aluminum foil and begin building their boats.

Teaching Tip

Hold onto the foil until students submit a plan for their boat. The goal isn't to slow them down too much, but just give them a moment to reflect briefly on the possible approaches they could take. This is one way this activity foreshadows the Planning step of the problem solving process students will see in subsequent lessons.

Once groups are ready, have them test their boats by dropping individual pennies into the boat. Remind them of the rules, specifically that they can't touch or adjust the boats once they're in the water. Have them record the total number of pennies held on their activity guides.

Iterative Improvement


This first attempt at building our boats was just to get familiar with the challenge. We're all going to build a second boat and see if we can improve the number of pennies our boats held. Before we get started though, let's see what we can learn from this trial run.

Share: Have students share the results of their first run with neighboring groups. Ask groups to focus particularly on what the eventual failure of their boat was (e.g. it wasn't deep enough, it was unstable, etc.) and brainstorm ways to get around those problems.

Teaching Tip

While some students will view this portion as a competition, emphasize that each group is looking to improve its own design, not competing against others. You are appealing for each student to challenge themselves first, not others.

Prompt: Now that you've had a chance to learn from the first round of boat making, let's run the same activity again. First, your group will develop a new plan. Just as before, record it on your activity guide, and once you're ready I'll come around and give you a new piece of foil.

Support: As you circulate from group to group, ask questions about the group’s focus in redesign. EX: “What aspect of your boat needed the most improvement?” “What ideas from other groups did you want to incorporate to yours?” “Did you feel the need to completely restructure your boat, or make minor modifications?”

Once groups have prepared their new plans give them a new piece of foil and have them each build a new boat.

Groups can test their designs just as before and record the results on their activity guides.

Transition: Ask class to return to their own seats to reflect on the activity.

Wrap Up (10 mins)

Discussion Goal

This should be a fairly open-ended discussion of the different components of the activity. Feel free to ask follow up questions if you like but the main goal is just to kick off the later conversation.

Discuss the Challenge

Prompt: What was your favorite part of this activity? What was most challenging?

Discuss: Allow students time to share thoughts with the class.

Prompt: Since you are in a computer science class, you also may be wondering, “What in the world did that have to do with computer science?” Find another partner and talk about what you think this activity has to do with computer science.

Discussion Goal

The second question will give you a chance to hear some of the thoughts and beliefs students have about computer science. Students may suggest things like, teamwork, sharing ideas, making improvements, etc. Again, the goal is not to agree or disagree, but to foster an environment to share those thoughts. It is appropriate to ask follow up questions that are not threatening, such as, “explain that thought to me more”.

Discuss: Allow students an opportunity to share their responses with the class.

Content Corner

Although there are no right or wrong answers for this discussion, for our purposes, the main point is that students solved a problem. They had to define the problem, plan a solution, try a solution, and evaluate it. These concepts will become more apparent as the chapter unfolds.


All of your thoughts around these questions were great. You may be used to thinking about computer science as being all about computers. I'm here to tell you that first and foremost computer science is about solving problems, and that's what we were doing today. A lot of other parts of this activity like improving designs, working in groups, and building things is also going to be a big part of this class. I hope you're excited for the year. Tomorrow we'll start digging deeper into problem solving itself.

Assessment Opportunities

Communicate and collaborate with classmates in order to solve a problem

  • The following reflection can be used as a journal activity or exit ticket: "You worked in groups for this activity. How did working in a group make this activity easier, how did it make the activity more difficult?"

Iteratively improve a solution to a problem

  • In the activity guide, students identified strengths and weaknesses in their original design and used this analysis to make appropriate changes for the next iteration of the project.

Identify different strategies used to solve a problem

  • The following reflection can be used as a class discussion or journal activity as students share their designs with neighboring groups: "What is one difference between your design and the design of one of your neighbors? Are there any advantages to the different designs?"

Standards Alignment

View full course alignment

CSTA K-12 Computer Science Standards (2017)

AP - Algorithms & Programming
  • 1B-AP-08 - Compare and refine multiple algorithms for the same task and determine which is the most appropriate.
  • 1B-AP-11 - Decompose (break down) problems into smaller, manageable subproblems to facilitate the program development process.
  • 1B-AP-16 - Take on varying roles, with teacher guidance, when collaborating with peers during the design, implementation and review stages of program development.