Skip to main content

Computer Engineering

Degree Types: MS, PhD

Northwestern University’s Computer Engineering program is a joint program between the Department of Computer Science (CS) and the Department of Electrical and Computer Engineering (ECE), and offers programs leading to the MS and PhD degrees in Computer Engineering (CE). Computer Engineering covers a diverse set of areas including, but not limited to, integrated circuits/VLSI, computer architecture, computer systems, operating systems, compilers, data mining, high-performance and parallel computing, distributed computing, design automation, embedded systems, reconfigurable systems, mobile and wearable computing, internet of things, cyber-physical systems, real-time systems, and database systems.

The broad interdisciplinary interests of our faculty lead to strong collaborative research with other engineering and science departments, the Feinberg School of Medicine, national laboratories including Argonne National LaboratoryFermi National Accelerator Laboratory, Sandia National Laboratories and Oak Ridge National Laboratory, as well as industry.

When applying to the PhD or MS program, students should specify CE as the specific program which will represent their major field of study.

Additional resources:

Degree Requirements

The following requirements are in addition to, or further elaborate upon, those requirements outlined in The Graduate School Policy Guide.


MS Degree Options

There are three MS degree plans available: Thesis, Project, and Course-only. Students declare their intention to follow one of the degree plans no later than May 1st of the 3rd academic quarter (typically the spring quarter of the first year of study).


Common Requirements

For all three plans, the following are required:

  • A total of 12 units.
  • All courses must be at the 300-level or higher, and must be taken within The Graduate School (TGS) of Northwestern University.
  • COMP_SCI 301-0 Introduction to Robotics Laboratory,  ELEC_ENG 302-0 Probabilistic Systems,  COMP_ENG 399-0 Projects,  COMP_SCI 399-0 Projects,  ELEC_ENG 399-0 Projects do not count toward the Computer Engineering MS degree. They are intended for undergraduate students only.
  • At least 9 units from Computer Engineering, Electrical Engineering, or Computer Science.
  • Any courses taken outside Computer Engineering, Electrical Engineering, or Computer Science must be approved by the student's adviser and the Director of Graduate Studies in Computer Engineering.
  • At least 6 units from the Core Computer Engineering list of courses below.
  • At least 3 units at the 400-level or above (COMP_ENG 590-0 Research,  COMP_SCI 590-0 Research,  ELEC_ENG 590-0 Research  and  COMP_ENG 499-0 Projects,  ELEC_ENG 499-0 Projects,  COMP_SCI 499-0 Projects do not count toward these units).
  • At most 3 units in total of COMP_ENG 499-0 ProjectsELEC_ENG 499-0 Projects, and COMP_SCI 499-0 Projects.
  • All courses that can be taken for a quality letter grade (i.e., ABC, not P/N) must be taken for a quality grade to count toward the degree. Courses with grades of Pass (P) taken in the Spring 2020 quarter will count toward the course requirements for the MS degree in Computer Engineering. COMP_ENG 590-0 Research can be taken as a P/N course if the MS degree option allows it.
  • All coursework must be completed with a composite grade-point average of B (GPA 3.0) or higher. Courses taken for P/N credit do not count toward calculating the grade-point average (GPA).
  • Courses completed for undergraduate credit at Northwestern University or elsewhere cannot be repeated for graduate credit.
  • The course study plan must be approved by the student’s advisor prior to registration for each quarter. The choice of courses must represent a coherent program of study that prepares the student for advanced work in a specific field.
  • Additional requirements are listed in the Computer Engineering Graduate Study Guide.

Plan A: Thesis MS Degree

Additional requirements:

  • To participate in this study plan, the student must first obtain the formal agreement of a Computer Engineering faculty to serve as the student’s MS Thesis Research Advisor.
  • Up to three credits may be COMP_ENG 590-0 Research.
  • A written thesis is required, in a format specified by the MS Thesis Committee. The thesis must show evidence of original research and must be approved by the MS Thesis Committee.
  • An oral defense of the thesis research is required. The oral defense is attended and evaluated by the MS Thesis Committee.
  • All requirements, including coursework and the approval of the thesis, must be successfully completed before the end of the 7th academic quarter (typically the spring quarter of the 2nd year of study).
  • IMPORTANT: In the spring term, The Graduate School requires that all thesis defenses be completed ONE MONTH before the end of the quarter, if the student is to graduate in the spring term. Deadlines in other quarters are not as early. Consult the Office of the Registrar’s academic calendar for thesis defense deadlines for each quarter.

Plan B: Project MS Degree

Additional requirements:

  • To participate in this study plan, the student must first obtain the formal agreement of a Computer Engineering faculty to serve as the student’s MS Project Advisor.
  • Up to two credits may be COMP_ENG 590-0 Research.
  • A written project report is required, in a format specified by the MS Project Committee. The project report must contain results based on existing theory and techniques or experimental verifications and must be approved by the MS Project Committee.
  • All requirements, including coursework and the approval of the project report, must be successfully completed before the end of the 6th academic quarter (typically the winter quarter of the 2nd year of study).

Plan C: Course MS Degree

Additional requirements:

  • COMP_ENG 590-0 Research,  COMP_SCI 590-0 Research, and  ELEC_ENG 590-0 Research may not be included in the 12 required units.
  • All requirements must be successfully completed before the end of the 5th academic quarter (typically the fall quarter of the 2nd year of study).

Courses

Core Computer Engineering Courses:

Course Title
Core CE offerings from CE:
COMP_ENG 303-0Advanced Digital Design
COMP_ENG 329-0The Art of Multicore Concurrent Programming
COMP_ENG 346-0Microprocessor System Design
COMP_ENG 347-1Microprocessor Systems Project I
COMP_ENG 347-2Microprocessor Systems Project II
COMP_ENG 355-0ASIC and FPGA Design
COMP_ENG 356-0Introduction to Formal Specification & Verification
COMP_ENG 357-0Design Automation in VLSI
COMP_ENG 358-0Introduction to Parallel Computing
COMP_ENG 361-0Computer Architecture I
COMP_ENG 362-0Computer Architecture Projects
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 368-0Programming Massively Parallel Processors with CUDA
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 452-0Adv Computer Architecture
COMP_ENG 453-0Parallel Architectures
COMP_ENG 456-0Modern Topics in Computer Architecture
COMP_ENG 459-0VLSI Algorithmics
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_ENG 468-0Programming Massively Parallel Processors with CUDA
COMP_ENG 493-0Advanced Low Power VLSI and Mixed-signal IC Design
COMP_ENG 510-0Seminar (Social Media Mining)
COMP_ENG 395-0Special Topics in Computer Engineering (Blockchain and Cryptocurrency, Advanced Digital System Design with FPGAs, Connected and Autonomous Vehicles: Challenges and Design)
COMP_ENG 495-0Special Topics in Computer Engineering (Blockchain and Cryptocurrency, Advanced Digital System Design with FPGAs, Connected and Autonomous Vehicles: Challenges and Design, Introduction to Database Systems and Data Warehousing)
Any 300-level or above non-zero-credit course taught by Core Computer Engineering Faculty except 399, 499, and 590 courses. See the Computer Engineering website for a complete up-to-date list.
Core CE offerings from CS:
COMP_SCI 310-0Scalable Software Architectures
COMP_SCI 321-0Programming Languages
COMP_SCI 322-0Compiler Construction
COMP_SCI 323-0Code Analysis and Transformation
COMP_SCI 336-0Design & Analysis of Algorithms
COMP_SCI 339-0Introduction to Database Systems
COMP_SCI 340-0Introduction to Networking
COMP_SCI 343-0Operating Systems
COMP_SCI 350-0Introduction to Computer Security
COMP_SCI 354-0Computer System Security
COMP_SCI 367-0Wireless and Mobile Health: Passive Sensing Data Analytics
COMP_SCI 446-0Kernel and Other Low-level Software Development
COMP_SCI 396-0Special Topics in Computer Science (Only: Systems Programming in Rust, Computational Geometry, Data Science Seminar, Special Topics in Swarms and Multi-robot Systems, Quadrotor Design and Control, Programming Languages Seminar)
COMP_SCI 496-0Special Topics in Computer Science (Only: Systems Programming in Rust, Computational Geometry, Data Science Seminar, Special Topics in Swarms and Multi-robot Systems, Quadrotor Design and Control, Programming Languages Seminar)
COMP_SCI 397-0Special Projects in Computer Science (Only: Advanced Topics in Compilers, Internet of Things Networks Seminar, Wireless and Mobile Health)
COMP_SCI 497-0Special Projects in Computer Science (Only: Advanced Topics in Compilers, Internet of Things Networks Seminar, Wireless and Mobile Health)
Core CE offerings from EE:
ELEC_ENG 326-0Electronic System Design I
ELEC_ENG 327-0Electronic System Design II: Project
ELEC_ENG 332-0Introduction to Computer Vision
ELEC_ENG 375-0Machine Learning: Foundations, Applications, and Algorithms
ELEC_ENG 390-0Introduction to Robotics
ELEC_ENG 475-0Machine Learning: Foundations, Applications, and Algorithms
ELEC_ENG 395-0Special Topics in Electrical Engineering (Only: Blockchain and Cryptocurrency, Biometrics)
ELEC_ENG 495-0Special Topics in Electrical Engineering (Only: Blockchain and Cryptocurrency, Biometrics)
 

Last Updated: September 12, 2023

Degree Requirements

The following requirements are in addition to, or further elaborate upon, those requirements outlined in The Graduate School Policy Guide.


Course Requirements

  • Total Units Required: 15 units that count for graduate (TGS) credit.
  • The cumulative grade point average over these 15 units must be a B (3.0 GPA) or higher. Courses taken for P/N credit do not count toward calculating the grade-point average (GPA).
  • Complete the zero-credit GEN_ENG 519-0 Responsible Conduct for Research Training during their first year.
  • In each quarter, the study plan should be approved by the student’s adviser prior to registration.
  • Restrictions:
    • COMP_ENG 590-0 ResearchCOMP_SCI 590-0 ResearchELEC_ENG 590-0 Research do not count toward the 15 units requirement.
    • COMP_SCI 301-0 Introduction to Robotics LaboratoryELEC_ENG 302-0 Probabilistic SystemsCOMP_ENG 399-0 ProjectsCOMP_SCI 399-0 ProjectsELEC_ENG 399-0 Projects do not count toward the Computer Engineering PhD degree. They are intended for undergraduate students only.
    • At most 6 units of COMP_ENG 499-0 ProjectsCOMP_SCI 499-0 ProjectsELEC_ENG 499-0 Projects can be counted toward the 15 units requirement.
    • At least 6 of the required 15 units should be from 400-level courses or above.
    • All "Core Courses" below are mandatory and count toward the 15 units requirement.
    • At least 6 of the required 15 units should be from the "Track Courses" category below.
    • All courses that can be taken for a quality grade (i.e., ABC grading, not P/N) must be taken for a quality grade to count toward the CE PhD degree. Courses with grades of Pass (P) taken in the Spring 2020 quarter will count toward the course requirements of the PhD degree in Computer Engineering. COMP_ENG 590-0 Research can be taken as a P/N course.

Core Courses (1 unit)

Course Title
COMP_ENG 361-0
Computer Architecture I

Track Courses (6 units)

  • These courses must fulfill at least three of the six tracks.
  • A track is fulfilled when the student completes at least two of the track’s courses. The Computer Architecture track requires only one additional course to be completed in addition to COMP_ENG 361-0 Computer Architecture I.
  • A course that is listed in two different tracks can fulfill both track requirements, but can be counted only once toward the 6 units.
  • Additional 300- level and above courses can fulfill track requirements with the consent of the student's adviser and the Director of Graduate Studies in Computer Engineering. 
Course Title
Track A. Digital Design & VLSI
COMP_ENG 303-0
Advanced Digital Design
COMP_ENG 355-0
ASIC and FPGA Design
COMP_ENG 357-0
Design Automation in VLSI
COMP_ENG 391-0
CMOS VLSI Circuit Design
COMP_ENG 393-0
Advanced Low Power VLSI and Mixed-signal IC Design
COMP_ENG 459-0
VLSI Algorithmics
COMP_ENG 493-0
Advanced Low Power VLSI and Mixed-signal IC Design
Course Title
Track B. Embedded Systems
COMP_ENG 346-0
Microprocessor System Design
COMP_ENG 347-1
Microprocessor Systems Project I
COMP_ENG 347-2
Microprocessor Systems Project II
COMP_ENG 364-0
CyberPhysical Systems Design and Application
COMP_ENG 365-0
Internet-of-things Sensors, Systems, And Applications
COMP_ENG 366-0
Embedded Systems
COMP_ENG 464-0
Cyber-Physical Systems Design and Application
COMP_ENG 465-0
Internet-of-things Sensors, Systems, And Applications
COMP_ENG 466-0
Embedded Systems
ELEC_ENG 390-0
Introduction to Robotics
Course Title
Track C. Computer Architecture
The Computer Architecture track requires only one course from the list below to be completed.
COMP_ENG 368-0
Programming Massively Parallel Processors with CUDA
COMP_ENG 452-0
Adv Computer Architecture
COMP_ENG 453-0
Parallel Architectures
COMP_ENG 468-0
Programming Massively Parallel Processors with CUDA
Course Title
Track D. Software Systems
COMP_SCI 321-0
Programming Languages
COMP_SCI 322-0
Compiler Construction
COMP_SCI 323-0
Code Analysis and Transformation
COMP_SCI 339-0
Introduction to Database Systems
COMP_SCI 340-0
Introduction to Networking
COMP_SCI 343-0
Operating Systems
COMP_SCI 345-0
Distributed Systems
COMP_SCI 351-1
Introduction to Computer Graphics
COMP_SCI 354-0
Computer System Security
COMP_SCI 446-0
Kernel and Other Low-level Software Development
Course Title
Track E. Parallel and Distributed Systems
COMP_ENG 329-0
The Art of Multicore Concurrent Programming
COMP_ENG 358-0
Introduction to Parallel Computing
COMP_ENG 368-0
Programming Massively Parallel Processors with CUDA
COMP_ENG 395-0
Special Topics in Computer Engineering (Blockchain and Cryptocurrency)
COMP_ENG 453-0
Parallel Architectures
COMP_ENG 468-0
Programming Massively Parallel Processors with CUDA
COMP_SCI 340-0
Introduction to Networking
COMP_SCI 345-0
Distributed Systems
ELEC_ENG 333-0
Introduction to Communication Networks
Course Title
Track F. Algorithms
COMP_ENG 356-0
Introduction to Formal Specification & Verification
COMP_ENG 459-0
VLSI Algorithmics
COMP_ENG 510-0
Seminar (Social Media Mining)
COMP_SCI 336-0
Design & Analysis of Algorithms
ELEC_ENG 332-0
Introduction to Computer Vision
ELEC_ENG 390-0
Introduction to Robotics
IEMS 450-1
Mathematical Optimization I
IEMS 450-2
Mathematical Optimization II
IEMS 457-0
Integer Programming

Other PhD Degree Requirements

  • Advising Requirement: students admitted to the Computer Engineering PhD program must secure a permanent research faculty advisor by the end of the 3rd quarter of study (typically the end of the spring quarter). The student-advisor pairing must be officially declared through GSTS. The permanent research faculty advisor must be a Computer Engineering faculty member.
  • Teaching Requirement
  • Admission to PhD Candidacy through coursework or oral qualifier examination
  • Annual Academic Standing Review
  • Prospectus Examination
  • Dissertation and Defense

Additional requirements and processes are detailed in the Computer Engineering Graduate Study Guide and The Graduate School Policy Guide.

 

Last Updated: September 12, 2023