CSC 323, “Software design,” deals with the design, implementation, testing, documentation, and maintenance of software packages. The course includes a team software-development project, and the timetable for this project structures the schedule for the course.
The readings for the course include several chapters from the essay collection Beautiful code, edited by Andy Oram and Greg Wilson; several chapters from the software-construction handbook Code complete, by Steve McConnell; and on-line documentation for the GNU C compiler, GNU Emacs, gdb, make, git, Doxygen, and gprof.
In addition to their contributions to the team project, students will individually implement two or three function libraries and write two or three essays on assigned topics in software design.
Oram, Andy, and Greg Wilson, eds. Beautiful code: leading programmers explain how they think. Sebastopol, California: O'Reilly Media, 2007. ISBN 978-0-596-51004-6.
McConnell, Steve. Code complete, second edition. Redmond, Washington: Microsoft Press, 2004. ISBN 0-7356-1967-0.
The instructor for this course is John David Stone. My office is Noyce 3829, near the east end of the long corridor on the third floor of the Noyce Science Center, on the north side (facing Eighth Avenue). My telephone extension on the Grinnell College campus is 3181.
My office hours for spring 2012 are
or by appointment.
Lab on detecting memory leaks
Lab on profiling
GNU Emacs Lisp reference manual
Programming assignment #2
Lab on the
git version-control system
... Lab on the
gdb debugger ... Lab on
make builder ... Lab on the
doxygen documentation generator ... Lab
introducing Emacs Lisp
Writing assignment #1
Chicago-style citation quick guide
Descriptions of possible projects
Collected comments on programming assignment #0
Programming assignment #0
“Structured programming with
My own linked-list and array implementations and my test program are now available on MathLAN, in the /home/stone/courses/software-design/code directory.