Teaching a course on App Inventor? The App Inventor Course-in-a-Box provides teaching materials based on Professor David Wolber's CS0 course, "Computing, Mobile Apps, and the Web" at the University of San Francisco. You can use the materials to teach an entire course, or pick and choose specific modules to suits your needs.


  1. Introduction
  2. Games
  3. Texting/Location
  4. Data
  5. Shared Data
  6. Web APIs
  7. SE/Procedures
Each module includes:
  • Lesson plans and lecture notes
  • Tutorials and Video Screencasts
  • Conceptual worksheets
  • Creative projects
  • Test Questions
  • Assigned readings from the App Inventor book

Module Pathways

Module 1, "Intro to Event-Handling" provides an introduction to the App Inventor environment and the idea that an app is a set of event-handlers. Conditional blocks are also introduced. Module 2, "Games", introduces the students to timing and animation and provides much needed work with manipulating properties and variables. The programming is complex enough so that a student must acquire a non-trivial understanding of how an app's memory (state) works and how to manipulate it. Module 3, "Texting/Location", exposes students to some of the technology that makes mobile mobile: SMS texting, GPS, TextToVoice, etc. It also introduces them to maps, web access (e.g. URLs with parameters), and persistent data.

Modules 4-6 focus on working with data, and this represents a significant conceptual leap as the programming becomes more abstract. Module 4 introduces lists, indexes, and iteration on fixed (concrete) data such as is found in a simple quiz app. It then introduces dynamic, user-generated data, so the apps become even more abstract in nature. Module 5 moves on to apps with shared data, which adds another level of complexity, and module 6 introduces web APIs and complex issues such as asynchronous requests and parsing.

Module X, "Software Engineering and Procedure Abstraction" is so named because different instructors will want to present it at different places in the curriculum. Event-handlers are top-level objects in App Inventor, and the event-handlers serve as first-level procedures for the app. Because of this, you can get away without teaching procedures early on, the advantage being that students can instead focus on building interesting apps right away. One might also teach procedures earlier, as in a traditional CS course, and thereby emphasize the importance of decomposing a problem into reusable parts. In any case, the lessons in Module X discuss both procedures and debugging techniques available in App Inventor.

Teaching Methodology

Each module follows a do-first structure that has worked well in motivating students to learn. We call the methodology, "Build-Conceptualize-Customize-Create".

Build It

Introduce a topic but keep it brief. Within minutes, get the students building an interesting app, using a step-by-step tutorial.

Conceptualize It

After the students complete the tutorial, break them into small groups to discuss conceptual questions about the app, then discuss as a class.

Customize It

After the discussion session, assign customization tasks in which students add interesting features to the app they just built.


After two or three iterations of the Build-Conceptualize-Customize process, give the students the freedom to choose an app of personal interest to them.

Learn More  People Map 

Wolber's 2013 Course Site