2.7. I Have a Dream Projects

This lesson reinforces the enduring understanding that computing requires a creative development process. First, students modify the existing I Have a Dream app to add new functionality. Then, students develop a soundboard app of their own with sounds and images that express a personal interest of theirs. As part of this process, students must describe the functionality of the user interface and reflect on whether or not their program is working correctly. The breadth of soundboard apps created in the class exemplifies the enduring understanding that programs are developed by people for different purposes.

Professional Development

The Student Lesson: Complete the activities for Mobile CSP Unit 2 Lesson 2.7: I Have a Dream Projects.


  • Access to computer, laptop, or Chromebook (install the Companion app on Chromebooks)
  • Access to mobile device with the Companion app installed or access to the emulator installed on the computer or laptop. (suggested list of mobile devices)
  • I Have a Dream Projects - List of Enhancements to Do
  • How To: Create an App Video

2.7.1. Learning Activities

Estimated Length: 90 minutes

  • Hook/Motivation (10 minutes): Have the students review and explain how the I Have a Dream app was created. Discuss some ideas for enhancements.
  • Experiences and Explorations (20 minutes): Students work in pairs on enhancements to I Have a Dream; teacher answers questions. Introduce the terms debugging and step wise refinement (see Background Knowledge below). If any of the students finish early, have them begin working on their reflections.
  • Rethink, Reflect and/or Revise (10 minutes): Students make a new entry in their portfolios describing the modifications and enhancements that they made to the I Have a Dream app. Also ask the students to reflect on their programming experience.
  • Soundboard (50 minutes): Students most likely will not have enough time during one class period to create a soundboard app. Using a second class period, have the students finish them and then share their projects with the class. Students could give brief (2-3 minute) demonstrations of their app to the entire class. Or, try a gallery walk where you split the class in half. One half demos their app at their stations while the other half goes around the room trying the apps. After 15 minutes, have the groups switch so that the ones demoing now get to try out the other students apps.

AP Classroom

The College Board's AP Classroom provides a question bank and Topic Questions. You may create a formative assessment quiz in AP Classroom, assign the quiz (a set of questions), and then review the results in class to identify and address any student misunderstandings.The following are suggested topic questions that you could assign once students have completed this lesson.

Suggested Topic Questions:

  • Topic 1.1 Collaboration
  • Topic 3.6 Conditionals

Assessment Opportunities and Solutions

Solutions Note: Solutions are only available to verified educators who have joined the Teaching Mobile CSP Google group/forum in Unit 1.

Assessment Opportunities

You can examine students’ work on the interactive exercise and their reflection portfolio entries to assess their progress on the following learning objectives. If students are able to do what is listed there, they are ready to move on to the next lesson.

  • Interactive Exercises: Students should be able to identify events, such as shaking or clicking a button as well as use time increments (milliseconds)
  • Portfolio Reflections:
    Students should be able to explain how they were able to collaborate and express themselves creatively in their Soundboard App
    Students should be able to create a new Soundboard App based on the I Have a Dream app
    Students should be able to correctly describe the UI components they used in their Soundboard App
  • In the Soundboard App, look for:
    -Something unique to each student so that they are expressing themselves creatively
    -Appropriate naming of components
    -Use of the if/else statement for pausing and starting the sound associated with the image clicked on
    -Pausing all other sounds when an image is clicked

Differentiation: More Practice

Here are some additional resources if students are struggling with lesson concepts:

Differentiation: Enrichment

  • Students can try creating their own icons using a program such as Paint. Icons can be any image file, but generally should be square in dimensions (same height and width, about 48px each).
  • Students can create their own sound files using a program such as Audacity.

Teaching Tip: Encouraging Student Persistence and Problem Solving

It's important to encourage the students to use each other to find solutions to any errors, rather than relying on the teacher for the "correct" answer. This will help them develop good problem solving skills and reinforce their need to be persistent in working towards a solution, even if it fails the first time. Step-wise refinement, adding and testing one feature at a time, will help them solve their problems easier.

It's important that students be encouraged to be creative not only in coming up with good ideas for their apps but also in trying to solve the problems that arise during the programming task. Students should be encouraged to discuss their work and ideas with their partner, with other students, and with the teacher. When a program doesn't work as expected, promote the idea that the student must take on the role of a detective and investigate what is causing the problem. This is what is meant by debugging. It's also important for students to test their work thoroughly -- it's often not enough to run the app once and conclude that it is correct. Also, incremental additions or step wise refinement is important when creating correct programs. Have the students try coding one piece of the program and then test the app. Test the app numerous times during development to help discover bugs faster (and sooner).

Background Knowledge: More on Media Sizes & Editing

App Inventor apps have a 5 Mb size limit. Therefore not all images and sounds that students upload will work in their app. Here are some tools that can be used to resize images and sounds:

  • On MacOS, the Preview application can be used to resize images. Just open the image in Preview and use the Tools menu to resize it.
  • On Windows machines, the Paint application can be used to resize images. Just open the image and use the Resize tool.
  • For editing sound files, Audacity is a free and open source sound file editor for all platforms.
  • You can also downsize sound files using the free online web app CutMp3.net.

Background Knowledge: Copyright for Images and Sounds

Many sounds and images online are copyrighted and it is a violation of copyright to include such images in your app. Students should be made aware of this. Our Resources Page contains information about Creative Commons Licenses and how to search for media that is licensed for sharing and remix.

There are sites that offer free audio files, including the following:

2.7.2. Professional Development Reflection

Discuss the following questions with other teachers in your professional development program.

  • How does this lesson help students toward the enduring understanding that programming uses a creative development process?
  • How can students express their personal interests, reinforcing the practice of creating computational artifacts? 

    I am confident I can teach this lesson to my students.
  • 1. Strongly Agree
  • 2. Agree
  • 3. Neutral
  • 4. Disagree
  • 5. Strongly Disagree