Course Requirements
The Computer Engineering MS and Certificate Programs define four core courses, from the published list below, which must be taken to complete the program. Because computer engineering which, as a field, combines expertise in computer architecture, computer software and computer networking, students must take at least one core course in each of these three areas. A list of core courses will be included in the ECE and CS graduate handbook every year and also on this website.
Computer Engineering Core Courses
Computer Networking
- EE 129 Computer Communication Networks
- EE 153 Networked Embedded Systems
- CS 112 Networks
Computer Architecture
- EE 201 Fundamentals of Computer Systems and Engineering
- EE 126 Computer Architecture [cross-listed as CS 146]
- EE 152 Real-time Embedded Systems
- EE 155 Parallel Computing [cross-listed as CS 122]
- EE 156 Advanced Topics in Computer Architecture [cross-listed as CS 140]
- EE 165 Digital Design Verification
- EE 166 Digital IC Design FPGAs
Computer Software Systems
- EE 200 Machine-Centric Approach to Programming
- EE 150 Software Engineering for Regulated Industries
- EE 152 Real-time Embedded Systems
- CS 111 Operating Systems [cross-listed as EE 128]
- CS 115 Database Systems
- CS 116 Computer Systems Security
- CS 118 Cloud Computing
- CS 181 Compliers
Other Core
- EE 103 Introduction to VLSI Design
- EE 127 Information Theory
- CS 135 Intro to Machine Learning
- CS 160 Algorithms
Description of Bridge Courses
For students whose undergraduate preparation did not cover core computer engineering material, we recommend taking one or both of the following bridge courses. Please talk to your advisor for details. Only one bridge course can count as one of the four computer engineering core courses.
EE200: A Machine-Centric Approach to Programming, Data Structures and Algorithms (3 SHUs)
Programming in C and C++ with coverage of data structures (linked lists, binary trees, hash tables, graphs), abstract data types (stacks, queues, maps, sets) and algorithms (sorting, graph search, minimal spanning tree). Efficiency of these structures and algorithms is compared via Big-O analysis. Brief coverage of concurrent (multi-threaded) programming. Object-oriented design: inheritance, templates and virtual methods. Emphasis is placed on embedded, high-performance and close-to-hardware applications. We also stress defensive coding and use of standard UNIX development tools. This course will give students the background necessary for advanced courses and project work in computer engineering.
Requirements: graduate status
EE201: Fundamentals of Computer Systems and Engineering (3 SHUs)
Fundamentals of digital systems and computer architecture for master's students whose undergraduate background did not cover this material. Topics covered include digital logic, assembly programming, computer architecture, memory hierarchies and technologies, IO, hardware implementation in VHDL, operating systems and networking. Analysis and hands-on implementation of complex digital systems.
Requirements: graduate status.