CS 6140 LANGUAGE DESIGN: SYLLABUS (SUMMER 2003) Instructor: Ted Billard Email : ted.billard@csueastbay.edu Phone : 885-3437 Home Page : http://www.mcs.csueastbay.edu/~billard Class Time: TR 8-9:50am Office Hrs: TR Noon-1pm (Sc N216) Summary: The course compares and contrasts the object-oriented languages C++, Java, Smalltalk, and Perl 5.0. The Gang of Four design patterns are used to illustrate the syntax, features, and capabilities of the four languages. Lectures include discussion of selected design patterns, in UML, followed by solutions in the languages. References on-line or textbooks already provide coding solutions in the four languages, however, the course will only consider the patterns in their simplest structural form, independent of any applica- tion. Thus, the focus is on the true object-oriented features of the languages and how the design of each language supports re-usable software. Prerequisites: Students are expected to know object-oriented programming in at least one language. Since this is a graduate language course, students are expected to be able to learn new languages and sufficient time will be devoted to help students in this process. Texts: Instructor's Lecture Notes, available at the bookstore and: http://www.mcs.csueastbay.edu.edu/~billard/6140.html Other Texts: Design Patterns: Elements of Reusable Object-Oriented Software, Gamma, Helm, Johnson, Vlissides (Addison-Wesley: 0-201-633361-2). Patterns in Java, Vol 1, Grand (Wiley: 0-471-25839-3). The Design Patterns SmallTalk Companion, Alpert, Brown, Woolf (Addison-Wesley: 0-201-18462-1) Lectures: Presentation of the following patterns in four languages: Adapter, Bridge, Cache, Facade, Factory, Interpreter, Iterator, Mememto, Object Pool, Observer, Prototype, Proxy, Singleton, Template, Visitor. Exercise I: Given a solution in one language, code the following design patterns in ONE other language: Mediator, Decorator, State, Strategy. Due: 7/08 Exercise II: Finish coding the following design patterns in the other TWO languages: Mediator, Decorator, State, Strategy. Exercise III: Given UML and example code in all four languages, code the following design patterns in all FOUR languages, but be sure the solutions are application-independent and identical throughout, as best as the languages support object-oriented programming: Abstract Factory, Builder, Command, Chain, Composite, Flyweight. Mid-Term, Final Exam (9/4): Given a design pattern, program solutions in four languages. Given a programming solution in one language, give solutions in the other three. Collaboration/Copying: Unless otherwise stated, do your own work in this class. Violations will be prosecuted to the full extent of the University rules.