Syllabus and general information for MC39: Object-Oriented
Software Development (Spring 1999)
The first half of this class (until Spring break) will be a crash
course in object-oriented software development. For the second half
(after Spring break), you will work in teams to develop custom
software for clients. In the first half, our main focus will be on
object-oriented analysis and design, which will be covered using the
primary text. I'll be adding some additional analysis and design
material, particularly regarding invariants. Also, I'll be slipping
in some material on implementation technologies commonly used in
modern "client/server" or "three tier" systems. Specifically, we'll
look at relational databases, accessed using SQL, which can be done in
Java using JDBC, and at communication with remote objects, which we'll
do in Java using RMI.
I will be available in my office (OHS 303)
Mondays 10:30-11:20, Tuesdays 11:30-12:20, Wednesdays 2:30-3:20, and
March 24th, Thursday, March 25th, and Thursday, April 22nd)
and by appointment. You
may send me electronic mail at email@example.com or call me at
extension 7466. I'll try to put any updates to my office
hours on my web page, so check
there if in doubt.
World Wide Web
All course materials will be available through my World Wide Web page. The URL for this
course is http://www.gustavus.edu/~max/courses/S1999/MC39/.
After this syllabus I will give hardcopy handouts only to those
students who want them.
Our text will be Applying UML and Patterns: An Introduction to
Object-Oriented Analysis and Design by Craig Larman (Prentice
Hall, 1998). For those wishing to buy books tied to the programming
side of the course (rather than just relying on the web and books
owned by the department or myself), I have had the Book Mark order the
two volumes of Core Java by Hostmann and Cornell
(Prentice Hall, 1998-1999) as supplemental texts.
There will be four labs, as shown in the syllabus below. They will
all involve concrete experiential work, but not necessarily seated in
front of a computer. Each lab has a class day set aside for us to
work together, but will also require you to spend additional time out
of class. I will also add a few simple homework-like problem to the
labs so that you can check your understanding more frequently than the
tests. (These problems may sometimes have little relationship to the
lab, but to simplify paperwork they will be treated as a part of the
There are two tests, shown on the syllabus below, which are both going
to be in-class, individual work, closed book and closed notes.
Students are encouraged to discuss the course, including issues raised
by the assignments. However, the solutions to assignments
should be individual original work unless otherwise specified. If an
assignment makes you realize you don't understand the material, ask a
fellow student a question designed to improve your understanding,
not one designed to get the assignment done. To do otherwise is to
cheat yourself out of understanding, as well as to be intolerably
Any substantive contribution to your solution by another person or
taken from a publication should be properly acknowledged in writing.
Failure to do so is plagiarism and will necessitate disciplinary
The same standards regarding plagiarism apply to team projects as to
the work of individuals, except that the author is now the entire team
rather than an individual. Anything taken from a source outside the
team should be be properly cited.
One additional issue that arises from the team authorship of
project reports is that all team members must stand behind all reports
bearing their names. All team members have quality assurance
responsibility for the entire project. If there is irreconcilable
disagreement within the team it is necessary to indicate as much in
the reports; this can be in the form of a ``minority opinion'' or
``dissenting opinion'' section where appropriate.
All lab assignments are due at the beginning of class on the day
indicated. Late assignments will be penalized by one ``grade notch''
(such as A to A- or A- to B+) for each weekday (that the college is in
session) late or fraction thereof. However, no late assignments will
be accepted after graded assignments are handed back.
If you are too sick to complete an assignment on time, you
will not be penalized. Simply write ``late due to illness'' at the
top of the assignment, sign your name and hand it in. Other circumstances
will be evaluated on a case-by-case basis.
Please point out any arithmetic or clerical error I make in grading,
and I will gladly fix it. You may also request reconsideration if I
have been especially unjust.
I will provide you with a letter grade on each lab
assignment, test, and project report, in addition to the mid-term and final
grades, so that you may keep track of your performance. As a
guideline, the components will contribute in the following proportion
to the final grade:
However, I reserve the right to subjectively adjust your final grade.
Please see me if you have any question how you stand. Class
participation is not graded; however, it allows you to find and repair
the gaps in your understanding before doing the homework or exam, and
thus can dramatically improve your grade.
- 40% lab assignments (4 @ 10% each)
- 20% exams (2 @ 10% each)
- 40% project
All lab reports should be readily readable, and should not presuppose
that I already know what you are trying to say. Use full English
sentences where appropriate (namely almost everywhere) and clear
diagrams, programs, etc. Remember that your goal is to communicate
clearly, and that the appearance of these technical items plays a role
in this communication process. Be sure your assignments are always
stapled together and that your name is always on them.
Please contact me immediately if you have a learning or physical
disability requiring accommodation.
Note that after Spring break, you will meet in project teams rather
than as a full class. Therefore, this syllabus only shows the first
half of the semester. Also, it shows my best guess as to the rate at
which we will cover material. However, don't be shocked if I have to
issue one or more revised syllabi.
|2/10||Lab 1: Requirements analysis||
|2/16||Conceptual invariants||Lab 1
|2/17||Lab 2: Conceptual modeling||
|2/19||13-14||System behavior + SQL intro||
|2/22||15-17||Collaboration diagrams + more SQL/JDBC||
|2/23||18||Responsibility assignment||Lab 2
|2/24||Lab 3: Database usage||
|3/1||21||Design class diagrams + design invariants||
|3/2||22||System architecture||Lab 3
|3/5||23-24||Mapping designs to code||
|3/9||More three-tier technology||
|3/10||Lab 4: Three-tier development||
|3/12||25-28||Generalization + subclass invariants||
|3/15||29-31||Enhanced conceptual modeling||
|3/16||32-33||Enhanced behavioral modeling||
|3/22||36-37||Development process issues + QA||
|3/23||38||Frameworks and persistence||Lab 4
|4/6||Initial project team meetings||
Course web site: http://www.gustavus.edu/~max/courses/S1999/MC39/
Instructor: Max Hailperin <firstname.lastname@example.org>