App Inventor Teacher Workshop this Summer in SF!

The University of San Francisco and will host an App Inventor teacher twitter-usftag-500x500workshop and follow-up activities during the summer of 2015. The workshop will take place over four days, June 29-July 2, 2015, 10 am to 3 pm each day, at the University of San Francisco. The workshop is funded by USF and the Google CS4HS program. You can apply at b​

Learn App Inventor coding and how to teach it in a 4­-day teacher development workshop funded by Google and USF. Coding apps for phones and tablets is a fantastic way to learn computer science and computational thinking! The workshop is free. If you can commit to teaching in 2015-­2016, you may also be eligible for a $1000 stipend!

Teachers from all levels are welcome to participate. No prior coding experience is required. The workshop will start at the beginning with both coding and the App Inventor language, and will focus on how to teach the material to beginners. The workshop will be taught by USF Professor Alark Joshi and USF Professor and App Inventor author David Wolber.

University of San Francisco Campus, 2130 Fulton Street, San Francisco, CA 94117

appinventororgThe workshop will prepare you for teaching either a complete programming course or a coding module in an existing course. The topics and material discussed will be appropriate for many programming courses and levels, including the High School Computer Science Principles (CSP) curriculum that is being piloted as a new AP course. You will be introduced to two popular existing on­line courses, Mobile CSP (m​obile­​ and Professor Wolber’s App Inventor Course­-in­-a­-Box (a​​.

Community of Practice
Our goal is to foster the community of App Inventor teachers in the Bay Area. We will offer two ways to continue after the workshop: (1) We’ll provide three weeks of follow­-up guidance after the workshop (July 6­-24, 2015) including once­-a­-week  meetups as you continue with the Mobile CSP on-­line course, and (2) During the school year, we have funds for a limited number of USF students, experienced in App Inventor programming, to assist you in the classroom. If you can commit to teaching App Inventor in 2015­-16, you may be eligible for a $1000 stipend.

Please apply for the workshop at b​ ​Slots for the workshop are limited, but we will accommodate as many teachers as we can.

Advertisement on University of San Francisco and App Inventor

Andrea and Kelly building an app

USF students Andrea Conway and Kelly Lazzara are featured in this video report on App Inventor and our course at USF.

Google’s Mark Friedman at USF’s CS Night

App Inventor Director Mark Friedman gave a great keynote talk at USF’s CS Night.

Our CS 107 students– non-cs majors with no prior programming experience– presented and demo’d their Android app projects alongside the seniors and MS students.

CS 107 students Jose Malave and Crystal Ferguson show their app

CS 107 student and filmmaker Angelo Taylor

CS 107 student Angelo Taylor documented the night with this short film, and librarian supreme Shawn Calhoun contributed these photos


On David Pogue’s Review of App Inventor

David Pouge gave a poor review to App Inventor in his New York Times article, D.I.Y. Tool for Android Needs Work . Because of pre-beta glitches, he and his son were unable to complete the tutorials. I think his frustration led to him making some off-base conclusions about App Inventor. The conclusions he came up with after a day certainly don’t mesh at all with the experience I’ve had teaching the tool for the past year.

He says:

“But make no mistake — this is programming. You can’t do it unless you’re a programmer, or have one nearby.”

He is correct in that App Inventor app development is indeed programming. But he is wrong in that you– someone who has never programmed before– can do it! Learning to write apps in App Inventor is significantly easier to learn than a traditional text language (more on this later). It lowers the bar dramatically. There are limitations, and some will be able to do more than others. But all of my students, with no prior programming experienced, got to the point that they could create apps without aid.  David’s sentence is misleading, and I hate to see it dampen people’s enthusiasm for this great tool.

App Inventor programming vs. textual programming

David asks:

“is there really such a huge difference between having to type out ‘AccelerometorSensor1.XAccel,’ as in real programming — and dragging a block bearing that name?”

This is a great and fair question, and to look at it clearly I think it really helps to be a programmer and to have taught beginners. From that vantage point, the answer is emphatically YES! In practice, there is a huge difference between typing commands and choosing from pre-defined blocks. Many of a beginner’s frustrations come from syntax errors– trying to instruct the computer with a textual language and being barked at with indecipherable messages when there’s something wrong. Of course the complex logic they face later is another barrier, but its the “syntax” frustration that turns many, many beginners away from even getting to the more fun logical problem solving. If App Inventor just gets people past that first hump, it is a great tool.

Another key is that App Inventor is an event-handling language, meaning events are first-class objects. You can directly drag out a event block and then place the response to the event inside. Seems logical, and you’d think after all these years it wouldn’t be such a big deal. Unfortunately it is– you can’t even imagine how much conceptual understanding you must have to do the same in Java or Python.

David should ask a programmer who has never programmed the Android to write a Java program that prints out the readings from the Accelerometer. Hell, he could even ask one with some Android experience. See how long it takes the programmer. He’ll find that that single Accelerometer block will be replaced not with a single line of code, but an import statement, an object creation statement, manifest files, etc. The App Inventor team has done a  lot of work to package a bunch of ugly stuff inside those blocks. You have to think of it as a great code library, specially designed for beginners, and transformed into visual blocks language.

For more thoughts on why App Inventor works, check out my previous post.

No Fundamentals Mentioned

David didn’t mention any fundamental issues to back his negative conclusions about App Inventor. In a reply to a comment concerning this, he mentioned only one thing:

“I explicitly let Google off the hook for the aspects that are related to the early stage of the software, and critiqued ONLY the fundamentals. For example, this business of needing two different apps to do your development, switching back and forth. That’s not going to change when the software is final.”

In my experience, the switching back and forth between the component designer and the blocks editor is barely bothersome to most when they begin,  and completely forgotten by all soon thereafter. There are plenty of fundamental issues with learning to program, but this is not one of them.


David’s article is interesting and provocative, but my guess is that the start-up glitches and his anti-hype feelings had an undue influence on his opinions. Start-up glitches often do this– we all know the importance of first impressions. Google probably should have made sure more phones “worked” with App Inventor out of the box. Its scary to think that if David had been using a Nexus One on a Mac, his critique would have been completely different.

In any case, I’m inviting David and his son to San Francisco– I think given a day I can change his mind!

USF App Inventor Contest

Photos from the contest

We recently held a programming contest for my App Inventor for Android programming class. The students in the class were non-techies: their fields of study included history, communications, literature, media, business– just about every major in the university other than computer science. The folks from Google’s App Inventor team and some USF Administrators served as judges. The winning team created DroidMuni, an app that gives you personalized “next bus times” information about your MUNI bus line. Other apps included:

Park It
No Text While Driving
Dating AppVice
Make it Count