Computer Science 5
Syllabus, Fall 2005


Quick Links


Is CS5 for you?

Absolutely! CS5 is an introduction to programming and computer science and uses the Java language. It does not assume any knowledge of programming and is part of the Harvey Mudd core curriculum.

Students with a programming background and at least some knowledge of Java can pass out of CS5 by writing an example program or earning a 5 on the CS AP A or AB exam. If you are a student with such background, you should seriously consider passing out of CS5 (CS60 would be a much better match for you).


Textbooks

There are no required texts for the course; all required knowledge is provided in lecture. But outside reading is available and encouraged:


Class Times and Locations

There are four sections of CS5 offered weekly:

Each section (except Wednesday!) begins with lecture and starts at 2:45 p.m. in Beckman 126 (Wednesday's begins in Parsons 2358). About half-way through lecture we move to Parsons 146 for lab, which ends at 5:30. Provided space is available, I don't mind if you swap lectures occasionally (or come to more than one per week).

Recitation is in Beckman 126 on Friday from 1:15 to 2:30. This optional meeting is dedicated to answering questions about that week's homework.

My office hours are from 2:45 to 4pm on Fridays in 1241 Olin Hall.


Grading

Focus your efforts on understanding -- points will naturally follow. Your grade in CS5 is based on cumulative homework and exam point totals. Your total percentage, given the total maximum possible, determines your letter grade. For pass/fail students, high passes are awarded to the A range; anything below a D fails; everything else is a pass.

% of Points Earned Letter Grade
95-100A
92-94.9A-
88-91.9B+
84-87.9B
80-83.9B-
77-79.9C+
73-76.9C
70-72.9C-
65-69.9D+
60-64.9D
< less than 60/td>F


Assignments

Typically, homework is assigned every week and is worth 50 points. Assignments require extensive programming and are the most important part of the course! Homework is due on:

Not only your brain but the computer must function properly :-). Allow for contingencies by starting early. And please ask questions!

Typical assignments are graded as follows: 40 for correctness and 10 for style. A program that does not compile receives 0 correctness points. Style points reflect how readable and well-documented your code is. Many assignments have extra-credit components (worth up to 20% of the overall score). These questions introduce more challenging material. Because students with sufficiently high homework scores can avoid taking exams, it is worth spending time on extra credit.


Electronic Homework Submission

Submit your assignments to the CS5 Homework Submission web page. This page allows you to submit (and retrieve) an assignment's solution from (to) anywhere, providing a central repository for all your work to date. Assignments are timestamped automatically; turn your work in on time.

Feel free to submit early and often. If you realize you have made a mistake and the due date and time has not passed you can always submit a new solution. This submission will replace your previous one but will not overwrite it (all of your submissions are saved).

Your grade, along with the grader's comments, will be automatically e-mailed to you once your assignment has been graded.


Grader Feedback

Homework assignments are graded by student grader/tutors. In fact, next year I hope you'll consider signing up for this job! I'll try my best to get all the graders on the same wavelength before grading an assignment, but perfect consistency is impossible. Besides, graders like feedback too! If you ever feel that something has been graded unfairly or want to discuss a grader's comments, come talk to me.


Exams

Three exams are given:

Exams are closed-book and closed-computer -- any necessary reference materials will be distributed with the exam.

Students must take midterms with one exception -- you may opt out of a midterm exam provided you have an A average for the course at the time of the exam. In that case, your grade will be computed as if the exam was never given (it neither helps nor hurts your grade).

Grade offers will be made before the final exam. What this means is that, should the grade you'd be assigned (excluding the final exam entirely) be acceptable to you, you can opt to take that grade instead of taking the final.


Attendance

You are expected to attend lectures and at least check-in during lab (unless you have successfully worked ahead). Recitation attendance is entirely optional.

During the first couple of weeks, your attendance throughout the entire lab period is mandatory. After things get settled and people start becoming effective on their own, you can leave lab after checking in with me if you wish, giving you the freedom to work on your code in your dorm room or wherever. During these first couple weeks, both the Macs and the PCs in Parsons will be quite full, so while one half of the class is using the Macs, the other half will be using the PCs (and vice versa).

Lab is an excellent time to make progress on your homework. Last year there were many who managed to finish significant portions of their assignment in lab.


Honor Code

This course provides both individual and group (pair programming) learning. For individual problems, the following honor code applies:

For pair programming problems, the same standard holds, except that both students working within the pair need only to submit a single program. Of course, the pair working together may collaborate completely -- however, they must stick to the "pair programming" principles as described in each such problem.

Clarification: computer files, fragments of files, and printed output are all considered written work. When developing code for a programming assignment, you can discuss ideas with others but once you have an idea, it is up to you to develop it yourself. You can get hints from others, but discussion of ideas must not involve transcription of the actual working code of others, with the exception that you may use (with attribution) any code officially provided by the course. Definitely forbidden is any form of collaboration wherein two or more students split up an assignment and transcribe each others' contributions, sometimes changing names of variables, comments, formatting, etc. If the help you get from another is significant, you should acknowledge it on your submission.

If you have any doubts about whether a form of interaction constitutes a violation of this standard, please consult with me before continuing.


Getting Help

One of the easiest ways to "hate computers" is to bang your head against a wall for too long, as opposed to stepping away and asking for some human interaction :-). Come to me, come to the tutors, talk to your classmates. Don't be afraid to return again and again if something doesn't make sense. Fellow students are a good source of help, but do not over-step the bounds of acceptable collaboration. Some of the best things I've learned along the way have been the result of what (at first glance) appeared to be a "stupid question."

Tutors/graders ("grutors") will assist with CS 5 assignments in two locations:

according to this schedule.

I'm also happy to answer questions --- just drop by 1241 Olin!


Working Ahead

Some students take the class with significant programming background (perhaps in a language other than Java). For these (and other) students, CS5 is structured so that you may work ahead of the prescribed pace.

Successfully working ahead is defined as follows: In either case, you must have submitted what you've done and received a score of at least 80% to have successfully worked ahead. If you plan on working ahead be sure to send me email as early as possible so we can work out a reasonable submission and assessment time-frame. Without such an email, you are expected in class and you are expected to turn in that week's homework.

Working ahead has two benefits. First, your mandatory attendance in lecture and lab is waived. Second, completing a homework project early might also exempt you from interim projects. For instance, if you successfully work ahead on week 5 during week 2, you won't have to do homeworks 3 or 4. Several homeworks are not negotiable: all students must complete at least assignments 5, 10, and 14.