Instructor |
James Baldo Jr., Ph.D. |
Office Hours |
Wednesdays before and after class |
Office |
|
E-mail |
jbaldo@gmu.edu |
Class Hours |
Wednesday 7:20 PM to 10:00 PM (Loudoun Campus)
L1 232 |
|
|
·
Barbara Liskov with John Guttag. Program
Development in Java . Addison Wesley, 2001, ISBN 0-201-65768-6. Required.
·
Joshua Bloch. Effective Java. Second Edition.
Addison Wesley, 2008, ISBN 0-321-35668-3. Required. Note that the Second
edition is newly released (May 2008); hence used copies are probably the wrong
edition.
·
Some assignments require programming
techniques not covered in the two required texts. I will provide pointers to
online material at the appropriate time. Required.
· Any Java reference, either text or online. Recommended. Online Java documentation is available from Sun.
To give the students a solid understanding of modern software
construction. To prepare students to construct sequential and concurrent
programs. To encourage the construction of software systems of high quality. To
provide an in-depth study of software construction in a modern language
including control structuring and packaging. To address concepts such as
information hiding, data abstraction, and object-based and object-oriented
software construction are discussed and illustrated.
This course is part of the core of the SWE program. This section of 619
uses Java.
Homework is due before class on
the due date. Paper and pencil homework should be brought directly to class.
Assignments that are Java programs should be submitted to James Baldo Jr. at jbaldo@gmu.edu.
Important: For programs, you must submit a paper copy as well as the
electronic version. This is because of the way that the University
runs it printing services. Thank you for your support.
Details about specific requirements for each assignment are given with
each assignment. As appropriate, I will present sample solutions in class or on
the web. From time to time, I may post an exceptional student solution as the
sample.
Early homework assignments focus on theoretical aspects from Liskov.
Later homework assignments reinforce specific programming techniques, as well
as the design points made in Bloch. Each homework assignment is designed to be
fairly short, and homework is due on a weekly basis.
Each class, except for the first class, begins with a short quiz. Each
quiz covers material from the previous session(s).
The goal of the quizzes is to keep students abreast of the material
covered in class. Because of the quizzes, there is no midterm exam.
In recognition of the fact that many students have occasional but
unavoidable commitments that preclude attendance at every class, I drop each
student's three lowest scores prior to final grade computations. I select the combination
of homework and quiz scores most advantageous to the student. For example, I
may drop drop 2 quiz scores and 1 homework, or 3 homeworks, or any other
combination totaling 3.
In view of this policy, late homework is not accepted and there are no make-up quizzes. In fairness to other students, please do not ask for an exception.
A final exam is held during the University-scheduled exam period. On the
final, a student must demonstrate reasonable competence with the course
material to receive a satisfactory grade (i.e. B or better) in the class.
Students are reminded that the honor system governs all work turned in
for credit. Each assignment must be worked on individually. A submission
carries with it an implicit statement that the submission is your own work. You
may discuss the requirements and syntactical issues, but not solutions or
designs. Collaboration is not allowed on the quizzes or on the final. I will
refer violators to the GMU Honor Committee according to the procedures given in
the GMU Course Catalog. Further details available at the CS
Department's Honor Code page.
Grades are computed as: Assignments (33%), Quizzes (33%), Final (34%).
Of course, java.sun.com is a good
place to go for Java help.
As the semester progresses, I post notices about changes to the course updates page.