|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
General Information |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Course Home Page |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Is CS5 for you? |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Absolutely! CS5 is intended as an introduction to programming and computer science that uses Java language. It does not assume any knowledge of programming. It is part of the Harvey Mudd core curriculum, though students with a programming background and at least some knowledge of Java can pass out of CS5 by taking a placement exam at the start of the fall semester and writing a couple of example programs. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Textbooks |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
There are no required texts for the course. The primary source of information about the programming language Java and the fundamentals of programming will be the on-line reference and text linked chapter-by-chapter below. This book is David Eck's copylefted java notes from Hobart and William Smith Colleges. If you know programming and are interested in learning or brushing up on java, Sun's Java Tutorial is the definitive place for information. There are certainly many printed books, too, about Java and learning the language. The best one (as far as I'm concerned) is Head First Java by Bert Bates and Kathy Sierra. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Date / Time / Place |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
CS5 is a lecture and laboratory course; the lecture portion is held in HMC's Galileo Pryne, and the hands-on portion is held in the academic computing labs (Parsons 146). There are four sections:
There is an optional "recitation" session meeting on Fridays at 8:00 am in Galileo Macalister. This meeting offers a centralized time and place for students to ask questions about anything from course concepts to the week's homework problems. I encourage you also to take advantage of formal (and informal) office hours to discuss the class and homework.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
There will be tutors/graders ("grutors") available for assistance with CS 5 assignments and concepts in Parsons 146 (the PC lab on the Academic side of campus) and the Linde Lab, as schedules permit. |
Your grade in the course will be based on a combination of your homework, quiz, and exam performance. From there, the following chart maps points to grades. Keep in mind that this is for reference only. If you base your efforts on understanding rather than point acquisition, the points will follow.
Students who take the course pass/fail receive a high pass if their grade falls in the A range and a pass if their grade falls in the A- to D- range. Also, students with an A average do not need to take the course exams! For those students grades are computed as if the exam points simply do not exist. Note that the actual number of points in the class will not be exactly 1000 (as the right-hand chart would suggest) -- it's meant only as a rough guide.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
There will be weekly homework assignments, due at the following times:
11:59 pm Sunday evening for Monday's and Tuesday's sections.
11:59 Monday evening for Wednesday's and Thursday's sections.
These assignments are intended to exercise and
solidify your understanding of the week's material, review
older material, and look ahead to new topics. They are the
most important part of the course.
Because the assignments are timestamped automatically, it is important to get them in on time. (There is a little bit of leeway so that something submitted at 12:05 isn't counted late, but we don't mention the exact amount of wiggle room to avoid pushing the deadline further into the night.) Allow for contingencies such as the problem being harder than you thought, no one being available for help when you need it, the compiler or computer suffering from brain-damage, or you or your machine crashing at inopportune times... . We will make every effort to have a tutor will be available on Sunday and Monday evenings, but we can't make a 100% guarantee. (See the tutoring hours section, above.) Assignments will be graded out of 50 points; 40 of those points are for the correctness of the program(s) submitted. A program that does not compile, for example, receives 0 correctness points. 10 points are for program style -- two points for each of the following items:
Remember, you can always ask about things before you submit your actual product. There is no reason to lose points on most of the above. You also lose no points or esteem for asking. Each assignment will also have extra-credit questions worth up to 20% of its overall score. These questions will introduce other material or particularly challenging applications; extra credit is also useful for getting out of exams -- see below. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Submitting |
Submit your assignments using the Homework Submission page which can also be reached from the quick link on the course home page. You may submit your solution ahead of the due date if you like. If you would like to have your assignment graded ahead of time, you'll need to email me (dodds@cs.hmc.edu) to let me know! Your grade, along with the grader's comments will be automatically e-mailed to you once the assignment is graded. If you realize you have made a mistake in an assignment that has not yet been graded, and the due date/time has not passed, you may go ahead and submit a new solution; it will replace the previous submission. Once the homework solutions are posted, no further submissions can be accepted for credit. Please keep in mind that homework assignments are being graded by student grader/tutors. While we try to get all the graders on the same wavelength before they grade an assignment, perfect consistency is impossible. If you do feel you have been graded unfairly, or just don't understand a grader's comments, or you want to chat about anything, feel free to email me (dodds@cs.hmc.edu) or to stop by Olin 1265.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Resubmits |
This is allowed and handled on a case-by-case basis, so if you would like to consider resubmitting, contact me by email or drop by. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The course will have a total of three exams. Two are hour-length, take-home midterms given during the semester. The third is the final exam. Exams are to be taken closed-book -- any necessary reference materials will be distributed with the exam. Students in CS5 must take each exam with one exception: you may opt out of midterm exams if you have an A average for the course at the time of the exam. In that case, you are exempt from taking the exam. Your grade will be computed as if the exam were never given, so that it neither helps nor hurts your grade. Also, grade offers will be made before the final exam.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
About five or six years ago, when the computer science department first proposed running core CS as a primarily lab-based course, some students said to us: What will you do to keep a student (like me) with bad habits from blowing off the material and class and, as a result, falling hopelessly behind and becoming miserable? (As Dave Barry would say, we are not making this up!) To help avoid this, attendance in lab sessions is mandatory (except as described below under "Getting Ahead"). You are allowed one unexcused absence; with each additional absence there is an accompanying deduction of 100 points from your final grade. If you know you will be out for some unavoidable reason, simply let me know. Although I certainly encourage attendance at the lectures and, if you feel uncomfortable about the week's material or would like additional help with the assignments, at the Friday morning recitation sections, those meetings are optional. However, keep in mind that the week's homework is the primary topic for both lecture and recitation -- the time spent there will more than be made up when working on the week's problems.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Honor Code Standard |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
In this course we focus on individual learning rather than group efforts, and thus observe the following version of the Honor Code: You may discuss an assignment with other students. You may not share written work of any kind, inside or outside the course. Clarification: We consider computer files, fragments of files, and printed output to be written work. In developing code for a programming assignment, you can discuss ideas with others. 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 explicitly provided by one of the professors or grader/tutors. Do not share your code with others. Definitely forbidden is any form of collaboration wherein two or more students split up an assignment, then 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 us before continuing.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Getting Help |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
The comments about the honor code notwithstanding, it is important that you try to overcome any inhibitions that you may have and actively seek out help when you are having trouble in the course. Ask questions in the lecture, recitation, and/or the lab about things in the notes you don't understand. Come to me or the tutors with more questions. Don't be afraid to return again and again if something doesn't make sense. Too many times a student will bang his or her head against a wall for hours trying to figure out why a program isn't working, when a few minutes with the professor or another student is enough to make it clear. While fellow students are a good source of help, do keep in mind two caveats: you must be careful not to overstep the bounds of acceptable collaboration, and you should realize that CS5 changes every year, so that there will be some differences in what you're facing from what CS5 alums remember.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Getting Ahead |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
CS5 has been structured so that you may work ahead of the prescribed pace. Many students take the class with significant programming background (perhaps in a language other than Java). For such students (or anyone else), I encourage you to work as quickly as you'd like. The benefits of working ahead come in two forms:
In order to support your efforts in working ahead, you need to get any early-submission assignments returned to you promptly! Please email me (dodds@cs.hmc.edu) if you are submitting ahead, so I can get your work back to you... otherwise, I'll assume you're working on the assignments week-by-week.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A Note About the Online Text |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
The course home page and the online text make use of Java -- a browser supporting Java is nice, though not mandatory. The chapters do render differently under various versions of Netscape and Internet Explorer (and Mozilla, Safari, Lynx, etc.). For some people, it is easier to absorb material from a printed page -- so, while some features of the online text are only usable on screen, for your first pass through a chapter, you may want to consider printing it out. Of course, in lab or while working on homework, it is handy to have the text and lab assignments there on screen for quick access. Below are links to the course assignments, the online text, and class slides. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
The course in a nutshell:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
This page was built with vim on a unix box. |