Syllabus Spring 2013

CS 107: Computing, Mobile Apps, and the Web
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 Inventor
No 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:

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. Two sections of the course are now offered every semester at USF. Professor Wolber's teaching materials, found at a, now serve as a model for courses world-wide, and Wolber has been awarded a "Transforming Undergraduate Education" grant from the National Science Foundation, where he'll work with faculty from MIT, Wellesley, Trinity College, and UMass-Lowell.

The course will provide you with terrific practical skills and knowledge-- it may be the the most effective USF core course in terms of helping students get jobs. Today, 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 programming computers
Meeting Times and Location: Section 1: TR 9:55-11:40. Section 2: TR 2:45--4:25,   Kudlick Multimedia classroom, Harney Science Center, RM. 235 

Professor: David Wolber    Office: Harney 529, Phone: 422-6451
Office Hours: MW 3-4, TR 12-1, and by appointment

Jackie Tong, Harney 530/535, office hours: M 5:30pm-6:30pm T 1:30pm-2:30pm
Brian Liberman, 
Harney 530/535, office hours:
M 6:30pm-7:30pm Thursday 5:30pm-6:30pm or by appointment
Required Materials:
Android  phone or tablet. We hope to provide 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 Checklists, including in-class labs and major projects      50%
Quizzes: 8-12, administered (almost) every Tuesday                   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 due dates are strict: no credit is given for work turned in after the corresponding checklist.

Quizzes and Code Camp
Quizzes will be given just about every Tuesday, a total of  9-12 for the semester. You will have a checklist due on Monday night, with the quiz the next day at the start of class. The quiz will cover concepts from the in-class lessons and checklist assignments-- completing the assignments while doing your own work is a great way to prepare for the quizzes. You may not make up a quiz without a doctor's note.

Each week, you may attend Code Camp to make up to 1/2 of the points you miss on the quiz, or 10 points, whichever is more. So if you get a 70 on the quiz, you can make up 30/2 = 15 points. Code camp is a team effort, so you'll need a partner. You'll work on a whiteboard for about 30 minutes, working on a series of questions given to you by your instructor. Periodically, your instructor will check your answers, asking team members to explain. and then give you the next question. To receive the makeup points, you must attend Code Camp within 10 days of the quiz. Code camp is available during the instructor's office hours. If you can't make those, make an appointment.

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!