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.
GNU Emacs Lisp reference manual
Lab on the git version-control system
... Lab on the gdb debugger ... Lab on
the make builder ... Lab on the doxygen documentation generator ... Lab
introducing Emacs Lisp
“Understanding git conceptually.”
GNU libunistring (manual)
Chicago-style citation quick guide
Descriptions of possible projects
Collected comments on programming assignment #0
“Structured programming with goto statements”
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.