New App Inventor Curriculum for SF Middle Schools

screen-shot-2016-09-14-at-10-14-52-amThe San Francisco Unified School District (SFUSD) is making great strides in rapidly adding computer science courses to the curriculum in public middle schools and high schools, and App Inventor is a vital part of it.  SFUSD’s Bryan Twarek and Andrew Rothman have designed an on-line middle school curriculum which combines video and other lessons from appinventor.org, Mobile-CSP.org, appinventor.mit.edu, and a number of other venues, and breaks lessons down into 50 minute classroom chunks. The well-organized site is being used this fall in SF middle schools. Check it out and contact Bryan (twarekb@sfusd.edu) to get access to the teacher side of it.

The middle school curriculum is part of SFUSD’s Computer Science for All Students in SF effort. The goal is to make real computer science– with coding and problem solving– part of the curriculum throughout the grade levels, and to help broaden participation in Tech, as this excerpt from their site attests:

By beginning in the earliest grades and with all children, we will normalize a discipline that has been long dominated by a selective group of the population.

SFUSD teachers are also teaching some of the first AP High School Computer Science Principles (CSP) courses on the West Coast, an effort led by SFUSD’s Jennie Lyons.

The Democratize Computing Lab at the University of San Francisco is  partnering with the school district in these efforts. Led by my colleague Alark Joshi and I, we provide materials and advice on curriculum development, offer summer training workshops for high school  teachers, and facilitate a program whereby USF students in the Democratize Computing Lab assist teachers at schools sites each semester.

Dave Wolber

App Inventor Teacher Workshop this Summer in SF!

The University of San Francisco and AppInventor.org 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​it.ly/usfWorkshop.

What
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!

Who
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.

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

Details
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­-csp.org)​ and Professor Wolber’s App Inventor Course­-in­-a­-Box (a​ppinventor.org)​.

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.

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

App Inventor Presentation at Tech Museum of Innovation, San Jose

techMuseumI’m giving a presentation on teaching App Inventor to kids along with a hands-on workshop at the Tech Museum of Innovation in San Jose this Saturday, Oct 18, 1 pm. The event is free and you can register at http://appinventor-at-the-tech.eventbrite.com, The event is being hosted by Benesse CorporBenesse_America_logo_72DPIation of Japan.

Please spread the word!

Dave Wolber

Who’s Teaching App Inventor

A map of App Inventor teachers

I’ve updated the App Inventor teacher map with a number of folks who contacted me and I did a bit of categorizing. Though the map is far from complete, we have courses from middle school, high school, high school summer and after-school programs, university cs courses, and a Health Sciences course. Here’s a quick run-down, see the map for more details on each course/teacher.

Middle School

Chris Craft, Cross Roads Middle School, Columbia, SC

High School Programs

Lashell Hatley, Youth Lab, Washington D.C.
Elisabeth Soep, Youth Radio Mobile Action Lab, Oakland CA
Jeff Gray, University of Alabama Summer Computer Camp
Kris Roy, Valdosta State University Summer Camp, Valdosta, GA
Anu Tewary, Technovation Challenge, CA and NY
Steve Keinath, Jackson Area Career Center, Jackson, MI

High School Courses

Stacey Roshan, Bullis School, Potomac, MD
Jeremy Scott, George Heriot’s School, Edinburgh, Scotland.
Peter Beens, Beamsville, Ontario, Canada
Keith Jiang, Taiwan

University CS Courses

Ellen Spertus, Mills College
David Wolber, University of San Francisco
Ralph Morelli, Trinity College
Hal Abelson, MIT
David Jantzen, Cal Poly SLO
Ruud Greven, Saxion University of Applied Sciences, Enschede, Netherlands

University, Health Sciences
Randy Hutchison, Furman University,  Greenville, SC

 

App Inventor Teacher Map

Who teaches App Inventor? I’ve started to put together a Google map with the basic information of the courses I know about. I’m still working through emails and groups to collect info about people, so please send me your name, course title and description to be added. It looks like a bunch of courses sprouting up this fall so the map should be filling up…here’s a snapshot of the map in Google Earth:

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.

 

High School Girls and the Technovation Challenge

How do we get more women in computer science? App Inventor may be part of the answer.

This year’s Iridescent Technovation Challenge has expanded to NYC and Socal along with the Bay area. This is a program where high school girls spend two nights a week learning app development and entrepreneurship, aided by college students and young professionals. NYC’s program was featured in a PC Magazine article. Three USF students– Jenny Horowitz, Julia Cahill, and Melody Garcia–  are instructors at the San Francisco Challenge taking place at Google’s SF offices.

Girls at the NYC Technovation Challenge

The nation-wide finals are May 21 in the Bay Area. I’ll be there!

 

Computing Distance from GPS points in App Inventor

With App Inventor, you can create apps that use the LocationSensor to get the phone’s GPS coordinates. Some of my students have been writing apps to perform such public services as finding the closest pub from their current location. To compute this, they need to convert to GPS lat/long coordinates into a distance in miles.

To help them, I created these quick and dirty screencasts demonstrating how to find a formula on the web then convert it into an app inventor program:

PART II

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.