
2.2. I Have a Dream Tutorial¶
This lesson engages the student in an instructor-led App Inventor tutorial that leads to the creation of a simple sound board app to play Martin Luther King's 'I Have a Dream Speech'. This is a great example of a socially-useful app which provides multimedia education on African-American history and the civil rights movement. It reinforces the enduring understanding that programs are developed by people for different purposes, including creative expression. In this first app, they also learn about App Inventor's event-driven programming model. Students test the correctness of their program by ensuring the speech plays when the button is pressed.
CSP Framework | |||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() | |||||||||||||||||||||||||||||||||||||||||
Enduring Understanding CRD-2: Developers create and innovate using an iterative design process that is user-focused, that incorporates implementation/feedback cycles, and that leaves ample room for experimentation and risk-taking. | |||||||||||||||||||||||||||||||||||||||||
Learning Objective CRD-2.B: Explain how a program or code segment functions. | |||||||||||||||||||||||||||||||||||||||||
Learning Objective CRD-2.C: Identify input(s) to a program. | |||||||||||||||||||||||||||||||||||||||||
Learning Objective CRD-2.D: Identify output(s) produced by a program. | |||||||||||||||||||||||||||||||||||||||||
Professional Development
The Student Lesson: Complete the activities for Unit 2 Lesson 2.2: I Have a Dream Tutorial.
Materials
- Presentation system (LCD projector/Interactive whiteboard)
- 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 Tutorial (video or handout)
2.2.1. Learning Activities¶
Estimated Length: 45 minutes
- Hook/Motivation (5 minutes): Display any App Inventor block — a programming element — of your choice and ask the students to try to figure out what it does. What does a program do?
- Experiences and Explorations (25 minutes): Lead the students through the I Have a Dream Tutorial, which explains the basic features and elements of the App Inventor environment and leads the student through the steps involved in creating their first mobile app, the I Have a Dream app.The short handout found in the Text Version of the tutorial can help you to lead the app tutorial. This is a great example of a socially-useful app which provides multimedia education on African-American history and the civil rights movement. In addition, it is important for students to see diverse, culturally-relevant, or inclusive images and topics in their studies to help broaden participation in CS.
- Rethink, Reflect and/or Revise (10 minutes): App Inventor is a blocks-based programming language. It differs from text-based languages that students may have heard of, such as Java and Python. Visual, blocks-based languages make programming more accessible to beginners. Programming with blocks helps avoid making frustrating typographical errors. Explain event-driven programming and draw a picture of the event-driven programming model.
- Suggested discussion questions (2 minutes): Were you able to reproduce the "I Have a Dream" app? What challenges did you encounter? What did you do to address the challenges?
- Think-Pair-Share (3 minutes): How could we describe “event-driven programming” to someone who is not familiar with this concept?
- Individual portfolio reflection (5 minutes): Ask the students to write a reflection in their Google portfolio that explains event-driven programming. They might also reflect on UI components of other apps they have used.
2.2.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 programs are developed by people for different purposes and for creative expression?
- How do the lesson activities promote the CT (computational thinking) practices of creating and analyzing an app (a computational artifact)?
-
I am confident I can teach this lesson to my students.
- 1. Strongly Agree
- 2. Agree
- 3. Neutral
- 4. Disagree
- 5. Strongly Disagree