Instructor: Elisabeth Nguyen
Class Hours: Tuesday 7:20 to 10:00, Nguyen Engineering Building, 4705
Prerequisite: SWE Foundation Courses or equivalent
Office Hours: By appointment or send email
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. In-depth study of software construction in a modern language including control structuring and packaging. 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.
Please bring a paper copy of all homework assignments to class. In addition, submit assignments that are Java programs electronically via Blackboard.
Note: Homework is due exactly at the start of class on the due date. No late submissions accepted.
Details about specific requirements for each assignment are given with each assignment. I will post either my solution, or a student solution.
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.
Missed Homework and Quizzes
Note: 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 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.
Students are reminded that the honor system governs all work turned in for credit. The work that you do must be your own: any submission must be written by you individually. You may collaborate with other students to discuss the assigned homework, and other students may peer review your code, but other students may not test your code. If you collaborate with another student, you must include a short note at the top of the submission stating whom you collaborated with and the nature of the collaboration. 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 (30%), Quizzes (30%), Final (40%).
You may use whatever development environment you like; one option is Eclipse, which is widely used and free. Class examples were built in Eclipse Juno using JavaSE 1.7. You will need JUnit, which comes packaged with Eclipse.