Teaching‎ > ‎

Comp 373/473: Advanced Object-Oriented Development

Information now current for fall 2011.

Prerequisite: Comp 313/488


Are you an enthusiastic programmer looking for new challenges? Did you enjoy Comp 313/488 (Intermediate Object-Oriented Development) and want to take things to the next level? If so, then this completely redesigned version of Comp 373 (Objects, Frameworks, and Patterns)/Comp 473 (Object-Oriented Programming) offered in Fall 2011 might be just what you are looking for.


Based on the foundation acquired in Comp 313/488, Comp 373/473 studies cutting-edge topics, such as
  • introduction to the Scala language
  • advanced language mechanisms: pattern matching, traits, and closures
  • implementation of object-oriented languages
  • concurrency: threads, actors, and software transactional memory (STM)
  • domain-specific languages
  • lightweight containers and dependency injection
  • introspection, class loaders, and byte-code manipulation
  • aspect-oriented programming
  • language-oriented programming/MPS

Key information

  • Class time: Fall 2011, Thursday, 16:15-18:45
  • Location: Room LT-412 (Linux Lab), Water Tower Campus
  • Office hour: Mon 21:30-22:00 in LT-412 and Thu 15:00-16:00 in LT-531w
  • Grading (tentative): 45% tests, 50% projects & presentations, 5% participation
  • Official course description

Key resources

Required main text

Programming in Scala: A Comprehensive Step-by-Step Guide, 2nd Edition
Author: Martin Odersky, Lex Spoon and Bill Venners
Publisher: Artima Inc; 2 edition (January 4, 2011)
ISBN-13: 9780981531649

Recommended supplementary texts

Daniel Spiewak
Scala Style Guide

Programming Scala, 1st Edition
By: Dean Wampler; Alex Payne
Publisher: O'Reilly Media, Inc.
Pub. Date: September 15, 2009
Print ISBN-13: 978-0-596-15595-7 
available online

Programming Language Pragmatics, Third Edition
By: Michael Scott
Publisher: Morgan Kaufmann
Pub. Date: March 23, 2009
eISBN-10: 0-08-092299-6
companion site

Design Patterns: Elements of Reusable Object-Oriented Software
By: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
Publisher: Addison Wesley
Pub. Date: 1995
eISBN-10: 0201633612

Growing a Language
By: Guy Steele

Some of these texts might be available for free on Safari Tech Books Online (Proquest). Additional reading will be assigned throughout the term.