Syllabus Spring '09

CS 107: Computing, Robots, and Python

CS 107 provides students who are not computer science majors with some exposure to the fundamentals of computing and the Web. The course will include developing web pages, some photo-shop-like programming in Python, and programming of Lego Mindstorm robots. We'll also spend a fair amount of time discussing the ways that computers and technology affect society and our lives.

Information

TR 10:30-12:15
Harney Science Center, rm. 235


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

TA: Evren Bingol (evrenbingol@hotmail.com)
Office Hours: MW 2:30-3:30

Text:
On-Line and FREE Python Book: How to Think Like a Computer Scientist:Learning with Python
Numerous other on-line articles and media to be handed out by instructor


Why Take the Course?

code for food
program robots                             help your social life                       fulfill math requirement                get a job

Grading

Attendance and In-Class Labs                                    20%
Software Development Assignments                          30%
Research Assignments                                               10%
Midterm                                                                       20%
Final                                                                            20%


Research Assignments

Throughout the semester, you'll be given topics to write/create about.   The purpose of these exercises is to give you an opportunity to reflect on and think about some relevant issues surrounding the ways in which technology affects our lives. I am not interested in having you agree with me; I don't care if we disagree on every single point. I am interested in helping you to develop an understanding of the issues and a solid foundation for explaining why you feel the way you do.

You'll post  entries on your course web site. This site will be public-- your audience is not just your professor, but the world! So be serious and respectful, and represent this class and the university well.

A couple of important points:
  • Your entries should be self-sufficient, that is, even though this is a class assignment and you are answering assigned questions, don't make your page seem that way. Introduce the topic clearly and have a "take" on it. Don't write sentences that answer some question that your reader doesn't know exists.
  • Since everyone is working on a public site, you can and should collaborate with classmates. Read their entries, quote from them, and comment on them (on their pages). However, all academic rules apply. Copying text, without citation, from your classmates sites or any other sources will result in a zero for the project and university discipline. Do not plagiarize!
Each  entry will have the following:
  • At least one embedded YouTube video or image, with a quote/citation from it. Videos can be related ones you find on YouTube, or videos of yourself and classmates discussing the topics.
  • A quote from another student's post on the same topic (with appropriate link/citation)
  • Links, with appropriate citation, to at least two on-line resources other than the ones you're given.
You'll be graded based on how well you address the question, how well-thought out or sophisticated your answers are, and whether or not you follow the guidelines above. While this is not an English class, I will take off for egregious misspelling or grammatical errors, and for poor writing.

In short read the assigned texts, watch the videos, follow links that interest you and read those. Then write two or three pages telling me what you learned and most importantly what you think. Say something interesting!

Software/Web Development Assignments

There will be a number of assignments in which you create web pages and software. This includes HTML/CSS coding, programming with the Python language, and programming robots. You will begin these assignments in class but you will also have the opportunity, and the need, to work on them outside of class time. These assignments represent a large portion of your grade, so make sure you get them done and do quality work.

Attendance and Participation

Attendance is mandatory; if you miss a class without a valid excuse (doctor's note for illness) one percentage point of your overall grade will be deducted. Also, you cannot make up any 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

Late writing assignments and labs will not be accepted.

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 requirement (B2)
  • Almost every job these days requires some ability to work with computers and/or the Internet.
  • 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 CS people (including your professor) initially started out in other areas.
  • It's fun.
What is the course like?

The course is very hands-on. We'll integrate lecture topics with exercises that give you a chance to try out the concepts we've been discussing. A typical class period might have 30 minutes of lecture, 30 minutes of discussion, and 40 minutes of lab.

Recent site activity