CS 107: Computing, Robots and the Web
CS 103: Web Programming
Special Android Programming Edition


CS 107/103 is a cross-listing of two courses, both of which fulfill the Core Math B2 requirement at USF and both of which count towards a CS minor. Though the course has two names and numbers, it is one course: the lessons and the requirements for all students are exactly the same.

The course is part of a special pilot program offered by Google to a few select universities. Google donated 20 Android phones to us, and has provided us access to a not-yet-public visual programming environment for creating mobile apps. Because of this fantastic opportunity, the course will emphasize mobile programming, with the Android phones being the "Robots" of the course, and mobile programming seen as an extension of the ubiquitous "web". The course will also cover more traditional "web programming" including the use of HTML, CSS, and the development of dynamic web pages using Python.

Do not let the previous paragraph scare you. Though you will program computers and your phone like you never thought possible, the course provides a gentle introduction to computing. No prior computer experience is required, and the pace of the course is much slower compared to the CS 110 course, which is the first course taken by CS majors. If you come to class ready to work and think, and you spend a fair amount of time working outside of class, you will prosper, no matter what your background. And you will have a lot of fun!

The course will provide you with a plethora of practical knowledge-- it may be the best core course in terms of helping students get jobs. But the goals of the course are not merrily practical. In today's society, understanding the fundamentals of computing, the web, and the mobile world are crucial, no matter what discipline you choose. And in this class you will learn problem-solving skiils-- applied logic-- that can help you in every walk of life.

Core:
Fulfills MATH B2


Pre-Requisites: None-- you are expected to know nothing about computers.

Meeting Times
TR 1:30-3:15
Harney Science Center, RM. 235


Professor: David Wolber
Office: Harney 529
Phone: 422-6451
email: wolber@usfca.edu
Office Hours: MTWR 3:30-4:30 or by appointment

TA: David Rice
Lab Hours: MW 1:30 - 3:00 PM
HARNEY 530, 535 or 539  

Necessary Materials:

Each pair of students will be loaned an Android Dev phone from a set of phones donated to USF from Google. You will check out the phone from Gleeson library and return it at the end of the course. As with any library check-out, you will be charged on your account for un-returned items.

You will be required to purchase some call time for the mobile phone (or use a SIM card you already have). There are ways to purchase such time for under $50.

The course text will be available on-line, though hard-copies will be made available for copying cost only.


Grading

Portfolios                                                                     25%
    includes lab projects and reading responses
Major Projects                                                             35%
Midterms (2)                                                                40%

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

The lab assignments are a significant part of the grade for the course. Students are responsible for documenting their work on their portfolio. The portfolio will be checked (graded) periodically during the semester.

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.

Reading Responses
Besides programing assignments, students are assigned readings and responses concerning technology and its effects on society. Short-essay questions will be assigned and you will publish the essays on your portfolio.

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. Also, you may not make up lab assignments from days you miss without a valid excuse.

If you miss more than three sessions, you will be asked to drop the course.

Late Policy
There will be three Portfolio checkpoint dates and they are strict deadlines-- once the date passes students will not receive credit for any work that is part of that checkpoint.


Major projects deadlines are also strict-- no credit will be given to late submissions.

FAQ

Do I need to know how to program to take this course?

No. No prior experience is required. Do not be afraid...

Why should I take this class? I'm not a CS major!

There's a few good reasons:
  • 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.
  • Much of CS is really about 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.
What is the course like?

The course is extremely hands-on, integrating lecture topics with exercises that give you a chance to try out the concepts we discuss. A typical class period might have 30 minutes of lecture, 30 minutes of discussion, and 40 minutes of lab.