My Teaching Experience

Courses

Spring 2004: Teaching Assistant for the graduate course "17655 - Architectures for Software Systems" taught by Prof. David Garlan
Course Overview: Software architecture is the central artifact of a software system whose influences persist beyond the lifetime of the system. This course aims to teach you how to design, understand, and evaluate systems at an architectural level of abstraction. The course introduces major architectural styles and view types. It shows how formal notations can be used to specify architectures precisely and to reason about the properties of those architectures. It also covers methods of evaluating the suitability of a given architecture in meeting a set of system requirements.
Office Location: Smith Hall, 236-08
Office Hour: Thursday 12:00-1:00 pm
   
Fall 2003: Teaching Assistant for the graduate course "17651 - Models of Software Systems" taught by Prof. David Garlan
Course Overview: Scientific foundations for software engineering depend on the use of precise, abstract models and logics for characterizing and reasoning about properties of software systems. There are a number of basic models and logics that over time have proven to be particularly important and pervasive in the study of software systems. This course considers many of the standard models for representing sequential and concurrent systems, such as state machines, algebras and traces. It shows how different logics can be used to specify properties of software systems, such as functional correctness, deadlock freedom, and internal consistency. Concepts such as composition mechanisms, abstraction relations, invariants, non-determinism, and inductive and denotative descriptions are recurrent themes throughout the course.
Office Location: Smith Hall, 236-08
Office Hour: Mon and Wed 12:00-12:30 pm, or by appointment