Teaching 
Recent Teaching Assignments:

  • EECS 496: Major Design Experience - Professionalism and Ethics

    Design principles for multidisciplinary team projects, team strategies, entrepreneurial skills, ethics, social and environmental awareness, intellectual property, and life long learning. The lectures include several invited talks by experts and practitioners from around the world. Each student must take (simultaneously) Tech Comm 496 (2 cr.) and one of the approved 400-level team project courses in computing (4 cr.). Prerequisites: Senior Standing.

  • EECS 591: Distributed Systems

    Principles and practice underlying the design of distributed systems and networked applications. Detailed coverage of key concepts including: communication, consistency and replication, caching, fault-tolerance, synchronization, naming, and security. In-depth examination of dominant paradigms for structuring distributed systems including: client-server computing, distributed objects, peer-to-peer, publish-subscribe, distributed file systems, multicast communication, distributed shared memory, web services and the WWW architecture. Group projects emphasizing hands-on experimentation & detailed case studies are used to illustrate key concepts.