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 - (Special Topics) Innovation in Journalism & Technology

    CATALOG DESCRIPTION: This is a joint projects class with Medill in conjunction with the newly announced Knight News Innovation Lab at Northwestern.  McCormick students (primarily CS and CE majors) and journalism students will join cross-functional teams to assess and develop, from both an audience/market perspective and a technology perspective, a range of technology projects with the ultimate goal of deployment for impact in media and journalism.  Some projects may continue over the summer if students are interested.

    • This course fulfills the AI depth, Interfaces depth & Project Course requirement.
  • EECS 395/495 - Cognitive Simulation for Virtual Characters


  • 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 - Design, Technology, and Research

    COURSE DESCRIPTION: Design, Technology, and Research (DTR) is an EECS and Segal learning initiative that empowers students to drive cutting-edge research through the development of systems that shape new experiences with people and technology. Students participate in DTR through fast-paced, quarter-long programs (intended to be repeated). Students work with a mentor to identify a direction of research, explore and iterate over designs, prototype at varying fidelities, build working systems, conduct evaluative studies, and report findings through conference publications. As a cohort, each week students demo their prototypes, provide and receive feedback, and help each other resolve technical challenges. DTR adapts and extends agile development and design-based research practices with scrums, sprints, studio critique, design logs, and pair research. View course website

    • This course satisfies the project requirement & Interfaces depth requirement.


  • 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 399 - Independent Study

    CATALOG DESCRIPTION:Independent Study (can be taken multiple times)

    • Approved for Systems Breadth and Depth in the CS curriculum in McCormick and Weinberg
    • This course satisfies the project requirement.