CS 107: Computing, Mobile Apps, and the Web
Fall 2012 Syllabus

CS 107-- the App Inventor course-- provides a gentle introduction to computing. You'll learn programming by building mobile apps for phones and tablets with the visual language App InventorNo prior programming experience is required, and the pace of the course, while quick, is more manageable compared to the department's other first semester course, CS 110. If you come to class each session ready to work and also put in time consistently outside of class, you will prosper no matter what your background. And you will have lots of fun! The course web site is: https://sites.google.com/site/appinventorcourse

This course and its students have been in the media! Check out these articles from the NY Times, O'Reilly Rader, Wired, Tech Crunch, SF Chronicle, and more
The course fulfills the Core Math requirement at USF and counts towards a CS minor. It also serves as excellent preparation for the first traditional programming course, CS 110. The course began in 2009 as a pilot program sponsored by Google with some select universities. Google donated 20 Android phones and gave USF early access to App Inventor, a visual programming environment for creating mobile apps. 

The course will provide you with a plethora of practical knowledge-- it may be the the most effective USF core course in terms of helping students get jobs. In today's society, understanding the fundamentals of computing, the web, and the mobile world are crucial, no matter what discipline you choose. Perhaps most importantly, you will learn problem-solving skills-- applied logic-- that can help you in every walk of life.

Pre-Requisites: None-- you are expected to know nothing about computers.
Meeting Times and Location: Section 1: TR 9:55-11:40. Section 2: TR 12:45--2:30,   Kudlick Multimedia classroom, Harney Science Center, RM. 235 

Professor: David Wolber  wolber@usfca.edu    Office: Harney 529, Phone: 422-6451
Office Hours: TWR 2:30-3:30, and by appointment

Edric Orense, Harney 530, elorense@gmail.com, office hours: M 7:30-9:30, W 5-6
Jacqueline Tong, Harney 530,
jstong@dons.usfca.edu M 5:30-7:30, F 3:30-4:30

Required Materials:
Android  phone or tablet. We hope to have a device for every student. But minimally, each pair of students will be loaned a device for the semester. One of the pair will check out the phone from Gleeson library and return it at the end of the course. The student who checks it out is officially responsible for its return. As with any library check-out, you will be responsible for lost items. In this case, the charge is over $400, so be careful! Note: if you have an Android phone already, you need not check out a device.

Textbook. You'll need to purchase a copy of App Inventor: Build your own Android Apps, by David Wolber, Hal Abelson (who led the development of App Inventor) and two other Google engineers from the App Inventor team. The paperback version is useful as a companion as you work-- you can set it next to you and follow the tutorial instructions while you work on the computer.

SIM card with, minimally, an SMS texting plan for your phone. Those of you with T-Mobile or AT&T Sim cards may be able to insert them into the Android phone directly. If you do not have such a SIM card, you are required to purchase a data plan for the phone. Note that you can share this cost with the classmate with whom you share a phone. If you check out a tablet instead of a phone, you need not buy a SIM card.

Portfolio, including in-class labs and major projects        50%
Midterms (2)                                                               50%


The course meets in the Kudlick lecture/lab classroom (HR 235). A portion of most class meetings will be devoted to hands-on lab programming assignments. These tasks will begin during class time but generally will require out-of-class work to complete. The Kudlick lab is available in the evenings, and there are two labs on Harney 5th floor available (HR 530 and HR 535). You can also work on these assignments on your laptops and home computers. Assignments include in-class labs and major projects involving the design and implementation of an innovative mobile or web application. Students will work in groups.

The lab assignments and projects are a significant part of the grade for the course. For each, you are responsible for documenting your work on your portfolio. Every week, a checklist will be given specifying everything due on that particular date. Checklist dates are strict: no credit is given for work turned in after the corresponding checklist.

Because of the hands-on nature of the course, attendance is mandatory; if you miss a class without a valid excuse (e.g., doctor's note for illness) one percentage point of your overall grade will be deducted.
If you miss more than three sessions, you will be asked to drop the course.

Why should you take this class?
  • It satisfies the Core Math requirement
  • Software engineers are in high demand, and many jobs require programming skills (not just jobs listed as software engineer)
  • Mobile applications are the wave of the future. You might create the next killer app!
  • You will problem-solve like never before. This is a transferable skill that can be applied to lots of other careers.
  • You may find yourself interested in computers, and decide to pursue it further.  This class is one of five you'd need for a computer science minor.
  • It's fun!