Syllabus and general information for MCS-270: Object-Oriented Software Development (Spring 2012)


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 textbook. However, we'll also spend some time on implementation tools and technologies.

Office hours

I will be available in my office (OHS 306) from 9:00-9:50 on Mondays, Tuesdays, Thursdays, and Fridays, as well as by appointment. Or try your luck: just stop by and see whether my door is open. You may send me electronic mail at 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


The textbook for this course is Applying UML and Patterns, Third Edition by Craig Larman.


There will be three take-home quizzes as shown in the schedule. There will be no final exam at the end of the semester.

In-class exercises and labs

There are several days shown in the schedule as set aside for "exercises" on analysis topics. These are experiential activities that are not primarily computer-based and that will culminate, after additional out-of-class work, in graded documents. On these "exercise" days, we will spread out across rooms 320, 326, and 329.

Other days are scheduled for "labs" on implementation topics. These are experiential activities that center around use of a computer. As with the exercises, additional out-of-class work will likely be necessary and you will ultimately submit results for grading. On these "lab" days, we will meet in room 326.

Because the in-class exercises and labs are experiential and team-based, I expect attendance on those days. If something makes it impossible for you to attend, please contact me so that I can figure out the consequences for your teammates and you.

Project deliverables

The schedule does not show any due dates for documents, code, or other artifacts that you will produce in the second half of the semester as you work on your project. Nor do I show any information about how this portion of your course grade will be broken down. This is because one of the responsibilities your project team will have is to establish your own schedule for deliverables. Likewise, your will reach an agreement with me regarding how the project portion of your grade will be apportioned among the deliverables, including the question of whether individual team members are accountable for specific items.


You are expected to be familiar with the college academic honesty honor code policy, and to comply with that policy. If you have any questions about it, please ask.

Late assignments

All 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 late or fraction thereof. However, no late assignments will be accepted after graded assignments are handed back or solutions are distributed.

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.

Grade changes

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.


The course components will contribute to your grade in the following proportion:

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 assignments and thus can dramatically improve your grade. You are responsible for all course material, whether or not you are present when it was covered or distributed.


Gustavus Adolphus College is committed to ensuring the full participation of all students in its programs. If you have a documented disability (or you think you may have a disability of any nature) and, as a result, need reasonable academic accommodation to participate in class, take tests or benefit from the College's services, then you should speak with the Disability Services Coordinator for a confidential discussion of your needs and appropriate plans. Course requirements cannot be waived, but reasonable accommodations may be provided based on disability documentation and course outcomes. Accommodations cannot be made retroactively; therefore, to maximize your academic success at Gustavus, please contact Disability Services as early as possible. Disability Services ( is located in the Advising and Counseling Center.

Support for English Language Learners (ELL) and multilingual students is available via the College's ELL Support staff person, Andrew Grace ( or x7395). He can meet individually with students to consult about academic tasks and to help students seek other means of support. In addition, ELL and multilingual students can seek help from peer tutors in the Writing Center. Please let me know if there is any accommodation in the course that would enable you to more fully show your abilities.


This is my best guess as to the rate at which we will cover material. However, don't be shocked if I have to pass out one or more revised syllabi.

2/9Guest: Matt Klaber
2/106.10-6.23Use cases

2/13Use-case exercise
2/147Other requirements
2/168-9Domain modeling
2/17No classuse-case exercise

2/20Domain modeling exercisequiz 1
2/2110-12Analysis of operations
2/2313-14Logical architecture
2/2415Interaction diagrams (instead viewed Bret Victor's "Inventing on Principle")

2/2716Class diagramsdomain modeling exercise
2/2817Responsibility-driven design
3/1No classquiz 2
3/2No class

3/518-20More on design
3/6Guest: Matt Lindner
3/821Version control and TDD lab
3/9Project topics

3/12Guest: Jonathan Wentz (in OHS 329)
3/13Version control and TDD lab
3/15Version control and TDD lab
3/16Version control and TDD lab

3/19User-interface labVC/TDD lab
3/20User-interface lab
3/22Guest: Kate Bolsethquiz 3
3/23User-interface lab

3/26Persistence labUI lab
3/27Persistence lab
3/29Team meeting
3/3025-26More patterns

4/9No class
4/10Team meetingpersistence lab
4/12Team meeting
4/13Team meeting

4/16Team meeting
4/17Team meeting
4/19Team meeting
4/20Team meeting

4/23Team meeting
4/24Team meeting
4/26Team meeting
4/27Team meeting

4/30Team meeting
5/1Team meeting
5/3Team meeting
5/4Team meeting

5/7Team meeting
5/8Team meeting
5/10Team meeting
5/11Team meeting

5/14Team meeting
5/15Team meeting

Course web site:
Instructor: Max Hailperin <>