In September 2011, I posted about how much I like App Inventor as a tool to get students excited about computer science along with believing that they have the ability to create technology that could potentially change someone’s experience. Since then, I have talked with more computer science educators than I care to admit who mention things about App Inventor like, “my students will find it too babyish”, “the programming isn’t advanced enough”, and “they will get bored quickly.” To them, and to anyone else who might be considering using App Inventor in their CS classes (of all levels), I want to share something that happened this week.
A 9th grade student of mine who is also a member of the Mobile App Development Club I sponsor asked me if I could give him some advice on how he can convince his parents to buy him an Android smartphone. I chuckled as I recalled all of my failed attempts at convincing my own parents to buy me an Atari system, call waiting, or cable TV. (I was lucky enough to get an Apple IIE.) I suggested that if he could show his students that he was building apps for his phone that were useful to someone other than himself, then his parents would understand that he was creating with, and for, technology, not just using the technology. I asked him if he could think of an app that could help his parents in some way. He said he would think about it and walked away. About twenty minutes later, my student returned with a problem that he thought he could help his father with. His father works at a car dealership and often has to walk through the lot to find certain vehicles. The problem: his father is color blind. My student decided that he wanted an app that would enable his father to take a picture of the car he suspected was the right one and then announce the correct color of the car. Brilliant!
So, we went to work. His job: start to sketch the user interface and make a list of the functionalities the app would have. My job: make sure he had learned the appropriate computer science concepts to build this particular app. The concepts I came up with:
1) take a picture with the camera or select a picture from the phone’s gallery
2) get the color of the pixel selected by the user when he/she touches the picture on the screen
3) perform string concatenation
4) initialize a list and fill the list with values
5) create a method that traverses a list using a for loop, find the index number of the minimum value in a list, and then return that value
And that’s just off the top of my head. Now, to address the issue that App Inventor is too elementary, item #5 is very similar to one of the free response prompts that shows up every few years or so on the AP Computer Science exam. Do we think that writing procedures or finding the minimum or maximum in a list is babyish?
At the end of the day, what remains is that this 9th grader created a program to help someone, designed a user interface that was simple but had all of the needed functionality, worked with variables, value-returning methods, lists, for loops, and performed both pixel and string manipulation. Now he’s off to perform user testing, solicit feedback, and refine his program.
The look on my student’s face this week as he was working on a program that will help his Dad was priceless. This experience made me remember why I became a teacher and gave me the much-needed boost I often need during the gray sky season. If the student ends up with an Android phone, that will just be the flower on top of the icing on the cake.
Ria Galanos
CSTA 9-12 Representative
Thomas Jefferson High School for Science and Technology
Alexandria, VA
Great story – I also love App Inventor and so do my year 8,9 and 10 pupils!
Ria, I am a firm believer in App Inventor and its ability to motivate students. I cover many of the “first principles” of computer science using App Inventor in my Grade 10 class (second year teaching with it) including some advanced topics like integrating apps with websites. Of course the tool is not the best for teaching a software engineering course with class design, data encapsulation etc. but my students quickly learn the value of procedures, data structures (lists) and good user interface design. I plan to continue to use App Inventor for many years. This year I find that my students taking my second CS course in Python have a firm understanding of functions and modular design since they learned procedures with App Inventor.
My App Inventor wish list would include a better implementation of multiple screens and variable scoping.
Grant Hutchison
CS Teacher
Humberside CI, Toronto, CANADA
Great post Ria! Reminds me of the story in the news recently about the 7 year-old girl that developed an app.
http://www.huffingtonpost.com/2013/02/04/zora-ball_n_2586140.html
App Inventor is a great tool that’s fun to use. No, it’s not using Eclipse and the Android SDK, but it allows students of all ages to have access to computer programming. I used BASIC back when I started many years ago. Kids at Argyle Middle School in Silver Spring, MD learned Alice when I was there.
I will never forget my first “big” program. It was on an Olivetti Underwood Calculator that had a sort of machine language, a paper tape to store the program on, and very limited memory and registers. Our assignment was to write a program that accepts as input three numbers, and then sorts them and prints out the sorted list. After I got that working, I figured out how to sort four numbers, and then five! I was so happy – no other student had ever sorted five numbers before. I was hooked!
I suspect as apps become more popular, more ways to create them will be available. I only know of Eclipse/Android SDK, App Inventor, and Bootstrap now.
It’s great that you have a Mobile Apps club! I just got BOE approval for a new MCPS high school course called Writing Mobile Apps. It would be fun to work on some common app projects.
That is a fantastic! app and a great way to show parents what students are doing in class and how important it is to continue with computer science. Go Ria, Go AppInventor!
I teach a non-majors course at University of Illinois Chicago (UIC) based off the Exploring Computer Science (ECS) curriculum. For the programming component I start with Scratch, then segue to App Inventor, which I love. My students use TinyWebDB to store high scores in the cloud for games they create. I wonder if the detractors of App Inventor have actually used it.