Computer Science Curriculum

  • EECS 330 - Human Computer Interaction

    CATALOG DESCRIPTION:Introduction to human-computer interaction and the design of systems that work for people and their organizations. The goal is to understand the manner in which humans interact with, and use, their computers for productive work. The course focus is on the interface as designed artifact. The interface is a design problem without a single "correct" solution but which has many "good" solutions and a plethora of "bad" solutions. Class discussion centers on what makes an interface good and proven techniques for designing interfaces that meet human needs. 

    • This course satisfies the CS Project Course, CS Breadth: Interfaces, and CD Depth: Interfaces requirements.
  • EECS 332 - Digital Image Analysis

    CATALOG DESCRIPTION:Introduction to computer and biological vision systems, image formation, edge detection, image segmentation, texture, representation and analysis of two-dimensional geometric structures, and representation and analysis of three-dimensional structures.

  • EECS 351 - Introduction to Computer Graphics

    CATALOG DESCRIPTION: First in a 3-course series to teach the core principles, ideas & math behind all forms of computer-assisted picture-making; complementary/compatible with computer-game design interests. After this course you can write your own programs to depict animated 2D and 3D objects that respond to mouse and keyboard inputs, yet run in any modern web browser. We write WebGL programs in Javascript to create GPU-driven high-performance 3D graphics in any up-to-date web browser (Skeptical? try ,

    • This course satisfies the project requirement.


  • EECS 352 - Machine Perception of Music & Audio

    CATALOG DESCRIPTION: Machine extraction of musical structure in audio, MIDI and score files, covering areas such as source separation and perceptual mapping of audio to machine-quantifiable measures.

    • This course satisfies the project requirement 
  • EECS 370 - Computer Game Design

    CATALOG DESCRIPTION:Fundamentals of computer game design. Topics include: Plot, narrative and character, simulation for creating game worlds, AI for synthetic characters, tuning game play. Substantial programming and project work.

    • Approved for the Breadth Interfaces and Depth Interfaces requirement in the CS curriculum.
    • This course satisfies the project requirement
  • EECS 395/495 (LRN_SCI 451) - Tangible Interaction Design and Learning (Horn)

    CATALOG DESCRIPTION: Emerging interactive technologies are rapidly transforming the ways in which we work, play, communicate, and learn. Research on tangible interaction attempts to blur the line between digital technologies and the broader physical, social, and cultural worlds within which computer use is situated. This course will explore the use of tangible interaction to create innovative learning experiences and will review both theoretical and technological foundations of the field. Topics may include distributed cognition, embodied interaction, cultural forms, and tangible interaction frameworks.

    • This course fulfills the Interfacesbreadth & Interfaces depth requirement.
  • EECS 395/495 - Game Development Studio

    CATALOG DESCRIPTION:In this course, students will design and develop games using the Unity game engine, with focus on team-based projects and agile development practices. Lectures will cover game design fundamentals such as the MDA framework, game architecture and implementation, and the business of game development. Students will participate in class discussion and evaluation of projects in progress, to develop their skills in iterative design and implementation. (formerly known as "EECS-395/495 Real-Time 3D Game Engine Design")

    • This course satisfies the project requirement; Interfaces (breadth or depth); software development (breadth)
  • EECS 395/495 - Computational Photography Seminar

    COURSE DESCRIPTION:This course is second in a two-part series that explores the emerging new field of Computational Photography. Computational photography combines ideas in computer vision, computer graphics, and image processing to overcome limitations in image quality such as resolution, dynamic range, and defocus/motion blur. This course will first cover state-of-the-art topics in computational photography such as motion/defocus deblurring cameras, light field cameras, computational displays, and much more!

    • This course fulfills the CS Project Course, Interfacesbreadth & Interfaces depth requirement.

    Instructor's Course Home Page

  • EECS 395/495 - Geospatial Vision and Visualization

    COURSE DESCRIPTION: Geospatial information has become ubiquitous in everyday life, as evidenced by on-line mapping services such as Microsoft Virtual Earth/Bing Map, the recent addition of "place" features on social network websites such as Facebook, and free navigation on Nokia smart phones. Behind the scenes is digital map content engineering that enables all types of location-based services. Course material will be drawn from the instructor's research experience at NOKIA Location and Commerce (formerly NAVTEQ), the Chicago-based leading global provider of digital map, traffic and location data. This course will provide comprehensive treatment of computer vision, image processing and visualization techniques in the context of digital mapping, global positioning and sensing, next generation map making, and three-dimensional map content creations. Real world problems and data and on-site industry visits will comprise part of the course curriculum.

    • The course satisfies the interfaces breadth and depth requirements.
  • EECS 395/495 - Intermediate Computer Graphics

    CATALOG DESCRIPTION: (to become CS351-2) Second in a 3-course series on the methods and theory of computer graphics, this project-oriented course explores how to describe shapes, movement, and lighting effects beyond the abilities of the standard OpenGL rendering pipeline. It includes interactive particle systems, simple rigid-body dynamics, explicit and implicit dynamics solvers (suitable for smoke, simple fluids and cloth) and an introduction to ray tracing (chrome, glass, and diffraction) with a few basic ideas for global illumination.

    • This course satisfies the project requirement.
    Instructor's PDF
  • EECS 395/495 - Introduction to Computational Photography

    CATALOG DESCRIPTION: Computational photography combines plentiful low-cost computing, digital sensors, actuators, and lights to escape the limitations of traditional film-like methods. New methods offer unbounded dynamic range and variable focus, lighting, viewpoint, resolution and depth of field; hints about shape, reflectance, and location. Instead of fixed digital snapshots and video playback, computational methods promise direct interactions to explore what we photograph. The pre-requisites are EECS 351 (Introduction to Computer Graphics) or consent of the instructor.

    • This course fulfills the Interfaces Breadth & Interfaces Depth requirement. 
  • EECS 395/495 - Social Computing and Crowd Sourcing Seminar

    CATALOG DESCRIPTION:This seminar course studies the social and technical aspects of social and crowd computing systems. Students read research articles, participate in weekly design charettes and hackathons, develop novel crowd computing systems, and conduct studies of existing social computing systems.

    • This course fulfills the Interfacesbreadth requirement.