Computer Engineering Degree

Students must also complete the Undergraduate Registration Requirement and the degree requirements of their home school.

 Requirements (48 units)

Core Courses (26 units)1

Course Title
4 mathematics courses
4 units of basic science: 2,3
General Physics
and General Physics Laboratory 4
General Physics
and General Physics Laboratory
General Physics
and General Physics Laboratory
3 engineering foundations courses
3 design, communications, and innovation courses
7 social sciences/humanities courses
5 unrestricted electives

Major Program (22 units) 

Course Title
8 required courses
Introduction to Computer Engineering
Fundamentals of Computer System Software
Advanced Digital Design
Computer Architecture I
Programming in Systems-Level Languages
Introduction to Electrical Engineering
Probabilistic Systems
1 additional course from a McCormick department at 200-level or higher comprised of 100% Engineering Topics based on ABET Course Partitioning Table
14 technical elective courses
4 courses chosen from the options below
Software Design & Composition
Data Structures & Algorithms
Introduction to Computer System
Fundamentals of Circuits
Fundamentals of Signals & Systems
Fundamentals of Solid State Engineering
Fund of Electromagnetics & Photonics
Fundamentals of Electronics
1 course chosen from options below
Math Foundations of CS Part 1: Discrete Math for CS
Applied Ordinary Differential Equations
5 courses from the areas below 5
Architecture and high-performance computing (see below)
VLSI and CAD (see below)
Embedded systems (see below)
Software systems (see below)
Networks and security (see below)
3 elective courses chosen from the options below
300-level technical courses in science, mathematics, computer science, or engineering 6
Molecular Biology
Cell Biology
Genetics and Evolution
Organic Chemistry I
and Organic Chemistry II
and Organic Chemistry III
1 design course chosen from the options below
Microprocessor Systems Project I
Computer Architecture Projects
VLSI Systems Design Projects
1

See general requirements for details.

2

Each course in the PHYSICS 135-1,2,3 sequence must be taken concurrently with the corresponding PHYSICS 136-1,2,3 laboratory course.

3

PHYSICS 125-1 General Physics ISP or PHYSICS 140-1 Fundamentals of Physics may be substituted for PHYSICS 135-1 General PhysicsPHYSICS 125-2 General Physics for ISP or PHYSICS 140-2 Fundamentals of Physics may be substituted for PHYSICS 135-2 General PhysicsPHYSICS 125-3 General Physics for ISP or PHYSICS 140-3 Fundamentals of Physics may be substituted for PHYSICS 135-3 General Physics. Associated labs are  PHYSICS 126-1 Fundamentals of Physics Laboratory or PHYSICS 136-1 General Physics LaboratoryPHYSICS 126-2 Fundamentals of Physics Laboratory or PHYSICS 136-2 General Physics Laboratory, and PHYSICS 126-3 Fundamentals of Physics Laboratory or PHYSICS 136-3 General Physics Laboratory.

4

PHYSICS 135-1 General Physics can be replaced by GEN_ENG 212-0 Engineering Physics - Dynamics  (Note: if replaced by GEN_ENG 212-0 Engineering Physics - Dynamics another 1/3 unit of science is needed to fulfill the science requirement). Courses can be chosen from McCormick-approved basic science categories of Chemistry, Physics, Biological Science, Earth & Planetary Science or Astronomy.

5

Students may take any combination of courses from any subset of these technical areas which achieves the required total.

6

No more than 2 units of COMP_ENG 399-0 Projects will be counted as technical electives. Additional units of COMP_ENG 399-0 Projects may be taken but will be counted as unrestricted electives.

Area Electives

Architecture and High-Performance Computing

Course Title
COMP_ENG 329-0The Art of Multicore Concurrent Programming
COMP_ENG 358-0Introduction to Parallel Computing
COMP_ENG 362-0Computer Architecture Projects
COMP_ENG 368-0Programming Massively Parallel Processors with CUDA
COMP_ENG 452-0Adv Computer Architecture
COMP_ENG 453-0Parallel Architectures
COMP_ENG 468-0Programming Massively Parallel Processors with CUDA

VLSI and CAD

Course Title
COMP_ENG 355-0ASIC and FPGA Design
COMP_ENG 357-0Design Automation in VLSI
COMP_ENG 387-0Real-Time Digital Systems Design and Verification with FPGAs
COMP_ENG 391-0CMOS VLSI Circuit Design
COMP_ENG 392-0VLSI Systems Design Projects
COMP_ENG 393-0Advanced Low Power VLSI and Mixed-signal IC Design
COMP_ENG 459-0VLSI Algorithmics
COMP_ENG 493-0Advanced Low Power VLSI and Mixed-signal IC Design
ELEC_ENG 353-0Digital Microelectronics

Embedded Systems

Course Title
COMP_ENG 346-0Microcontroller System Design
COMP_ENG 347-1Microprocessor Systems Project I
COMP_ENG 347-2Microprocessor Systems Project II
COMP_ENG 364-0CyberPhysical Systems Design and Application
COMP_ENG 365-0Internet-of-things Sensors, Systems, And Applications
COMP_ENG 366-0Embedded Systems
COMP_ENG 369-0Introduction to Sensor Networks
COMP_ENG 464-0Cyber-Physical Systems Design and Application
COMP_ENG 465-0Internet-of-things Sensors, Systems, And Applications
COMP_ENG 466-0Embedded Systems
COMP_SCI 301-0Introduction to Robotics Laboratory
ELEC_ENG 326-0Electronic System Design I
ELEC_ENG 327-0Electronic System Design II: Project
ELEC_ENG 332-0Introduction to Computer Vision
ELEC_ENG 360-0Introduction to Feedback Systems
ELEC_ENG 390-0Introduction to Robotics
ELEC_ENG 432-0Advanced Computer Vision
MECH_ENG 333-0Introduction to Mechatronics
MECH_ENG 433-0Advanced Mechatronics

Software Systems

Course Title
COMP_SCI 212-0Math Foundations of CS Part 1: Discrete Math for CS
COMP_SCI 321-0Programming Languages
COMP_SCI 322-0Compiler Construction
COMP_SCI 336-0Design & Analysis of Algorithms
COMP_SCI 339-0Introduction to Database Systems
COMP_SCI 343-0Operating Systems
COMP_SCI 394-0Agile Software Development

Networks and Security

Course Title
COMP_ENG 334-0Fundamentals of Blockchains and Decentralization
COMP_SCI 340-0Introduction to Networking
COMP_SCI 350-0Introduction to Computer Security
COMP_SCI 354-0Computer System Security
ELEC_ENG 333-0Introduction to Communication Networks