CS 107 Spring 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 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 B2 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 as a pilot program sponsored by Google and with a few select universities. Google donated 20 Android phones to us, and 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 best 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 skiils-- 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: TR 9:55-11:40, Kudlick Multimedia classroom, Harney Science Center, RM. 235 

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

TA:
Paul Cafardo, Harney 530 or 535, pncafardo@gmail.com
Office Hours: M 5-6, R Noon-1
Required Materials:

Android  phone or tablet. 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 (your instructor) Hal Abelson (who led the development of App Inventor) and the Google engineers from the App Inventor team. The paperback version is more helpful than the electronic version because you can set it next to you in the lab.

SIM card and, 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.

Grading
Portfolio, including Major Projects and in-class labs        50%
Midterms (2)                                                               50%

Lab Assignments

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 to students (HR 530 and HR 535). You can also work on these assignments on your laptops and home computers.

Major Projects
The major projects involve the design and implementation of an innovative mobile or web application. Students will work in groups. The projects should be linked to from each student's portfolio. 

Checklists
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 two to three weeks, a checklist will be given specifying everything due on a particular date. Checklist dates are strict: no credit is given for work turned in after the corresponding checklist.

Attendance
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 I take this class? I'm not a CS major!
  • It satisfies a Core Math requirement (B2)
  • Almost every job these days requires some ability to work with computers and/or the Internet.
  • Mobile applications are the wave of the future. You might create the next killer app!
  • The thing you'll learn the most is problem solving. 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. Many computer scientists, including your professor, initially started out in other areas.
  • It's fun!