Required text: Gamma, Helm, Johnson, Vlissides:
Design Patterns: Elements of Reusable Object-Oriented
Software. Addison-Wesley, Reading MA 1995.
The text is as necessary for a software developer as a
dictionary for an English writer.
I will hand out copies of select articles and book chapters. Time
permitting, I will compile them and have them available via some copy
place.
Recommended texts: Felleisen, Findler, Flatt, Krishnamurthi: How to Design Programs
MIT Press, Cambridge MA 2001
If you have any doubts what the design recipes are and how to
match the program organization to the data definition, consult this book
(or its second, on-line
edition). This is where you started and, believe it or not, this is what
you need to remember.
Strunk and White: Elements of Style, 3rd edition.
You will need to write memos if your investment into your
education here is to pay off. This little book will help you formulate
those memos. It is worth purchasing a copy and keeping it on your desk for
the rest of your career, right next to an English dictionary. Your books
on programming and software development will change far more often.
Texts you might find useful for the course or your career: Beck: Extreme Programming Explained
Addison-Wesley, Reading MA 1999
The philosophies of extreme programming are similar to those
of the design recipe. The book also includes ideas on pair programming and
why it is effective. It is a handy reference though it could have been
written as a 10 page essay.
Fowler, Scott: UML Distilled
Addison-Wesley, Reading MA 1997
For better or worse, you will encounter UML during your
career. This is a book of which you should be aware.
Hunt and Thomas The Pragmatic Programmer
Addison-Wesley, Reading MA 1999
This book presents practical and most good advice from
experienced programmers in a guru-style manner. If this kind of
presentation is better for you than lectures and text books, you may
prefer reading this book instead of or while taking this course.