Computer Science Curriculum
CS Breadth: Interfaces

The courses below fulfill the Breadth: Interfaces requirement in computer science.

EECS 330 - Human Computer Interaction

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

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 - Intro to Computer Graphics

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

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

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 - Biometrics

In a security conscious society, biometrics-based authentication and identification have become a central focus for many important applications as biometrics can provide accurate and reliable identification. Biometrics research and technology continue to mature rapidly, driven by pressing industrial and government needs and supported by industrial and government funding. This course offers an introduction to major biometric techniques, the underlying pattern recognition and computer vision basis for these biometrics, scientific testing and evaluation methodologies of biometrics systems, a deeper study of facial recognition, and an examination of the current privacy and social/ethical issues surrounding the technology. The course includes readings from the literature, short writing assignments, and practical experience with current biometric technology

EECS 395, 495 - Tangible Interaction Design and Learning (Horn)

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.

EECS 395, 495 - Game Development Studio

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. Please note that this course requires significant amount of programming outside of class.

EECS 395, 495 - Computational Photography Seminar

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!

EECS 395, 495 - Geospatial Vision and Visualization

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.

EECS 395, 495 - Intermediate Computer Graphics

(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.

EECS 395, 495 - Introduction to Computational Photography

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.

EECS 395, 495 - Social Computing and Crowd Sourcing Seminar

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.