Lesson 17: Project - Interactive Card
225 minutes
Overview
Question of the Day: What skills and practices are important when creating an interactive program?
In this culminating project for Chapter 1, students plan for and develop an interactive greeting card using all of the programming techniques they've learned to this point.
Purpose
This end of chapter assessment is a good place for students to bring together all the pieces they have learned (drawing, variables, sprites, images, conditionals, user input) in one place. Students should still be working with code that is easily readable and doesn't involve very many high level abstractions. Giving students the opportunity to really be creative after learning all these new concepts will help to engage them further as they head into Chapter 2.
Assessment Opportunities
Use the project rubric attached to this lesson to assess student mastery of the learning goals of this unit.
Standards
AP - Algorithms & Programming
- 2-AP-11 - Create clearly named variables that represent different data types and perform operations on their values.
- 2-AP-12 - Design and iteratively develop programs that combine control structures, including nested loops and compound conditionals.
- 2-AP-13 - Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
- 2-AP-15 - Seek and incorporate feedback from team members and users to refine a solution that meets user needs.
- 2-AP-16 - Incorporate existing code, media, and libraries into original programs, and give attribution.
- 2-AP-17 - Systematically test and refine programs using a range of test cases.
- 2-AP-18 - Distribute tasks and maintain a project timeline when collaboratively developing computational artifacts.
- 2-AP-19 - Document programs in order to make them easier to follow, test, and debug.
Agenda
Objectives
Students will be able to:
- Apply an iterator pattern to variables or properties in a loop
- Sequence commands to draw in the proper order
- Use conditionals to react to keyboard input or changes in variables / properties
Preparation
- Print out a copy of the project guide for each student
- Check the "Teacher's Lounge" forum for verified teachers to find additional strategies or resources shared by fellow teachers
- If you are teaching virtually, consider checking our Virtual Lesson Modifications
Links
Heads Up! Please make a copy of any documents you plan to share with students.
For the teachers
- Extra Code in Challenge Levels - Resource
- Project - Interactive Card - Slides (Download)
For the students
- Computer Science Practices - Reflection
- Interactive Card - Project Guide
- Interactive Card - Peer Review
- Interactive Card - Rubric
- Interactive Card - Student Checklist
Teaching Guide
Warm Up (5 minutes)
Journal
Prompt: Think of one time you gave or received a card from someone. Who was that person? What was the purpose of the card? What about the card made it specific to that purpose?
Share: Have students share out their ideas.
This discussion introduces the chapter project: creating an interactive card. This is a good chance to tie in the 'card' concept to the problem-solving process, by defining the "problem" as cheering someone up, or letting them know that we are thinking about them.
Remarks
We're going to start designing our own cards today. Because we have learned how to program, our cards are going to be interactive. At the end of the project, you'll be able to email or text your card to someone.
Question of the Day: What skills and practices are important when creating an interactive program?
Activity (215 minutes)
Demo Project Exemplars (Level 1)
Goal: Students see an example of a final project and discuss the different elements that went into making it.
Display: Show students the sample program.
Discuss: Have students share their observations and analyses of the program.
Encourage the class to consider that there are multiple approaches to programming anything, but that there may be clues as to how something was created. In particular, when they are sharing their thoughts ask them to specify the following:
- Clues that suggest a sprite was used
- Clues that suggest a conditional was used
- Clues that suggest an iterator pattern was used
Display: Show students the rubric and student checklist. Review the different components of the rubric with them to make sure they understand the components of the project.
Goal: Students should plan out what they want to create before they head to the computer so that once they get to the computer they are just executing the plan.
Scoping Student Projects: Students may ideate projects that are beyond the skills they currently have or that would take longer than the allotted time to implement. Rather than asking students to choose a different project, consider asking students to imagine a more scaled-down version of their initial idea. As an analogy, if students initial idea is the "Run" step, imagine a less intense version that represents what the "Walk" step would look like. If necessary, you can keep going back further to a "Crawl" step as well.
Digging Deeper: This is sometimes referred to as the Minimal Viable Product - you can learn more about this process and adapt it into your project strategies by reading this article: Making Sense of MVP by Henrik Kniberg
Unplugged: Interactive Card Planning
Distribute: Hand out the project guide to students. Students will use this to scope out their projects before creating them. Give students some time to brainstorm the type of card they want to create and who the recipient will be.
Also distribute a copy of the Student Checklist to each student. Students can use this to self-assess and reflect as they develop their project.
Steps
-
The first layer of the interactive card is a background drawn with just the commands in the Drawing drawer. The front of the Activity Guide provides a grid for students to lay out their background, a reference table of drawing commands, and an area for students to take notes and write pseudocode.
-
Next, students think through the sprites they'll need, filling out a table with each sprite's label, images, and properties.
-
Finally, students consider the conditionals they'll need in order to make their card interactive.
Implementing Interactive Card (Level 2 - 7)
Transition: Once students have completed their planning sheet, it's time to head to the Code.org website. The short level sequence asks students to complete each element of their project.
New Code and Previous Challenge Levels: Throughout the unit, students may have learned additional code in the challenge levels of different lessons. As students approach this project, they may want to revisit the code they learned in these levels or visit them for the first time to learn new codes to use in this project. To help guide students back to previous levels, you can use the Extra Code in Challenge Levels as a resource to quickly find where new codes were introduced in earlier challenge levels.
Debugging Strategies: As students design and implement their own project ideas, they may find themselves with new bugs that they need to untangle and you may find yourself looking at completely unfamiliar code as students look for help troubleshooting their errors. To help smooth out the debugging experience, consider the following strategies:
- Review the Teacher Guide to Debugging for some common questions and strategies to help support students in debugging their code
- Have students follow the steps in the Student Guide to Debugging and use the Bug Report Quarter-Sheets as an initial step in the debugging process. This helps students prepare and communicate their issue before asking for help.
- If students haven't seen it yet, consider showing the Debugging Video to the class to reinforce debugging best practices.
Digging Deeper: Consider supplying students with an object to talk to as part of the debugging process. This is sometimes known as Rubber Duck Debugging - you can learn more on the website https://rubberduckdebugging.com/
Peer Review
Distribute: Give each student a copy of the peer review guide.
Students should spend 15 minutes reviewing the other student's card and filling out the peer review guide.
Iterate - Update Code
Circulate: Students should complete the peer review guide's back side and decide how to respond to the feedback they were given. They should then use that feedback to improve their cards.
Students should use the rubric and student checklist to self-assess and make sure their project matches with the rubric.
Rubric and Checklist: Students have two resources they can use for self-reflection and making sure they are on the right track: the rubric and the student checklist. We recommend having students use the checklist for their own self-assessment and reflection, since it may be easier to digest and understand when reviewing their own project. However, we recommend teachers use the full rubric for evaluating projects to give more accurate feedback to students. You can see examples of this with the Sample Marked Rubrics resource at the top of the lesson plan (only visible to verified teachers)
Reflect
Using the rubric, students should assess their own project before submitting it.
Send students to Code Studio to complete their reflection on their attitudes toward computer science. Although their answers are anonymous, the aggregated data will be available to you once at least five students have completed the survey.
Wrap Up (5 minutes)
Reflection
Question of the Day: What skills and practices are important when creating an interactive program?
Prompt: Have students reflect on their development of the five practices of CS Discoveries (Problem Solving, Persistence, Creativity, Collaboration, Communication).
-
Choose one of the five practices which you demonstrated growth in during this lesson. Write something you did that showed this practice.
-
Choose one practice you think you can continue to grow in. What’s one thing you’d like to do better?
-
Choose one practice you thought was especially important for this project. What made it so important?
This work is available under a Creative Commons License (CC BY-NC-SA 4.0).
If you are interested in licensing Code.org materials for commercial purposes contact us.