Principles of Computer Science
Syllabus, Spring 2008
CS 60, Principles of Computer Science, provides the student with a broad overview of computer science, at the same time providing sufficient depth in a number of key conceptual areas that are intended to serve both majors and non-majors well. These concepts include:
All of these concepts are important in both computer science and engineering. Programming in a variety of languages is used as a vehicle to demonstrate concepts. Language choice is not made primarily for vocational reasons (what will help in industry...) as much as for emphasizing certain conceptual points that are language-independent. At the end of CS60, you'll be comfortable programming in any language.
The choice of material in CS 60 is based on a combination of utility and accessibility. Utility is desired because this course will serve as both a second, and possibly terminal, course for non-majors, as well as a launching point for more serious study in the major. This course is the gateway to kernel courses in the CS major, including:
Class Times and Place:
Course Homepage: http://www.cs.hmc.edu/courses/2008/spring/cs60
Numero Uno: Bob Keller
Office: Olin 1253
Phone: 909-621-8483
E-mail:
keller AT cs DOT hmc DOT edu
Office Hours: MTW, 4:15-5:30, and as available at other times (email me)
Numero zak: Zach Dodds
Office: Olin 1255
Phone: 909-607-1813
E-mail:
dodds AT cs DOT hmc DOT edu
Office Hours: anytime I'm not hiding...! and I'll be in the CS lab or the robotics room on Fridays, 3-4:30 (come by:-)
Graders/Tutors (aka "Grutors") There are several grutors for this course whose mission in life (at least some of the time) is to help convey the wonder of CS 60! They will be holding regular hours in the Beckman 102 CS labs (the link below has specific hours). They will also be grading your assignments (but not exams). A complete schedule of tutoring hours can be found at http://www.cs.hmc.edu/courses/2008/spring/tutorhours.html
Help via E-mail: You can send e-mail to cs60help AT cs DOT hmc DOT edu with short questions related to homework. The grutors and instructors will be checking this e-mail address frequently, so it is a fast way to get your questions answered. We ask that you use cs60help rather than sending e-mail to profs or grutors directly. Of course, if you have a question for one of us or one of the grutors in particular, please do email the individual. But, this cs60help email will help us make sure that we are answering questions promptly. It also ensures that the entire course staff sees the question and subsequent answer, allowing us to be consistent about the way we answer questions.
For more extensive help, please see Bob, Zach, or a grutor in person. For help with the computing system, please send e-mail to help AT cs DOT hmc DOT edu, or seek out one of the many Mudders who know the system well!
You have three late days or "CS 60 Euros" that you may use at your discretion -- you don't need to tell us in advance. A late day allows you to turn in an assignment 24 hours late with no penalty. You may not use two late days on the same assignment. Late homeworks will not be accepted once these late days have been used. In cases of illness or emergency, you should contact Dean Cardenas to arrange an extension and have her contact one of us.
In addition to weekly assignments, there will be one midterm exam and a comprehensive final exam. See the exam schedule page for up-to-date details.
The weekly assignments will involve programming and, especially later in the course, some "paper and pencil" problems.
We will use guidelines in grading the programming assignments which will be approximately as follows:
Your final grade will be a weighted average of your grades on each course component. Components will be weighted as follows:
You are welcome and encouraged to discuss approaches to solving homework problems. You may not share any written materials of any kind. In particular, you may not send or receive code that is related to this course by e-mail, on the web, from another person's file or printout, or in any other form.
You may wonder if it is permitted to help a classmate debug a program and, in the process, look at their code. This is permitted, assuming that it is done with the intent of aiding your classmate and not with intent of gleaning code that might be used in your own program. Use your good judgement here. If you're not sure about what's appropriate, please talk to one of the professors.
All conduct in this course should be conducted in accordance with the Harvey Mudd Honor Code.