|This course is 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. Best of all, 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 pages. No matter what your major or vocation, knowing how to create software is an important skill and can get you a job. Want to set yourself up? Take the CS 110-112 sequence.
- Beginners: No prior programming experience required or expected.
- Computer Science majors or potential ones: This is the first course for the computer science major.
- Other Majors: Many students who are not computer science majors take this class and often the next one in the sequence (CS112). This class covers the Core Math B requirement. Note that CS also offers another course that covers this requirement, CS 107, which is less technical and slower paced.
Harney Science Center, rm. 235
Professor: David Wolber
Office: Harney 529
Office Hours: MW 3:30-4:30 or by appointment
TA: Evren Bingol
Text: How To Think Like a Computer Scientist (on-line)
In-Class Participation, Research Assignments 15%
Software Development Assignments
There will be a software development assignment due every two to three weeks. You will have time in class to work on these assignments, but you will also need to put in ample time outside of class. These assignments constitute nearly one-half 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 by working hard.
Research AssignmentsThroughout 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.
post entries on the 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.
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
You'll be graded on a 10 point scale 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.
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.
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
Part IHow Computers Work, starting with an electric current
Static web pages with wiki and HTML/CSS
Basic Python: variables, conditionals, lists, iteration, and functions
Part IIPython classes and complex programs.
Architecture of the the Internet, Search, SEO
Dynamic web pages with Google App Engine
Templates, Model-View controller, Persistence
Part IIIWeb 2.0 and Technology in Society
Python: Use of Libraries, APIs
Most days we'll have an in-class lab. These labs typically involve
programming or design. They're typically graded on a done/not done
scale. If you're focused, you can probably finish them during class. If
not, you'll ned to finish them outside of class (your professor has office hours after class on Monday and Wednesday).
Attendance and Participation Attendance
is mandatory; if you miss a class without a valid excuse
(doctor's note for illness, USF-sponsored event, etc) 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 without a prior exception (e.g. for a medical excuse).