Teaching

Current Teaching

  • present2014

    COM110 Introduction to Computer Science and Problem Solving

    This course will introduce you to the basic concepts in computer science and how those concepts can be used to solve practical problems. The concepts include the design of algorithms, basic constructs of a programming language, the software development process and the functions of a computer. Along the way, we will explore graphics and animation, simulation, object-oriented design, string and text manipulation, and much more.

  • present2013

    COM212 Data Structure

    We will study and explore abstract data structures, such as lists, stacks, queues, trees, hash tables, and graphs. Students will implement these data structures using the Java programming language. Run-time and performance analysis of data structures and their related algorithms will also be discussed, and principles of software design will be used in the context of programming projects.

  • present2015

    COM217 Entertainment Software Design and Development

    This course will introduce you to the basic concepts in an entertainment software (aka game) and how those concepts can be used to design and develop successful content. The concepts include the design of gameplay, interaction, the software development process, and history of game and game hardware. Along the way, we will explore graphics, animation, audio/sound, object-oriented design, bodily-engaging controls, and much more. See past student projects.

  • present2015

    COM219 Computer Organization

    In this course, we will study how a modern computer works from a multi-layer design viewpoint. In order to understand its complex architecture, we will first study the multi-layer conceptualization of a modern computer. We will then embark on our journey by acquainting ourselves with the basic terminology and briefly discussing the milestones in the history of computing. Following an overview of the essential components of a computer system, we will discuss digital logic and understand how calculations are performed in the binary domain. At the microarchitecture level, we will study a simple microprocessor and write assembly programs for it. We will use a simulator to run our programs. After studying the instruction set architecture level we will understand the conventions and usage of the instruction set of a microprocessor.

  • present2013

    COM309 Computer Graphics and Virtual Environments

    Computer graphics is a complex but fascinating subject involving issues such as modeling, animation, lighting, rendering, cameras, and image manipulation and more. Virtual environments (or virtual reality) is more focused around multisensory interactive 3D environments in addition to the core components in computer graphics. In order to study virtual environments, we will examine the most critical issues for the generation of real-time 2D and 3D graphics. We will also look at methods of input and output, including gestures (i.e. Kinect and Leap Motion), audio, position trackers (head, hands, and controllers) and 3D stereo displays (i.e. VR glasses, Oculus Rift, HTC Vive, 3D TV, and a large tiled display). See past student projects.

  • present2014

    COM495/496 Research Seminar

    Practicum in computer science research. An introduction to research methods and the implementation of a major project. Students will read, present, and discuss technical papers; write a research proposal; make weekly reports; raise issues for class discussion; complete their research; write a technical paper; and do a public presentation. May be repeated unlimited times for credit.

Teaching History

  • Fall 2010

    AD 457, Interactive 3D @ University of Illinois at Chicago

    This course is a practical and conceptual exploration of the design and production of real-time interactive 3D applications for games and web. The course will explore the basic principles of real-time computer graphics, immersion, interaction, stereoscopic displays, systems, and applications.

  • Spring 2011

    AD 458, Advanced Interactive 3D @ University of Illinois at Chicago

    This course is a practical and conceptual exploration of the design and production of real-time interactive 3D applications for games and web. Students will gain hands-on experience and develop skills in conceptualization, planning, and development of real-time 3D interactive environments using Virtools authoring package.