University of Central Florida

I curently teach two classes at UCF.

  • IDS 6938: Building Performance Simulation (Seminar)

    Recent advancements in computer technology allow building performance simulation to be a central part of the design process. This course focuses on basic and advanced building performance simulation methods and their underlying principles. We will look at simulations that impact energy, thermal, and visual comfort with a strong emphasis on building simulation tools. Innovative techniques on how to use these models in a building's design will be explored. This course will provide students intuition on how we code and design virtual environments, and how these virtual environments end up changing our understanding of a future physical environment. This class is set up as an interdisciplinary seminar with a strong focus on a variety of backgrounds: computer science, human factors, applied mathematics, architecture, smart building design and electrical engineering.

    • IDS 6938: Building Performance Simulation (Fall 2017)
    • IDS 6938: Building Performance Simulation (Fall 2016)





  • IDS 6145: Simulation Techniques

    Modeling and Simulation is important in many application domains from engineering to nursing. How do we design an engaging virtual environment for training? Or model how a human and robot interact to jointly solve a task? Can we make buildings more sustainable or apply machine learning to solve challenging problems in understanding the human brain? The objective of this course is to provide a broad survey of three different categories of simulation: discrete event simulation, continuous simulation, and agent-based simulation. Material in this course will provide an overview of the foundations as well as specific example problems and simulation solutions for each category of simulation. Students will be expected to understand the basics for a variety of different types of simulations, as well as to work with hands-on simulation tools to implement solutions various problems. To fully investigate this new technology, there will be three projects - one for each category of simulation.

    • IDS 6145: Simulation Techniques (Spring 2017)
    • IDS 6145: Simulation Techniques (Spring 2017)


    • Student Work



Cornell University

I co-taught one class (with Don Greenberg!) on Virtual Reality while at Cornell.

  • CS 4654: Design in Virtual Reality (co-listed as an Architecture Studio) (Spring 2016)

    Design in Virtual Reality was organized as a design studio with collaboration between teams of architectural designers and computer science majors. This course investigated Virtual Reality under the lens of multiple disciplines (visual perception, digital photography, modeling, geometry capture, color science, display technology and computer graphics). This course dove into deep questions: How do we design a virtual environment, and how does this fully virtual environment end up changing our understanding of a future physical environment? Potential design subjects include architectural (spatial) design, product (object) design, perception experiments, medical applications, and the development and use of new graphics algorithms. A major question to be answered is whether existing real-time graphics algorithms can be used in these future immersive environments. A major thrust of the course will be to identify those areas in virtual and augmented reality systems which need to be improved to make the systems more suitable for everyday use. Current implementations do not satisfy the current demands but the concepts and potential improvements will open up new possibilities. This course recieved hardware donations from Valve, Occulus, NVIDIA, and Microsoft.



University of Pennsylvania

I taught three classes during grad school at Penn. I was a Lecturer for the Department of Computer and Information Science (CIS) for the 2011-2012 school year teaching a full course load (4 courses). From 2008-2011, I served as a Part-time Lecturer for CIS teaching roughly 2-3 courses a year.

In 2010, I was awarded The Penn Prize for Excellence in Teaching by Graduate Students.

  • CIS 565: GPU Programming and Architecture

    This course examines the architecture and capabilities of modern GPUs (graphics processing unit). The GPU has grown in power over recent years, to the point where many computations can be performed faster on the GPU than on a traditional CPU. GPUs have also become programmable, allowing them to be used for a diverse set of applications far removed from traditional graphics. A timely selection from the following topics: GPU hardware, CUDA, massively parallel algorithms, graphics pipeline, real-time rendering, 3D engine architecture, asset formats, OpenGL, OpenGL ES, WebGL, and mobile GPUs. THis was a project intensive course with significant coding. (The course is still currently taught and popular at Penn instructed by first year cis665 alumni Patrick Cozzi! - I love and very proud that a past student has taken over the course and done wonderful things with it after I left Penn.)

    • CIS 565: GPU Programming and Architecture (Fall 2011)
    • CIS 565: GPU Programming and Architecture (Spring 2010)
    • CIS 565: GPU Programming and Architecture (Summer 2009)
    • CIS 665: GPU Programming and Architecture (Spring 2008) with Gary Katz




  • CIS 563: Physically Based Animation

    This course explores physically based simulation methods for computer animation of a wide variety of phenomena and materials including rigid and deformable solids, cloth, liquids, virtual characters, and explosions. Students will be introduced to numerical methods, physical models, data structures, and theoretical results which form the building blocks of these methods. To gain hands-on experience, students will implement basic simulators for several phenomena.

    • CIS 563: Physically Based Animation (Spring 2012)
    • CIS 563: Physically Based Animation (Spring 2011)


    Student Work


  • CIS 497: Senior Capstone Design Project

    The senior capstone design project provides an opportunity to define, design, and execute a project of the student's own choosing. Students gain experience working in a team, including division of labor and responsibilities, integration of work, interpersonal communication, etc. Students identifying a computer graphics-related problem and potential solutions. Many projects from this course culminated in publishing, including two undergraduates winning a Best Paper award at the International Symposium on Virtual Reality, Archaeology and Cultural Heritage (VAST), 2009.

    • CIS 497: Senior Capstone Design Project (Spring 2012)
    • CIS 497: Senior Capstone Design Project (Fall 2011)
    • CIS 497: Senior Capstone Design Project (Spring 2011)
    • CIS 497: Senior Capstone Design Project (Spring 2010)
    • CIS 497: Senior Capstone Design Project (Spring 2009) with Dr. Norman Badler


    Student Work


Teaching Assistant
  • CIS 665: GPU Programming and Architecture (Spring 2007) with Gary Katz
  • CIS 562: Computer Animation (Fall 2005) with Dr. Steven Lane