- Bruce Eckel, Thinking in
Java (2nd Edition), Prentice Hall, 2000.
A complete copy of the book can be downloaded for free.
- Doug Lea, Concurrent Programming in Java (2nd Edition), Addison
The following are only examples. You can find the information you need in other places,
including the World Wide Web.
- K. Arnold, J. Gosling and D. Holmes, The Java Programming Language
(3rd Edition), Addison Wesley, 2000.
- D. Flanagan, Java in a Nutshell (3rd Edition), O'Reilly, 1999.
Java Web sources
Tentative Grading Plan
Your grade will be determined as follows:
- The final exam will be comprehensive.
- There will be no makeup mid-terms; students with valid written medical
excuses will have their other mid-term exam weighted appropriately to make up the
difference. Students who miss exams without a written medical excuse receive a grade of
- Students who don't
come into class understanding basic object oriented programming
and C++ as taught in lower-level CMSC courses will face considerable
- This course has difficult programming projects that
require a substantial time commitment
and a deep understanding of object-oriented programming and Java.
There is no way you can complete a programming project if you start
the weekend before it is due.
The professor and the TA will give you substantial help on your programming
assignments during office hours. You are encouraged to make use
of office hours for assistance.
- Programming projects will be graded based on correctness. A memory leak
is incorrect behavior and you will lose points. A program that you spent
a lot of time on and "almost works", but doesn't in fact work on any of the
test cases, won't get you any points.
- Projects should be submitted by 6:00 pm on the day they are due.
Late projects will be accepted until 6:00 am the following day, with a 20%
penalty on the grade.
- The instructor reserves the right to fail, regardless of overall numeric score,
students who do not submit on-time a good faith attempt to complete all programming assignments.
- All submissions of assignments will be via an online
program, which will be described in class. Posted deadlines for program submission are
standard Unix time of submission is used.
I recommend submitting early and often; only the last submitted version
of your program will be remembered.
- You may use any computing equipment you wish (such as your home computer)
to develop your programs. However, this is "at your own risk". Your programming
assignments must be electronically submitted from the account provided to you for this
class, and will be graded based on how they run on standard Unix machines. If you make use
of a language extension supported on your machine but not under Unix, or if your
programming environment doesn't support standard language features supported under Unix,
you will run into problems. No alterations to conditions of the assignment will be made to
accommodate peculiarities of your other computing resources.
Intellectual Integrity, Academic Honesty, and Cheating
- The college policy on academic dishonesty is strictly followed.
All graded materials (whether exams or programming assignments) must be strictly
- We expect you to follow all OIT guidelines for responsible machine
- Dr. Sussman is the information owner for all OIT accounts in this class, and all files in those accounts may be inspected by him at any
- Allowing another student to examine a listing of your program or
examining the listing of another student's program, for any reason, is strictly
- You may discuss only the following with other students:
The program statement (e.g., What size inputs did Sussman say we had to
Syntax errors and features of programming languages (e.g., How do I declare a
file?' or Do I need to terminate the last line in a
function with a
- Logging onto another student's account, for any reason, is cheating.
- Discussion of solutions to a programming assignment must be limited to a
discussion of what was discussed in class, in handouts or in the book. You may not
otherwise discuss algorithms to be used to solve programming assignments (e.g., you should
not ask or answer Should I use linked lists to store the input lines?) except
to discuss what was said in class about the issue.
- Attempting to falsely represent the correctness of your program, or to
delay other members of the class from completing a programming assignment, is cheating.
- The standard penalty for any cheating is to receive a grade of
XF in the course. This grade denotes failure due to academic dishonesty, and your
transcript will be so annotated.
- You are discouraged, in the strongest possible terms, from making a habit
of getting together with another student while you work on a programming project with the
idea that you will limit yourselves to discussion of problems such as syntax errors only.
There are too many temptations, and if by chance your programs wind up being very similar,
you will find it difficult to make a convincing argument that you limited yourselves to
allowable discussions of the project.
- Automatic tools may be used to compare your solution to
that of every other current or past student in this class, so it will be very
difficult to hide any collaboration.
The risk of getting caught is too high, and the standard penalty
is way too high (grade of XF). In Fall 1997, Bill Pugh caught 14 students who
thought they could hide their collaboration
in CMSC 430.