Computer Science 60
Principles of Computer Science
Syllabus, Fall 2007

Is This Course for You?

YES!

The official prerequisite for this course is CS 5 or Pomona's CS 51.
If you have not taken those, but you feel that this is the right course for you, let's talk!

Overall Course Aims and Objectives

Course Mission Statement

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 enhancing vocational readiness as much as for emphasizing certain conceptual points that are language-independent.

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:

at least one of which is required for many advanced courses and electives in the major.

Logistics

Class Times and Place:

Course Homepage: http://www.cs.hmc.edu/courses/2007/fall/cs60

Instructor: Christine Alvarado
Office: Olin 1241
Phone: 909-607-0443
E-mail: alvarado@cs.hmc.edu
Office Hours:  Monday 4-5:30pm and by appointment
This year I am trying something new with my office hours.  I have found that in the past no one can ever make it to my scheduled office hours.  So, in effort to balance regularity with convenience, I will always be available on Monday afternoons from 4-5:30, but if you want to meet with me outside of those times, I am happy to make an appointment.  My schedule is posted on my website, and any of the times I am not marked as busy are likely to be good times to meet, so just send me an email to set something up (or try dropping by, but I have a tendency to be out unexpectedly if I don't have appointments scheduled).


Graders/Tutors (aka "Grutors") There are several excellent grutors for this course! They will be holding regular hours in the Beckman 102 CS labs (see link below for 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/2007/fall/tutorhours.html

Help via E-mail: You can send e-mail to cs60help@cs.hmc.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 me or the grutors directly. This 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 me or a grutor in person. For help with the computing system, please send e-mail to help@cs.hmc.edu, or seek out one of the many Mudders who know the system well!

Attendance

I expect you to attend all class sessions.  If you are ill or cannot attend for a valid reason, please let me know in advance.  If you have a valid excuse for missing class, I will help you make up the material you miss.  However, if you miss class without getting permission in advance, you will be on your own to make up the missed material.  (I.e., please don't expect me to repeat a lecture in office hours just because you had too much work to make it to class).

Optional Text

Computer Science: Abstraction to Implementation by Robert M. Keller. This is an optional textbook for the course. This book is available for purchase from Ms. Joyce Greene in the main CS office in Olin 1258. The book is sold at the cost of production with no profit to any party at HMC. Old copies of the text are OK, too, and it is also available online from the link above.

Assignments and Exams

There will be an assignment every week (with exceptions for breaks). Unless stated otherwise, homework is due each Monday at 11:59pm. Since we use an automated procedure to determine submission time, if you submit even slightly after midnight, it will be recorded as being submitted the next day.  You will submit assignments through your dropbox on your account on Sakai.  If you do not have an account or have trouble finding the CS60 page, please contact me ASAP.

You have three late days that you may use at your discretion. 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 me.

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.

Grading

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:

We will try to give you very clear feedback indicating what could be done to improve the program. If the feedback isn't entirely clear to you, please talk to me or one of the grutors.

Your final grade will be a weighted average of your grades on each course component. Components will be weighted as follows:

Collaboration Policy

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 in any way 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.