``Software design'' is a course in the design, implementation, testing, and maintenance of software. The course includes a substantial amount of program development and presupposes some previous experience in small-scale programming. Computer Science 152 or 153 is the normal prerequisite.
The instructor for this course is John David Stone. My office is Science 2418; my e-address is stone@cs.grinnell.edu; my telephone extension is 3181; my mail stop is Y-3.
This semester, my regular office hours are from 9:30 to 11 a.m. on Mondays, from 1:30 to 3 p.m. on Wednesdays, from 3 to 5 p.m. on Thursdays, and from 9:30 to 11 a.m. on Fridays.
There are four required textbooks for the course, all of them available at the College Book Store:
We'll be using the Java programming language for software development. Follow this link for a list of recommended books about Java.
Some of you have asked how to create your own packages in Java. The handout ``Making packages'' guides you through the mechanics of making and using them on MathLAN.
Final examination (with answers)
Green, Roedy. ``How to write unmaintainable code,'' November 19, 1999.
Irlam, Gordon. ``Software patents,'' November 11, 1998.
Isys Information Architects. ``Interface Hall of Shame,'' September 7, 1999.
Kramer, Doug. ``How to write doc comments for Javadoc,'' undated.
Laramée, François Dominic. ``The Game Industry: Economics of Failure,'' August 12, 1999.
Lea, Doug, ``Implementing basic design patterns in Java,'' March 2, 1998.
Leveson, Nancy ``Medical devices: the Therac-25,'' from Safeware: System safety and computers (Addison-Wesley, 1995).
Miller, Barton P., et al. ``Fuzz revisited: a re-examination of the reliability of Unix utilities and services,'' University of Wisconsin Madison Computer Sciences Technical Report CS-TR-95-1268, April, 1995.
Paranj, Bela, ``Java tip 68: Learn how to implement the Command pattern in Java: Add flexibility and extensibility to your programs with this object-oriented equivalent of the callback,'' Java world, July 30, 1999.
Patrizio, Andy. ``Sierra Shuffle Rocks Gamers,'' September 22, 1999.
Sun Microsystems, ``Java(TM) platform docutmentation,'' undated.
Sun Microsystems. ``java.sun.com -- The source for Java(TM) technology,'' undated.
Sun Microsystems, ``The Java tutorial,'' undated.
Talin, ``Slashdot: Feature: Why Being a Computer Game Designer Sucks,'' August 20, 1999. (The document also includes replies -- some skeptical, some sympathetic.)
Thompson, Clive, ``Bomb squad,'' Shift, volume 7, number 6 (undated).
Turner, Daniel Drew, ``A worm in the Apple?'' Salon, September 30, 1999.
This document is available on the World Wide Web as
http://www.cs.grinnell.edu/~stone/courses/software-design/
created July 28, 1999
last revised January 5, 2000