MS in Computer Engineering

The Master of Science (MS) program in Computer Engineering is designed to prepare students for technically demanding careers in industry as well as for post-master’s graduate studies in Computer Engineering or related fields. More specifically:

  • It allows students to take up to 28 credits of advanced engineering courses of structured and rigorous content in preparation for careers in industry as well as for entry into PhD programs in Computer Engineering and related areas.
  • It requires students to build depth in an Computer Engineering specialization, selected from areas such as hardware and computer architecture, computer communications and networks, and software.
  • It requires students to perform 4 to 8 credits of independent research in the form of a thesis or a research project.
  • It affords students the opportunity to flexibly choose at least 8 credits of graduate electives to explore technical or professional interests within engineering.
  • It requires you to perform independent research as part of the degree program; this may be attractive to you if (a) you desire additional research experience before deciding whether or not to pursue a doctoral degree, or (b) you are contemplating a research-intensive career directly after obtaining your MS.

Admission to the MS in Computer Engineering program is based on the same academic standards as the MEng in Computer Engineering with regard to standardized tests, undergraduate GPA, and undergraduate coursework preparation.

Curriculum

The MS curriculum in Computer Engineering requires completion of 32 graduate-level credits, while satisfying a specialization requirement of 8 to 16 credits, a thesis or research project requirement of 4 credits, and the remaining credits from a broad range of graduate electives. The credits of a course can only be used to fulfill the MS requirements if the student receives a grade of C or better in the course. Students should also maintain a cumulative GPA of 3.0 across all graduate-level courses taken while enrolled in the MS program.

The specialization requirement is met by taking four structured graduate courses from a specialization. Students with appropriate prerequisites may petition to use two 700-level courses to meet the specialization requirement.

The thesis or research project requirement is met by either submitting an approved MS thesis or by completing a departmentally approved MS research project.

The graduate electives can be electrical & computer engineering (ECE) graduate courses, non-ECE College of Engineering graduate courses, or College of Arts & Sciences graduate courses in scientific/technical areas. You must obtain a grade of C or better in each graduate elective. Graduate electives may include at most 8 credits of courses at the 9XX level.

MS Specialization Areas in Computer Engineering

The course listings for the various MS specialization areas in Computer Engineering are given below. Please consult the ECE Department for the most current updates to these listings.

Hardware and Computer Architecture

  • ENG EC 513 Computer Architecture
  • ENG EC 535 Introduction to Embedded Systems
  • ENG EC 551 Advanced Digital Design with Verilog and FPGA
  • ENG EC 561 Error-Control Codes
  • ENG EC 571 VLSI Principles and Applications
  • ENG EC 580 Modern Active Circuit Design
  • ENG EC 582 RF/Analog IC Design Fundamentals
  • ENG EC 713 Parallel Computer Architecture
  • ENG EC 749 Interconnection Networks for Multicomputers
  • ENG EC 751 Design of Asynchronous Circuit and Systems
  • ENG EC 752 Theory of Computer Hardware Testing
  • ENG EC 753 Fault-Tolerant Computing
  • ENG EC 757 Advanced Microprocessor Design
  • ENG EC 772 VLSI Graduate Design Project
  • ENG EC 782 RF/Analog IC Design

Computer Communications and Networks

  • ENG EC 505 Stochastic Processes
  • ENG EC 515 Digital Communication
  • ENG EC 524/ME 524 Optimization Theory and Methods
  • ENG EC 534 Discrete Stochastic Models
  • ENG EC 541 Computer Communication Networks
  • ENG EC 544 Networking the Physical World
  • ENG EC 561 Error-Control Codes
  • ENG EC 715 Wireless Communications
  • ENG EC 724/ME 724 Advanced Optimization Theory and Methods
  • ENG EC 725/ME 725 Queuing Systems
  • ENG EC 727 Advanced Coding Theory
  • ENG EC 733 Discrete Event and Hybrid Systems
  • ENG EC 744 Mobile Ad Hoc Networking and Computing
  • ENG EC 749 Interconnection Networks for Multicomputers
  • ENG EC 761 Information Theory and Coding
  • ENG EC 741 Randomized Network Algorithms

Software

  • ENG EC 504 Advanced Data Structures
  • ENG EC 511 Software Systems Design
  • ENG EC 512 Enterprise Client-Server Software Systems Design
  • ENG EC 518 Software Project Management
  • ENG EC 521 Cybersecurity
  • ENG EC 535 Introduction to Embedded Systems
  • ENG EC 544 Networking the Physical World
  • ENG EC 712 Advanced Software for Computer Engineers
  • ENG EC 728 Design and Testing for Distributed Software-Intensive Systems

Cyber Security

  • ENG EC 504 Advanced Data Structures
  • ENG EC 512 Enterprise Client-Server Software Systems Design
  • ENG EC 521 Cybersecurity
  • ENG EC 541 Computer Communication Networks
  • CAS CS 538 Fundamentals of Cryptography
  • CAS CS 548 Advanced Cryptography
  • CAS CS 558 Computer Networks Security