Jason Healy
Memorial Hall, First Floor, right by the front door
Phone Extension 4434
Feel free to stop by my office in Memorial Hall to ask questions, or just to say hi. However, if you know you need a large block of time for extra help, please schedule it ahead of time so I can keep my schedule free for you.
This course meets four times per week (two 45-minute periods and two 70-minute periods). Class time consists of lectures and laboratory assignments. Homework consists of readings, short exercises, and completing unfinished lab work. As this is an honors-level course, students should expect to spend significant time outside of class working on their assignments.
This course has the following primary objectives:
Our primary textbook for this course is Java: An Eventful Approach, by Bruce, Danyluk, and Murtagh. The text is available from the school bookstore.
Unless I warn you ahead of time, you do not need to bring your reading materials with you to class.
As one might imagine, you'll need access to a computer for this course. However, you don't need your computer in every class (unless you want to take notes on it). The homework assignments page states which classes you need your computer for. In general, all classes marked as Lab Section require you to bring your computer.
Mac OS X 10.5 (Leopard) includes the version Java that we use for this course. All students must have Mac OS X 10.5 installed on their laptops in order to take this course. I shall provide other software required for class (such as compilers, build tools, and editors) free of charge to the students.
Computer Science requires two major efforts of a student. First, they must learn how to break problems down into a structured solution that can be turned into a program. Second, they must learn the syntax and operation of a programming language to code their solution in. Note that the ability to solve problems is at least as important (if not more important) than the ability to write functioning code; students should be prepared to spend a significant amount of their time planning their solutions before coding.
In my experience, learning by doing provides the best route for absorbing the material. Thus, the student should feel free to make mistakes, ask questions, and try untested methods. I cannot overstate the value of asking questions early and often; Computer Science poses many difficulties, and these should be addressed as early on in class as possible.
Given my belief that learning by doing is best, the grades in this course are based heavily on programming assignments. A breakdown of how grades are computed follows, along with a description of each grade component:
I grade assignments on a point scale, and convert raw point scores into letter grades during marking periods. If you need an estimate of your grade during the term, visit me in my office.
I evaluate programs based on the following primary criteria:
Late assignments receive a one-point penalty for each day past their due date. Unless otherwise noted, assignments are due by the beginning of class (not during or after class). Students should always turn in late or incorrect programs, as a zero grade can cause serious damage to the term grade.
Extensions may be granted under certain circumstances. However, be warned that extensions usually require some form of "trade" to be made with the instructor (for example, detention in exchange for extra time). Extensions are more likely if there is evidence that the student has been working diligently and has an honest need for more time; waiting until the last minute to ask for an extension is not recommended.
Finally, some assignments may have a small amount of extra credit available by implementing extra functionality. However, the student should ensure that their program meets all of the regular requirements before attempting extra credit, or else the points lost will outweigh those gained from extra credit.
Unless otherwise noted, all programming assignments should be completed without the help of other students, adults, or resources (such as Internet sites, tutors, or source code). While being stuck on a problem can cause frustration, working through these difficulties remains the best way to truly learn the material. Turning in work that is not your own is not only dishonest, it prevents you from developing a full understanding of the material. Please see me if you need any extra help, or if you have any questions about these rules.
In general, my motto is "help in English is OK; help in Java is not". This means that you may receive hints from a classmate about how to perform a general task, but you should not ever copy pure source code from another student.