Computer Engineering master of science degree

90d2fd62-5870-4372-9a0f-29c3c355dc80 | 128955

Overview

The computer engineering master's degree emphasizes the adoption of design methodology and the application of sophisticated engineering tools to the design and development of computer-integrated systems.


The computer engineering masters focuses on the design and development of computer and computer-integrated systems, with consideration to such engineering factors as function, performance, security, and sustainability. Computer engineers design and build these systems to meet application and system requirements with attention to the hardware-software interaction. The program emphasizes the careful adoption of design methodology and the application of sophisticated engineering tools. The intensive programming and laboratory work requirements ensure significant, high level, specialized knowledge and experience with modern facilities and state-of-the-art design tools.

The MS degree in computer engineering provides students with a high level of specialized knowledge in computer engineering, strengthening their ability to successfully formulate solutions to current technical problems, and offers a significant independent learning experience in preparation for further graduate study or for continuing professional development at the leading edge of the discipline. The program accommodates applicants with undergraduate degrees in computer engineering or related programs such as electrical engineering or computer science. (Some additional bridge courses may be required for applicants from undergraduate degrees outside of computer engineering).

Program goals

The MS in computer engineering prepares graduate students to:

  • demonstrate independent learning, which is necessary in order to update their skills in a changing workplace and economy, and
  • successfully formulate solutions to current technical problems in computer engineering or related disciplines.

Plan of study

The degree requires 30 semester credit hours and includes Analytical Topics in Computer Engineering (CMPE-610), two flexible core courses, four to six graduate electives, one semester of graduate seminar, and the option of completing either a thesis or a graduate project. The core courses and graduate electives provide breadth and depth of knowledge. The Computer Engineering Graduate Seminar (CMPE-795) exposes students to a variety of topics presented by researchers from within RIT, industry, and other universities, and guides students to choose either a thesis or project as their culminating experience.

Students who pursue the thesis option complete nine semester credit hours of thesis research (CMPE-790) with a faculty adviser in order to answer a fundamental science/engineering question that contributes to new knowledge in the field. Students formulate the problem under the faculty adviser's guidance and conduct extensive quantitative or qualitative analyses with sound methodology. Research findings should be repeatable and generalizable, with sufficient quality to make them publishable in technical conferences and/or journals.

Students who pursue the project option take six credits of graduate electives directly related to their project deliverables and three credits of Graduate Project (CMPE-792), which requires students to professionally execute a project under the supervision of a faculty adviser. The project generally addresses an immediate and practical problem, a scholarly undertaking that can have tangible outcomes, where students are expected to give a presentation or demonstration of the final deliverables of the project.

Research tracks/Flexible core/Graduate electives
Flexible core

Students must select one course from each of the following flexible core clusters.

Computer architecture and digital design

CMPE-630 Digital IC Design
CMPE-660 Reconfigurable Computing
CMPE-755 High Performance Architecture

Computing, communications, and algorithms

CMPE-670 Data and Communication Networks
CMPE-655 Multiple Processor Systems
CMPE-677 Machine Intelligence

Graduate electives

Students may select four to six graduate electives. At least two electives must be from the computer engineering department (courses that begin with the prefix CMPE). Students must consult with their adviser and obtain department approval for using other graduate-level courses as electives. Research tracks are available in the following areas:

Advanced computer architecture—Computer architecture deals with hardware resource management, instruction set architectures and their close connection with the underlying hardware, and the interconnection and communication of those hardware components. Some of the current computer architecture challenges that are being tackled in the computer engineering department include energy efficient architectures, high performance architectures, graphic processing units (GPUs), reconfigurable hardware, chip multiprocessors, and Networks-on-Chips.

Computer vision and machine intelligence—Visual information is ubiquitous and ever more important for applications such as robotics, health care, human-computer interaction, biometrics, surveillance, games, entertainment, transportation, and commerce. Computer vision focuses on extracting information from image and video data for modeling, interpretation, detection, tracking, and recognition. Machine intelligence methods deal with human-machine interaction, artificial intelligence, agent reasoning, and robotics. Algorithm development for these areas spans image processing, pattern recognition, and machine learning, and is intimately related to system design and hardware implementations.

Digital systems—Next generation computing systems demand high computational density, intelligence on the device, small form factor, low energy dissipation, and high performance . This is enabled by the integration of CMOS and emerging technologies at the massive-scale. Digital systems research focuses on designing energy efficient architectures; neuromorphic computing systems; 3D architectures; power and thermal management; and studying the applicability of emerging technologies for new AI platforms.

Networks and security—The prevalence of interconnected computing, sensing, and actuating devices have transformed our way of life. Ubiquitous access to data using/from these devices with reliable performance as well as security assurance presents exciting challenges for engineers and scientists. Resilient to environmental uncertainty, system failures, and cyber attacks requires advances in hardware, software, and networking techniques. The research track in networks and security focuses on intelligent wireless and sensor networks, cryptographic engineering, and predictive cyber situation awareness.

Signal processing and controls —This research area is concerned with algorithms and devices used at the core of systems that interact with our physical world. As such, this area considers the sensing, analysis, and modeling of dynamic systems with the intent of measuring information about a system, communicating this information, and processing it to adapt its behavior. Application areas are robust feedback-based control where uncertainty in the dynamics and environment must be considered during the design process and signal processing algorithms and devices for system sensing and adaptation.

Additional graduate-level math courses

Additional math courses also may be used as electives. Students must consult with their adviser and obtain department approval for using these or other graduate-level math courses towards electives.

Industries


  • Aerospace

  • Insurance

  • Government (Local, State, Federal)

  • Internet and Software

  • Defense

  • Electronic and Computer Hardware

  • Manufacturing

Typical Job Titles

Software Engineer Embedded Firmware Engineer
Junior Analyst Programmer Software Applications Engineer
Software Developer Systems Engineer
Test Engineer

89%

outcome rate of graduates

$84k

median first-year salary of graduates

Latest News

  • December 4, 2018

    Headshot of Andreas Savakis

    RIT researcher working to improve aerial tracking

    Andreas Savakis, a professor of computer engineering, is developing the technology for improved visual tracking system that can more accurately locate and follow moving objects under surveillance.
  • November 20, 2018

    Giving computers a better brain

    Next-generation computing systems modeled after the human brain’s information processing capability and energy efficiency are becoming a reality through work by Dhireesha Kudithipudi.

Curriculum

Computer engineering (thesis option), MS degree, typical course sequence

Course Sem. Cr. Hrs.
First Year
CMPE-610
Analytical Topics in Computer Engineering
This course begins by reviewing signal and system analysis techniques for analyzing linear systems. It includes Fourier techniques and moves on to present fundamental computational techniques appropriate for a number of applications areas of computer engineering. Other topics include symbolic logic and optimization techniques.
3
 
Flexible Core Course†
3
Choose two of the following flexible core courses:
6
  CMPE-630
   Digital Integrated Circuit Design
This course will cover the basic theory and techniques of Digital Integrated Circuit Design in CMOS technology. Topics include CMOS transistor theory and operation, design and implementation of CMOS circuits, fabrication process, layout and physical design, delay and power models, static and dynamic logic families, testing and verification, memory and nanoscale technologies. Laboratory assignments and project facilitate in hands-on learning of circuit-level design and simulation, layout and parasitic extractions, pre and post-layout verification and validation, full-custom flow and Synthesis based flow, using industry standard CAD tools.
 
  CMPE-655
   Multiple Processor Systems
The course introduces basic concepts of parallel and high-performance computing and current methodologies and trends in the design and programming of multiprocessor systems. Theoretical models of parallel computing and performance metrics are studied and contrasted with practical parallel system architectures, programming environments, and benchmarking techniques. Parallel architectures are classified according to mode and degree of parallelism, memory organization, and type and typology of interconnection networks used in the design. The suitability of various architectures in meeting demands is studied in depth including the study of representative examples of current commercial machines. Students will complete programming assignments on a parallel computer illustrating practical issues. A review and analysis of a commercial parallel processor system or an active research area is required; written review presented in class.
 
  CMPE-660
   Reconfigurable Computing
The objective of this course is to present the foundations of reconfigurable computing methodologies from both hardware and software perspectives. Topics covered are: architectures of modern field programmable gate arrays (FPGAs), digital system design methodologies using FPGAs, hardware-software co-design with embedded processors, hardware optimization techniques, system level integration under operating system, dynamic reconfiguration. Laboratory projects in which students will acquire a solid capability of Xilinx CAD tools and FPGA devices are required. The projects include the whole design flow: design of the system, VHDL modeling, software and hardware development, FPGA verification.
 
  CMPE-670
   Data and Communication Network
This course will give an overview of the technologies, architectures and protocols used to build various types of computer and communication networks - wired or wireless. The emphasis will be placed on discussions of various network design problems and solution approaches. Specific issues covered in this course include: framing and coding, error detection, multiple access control, addressing, routing, flow and congestion control, scheduling and switching.
 
  CMPE-685
   Computer Vision
This course covers both fundamental concepts and the more advanced topics in Computer Vision. Topics include image formation, color, texture and shape analysis, linear filtering, edge detection and segmentation. In addition, students are introduced to more advanced topics, such as model based vision, object recognition, digital image libraries and applications. Homework, literature reviews and programming projects are integrated with lectures to provide a comprehensive learning experience.
 
CMPE-790
Thesis and Project Initiation Seminar
Thesis research investigates an independent problem to demonstrate professional maturity. A formal written thesis and an oral defense are required. The student must obtain the approval of an appropriate faculty adviser to guide the thesis before registering.
0
CMPE-796
Thesis and Project Initiation Seminar
The objective of this seminar is to engage the students in the preparation and completion of their thesis Proposal. The students will learn about the resources available at RIT to support their work as well as general guidelines and practices that should lead to a good thesis proposal.
0
 
Graduate Electives*
9
Second Year
CMPE-790
Thesis
Thesis research investigates an independent problem to demonstrate professional maturity. A formal written thesis and an oral defense are required. The student must obtain the approval of an appropriate faculty adviser to guide the thesis before registering.
9
 
Graduate Elective
3
Total Semester Credit Hours
30

† Students may choose one of the following courses to fulfill this requirement: Digital IC Design (CMPE-630), Multiple Processor Systems (CMPE-655), Reconfigurable Computing (CMPE-660), Data and Communications Networks (CMPE-670), or Computer Vision (CMPE-685).

Computer engineering (project option), MS degree, typical course sequence

Course Sem. Cr. Hrs.
First Year
CMPE-610
Analytical Topics in Computer Engineering
This course begins by reviewing signal and system analysis techniques for analyzing linear systems. It includes Fourier techniques and moves on to present fundamental computational techniques appropriate for a number of applications areas of computer engineering. Other topics include symbolic logic and optimization techniques.
3
Choose two of the following flexible core courses:
6
  CMPE-630
   Digital Integrated Circuit Design
This course will cover the basic theory and techniques of Digital Integrated Circuit Design in CMOS technology. Topics include CMOS transistor theory and operation, design and implementation of CMOS circuits, fabrication process, layout and physical design, delay and power models, static and dynamic logic families, testing and verification, memory and nanoscale technologies. Laboratory assignments and project facilitate in hands-on learning of circuit-level design and simulation, layout and parasitic extractions, pre and post-layout verification and validation, full-custom flow and Synthesis based flow, using industry standard CAD tools.
 
  CMPE-655
   Multiple Processor Systems
The course introduces basic concepts of parallel and high-performance computing and current methodologies and trends in the design and programming of multiprocessor systems. Theoretical models of parallel computing and performance metrics are studied and contrasted with practical parallel system architectures, programming environments, and benchmarking techniques. Parallel architectures are classified according to mode and degree of parallelism, memory organization, and type and typology of interconnection networks used in the design. The suitability of various architectures in meeting demands is studied in depth including the study of representative examples of current commercial machines. Students will complete programming assignments on a parallel computer illustrating practical issues. A review and analysis of a commercial parallel processor system or an active research area is required; written review presented in class.
 
  CMPE-660
   Reconfigurable Computing
The objective of this course is to present the foundations of reconfigurable computing methodologies from both hardware and software perspectives. Topics covered are: architectures of modern field programmable gate arrays (FPGAs), digital system design methodologies using FPGAs, hardware-software co-design with embedded processors, hardware optimization techniques, system level integration under operating system, dynamic reconfiguration. Laboratory projects in which students will acquire a solid capability of Xilinx CAD tools and FPGA devices are required. The projects include the whole design flow: design of the system, VHDL modeling, software and hardware development, FPGA verification.
 
  CMPE-670
   Data and Communication Network
This course will give an overview of the technologies, architectures and protocols used to build various types of computer and communication networks - wired or wireless. The emphasis will be placed on discussions of various network design problems and solution approaches. Specific issues covered in this course include: framing and coding, error detection, multiple access control, addressing, routing, flow and congestion control, scheduling and switching.
 
  CMPE-685
   Computer Vision
This course covers both fundamental concepts and the more advanced topics in Computer Vision. Topics include image formation, color, texture and shape analysis, linear filtering, edge detection and segmentation. In addition, students are introduced to more advanced topics, such as model based vision, object recognition, digital image libraries and applications. Homework, literature reviews and programming projects are integrated with lectures to provide a comprehensive learning experience.
 
CMPE-795
Graduate Seminar
The graduate seminar prepares graduate students to effectively conduct their thesis research and expose them to current research in various areas of computer engineering. Current literature topics are reviewed through interactive presentations and discussions.
0
 
Graduate Electives*
9
Second Year
CMPE-792
Graduate Project
Graduate Project is a scholarly undertaking that addresses an immediate and practical problem with tangible outcomes. A formal report, presentation, or demonstration is required. The student must obtain the approval of an appropriate faculty adviser to guide the project before registering.
3
 
Project Focus Electives
6
 
Graduate Elective
3
Total Semester Credit Hours
30

† Students may choose one of the following courses to fulfill this requirement: Digital IC Design (CMPE-630), Multiple Processor Systems (CMPE-655), Reconfigurable Computing (CMPE-660), Data and Communications Networks (CMPE-670), or Computer Vision (CMPE-685).

Computer architecture
Course
CMPE-655
Multiple Processor Systems
The course introduces basic concepts of parallel and high-performance computing and current methodologies and trends in the design and programming of multiprocessor systems. Theoretical models of parallel computing and performance metrics are studied and contrasted with practical parallel system architectures, programming environments, and benchmarking techniques. Parallel architectures are classified according to mode and degree of parallelism, memory organization, and type and typology of interconnection networks used in the design. The suitability of various architectures in meeting demands is studied in depth including the study of representative examples of current commercial machines. Students will complete programming assignments on a parallel computer illustrating practical issues. A review and analysis of a commercial parallel processor system or an active research area is required; written review presented in class.
CMPE-660
Reconfigurable Computing
The objective of this course is to present the foundations of reconfigurable computing methodologies from both hardware and software perspectives. Topics covered are: architectures of modern field programmable gate arrays (FPGAs), digital system design methodologies using FPGAs, hardware-software co-design with embedded processors, hardware optimization techniques, system level integration under operating system, dynamic reconfiguration. Laboratory projects in which students will acquire a solid capability of Xilinx CAD tools and FPGA devices are required. The projects include the whole design flow: design of the system, VHDL modeling, software and hardware development, FPGA verification.
CMPE-655
Performance Engineering of Real-time and Embedded Systems
The course introduces basic concepts of parallel and high-performance computing and current methodologies and trends in the design and programming of multiprocessor systems. Theoretical models of parallel computing and performance metrics are studied and contrasted with practical parallel system architectures, programming environments, and benchmarking techniques. Parallel architectures are classified according to mode and degree of parallelism, memory organization, and type and typology of interconnection networks used in the design. The suitability of various architectures in meeting demands is studied in depth including the study of representative examples of current commercial machines. Students will complete programming assignments on a parallel computer illustrating practical issues. A review and analysis of a commercial parallel processor system or an active research area is required; written review presented in class.
CMPE-731
Design and Testing of Multi-core Chips
Massive levels of integration following Moore’s Law is making modern multi-core chips all-pervasive in several domains ranging from scientific applications like weather forecasting, astronomical data analysis, bioinformatics applications to even consumer electronics. This course introduces students to current and future trends in IC Design. Students learn to identify bottlenecks in designing state-of-the-art multicore System-on-Chips (SoCs) and propose solutions to such design challenges from a cross-layer perspective spanning multiple levels of abstraction in the design process. Low-power and high-speed testing of multicore chips is an important design issue in Design for Testability (DFT) of such massive multicore systems. In this course students learn various issues and solutions to ongoing challenges in SoC testing. The instruction will rely on lectures, textbooks, seminal and cutting edge publication articles and term projects. Students will be evaluated based on homework assignments, class presentations, examinations and projects.
CMPE-750
Advanced Computer Architecture
The goal of this course is to acquire a good understanding of important current and emerging design techniques, machine structures, technology factors, and evaluation methods that will determine the form of high-performance advanced programmable processor architectures in the 21st Century. The topics covered include Simultaneous Multithreading (SMT), Vector Processing, Digital Signal Processing (DSP), Media Architectures and Processors, Re-Configurable Computing and Processors, Advanced Branch Prediction Techniques, and Redundant Arrays of Disks (RAID). The course also provides an introduction to the main concepts of parallelism including single-chip multiprocessors.
CMPE-755
High Performance Architectures
This course will focus on learning and understanding the available hardware options to satisfy the needs of high performance and computational intensive applications. Special attention will be paid to single platform massively parallel devices, their programming and efficient use of the hardware resources. The course will include hands on work with the actual device, lab work, and technical reports and conference paper reading as a relevant source information.
CSCI-652
Distributed Systems
An introduction to the study of distributed systems. The course covers distributed system architectures such as client-server and peer-to-peer, distributed system design issues such as communication, fault tolerance, coordination, and deadlock, distributed system middleware such as remote method invocation (RMI) and tuple space, and the theory of distributed algorithms such as logical clocks and leader election. Programming projects are required.
CSCI-654
Foundations of Parallel Computing
This course is a study of the hardware and software issues in parallel computing. Topics include an introduction to the basic concepts, parallel architectures and network topologies, parallel algorithms, parallel metrics, parallel languages, granularity, applications, parallel programming design and debugging. Students will become familiar with various types of parallel architectures and programming environments.
CSCI-742
Compiler Construction
This course discusses design and implementation of language processors and translators. Topics include lexical, syntactic, and semantic descriptions, algorithms for analysis tools, and programming techniques, as well as interpreters and code generation for typical computer architectures. Teams of students will be required to design and implement a programming language with nested block structure and data aggregates.
Computer vision and machine intelligence
Course
CMPE-680
Digital Image Processing Algorithms
Emphasizes both theory and implementation of image processing algorithms. Two- dimensional filtering, sampling, and transforms are introduced and used for image enhancement, compression, restoration, segmentation, and applications in color and video processing. Project assignments involve Matlab implementation of algorithms and paper reviews.
CMPE-685
Computer Vision
This course covers both fundamental concepts and the more advanced topics in Computer Vision. Topics include image formation, color, texture and shape analysis, linear filtering, edge detection and segmentation. In addition, students are introduced to more advanced topics, such as model based vision, object recognition, digital image libraries and applications. Homework, literature reviews and programming projects are integrated with lectures to provide a comprehensive learning experience.
CSCI-713
Applied Perception in Graphics and Visualization
The goal of this course is to introduce students to the field of applied perception in graphics and visualization and demonstrate how it has contributed to the development of better display systems and computer graphics rendering techniques. The delivery of the course material will be done primarily through lectures with biweekly programming assignments based upon the techniques presented in class. Students will also be exposed to a wide range of technical papers and be expected to make classroom presentations on selected topics in the field of applied perception in graphics and visualization.
CSCI-715
Applications in Virtual Reality
This course will investigate the application of virtual reality software and technology within a given domain. Working in sets of technical teams, students will collectively investigate and solve a large-scale visualization task within that problem domain. Focus of individual student teams may include (but is not limited to) distributed VR framework, viewing applications, interaction with VR devices / displays, and audio in virtual environments. Students will be required to read and summarize selected articles from VR literature, as well as papers specific to the problem domain being investigated, to assist in making design decisions. A report or survey of one aspect of using a virtual reality system within the given domain is also required. Students should have a strong programming background and a proficiency in a 3D API (OpenGL, DirectX, or Java3D). Students with expertise in distributed systems and an interest in Graphics or virtual reality are also encouraged to register. Offered every other year.
CSCI-719
Topics in Computer Graphics
This course examines current topics in Computer Graphics. This is intended to allow faculty to pilot potential new graduate offerings. Specific course details (such as prerequisites, course topics, format, learning outcomes, assessment methods, and resource needs) will be determined by the faculty member(s) who propose a specific topics course in this area. Specific course instances presented will be identified as belonging to the Computer Graphics and Visualization cluster.
CSCI-720
Big Data Analytics
This course provides a graduate-level introduction to the concepts and techniques used in data mining. Topics include the knowledge discovery process; prototype development and building data mining models; current issues and application domains for data mining; and legal and ethical issues involved in collecting and mining data. Both algorithmic and application issues are emphasized to permit students to gain the knowledge needed to conduct research in data mining and apply data mining techniques in practical applications. Data mining projects, a term paper, and presentations are required.
CSCI-731
Advanced Computer Vision
This course examines advanced topics in computer vision including motion analysis, video processing and model based object recognition. The topics will be studied with reference to specific applications, for example video interpretation, robot control, road traffic monitoring, and industrial inspection. A research paper, an advanced programming project, and a presentation will be required.
EEEE-647
Artificial Intelligence Explorations
The course will start with the history of artificial intelligence and its development over the years. There have been many attempts to define and generate artificial intelligence. As a result of these attempts, many artificial intelligence techniques have been developed and applied to solve real life problems. This course will explore variety of artificial intelligence techniques, and their applications and limitations. Some of the AI techniques to be covered in this course are intelligent agents, problem-solving, knowledge and reasoning, uncertainty, decision making, learning (Neural networks and Bayesian networks), reinforcement learning, swarm intelligence, Genetic algorithms, particle swarm optimization, applications in robotics, controls, and communications. Students are expected to have any of the following programming skills listed above. Students will write an IEEE conference paper.
EEEE-670
Pattern Recognition
This course provides a rigorous introduction to the principles and applications of pattern recognition. The topics covered include maximum likelihood, maximum a posteriori probability, Bayesian decision theory, nearest-neighbor techniques, linear discriminant functions, and clustering. Parameter estimation and supervised learning as well as principles of feature selection, generation and extraction techniques, and utilization of neural nets are included. Applications to face recognition, classification, segmentation, etc. are discussed throughout the course.
EEEE-685
Principles of Robotics
An introduction to a wide range of robotics-related topics, including but not limited to sensors, interface design, robot devices applications, mobile robots, intelligent navigation, task planning, coordinate systems and positioning image processing, digital signal processing applications on robots, and controller circuitry design. Pre- requisite for the class is a basic understanding of signals and systems, matrix theory, and computer programming. Software assignments will be given to the students in robotic applications. Students will prepare a project, in which they will complete software or hardware design of an industrial or mobile robot. There will be a two-hour lab additional to the lectures. Students are required to write an IEEE conference paper on their projects.
EEEE-780
Digital Video Processing
EEEE-781
Image and Video Compression
This course studies the fundamental technologies used in image and video compression techniques and international standards such as JPEG and MPEG. At the highest level, all visual data compression techniques can be reduced to three fundamental building blocks: transformation or decomposition (examples are discrete cosine transform or DCT, wavelets, differential pulse code modulation or DPCM and motion compensation), quantization (strategies include scalar vs. vector quantization, uniform vs. nonuniform, Lloyd-Max and entropy-constrained quantization) and symbol modeling and encoding (the concept of Markov source and its entropy, context modeling, variable length coding techniques such as Huffman and arithmetic coding and Golomb-Rice coding). This course studies all of these fundamental concepts in great detail in addition to their practical applications in leading image and video coding standards. The study cases include a comprehensive review of the JPEG lossless compression standard (based on pixel prediction and Huffman coding), the JPEG lossy compression standard (based on DCT and Huffman coding), a detailed study of wavelet decomposition and a brief overview of the MPEG family of standards (employing motion compensation in addition to aforementioned techniques).
IMGS-756
Advanced Digital Image Processing
This course investigates algorithms and techniques for a variety of imaging applications. The techniques build on the background from IMGS-682. The course is taught using a lecture and group project format, in which the lectures focus on advanced techniques and provide applications of their use in selected applications. The group projects enable students to work on substantial designs that require the understanding of the task domain, exploration of solution methods by analysis and prototyping, and implementation of a selected approach. Each team presents a preliminary plan, an approach with feasibility analysis, and a final demonstration.
Integrated circuits and systems
Course
CMPE-630
Digital Integrated Circuit Design
This course will cover the basic theory and techniques of Digital Integrated Circuit Design in CMOS technology. Topics include CMOS transistor theory and operation, design and implementation of CMOS circuits, fabrication process, layout and physical design, delay and power models, static and dynamic logic families, testing and verification, memory and nanoscale technologies. Laboratory assignments and project facilitate in hands-on learning of circuit-level design and simulation, layout and parasitic extractions, pre and post-layout verification and validation, full-custom flow and Synthesis based flow, using industry standard CAD tools.
CMPE-655
Multiple Processor Systems
The course introduces basic concepts of parallel and high-performance computing and current methodologies and trends in the design and programming of multiprocessor systems. Theoretical models of parallel computing and performance metrics are studied and contrasted with practical parallel system architectures, programming environments, and benchmarking techniques. Parallel architectures are classified according to mode and degree of parallelism, memory organization, and type and typology of interconnection networks used in the design. The suitability of various architectures in meeting demands is studied in depth including the study of representative examples of current commercial machines. Students will complete programming assignments on a parallel computer illustrating practical issues. A review and analysis of a commercial parallel processor system or an active research area is required; written review presented in class.
CMPE-730
Advanced Digital Integrated Circuit Design
This course covers techniques for high-performance, low power and reliability in digital integrated circuit design from a systems perspective. Emphasis will be on the most important design challenges, being the impact of scaling, interconnect, signal integrity, power and timing. Presentation and term paper based on current research articles is required. Laboratory assignments are based on real time applications. Design process starting from logic synthesis down to layout synthesis will be covered in the laboratory, with industry standard CAD tools.
CMPE-731
Design and Testing of Multi-core Chips
Massive levels of integration following Moore’s Law is making modern multi-core chips all-pervasive in several domains ranging from scientific applications like weather forecasting, astronomical data analysis, bioinformatics applications to even consumer electronics. This course introduces students to current and future trends in IC Design. Students learn to identify bottlenecks in designing state-of-the-art multicore System-on-Chips (SoCs) and propose solutions to such design challenges from a cross-layer perspective spanning multiple levels of abstraction in the design process. Low-power and high-speed testing of multicore chips is an important design issue in Design for Testability (DFT) of such massive multicore systems. In this course students learn various issues and solutions to ongoing challenges in SoC testing. The instruction will rely on lectures, textbooks, seminal and cutting edge publication articles and term projects. Students will be evaluated based on homework assignments, class presentations, examinations and projects.
CMPE-750
Advanced Computer Architecture
The goal of this course is to acquire a good understanding of important current and emerging design techniques, machine structures, technology factors, and evaluation methods that will determine the form of high-performance advanced programmable processor architectures in the 21st Century. The topics covered include Simultaneous Multithreading (SMT), Vector Processing, Digital Signal Processing (DSP), Media Architectures and Processors, Re-Configurable Computing and Processors, Advanced Branch Prediction Techniques, and Redundant Arrays of Disks (RAID). The course also provides an introduction to the main concepts of parallelism including single-chip multiprocessors.
EEEE-602
Random Signals and Noise
In this course the student is introduced to random variables and stochastic processes. Topics covered are probability theory, conditional probability and Bayes theorem, discrete and continuous random variables, distribution and density functions, moments and characteristic functions, functions of one and several random variables, Gaussian random variables and the central limit theorem, estimation theory , random processes, stationarity and ergodicity, auto correlation, cross-correlation and power spectrum density, response of linear prediction, Wiener filtering, elements of detection, matched filters.
EEEE-610
Analog Electronics
This is a foundation course in analog integrated electronic circuit design and is a perquisite for the graduate courses in analog integrated circuit design EEEE-726 and EEEE-730. The course covers the following topics: (1)CMOS Technology (2) CMOS active and passive element models (3) Noise mechanisms and circuit noise analysis (4) Current mirrors (5) Differential amplifiers, cascade amplifiers (6) Multistage amps and common mode feedback (7) Stability analysis of feedback amplifiers; (8) Advanced current mirrors, amplifiers, and comparators (9) Band gap and translinear cells (10) Matching.
EEEE-620
Design of Digital Systems
The purpose of this course is to expose students to complete, custom design of a CMOS digital system. It emphasizes equally analytical and CAD based design methodologies, starting at the highest level of abstraction (RTL, front-end)), and down to the physical implementation level (back-end). In the lab students learn how to capture a design using both schematic and hardware description languages, how to synthesize a design, and how to custom layout a design. Testing, debugging, and verification strategies are formally introduced in the lecture, and practically applied in the lab projects. Students are further required to choose a research topic in the area of digital systems, perform bibliographic research, and write a research paper following a prescribed format.
EEEE-712
Advanced Field Effect Devices
An advanced-level course on MOSFETs and submicron MOS devices. Topics include MOS capacitors, gated diodes, long-channel MOSFETs, subthreshold conduction and off-state leakage, short-channel effects, hot-carrier effects, MOS scaling and advanced MOS technologies.
EEEE-713
Solid State Physics
An advanced-level course on solid-state physics, with particular emphasis on the electronic properties of semiconductor materials. Topics include crystal structure, wave propagation in crystalline solids, lattice vibrations, elements of quantum mechanics, elements of statistical mechanics, free-electron theory of metals, Boltzmann transport equation, quantum-mechanical theory of carriers in crystals, energy band theory, equilibrium carrier statistics, excess carriers in semiconductors, carrier transport.
EEEE-720
Advanced Topics in Digital Systems Design
In this course the student is introduced to a multitude of advanced topics in digital systems design. It is expected that the student is already familiar with the design of synchronous digital systems. The lecture introduces the operation and design principles of asynchronous digital systems, synchronous and asynchronous, pipelined and wave pipelined digital systems. Alternative digital processing paradigms are then presented: data flow, systolic arrays, networks-on-chip, cellular automata, neural networks, and fuzzy logic. Finally, digital computer arithmetic algorithms and their hardware implementation are covered. The projects reinforce the lectures material by offering a hands-on development and system level simulation experience.
EEEE-726
Mixed Signal IC Design
This is the first course in the graduate course sequence in analog integrated circuit design EEEE-726 and EEEE-730. This course covers the following topics: (1)Fundamentals of data conversion (2) Nyquist rate digital-to-analog converters (3) Quantization noise and analysis (4) Nyquist rate analog-to-digital converters (5) Sample and hold circuits (6) Voltage references (7) Static and dynamic testing of digital-to-analog converters (8) Cell based design strategies for integrated circuits (9)Advanced topics in data conversion.
EEEE-730
Advanced Analog IC Design
This is the second course in the graduate course sequence in analog integrated circuit design EEEE-726 and EEEE-730. This course covers the following topics: (1) Fundamentals of Filter Design (2) Filter Approximations (3) Frequency and Impedance Scaling (4) Delay Equalization (5) Sensitivity Analysis (6) Sampled Data Theory (7) CMOS Integrated Filters including Switched Capacitor and gm-C Filters (8)Phase Locked Loops
Networks and security
Course
CMPE-661
Hardware and Software Design for Cryptographic Applications
The objective of this course is to build knowledge and skills necessary for efficient implementations of cryptographic primitives on reconfigurable hardware. The implementation platform will be a field programmable gate array (FPGA) containing a general purpose processor and additional reconfigurable fabric for implementations of custom hardware accelerators. In the studio format, team projects require design of selected cryptographic primitives followed by comparison and contrast of various implementation alternatives, such as software, custom FPGA hardware, and hybrid hardware-software co-design. Project teams are ideally composed of one Computer Engineering student and one Software Engineering or Computer Science student. Computer Engineering students lead the hardware design portions of each project, and Software Engineering and Computer Science students lead the software development portions. Topics may include binary finite field arithmetic, block ciphers, hash functions, counter mode of operation for block ciphers, public key cryptosystems, hardware/software co-design methodologies with FPGAs, software development and profiling, high level synthesis, on-chip buses, hardware/software interfaces, custom hardware accelerators and side channel attacks.
CMPE-670
Data and Communication Networks
This course will give an overview of the technologies, architectures and protocols used to build various types of computer and communication networks - wired or wireless. The emphasis will be placed on discussions of various network design problems and solution approaches. Specific issues covered in this course include: framing and coding, error detection, multiple access control, addressing, routing, flow and congestion control, scheduling and switching.
CMPE-770
Wireless Networks
This course will give an overview of the technologies, architectures and protocols used to build various types of computer and communication networks - wired or wireless. The emphasis will be placed on discussions of various network design problems and solution approaches. Specific issues covered in this course include: framing and coding, error detection, multiple access control, addressing, routing, flow and congestion control, scheduling and switching.
CSCI-642
Secure Coding
This course provides an introduction to secure coding including topics such as principles of secure coding, security architectures and design, operational practices and testing, programmatic use of cryptography, and defenses against software exploitation. Other topics include software based fault isolation, type-safe languages, certifying compilers; proof-carrying code, and automated program analysis and program rewriting. Programming projects, presentations, and a term paper will be required.
CSCI-662
Foundations of Cryptography
This course provides an introduction to cryptography, its mathematical foundations, and its relation to security. It covers classical cryptosystems, private-key cryptosystems (including DES and AES), hashing and public-key cryptosystems (including RSA). The course also provides an introduction to data integrity and authentication. Note: students who complete CSCI-462 may not take CSCI-662 for credit.
CSCI-720
Big Data Analytics
This course provides a graduate-level introduction to the concepts and techniques used in data mining. Topics include the knowledge discovery process; prototype development and building data mining models; current issues and application domains for data mining; and legal and ethical issues involved in collecting and mining data. Both algorithmic and application issues are emphasized to permit students to gain the knowledge needed to conduct research in data mining and apply data mining techniques in practical applications. Data mining projects, a term paper, and presentations are required.
CSCI-734
Foundations of Security Measurement and Evaluation
The course will introduce students into the algorithmic foundations and modern methods used for security evaluation. It will combine a theoretical revision of the methods and models currently applied for computer security evaluation and an investigation of computer security through study of user's practice. The students will be required to complete a few home assignments, to deliver a class presentation, to implement a team project, to lead the team's work and to undertake research on the topic assigned.
CSCI-735
Foundations of Intelligent Security Systems
The course will introduce students to the application of intelligent methodologies applications in computer security and information assurance system design. It will review different application areas such as intrusion detection and monitoring systems, access control and biological authentication, firewall structure and design. The students will be required to implement a course project on design of a particular security tool with an application of an artificial intelligence methodology and to undertake research and analysis of artificial intelligence applications in computer security.
CSCI-736
Neural Networks and Machine Learning
The course will introduce students into the current state of artificial neural networks. It will review different application areas such as intrusion detection and monitoring systems, pattern recognition, access control and biological authentication, and their design. The students will be required to conduct research and analysis of existing applications and tools as well as to implement a course programming project on design of a specified application based on neural networks and/or fuzzy rules systems.
CSCI-762
Advanced Cryptography
This course investigates advanced topics in cryptography. It begins with an overview of necessary background in algebra and number theory, private- and public-key cryptosystems, and basic signature schemes. The course will cover number theory and basic theory of Galois fields used in cryptography; history of primality algorithms and the polynomial-time test of primality; discrete logarithm based cryptosystems including those based on elliptic curves; interactive protocols including the role of zero-knowledge proofs in authentication; construction of untraceable electronic cash on the net; and quantum cryptography, and one or more of digital watermarking, fingerprinting and stenography. Programming will be required.
CSEC-743
Computer Viruses and Malicious Software
Computer malware is a computer program with malicious intent. In this course, students will study the history of computer malware, categorizations of malware such as computer viruses, worms, Trojan horses, spyware, etc. Other topics include, but are not limited to, basic structures and functions of malware, malware delivery mechanism, propagation models, anti-malware software, its methods and applications, reverse engineering techniques. Students will conduct research to understand the current state of the computer malware defense and offense.
CSEC-744
Network Security
Students will examine the areas of intrusion detection, evidence collection, network auditing, network security policy design and implementation as well as preparation for and defense against attacks. The issues and facilities available to both the intruder and data network administrator will be examined and evaluated with appropriate laboratory exercises to illustrate their effect. The students will be provided with an understanding of the principles and concepts of wired and wireless data network security. Students will perform a series of laboratory or homework experiments in order to explore various mechanisms for securing data networks including physical layer mechanisms, filters, applications and encryption. Students will engage in attack/defend scenarios to test their deployments against other teams. Students should be knowledgeable in networking technologies.
EEEE-602
Random Signals and Noise
In this course the student is introduced to random variables and stochastic processes. Topics covered are probability theory, conditional probability and Bayes theorem, discrete and continuous random variables, distribution and density functions, moments and characteristic functions, functions of one and several random variables, Gaussian random variables and the central limit theorem, estimation theory , random processes, stationarity and ergodicity, auto correlation, cross-correlation and power spectrum density, response of linear prediction, Wiener filtering, elements of detection, matched filters.
EEEE-693
Digital Data Communication
Principles and practices of modern digital data communication systems. Topics include pulse code transmission and error probabilities, M-ary signaling and performance, AWGN channels, band-limited and distorting channels, filter design, equalizers, optimal detection for channels with memory, synchronization methods, non-linear modulation, and introduction to multipath fading channels, spread spectrum and OFDM. Students would perform a basic research assignment consisting of a literature survey, performance analysis and dissemination of results in written and oral presentation.
EEEE-797
Wireless Communication
The course will cover advanced topics in wireless communications for voice, data and multimedia. Topics covered are: 1) Channel modeling: Overview of current wireless systems, modeling wireless channels, path loss for different environments, log-normal shadowing, flat and frequency-selective multipath fading, LS estimation of channel parameters, and capacity limits of wireless communication channels. 2) Transmission over fading channels, 3) Techniques to improve the speed and performance of wireless inks (adaptive modulation and diversity techniques such as maximum gain combining to compensate for flat-fading). 4) Techniques to combat frequency-selective fading (adaptive equalization, space time coding, multicarrier modulation (OFDM), and spread spectrum). 5) Applications for these systems, including the evolution of cell phones and PDAs, sensor networks will be discussed.
NSSA-612
Network Modeling and Analysis
The course provides comprehensive exposition of the core concepts in network modeling and simulation. It will cover both graph theoretical and statistical models of complex networks such as the Internet and social networks. It also introduces different types of modeling techniques and simulation tools. The course also systematically addresses some practical and theoretical considerations for developing complex modeling. It offers real world examples to illustrate the process of modeling to address specific problems.
NSSA-711
Advanced Routing Protocols
Managing complex network environments requires an understanding of the sophisticated routing protocols necessary for controlling information flow. This course will examine the routing protocols in standard use and their application in typical enterprise and large internet service provider (ISP) environments. The advantages and disadvantages of each protocol will be investigated. In addition, emerging wired and wireless routing protocols will also be discussed. Knowledge of networking, systems, and security technologies is necessary.
NSSA-715
Network Design and Performance
This course will examine the design and performance of networks based on the top down approach. Students will learn to design networks based on identified business needs through a phased approach starting with requrements gathering and analysis, technical goals study, logical design, physical design followed by simulating the network and assessing the performance and optimizing the design. The designs include site, campus, and enterprise networks. Wide Area Network (WAN) technologies will be combined with Local Area Network (LAN) technologies in the design of enterprise networks. Students will learn to assess the business goals and their application to the network goals. Given the serious security threst faced in networks today, this course will provide a modular approach to designing security strategies for the network ground up in the design. The significance of network management to a design of a secure and manageable network will be discussed.
Signal processing, control and embedded systems
Course
CMPE-663
Real-time and Embedded Systems
This first course in a graduate elective sequence will begin by presenting a general road map of real-time and embedded systems. The course will be conducted in a studio class/lab format with lecture material interspersed with laboratory work. This course will introduce a representative family of microcontrollers that will exemplify unique positive features as well as limitations of microcontrollers in embedded and real-time systems. These microcontrollers will then be used as external, independent performance monitors of more complex real-time systems. The majority of the course will present material on a commercial real-time operating system and using it for programming projects on development systems and embedded target systems. Some fundamental material on real-time operating systems and multiprocessor considerations for real-time systems will also be presented. Examples include scheduling algorithms, priority inversion, and hardware-software co-design.
CMPE-664
Modeling of Real-time Systems
This course introduces the modeling of real-time software systems. It takes an engineering approach to the design of these systems by analyzing system models before beginning implementation. UML will be the primary modeling methodology. Non-UML methodologies will also be discussed. Implementations of real-time systems will be developed manually from the models and using automated tools to generate the code.
CMPE-665
Performance Engineering of Real-Time and Embedded Systems
This course discusses issues of performance in real-time and embedded systems. Techniques for profiling the resource usage of a system and for measuring the effect of increasing system requirements will be covered. The control of physical systems will motivate the need for performance tuning of a real-time system. Students will write programs running under a real-time operating system that can maintain control of a physical system. The course will discuss and experiment with performance trade-offs that can be made using hardware-software co-design.
EEEE-602
Random Signals and Noise
In this course the student is introduced to random variables and stochastic processes. Topics covered are probability theory, conditional probability and Bayes theorem, discrete and continuous random variables, distribution and density functions, moments and characteristic functions, functions of one and several random variables, Gaussian random variables and the central limit theorem, estimation theory , random processes, stationarity and ergodicity, auto correlation, cross-correlation and power spectrum density, response of linear prediction, Wiener filtering, elements of detection, matched filters.
EEEE-610
Analog Electronics
This is a foundation course in analog integrated electronic circuit design and is a perquisite for the graduate courses in analog integrated circuit design EEEE-726 and EEEE-730. The course covers the following topics: (1)CMOS Technology (2) CMOS active and passive element models (3) Noise mechanisms and circuit noise analysis (4) Current mirrors (5) Differential amplifiers, cascade amplifiers (6) Multistage amps and common mode feedback (7) Stability analysis of feedback amplifiers; (8) Advanced current mirrors, amplifiers, and comparators (9) Band gap and translinear cells (10) Matching.
EEEE-661
Modern Control Theory
This course deals with a complete description of physical systems its analysis and design of controllers to achieve desired performance. The emphasis in the course will be on continuous linear systems. Major topics are: state space representation of physical systems, similarities/differences between input-output representation (transfer function) and state spate representations, conversion of one form to the other, minimal realization, solution of state equations, controllability, observability, design of control systems for desired performance, state feedback, observers and their realizations.
EEEE-733
Robust Control
This course will provide an introduction to the analysis and design of robust feedback control systems. Topics covered: overview of linear algebra and linear systems, H2 and H( spaces, modeling and paradigms for robust control; internal stability; nominal performance (asymptotic tracking); balanced model reduction; uncertainty and robustness; H2 optimal control; H( control; H( loop shaping; controller reduction; and design for robust stability and performance.
EEEE-765
Optimal Control
The course covers different optimization techniques, as applied to feedback control systems. The main emphasis will be on the design of optimal controllers for digital control systems. The major topics are: Different performance indices, formulation of optimization problem with equality constraints, Lagrange multipliers, Hamiltonian and solution of discrete optimization problem. Discrete Linear Quadratic Regulators (LQR), optimal and suboptimal feedback gains, Riccati equation and its solution, linear quadratic tracking problem. Dynamic Programming - Bellman's principle of optimality - Optimal controllers for discrete and continuous systems - Systems with magnitude constraints on inputs and states.
EEEE-768
Adaptive Signal Processing
An introduction to the fundamental concepts of adaptive systems; open and closed loop adaptive systems; adaptive linear combiner; performance function and minimization; decorrelation of error and input signal. Adaptation algorithms such as steepest descent, LMS and LMS/Newton algorithm. Noise and misadjustments. Applications will include system identification, deconvolution and equalization, adaptive arrays and multipath communication channels.
EEEE-793
Error Detection and Error Correction
This course covers linear algebraic block codes, convolutional codes, turbo codes, and low-density parity-check codes. The fundamental structure of linear block code will be developed and applied to performance calculations. The structure of cyclic codes will be developed and applied to encoders and decoders. The major error correction methods, including error trapping, majority logic decoding and the BCH encoder and decoder algorithms will be developed. The Viterbi and sequential decoding algorithms will be studied. Questions of system performance, speed and complexity will be examined.
EEEE-794
Information Theory
This course introduces the student to the fundamental concepts and results of information theory. This is a very important course for students who want to specialize in signal processing, image processing, or digital communication. Topics include definition of information, mutual information, average information or entropy, entropy as a measure of average uncertainty, information sources and source coding, Huffman codes, run-length constraints, discrete memoryless channels, channel coding theorem, channel capacity andShannon's theorem, noisy channels, continuous sources and channels, coding in the presence of noise, performance bounds for data transmission, rate distortion theory.
MATH-781
Wavelets and Applications
Additional graduate-level math courses
Course
ISEE-601
Systems Modeling and Optimization
An introductory course in operations research focusing on modeling and optimization techniques used in solving problems encountered in industrial and service systems. Topics include deterministic and stochastic modeling methodologies (e.g., linear and integer programming, Markov chains, and queuing models) in addition to decision analysis and optimization tools. These techniques will be applied to application areas such as production systems, supply chains, logistics, scheduling, healthcare, and service systems.
ISEE-701
Linear Programming
Computational techniques for solving constrained optimization problems. Linear programming, the Simplex method and variations, duality and sensitivity testing.
ISEE-702
Integer and Nonlinear Programming
An introduction to the mathematical foundations of integer programming and nonlinear optimization techniques. Study of algorithms and computer-aided solutions for applied optimization problems.
MATH-603
Optimization Theory
This course provides a study of the theory of optimization of linear and nonlinear functions of several variable with or without constraints. The theory is applied to solve problems in business, management, engineering, and the sciences. Algorithms for practical applications will be analyzed and implemented. Students taking this course will be expected to complete applied projects and/or case studies.
MATH-605
Stochastic Processes
This course is an introduction to stochastic processes especially those that appear in various applications. It covered basic properties and applications of Poisson processes, and Markov chains in discrete and continuous time.
MATH-611
Numerical Analysis
MATH-651
Combinatorics and Graph Theory I

Admission Requirements

To be considered for admission to the MS program in computer engineering, candidates must fulfill the following requirements:

  • Complete a graduate application.
  • Hold a baccalaureate degree (or equivalent) from an accredited university or college in computer engineering or a related field.
  • Submit official transcripts (in English) from all previously completed undergraduate and graduate course work.
  • Have a minimum cumulative GPA of 3.0 (or equivalent).
  • Submit scores from the GRE.
  • Submit two letters of recommendation from individuals well qualified to judge the candidate’s ability for graduate study.
  • International applicants whose native language is not English must submit scores from the TOEFL, IELTS, or PTE. A minimum TOEFL score of 79 (internet-based) is required. A minimum IELTS score of 6.5 is required. The English language test score requirement is waived for native speakers of English or for those submitting transcripts from degrees earned at American institutions.

Learn about admissions and financial aid