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).
There are no required texts for the course; all required knowledge is provided in lecture. But outside reading is available and encouraged:
There are four sections of CS5 offered weekly:
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.
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-100 | A |
| 92-94.9 | A- |
| 88-91.9 | B+ |
| 84-87.9 | B |
| 80-83.9 | B- |
| 77-79.9 | C+ |
| 73-76.9 | C |
| 70-72.9 | C- |
| 65-69.9 | D+ |
| 60-64.9 | D |
| < less than 60/td> | F |
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:
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.
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.
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.
Three exams are given:
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.
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.
This course provides both individual and group (pair programming) learning. For individual problems, the following honor code applies:
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.
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:
I'm also happy to answer questions --- just drop by 1241 Olin!
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: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.