CS 110: Introduction to Computer Science
spring 2011

This course provides an introduction to the field of computer science. You will exercise the creative and logical sides of your brain like never before, applying them to the development of software. You will learn the Python programming language, web development tools, and deploy your projects in the 'cloud' using Google's App Engine. You will learn about and discuss how technology effects society, and how computer scientists can help.  Most important, you will improve your problem-solving skills in a manner which will help you in all walks of life.

Who Should Take the Course?

  • Anyone who wants to learn how to program and develop web apps. No matter what your major or vocation, knowing how to create software is an important skill and can get you a job. Set yourself up by taking the CS 110-112 sequence.
  • Beginners: No prior programming experience required or expected.
  • Computer Science majors and minors, or potential ones.
  • Other Majors: Many students who are not computer science majors take this class and often the next one in the sequence (CS112). The programming skills learned in this class can lead to getting a job and also towards a graduate degree in computer science or an interdisciplinary subject. This class also covers the Core Math B2 requirement. Note that CS also offers CS 107, which covers Math B2 and moves at a slightly slower, gentler pace than 110.

When and Where
TR 2:45-4:20
, Harney Science Center, rm. 235

Teachers
Professor: David Wolber
Office: Harney 529
email: wolber@usfca.edu
Office Hours: Tuesdays and Thursdays, 4:20-5. Wednesdays, 9:30-11:30.

TA: Conner McNamara
email: connermcnamara@gmail.com
Office Hours: Monday and Friday, 1-2pm, Harney 530/535

Important Dates
Presidents Holiday, Monday, 2/21
Midterm 1, Tuesday, March 8
Spring Break, 3/14 -- 3/18
Midterm 2, Thursday, 5/5
Programming Contest (and Final Presentations), Tuesday, 5/17 3:00 PM


Google Group
Please join the group at: http://groups.google.com/group/usf-cs-110. You can post questions, see other student questions, communicate with students, professor, TA, etc.

Textbook
David Wolber, 
Programming the Web: Introductory Programming with Python and Google's App Engine, Draft Version, Jan. 2011.This text is a draft version written by your professor. It is in Google Docs form with poor pagination and design, but it will be invaluable to you in this class. You may print it out or read it on-line.

How To Think Like a Computer Scientist (on-line, supplementary)

Grading
Portfolio cheklists, includes projects and lab assignments      50%
Midterms (2)                                                                            50%

Software Development Projects
There will be a significantly-sized software project due every two to three weeks. You will have some time in class to work on these assignments, but you'll need to spend ample time outside of class to complete them. These assignments constitute a significant part of your grade! Begin them early and visit your professor and teaching assistant regularly. Unlike a test, you can assure full credit on these projects through hard work.

Lab Assignments
Most days we will have an in-class lab. These labs typically involve programming or design. If you're focused, you can sometimes finish them during class. Generally, you'll need to spend time outside of class to complete the. A good time to work is when your professor and teaching assistant have office hours. For each assignment, it is your responsibility to document your work on your portfolio.

Portfolio
Everything you do should be put on or linked to from your portfolio. If its not on the portfolio, it doesn't exist! Your portfolio will be checked periodically during the semester. These deadlines are strict-- any lab assignments or projects submitted on the portfolio after the due date will not be given credit..

Attendance and Participation
Attendance is mandatory. The course is lecture/lab, so we do lots of work and hands-on learning in class. Missing a session will set you and everyone back. If you miss more than three sessions, you will be asked to drop the course.

Cheating and Plagiarism
Each student is to do his or her own work on the homeworks and projects. It is fine to talk with others about general approaches used to solve the assignments or simply to understand the problem statement, but each student is to develop his or her own solution; collaborative efforts are not allowed. In addition, using solutions from any other source is forbidden. In particular, using solutions (either instructors' or other students') from previous offerings of this course is not allowed. To summarize: all projects and labs are to be individual and original efforts.

If you are caught cheating or plagiarizing (e.g., collaboration, copying on exams, cutting and pasting text) I will assign you a F for the course and you will be reported to the Dean.

Late Policy
Late assignments and labs (checklists) will not be accepted. At the time of the due date, submit the work you have completed.