CS 410/510 Top: Software Design Patterns
4/3
Sergio Antoy
This course provides an in-depth view of Software Design Patterns. The course, which is programming intensive, uses Java for presentation and analysis of the patterns and for the assignments. The course is suitable to software architects and developers who are already well-versed in this language. Patterns are reusable solutions to recurring software problems. They capture successful experiences and convey expert insight and knowledge to less experienced developers. In addition to patterns, the course provides continuous opportunities for learning the most advanced features of the Java language and understanding the principles behind the design of its fundamental libraries.
The expected background is experience in Computer Science and some versatility in Java. Both ability to recognize and appreciate an elegant solution to a problem and willingness to "learn" (as opposed to "live") an experience are highly desirable. CS 320 or CS 558 Principles of Programming Languages is recommended.
At the end of this course, students are expected to: master the Java language to the degree required by the subject; become familiar with the situations and motivations that call for using patterns; and be able to employ patterns in their appropriate contexts.
Mark Grand, Patterns in Java, Vol. 1, J. Wiley; 2nd ed., Sept. 2002, ISBN 0-471-22729-3.