"Advanced Topics in Object-Oriented Systems" Have you ever wondered what's there to object-orientation beyond encapsulation, inheritance, and polymorphism? In fact, object-oriented systems happens to be one of the most dynamic research areas, intersecting with systems, programming languages, compilers, and software engineering. In recent years, research in object-oriented systems engendered several exciting technologies, including aspect-oriented programming (AOP), various advances in programming languages theory (e.g., type systems, formal methods), design (e.g., genericity, reflection, meta-programming), and implementation (e.g., virtual dispatch, garbage collection, just-in-time-compilation), middleware (the J2EE and .NET technologies), concurrency (e.g., Java memory model), and others. This course will provide students with a background in object-oriented research by covering both standard research literature (primarily from the proceeding of the European Conference on Object Oriented Programming (ECOOP) and Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA)) and providing hands-on experience with specific technologies. Taking the course should introduce students to a range of advanced object-oriented topics and expose open research problems in the area. The course will have midterm and final exams and several programming assignments. Prerequisites: proficiency in a mainstream object-oriented language such as Java, C++, C#, or Smalltalk. For more information, please contact the instructor at tilevich@cs.vt.edu