Instructor: Elisabeth
Nguyen
Email: enguyen6@gmu.edu
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
Course
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.
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.
Course
Materials
Assignments
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.
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
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.
Final
Exam
A
final exam is held during the University-scheduled exam period.
Honor
System:
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.
Grading
Grades
are computed as: Assignments (30%), Quizzes (30%), Final
(40%).
Other
Resources
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.