The syllabus is subject to change based on class reaction.
http://www.ccs.neu.edu/research/demeter/course/topics-covered/topics-coveredcontains a good overview of computer science topics covered in this course. Six of nine important areas are touched. Three fundamental computer science processes are touched: theory, abstraction and design. And 5 of 12 recurring computer science concepts are touched.
The AP book is the recommended text book: "Adaptive Object-Oriented Software: The Demeter Method" which you can browse at:
http://www.ccs.neu.edu/research/demeter/biblio/dem-book.html.
You don't have to buy the book; instead you can print selected chapters on your home printer and other chapters you can just browse on-line.
This course provides state-of-the-art techniques and concepts for object-oriented software design and development with a focus on aspect-oriented techniques
http://www.ccs.neu.edu/home/lieber/AOP.html.You learn the Demeter Method for object-oriented software development which will hopefully make you at least 4 times as productive as a Java software developer compared to software development without the method. In the first few weeks you learn the method which you apply in the remaining weeks to your project. The project will be done in groups.
Assume that you could do your project in 200 hours of Java programming without using a good method. Instead of working hard, we will work smart. We will spend 50 hours on learning the Demeter Method and then you spend 50 hours on doing your project in Java using the Demeter Method. Since you will be at least 4 times as productive, you will still finish your 200 hour project in 50 hours only. Instead of spending 200 hours on the course, which would be excessive, you can accomplish the same in a total of 100 hours AND learn very useful object-oriented technology.
Designing and programming will be done in a structure-shy, grammar-based, object-oriented style. All assignments and the project will be written directly or indirectly in Java.
This course does not have Java as a prerequisite, however you are expected to learn a small subset of Java from the recommended text book or from another good Java book of your choice.
The WWW page for the course is:
http://www.ccs.neu.edu/home/lieber/com1205/w01
This file is in:
admin/syllabus/
Viewgraphs for the lectures are in:
lectures/
The lectures gradually introduce you to programming adaptively. First we program adaptively in pure Java using the DJ library. Hw 1 and hw 2 exercise this knowledge. In later homeworks and the project we use a small extension to Java to write our adaptive programs as behavior files. Structure will be defined by class dictionaries similar to XML schemas. Behavior files allow us in many cases to keep information about one concern in one file. The code will be spread automatically into multiple Java classes.
http://www.ccs.neu.edu/research/demeter/adaptive-patterns/pattern-lang-conv file: Structure-Shy-Traversal.html
http://www.ccs.neu.edu/research/demeter/adaptive-patterns/pattern-lang-conv file: Selective-Visitor.html
http://www.ccs.neu.edu/research/demeter/adaptive-patterns/pattern-lang-conv file: Class-Graph.html
AP book chapters: selections from 1-4. UML Distilled: chapter 1: Introduction, and class diagram chapter 4: The essentials.
http://www.ccs.neu.edu/research/demeter/adaptive-patterns/pattern-lang-conv file: Structure-Shy-Object.html
http://www.ccs.neu.edu/research/demeter/adaptive-patterns/pattern-lang-conv file: Growth-Plan.html
Writing simple adaptive programs using traversals and visitors. Introduction to DJ. Class dictionary design.
AP book chapters: selections from 5-8. UML Distilled: class diagram chapter 5: Advanced Concepts
AP book chapters: selections from 8-11. UML Distilled: chapter 6: Interaction Diagrams
AP book chapters: selections from 10-12. UML Distilled: chapter 9: Activity Diagrams.
AP book chapters: 13. UML Distilled: chapter 2: An Outline Development Process
http://www.ccs.neu.edu/research/demeter/adaptive-patterns/