What is App Inventor? Ask Hal Abelson

Hal Abelson, the MIT professor who took a sabbatical at Google to develop App Inventor, wrote a recent piece for EDUCAUSE Quarterly. Not surprisingly, Hal’s article deftly characterizes the great potential of App Inventor in education and society. Here’s an excerpt that gets to the gist of App Inventor’s unique educational value:

One of my favorite App Inventor examples comes from an introductory computer appreciation course at Wellesley (one of the Google-sponsored pilots). The instructors, Takis Metaxas and Eni Mustafaraj, had the idea that students should learn about the societal implications of information systems by building some of these systems and seeing first-hand the choices involved. In one example, the class created a polling application. As people walked around the Wellesley campus, they could pull out their phones and see that there was a new poll — for example, “Who is your favorite female singer?” — and select and send their responses, which were recorded by a web server.

At the next class, Eni pulled up the web page and showed the results. Then she pulled up the database and said, “and here’s how you all voted.” The students were startled. In the “private” experience of using their phones to answer a poll, they’d simply not appreciated that:

  • The polling system could keep track of their identities along with their votes.
  • This was a choice made by the system designer.
  • They could experiment with that choice implementing their own variations of the polling system.

As a topic for introductory computing, this goes beyond the issues involved in learning about programming or computational thinking. It gives students direct experience with a technology — online polling — that has major social impact and lets them look through the eyes of the system implementer. By creating their own variations, students explore the design choices and grapple with the implications, social as well as technical. The next time these students encounter polling systems or proposals for electronic voting, they’ll be asking some good questions as informed citizens.

 

Advertisements

USF App Inventor Student in Wired Magazine

Clive Thompson of Wired Magazine featured a USF student project in his article, Coding for the Masses. The article features Daniel Finnegan and his No Text While Driving app.

You can check out a refined version of the app as a tutorial on the App Inventor site, and check out  a screencast of how to build it on my App Inventor youtube list.

App Inventor and CS0: Strategies for Success

Strategies for Success with App Inventor and CS0

Following are the strategies I’ve used in teaching App Inventor. My course is called “Computing, Robots, and the Web”, which qualifies as a Math core course at USF. The students are primarily humanities, science, and business students. I taught the course last Fall and Spring as part of Google’s App Inventor pilot.

Portfolios and student-owned accounts

On the first day of class, students register for Google Sites accounts and create a portfolio site. From that day on they post everything they do– from small lab assignments to large, creative projects– on their portfolio. I tell them that if its not on their portfolio, it doesn’t exist! I also assign students their own App Inventor accounts the first day of class, as opposed to using generic class accounts. These are the advantages of the portfolio approach:

  • The motivation level is higher when students know they are creating something that their classmates and others can view.
  • Students can continue to work on their projects when the course ends.
  • Students can refer back to the samples and projects they’ve done previously.
  • One outcome of the class is a portfolio of their work which they can show their family, friends, and prospective employers.
  • Its a nice way to introduce and encourage “cloud computing”.

Here’s an example of a student portfolio via USF student Mackenzie Lisenbey, and here’s a student page linking to all the portfolios.

Worked-out samples and assigned variations
Even more than with the typical CS major, CS 0 students learn better with concrete examples as opposed to abstract concepts. The students build apps following fully worked-out tutorials that explain the behaviors (blocks) each step of the way. They’re then given assignments that ask them to program variations and additions on those samples. The sample apps become part of the vocabulary for the class. I find that “it’s like the quiz example, when you step through the questions,” works better than, “you know how iteration works, just increment the index variable…”

Interesting apps and student-initiated learning
The assigned sample apps should be interesting in terms of their end-result. Samples that just illustrate an interesting computer science concept don’t work so well with this audience. Whereas CS students are motivated puzzle-solvers, the less technical student is motivated  from creating something cool or useful to the world.

You can still get to the computer science concept, just not in a top-down, concept-first manner. As the students work on interesting samples, they invariably think of ideas for customization and other apps. “Hey, Wolber, how would I do this? What if I wanted to bring in my tweets? This quiz is cool, but how would I make a multiple choice quiz?” When they are motivated to solve a real-world problem you can teach them the concepts.

Creative Projects

Some students take off immediately as soon as they begin building the sample projects. The motivation level rises dramatically, however, when I assign the first creative project, and let the students create whatever they want. For some students, this is when they really buy in.

I’ve assigned two major projects each semester. Groups of two have worked best. People say that its best to group students of similar abilities– I agree. I also require the teams to assign each member individual programming deliverables.

At the beginning of each creative project, the students are given time in class to explore their ideas and build a project page. They develop an “elevator pitch”, perform some market research, and in general build a mini-business plan and specification for the app they’re going to build. I require them to create a prototype early on and perform “user testing” with their friends and other students. This is all informal and fun, but it gives them an idea about how to take an idea from concept to reality. At some point, I’d like to develop some better lessons in this area and include readings such as Kawasaki’s The Art of the Start

Market/Studio for Publishing Apps

I created a USF Android Market for my Spring ’10 course and the students were required to submit their mid-term and final projects there. The market provides another level of motivation for students– they know that many people will visit it. The students post their projects, including a barcode that people can use to install their app, source code that can be uploaded into App Inventor for customization, and a distilled version of their “business plan”

The market is a Google Sites page with all students as “collaborators”  I provided a template for submission so that there would be some uniformity in the site, though this didn’t prove too successful. I think the potential for this is great:  I envision is a well-designed app studio that can be promoted throughout the university.

App Inventor and CS 0 Core Requirements
The requirements for a core-curriculum computer science course vary from school to school. I’ve integrated “Internet and Society” readings (e.g., The Big Switch), web design, and web 2.0 tools as part of my course. App Inventor itself is a great vehicle for teaching programming concepts, web services, GPS, web 2.0, and just about any other computing concept.
Check out my site at appinventor.org for more about teaching App Inventor.

App Inventor at Community Colleges

I just finished teaching a 5-day App Inventor workshop at MPICT, a conference for computer science and IT community college teachers in the Northwest US. App Inventor was a hit– many of the instructors plan to incorporate App Inventor in their courses.

What I learned is our community colleges are in good hands: what a fantastic group of teachers! I learned a great deal about teaching in general and teaching beginning CS courses specifically.

App Inventor at USF (the video)

Google featured yours truly and Chris Witte, one of the students in my original App Inventor class, in this video. The clip was played at the Google booth during the ACM Conference on Computer Science Education (SIGCSE 2010).