Home > Academics > Course Resources > CSE Course Info

CSE Course Info

Curious about classes in our curriculum? Look below to see a sampling of course descriptions and to navigate to course websites where you can learn more. Additional information on all EECS courses is available from the Course Resources page.

The following resources are also available to help you plan:

For up-to-date information on how courses can count for requirements, see the CS Course Lists (CS-Eng and CS-LSA majors) and DS Course Lists (DS-Eng majors).

CSE course sorting tool

Want to see which courses are options for completing your degree? This interactive tool allows you to find courses that match your remaining degree requirements and the tags that interest you. Once you click on the button below, the tool will open in a new window.

Course descriptions and websites

ENGR 101: Introduction to Computers and Programming

Solving engineering problems with computer programming in MATLAB and C++.

Course website >

EECS 183: Elementary Programming Concepts

An introductory course to computer science and programming, covering the basics of computing as well as problem-solving and algorithmic thinking.

Course website >

EECS 203: Discrete Math

Introduction to the mathematical foundations of computer science.

Course website >

EECS 280: Programming and Introductory Data Structures

Computer science fundamentals, with programming in C++. Build an image processing system, a game of Euchre, a web backend, and a machine learning algorithm.

Course website >

EECS 281: Data Structures and Algorithms

Data structures and algorithms in C++.

Course website >

EECS 370: Introduction to Computer Organization

Basic concepts of computer organization and hardware.

Course website >

EECS 367: Introduction to Autonomous Robots

An introduction to the computational foundations of autonomous robotics for building modern robot operating systems and applications to perform mobile manipulation tasks.

Course website>

EECS 373: Introduction to Embedded System Design

This class is focused on the principles and practices of modern embedded system design.

Course website>

EECS 376: Foundations of Computer Science

An introduction to computer science theory, with applications.

Course website>

EECS 388: Introduction to Computer Security

This course teaches the security mindset and introduces the principles and practices of computer security as applied to software, host systems, and networks.

Course website>

EECS 390: Programming Paradigms

This course offers a survey of programming language features and paradigms, with a focus on how to effectively use them.

Course website>

EECS 441: Mobile App Development for Entrepreneurs

Best practices in the software engineering of mobile applications and best practices of software entrepreneurs in the design, production and marketing of mobile apps.

Course website>

EECS 442: Computer Vision

Class topics include low-level vision, object recognition, motion, 3D reconstruction, basic signal processing, and deep learning.

Course website>

EECS 448: Applied Machine Learning for Modeling Human Behavior

This course will cover current practices in measuring and sensing human behavior via machine learning.

Course website>

EECS 470: Computer Architecture

An advanced course on computer architecture. Design a fully synthesizable, out-of-order processor.

Course website>

EECS 473: Advanced Embedded Systems

We will explore rapid prototyping, design of APIs for hardware devices, PCB design (from basics to power converters and power integrity issues), Real-time operating systems, and device drivers for high-level systems using Linux.

Course website>

EECS 475: Introduction to Cryptography

This class is an undergraduate-level introduction to modern cryptography. The emphasis is on essential concepts, precise attack models and security definitions, and constructions of some real-world cryptosystems.

Course website>

EECS 477: Introduction to Algorithms

Fundamental techniques for designing efficient algorithms and basic mathematical methods for analyzing their performance

Course website>

EECS 484: Database Management Systems

Concepts and methods for the design, creation, query and management of large enterprise databases.

Course website>

EECS 485: Web Systems

A holistic course of modern web systems and technologies, covering front end and back end. Build an Instagram clone in the first half of the semester, and a Google clone in the second.

Course website>

EECS 489: Computer Networks

Topics include socket programming, naming and addressing, video streaming and content distribution, flow and congestion control, routing, and cloud, datacenter, and software-defined networks.

Course website>

EECS 490: Programming Languages

This course covers the design and use of modern programming languages. We will build up systematically from formal first principles while considering human factors in language design, language prototyping, and techniques for reasoning precisely about program behavior throughout the course.

Course website>

EECS 494: Introduction to Video Game Development

Students will learn to implement small-to-medium sized video games using the industry-standard Unity3D Game Engine.

Course website>

EECS 495: Accessible Software Systems Design

Using established software development methodology, build software system that combines new technology and also addresses disability or illness.

Course website>