MWF 1:15-2:05, Science 3819
Davis (office hours as posted; contact me)
Teaching assistant: Christine Wang (office hours TBA; firstname.lastname@example.org)
This course is an introduction to software design for those who already
have a year or more of experience programming in a variety of
paradigms. The learning goals for the course are as follows:
- Learn principles for object-oriented software design.
- Learn about and begin to apply a software development methodology (specifically, eXtreme Programming).
- Gain experience working on a significant team software development project (specifically, a web application).
- Gain experience using a source control system (specifically, Subversion) and other software development tools.
- Consider how to learn new tools and languages without the support of a course such as this.
- Reflect on your experiences.
Is this course for me?
this course has as a prerequisite a grade of C or better in CSC 152 or
CSC 153. I expect you to be reasonably comfortable programming in Java
so that we can consider higher-level design principles and so that you
are prepared to learn a new object-oriented language (Python).
course fulfills the requirement to complete CSC 223 or 362 as part of
the Computer Science major. It is highly recommended for those who
intend to seek a career in or related to software development (and
everyone else, too).
All of our textbooks are available through the Grinnell College
Bookstore, the Safari
online subscription service, and your
favorite online booksellers. You can find more information on the resources page.
- McLaughlin, Pollice, and West. Head First Object-Oriented
Design and Analysis. O'Reilly, 2007. ISBN
- Beck and Andres. Extreme
Programming Explained, 2nd ed. Addison-Wesley, 2005. ISBN
- Lutz. Python
Pocket Reference, 3rd ed. O'Reilly, 2005. ISBN
- Freeman, Freeman, Sierra, and Bates. Head First Design Patterns.
O'Reilly, 2004. ISBN 0-596-00712-4.
Created July 23, 2007
Last revised December 12, 2007