Schedule

The schedule is tentative and is subject to change as the semester progresses.

Week Month/Date/Day Topic & Lecture Deadline (if any) Reading
1 Jan/14/Mon Introduction; Administrativia; Course Overview; Scala Language Overview Force-Add Deadline The Scala Experience by Martin Odersky
2 Jan/21/Mon MLK Jr. Day. No Class  
3 Jan/28/Mon Scala Language Cont.
Design Patterns overview & critique
Project proposal due  
4 Feb/4/Mon Architectural Patterns   Marc Fleury and Francisco Reverbel, "The JBoss Extensible Server," in Middleware 2003
5 Feb/11/Mon Generative programming, Meta-programming, Active Libraries, C++ template meta-programming  

Slides by Krzysztof Czarnecki

K. Czarnecki, U. Eisenecker, R. Glueck, D. Vandevoorde, Todd Veldhuizen "Generative Programming and Active Libraries," in Proceedings of the Dagstuhl-Seminar on Generic Programming 1998

T. Veldhuizen, "Expression Templates," C++ Report, Vol. 7 No. 5 June 1995, pp. 26-31

T. Veldhuizen, "Using C++ template metaprograms," C++ Report Vol. 7 No. 4 (May 1995), pp. 36-43.

6 Feb/18/Mon Component-based designs
7 Feb/25/Mon Project proposal presentations
  • Class Drop Deadline
  • Related Work Overview Due.
  • Project proposal finalized
 
Break        
8 March/10/Mon Layered designs, mixins, mixin layers, etc.  

Yannis Smaragdakis and Don Batory, "Implementing Layered Designs with Mixin Layers," in ECOOP 98.

Richard Cardone and Calvin Lin, " Using Mixin Technology to Improve Modularity," Aspect-Oriented Software Development in Mehmet Aksit, Siobhan Clarke, Tzilla Elrad, and Richard Filman, eds. Addison-Wesley, 2003. pp. 219-242.  

9 March/17/Mon Advanced separation of concerns  

Adaptive programming and Demeter (http://www.ccs.neu.edu/research/demeter)

K. J. Lieberherr, A. J. Riel, "Demeter: a case study of software growth through parameterized classes," Proceedings of the 10th international conference on Software engineering, 1988

K. Lieberherr, I. Holland, A. Riel, "Object-oriented programming: an objective sense of style," in OOPSLA 1988 

David Mandelin, Lin Xu, Rastislav Bodík, Doug Kimelman, "Jungloid mining: helping to navigate the API jungle," in PLDI 2005

Subject-Oriented Programming (http://researchweb.watson.ibm.com/sop/sophome.htm)

W. Harrison and H. Ossher "Subject-Oriented Programming (A Critique of Pure Objects)," in Proceedings of OOPSLA ‘93

Siobhán Clarke, William Harrison, Harold Ossher, Peri Tarr, "Subject-oriented design: towards improved alignment of requirements, design, and code," in OOPSLA 1999

 

10 March/24/Mon Aspect-Oriented Programming   

Aspect-Oriented Programming (http://aosd.net/)

Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Videira Lopes, Jean-Marc Loingtier, John Irwing, "Aspect-Oriented Programming," in ECOOP 1997

 Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten,Jeffrey Palm, and William G. Griswold,  "An Overview of AspectJ," in ECOOP 2001 

"Aspect Oriented Programming: Radical Research in Modularity"
Gregor Kiczales' talk at Google: http://video.google.com/videoplay?docid=8566923311315412414&q=Gregor+Kiczales

11 March/31/Mon No class.
  • Implementation due.
  • Midterm
 
12 April/7/Mon Distributed Objects   "A Note on Distributed Computing"

Eli Tilevich and Yannis Smaragdakis, "NRMI: Natural and Efficient Middleware"

Eli Tilevich and Yannis Smaragdakis, "Portable and Efficient Distributed Threads for Java"

Eli Tilevich, Stephan Urbanski, Yannis Smaragdakis, and Marc Fleury, "Aspectizing Server-Side Distribution"

 

13 April/14/Mon Type system survey
Genericity in programming languages
  Bracha, G., Odersky, M., Stoutamire, D., and Wadler, P. 1998. Making the future safe for the past: adding genericity to the Java programming language. In Proceedings of the 13th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications

Kresten Krab Thorup. Genericity in Java with virtual types. In European Conference on Object- Oriented Programming, LNCS 1241: Springer-Verlag, 1997. 444-471.

Torgersen, M., Hansen, C. P., Ernst, E., von der Ahe, P., Bracha, G., and Gafter, N. 2004. Adding wildcards to the Java programming language. In Proceedings of the 2004 ACM Symposium on Applied Computing

Generics in C#
http://www.ddj.com/dept/windows/193001357;jsessionid=IFDA0EJVINXTMQSNDLOSKH0CJUNN2JVN
14 April/21/Mon Project presentations Paper due  
15 April/28/Mon Conclusions