SWE 619

Object-Oriented Software Specification and Construction

Spring 2009

Instructor

James Baldo Jr., Ph.D.

Office Hours

Wednesdays before and after class

Office

George Mason University – Loudoun Campus

E-mail

jbaldo@gmu.edu

Class Hours

Wednesday 7:20 PM to 10:00 PM (Loudoun Campus) L1 232

 

 

 

Schedule

Updates

Home Page

 

 

Text:

·         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.

Description:

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.

Assignments:

 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.

Quizzes:

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.

Missed Homework and Quizzes:

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.

Final Exam:

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.

Honor System:

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.

Grading:

Grades are computed as: Assignments (33%), Quizzes (33%), Final (34%).

Other Resources:

Of course, java.sun.com is a good place to go for Java help.

Updates:

As the semester progresses, I post notices about changes to the course updates page.