2.4. I Have a Dream Part 2 Explore Curricular Activity

This lesson extends the app begun in Part I of the 'I Have a Dream Tutorial' by adding a second button and an if/else algorithm to its code. The if/else construct is one of the essential building block for algorithms. It enables the app to select between two different behaviors depending on the user's action. This reinforces the enduring understanding that algorithms are a precise sequence of instructions executed by a computer.

Professional Development

The Student Lesson: Complete the activities for Mobile CSP Unit 2 Lesson 2.4: I Have a Dream, Part 2.


2.4.1. Learning Activities

Estimated Length: 45 minutes

  • Hook/Motivation (5 minutes): Think-Pair-Share: How you might add another speaker to the I Have a Dream app? What user interface components would they need? How would their blocks change?
  • Experiences and Explorations (20 minutes): Lead the students through the I Have a Dream, Part 2 Tutorial, which adds an image component, another button, and a horizontal arrangement so that speeches from both MLK and Malcom X can be played. The app also introduces selection through the use of an if/else block. You can use the short handout version of the tutorial to help you lead the lesson.
  • Explore Curricular Activity - What is a computing innovation? (10 minutes): Discuss what a computing innovation is and how the app they have just created is an example of a computing innovation. Discuss how effective collaboration can help when developing computing innovations. (Note: This activity is part of the Explore Curricular Requirements for AP CSP. Additional resources and materials can be found in the Explore Curricular Requirement Teacher Resources guide available as a secure document through the AP Classroom site.)

  • Rethink, Reflect and/or Revise (10 minutes):
    • Self-Check: Ask students to complete the interactive exercises below the tutorial. This can be done independently, in pairs, or as a class.
    • Discussion questions: What are some things to remember as more components are added to the user interface? What are some other examples of computing innovations?
    • Reflection: Ask the students to write a reflection in their Google portfolio that explains conditional logic with if/else blocks. They might also reflect on further enhancements that could be made to the I Have a Dream app.

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

Explore Curricular Activity: This lesson includes an activity that is part of the Explore Curricular Requirements for AP CSP. Additional resources and materials can be found in the Explore Curricular Requirement Teacher Resources guide available as a secure document through the AP Classroom site.

Assessment Opportunities and Solutions



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: These reinforce UI components, events, and if/else statements.
    EK 4.1.1C - Selection uses a Boolean condition to determine which of two parts of an algorithm is used.
  • Portfolio Reflections:
    Correctly identify UI (user interface) components - buttons, players, labels, images, horizontal arrangement
    Students should start to become familiar with the term computational artifact, something created by a human using a computer, and identify examples of it beyond the apps created with App Inventor.
  • In the I Have a Dream Part 2 App, look for:
    -Use of if/else statements in all the button click events
    -Components are meaningfully renamed, including the type of the component as well as a name connected to its purpose (MalcolmButton, MLKButton, etc.)

Differentiation: More Practice

Background Knowledge: Selection — If/Else Blocks

The if/else construct is one of three essential algorithmic control structures: sequence, selection (if/else), and repetition. So far, the two apps we have developed have used sequence - a list of blocks that are executed in order. This is only an introduction to if/else conditions; they will be revisited in more detail in later units. Students should be more familiar with using the App Inventor environment and comfortable with tasks such as selecting media, renaming components, and copying blocks.

2.4.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 the way statements are sequenced and combined in a program determines the computed result. Specifically, how do selection statements (if/else statements) determine which two parts of an algorithm are used?

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

You have attempted of activities on this page