Computer Engineering Master of science degree

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

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 and learning objectives

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.

The program's student learning outcomes are:

  • Tools and Techniques: The ability to utilize state-of-the-art tools and techniques in the field of computer engineering.
  • Depth: A depth of knowledge in a specialty area of computer engineering.
  • Research: The ability to perform independent research.

Plan of study

The degree requires 30 semester credit hours and includes Analytical Topics (CMPE-610), two flexible core courses, four graduate electives, two semesters of graduate seminar, and options to conduct thesis research or a graduate project. The core courses and graduate electives provide breadth and depth of knowledge. The Computer Engineering Graduate Seminar (CMPE-795) provides students with exposure to the state-of-the-art research in computer engineering and related disciplines.

Thesis research

Thesis research is an independent investigation of a research problem that contributes to the state of the art. Students who pursue the thesis option take nine semester credit hours of thesis research to answer a fundamental science/engineering question that contributes to new knowledge in the field. Students are expected to formulate the problem under a faculty advisor’s guidance and conduct extensive quantitative or qualitative analyses with sound methodology. The student’s thesis committee must have at least three and no more than four faculty members, including the primary thesis advisor. Two of the committee members must be computer engineering faculty. The findings through thesis research should be repeatable and generalizable, with sufficient quality to make them publishable in technical conferences and/or journals. For detailed information on thesis research timeline and requirements, please refer to Computer Engineering Thesis Research.

Graduate project

The graduate project is a scholarly undertaking that addresses a current technical problem with tangible outcomes. Students who pursue the graduate project option take six semester credits of project focus graduate electives and three semester credits of Graduate Project, to obtain specialized education through additional courses and conduct a professionally executed project under the supervision of a faculty advisor. The project generally addresses an immediate and practical problem, a scholarly undertaking that can have tangible outcomes. Typical projects may implement, test and evaluate a software and/or hardware system, conduct a comprehensive literature review with comparative study, etc. Students are expected to give a presentation or demonstration of the final deliverables of the project. For detailed information on graduate project timeline and requirements, please refer to Computer Engineering Graduate Project.

Flexible core

One course is chosen from each of the following core clusters with faculty advisor’s guidance.

Computer Architecture and Digital Design 

  • CMPE-630 Digital Integrated Circuit Design
  • CMPE-660 Reconfigurable Computing
  • CMPE-755 High Performance Architectures

Computing, Communications and Algorithms 

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

Computer engineering graduate electives are 600 level and above. With advisor and department approval, students may request to take graduate courses outside of the department. The graduate electives are selected among the available research tracks. Students are encouraged to choose most of their graduate electives within a single track, by consulting with their advisor. Each student must take a minimum of two electives from the department of computer engineering. For graduate level math courses as electives, students may choose from the following:

  • SEE-601 Systems Modeling and Optimization
  • ISEE-701 Linear Programming
  • ISEE-702 Integer and Nonlinear Programming
  • MATH-603 Optimization Theory
  • MATH-605 Stochastic Processes
  • MATH-611 Numerical Analysis
  • MATH-651 Combinatorics and Graph Theory I
Research tracks

Students are encouraged to choose most of their graduate electives within a single research track, by consulting with their advisor. Each student must take a minimum of two electives from the department of computer engineering. Students are allowed to take relevant courses from other academic programs, including electrical engineering, computer science, and software engineering, for specific research focus. The following research tracks are available:

  • Computer Architecture–Computer architecture area 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. 
  • Integrated Circuits and Systems–Modern processors demand high computational density, small form factors, and low energy dissipation with extremely high performance demands. This is enabled by the nanoscale and heterogeneous integration of transistors and other emerging devices at the massive-scale. Such nanocomputers will open unimaginable opportunities as well as challenges to computer engineers. This research focuses designing computers with emerging novel technologies in the presence of severe physical constraints; investigating dynamic reconfigurability to exploit the power of nano-scale electronics for building reliable computing systems; and studying the applicability of emerging technologies to address challenges in computing hardware of the future.
  • 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. This research track focuses on intelligent wireless and sensor networks, cryptographic engineering, and predictive cyber situation awareness. 
  • Signal Processing, Control, and Embedded Systems–This research area is concerned with algorithms and devices used at the core of system that interacts 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. 
 

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

100%

outcome rate of graduates

$84k

median first-year salary of graduates

Latest News

  • May 23, 2019

    Alumnus wins Fulbright U.S. Student Program award to improve drones for search and rescue

    An RIT alumnus received a Fulbright U.S. Student Program award in computer engineering to help drones assist with search and rescue operations in difficult terrain such as dense forests or steep mountains where GPS might not be reliable. Andrew Ramsey ’18 (computer engineering), ’18 MS (computer engineering) will conduct research at Alpen-Adria-Universität Klagenfurt as part of a project to research innovative ways to determine the location of a drone in a low-cost and reliable manner.

  • 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.

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
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
Choose one of the following flexible core courses:
3
  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-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-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.
 
Choose one of the following flexible core courses:
3
  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-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-677
   Machine Intelligence
Machine intelligence teaches devices how to learn a task without explicitly programming them how to do it. Example applications include voice recognition, automatic route planning, recommender systems, medical diagnosis, robot control, and even Web searches. This course covers an overview of machine learning topics with a computer engineering influence. Includes Matlab programming. Course topics include unsupervised and supervised methods, regression vs. classification, principal component analysis vs. manifold learning, feature selection and normalization, and multiple classification methods (logistic regression, regression trees, Bayes nets, support vector machines, artificial neutral networks, sparse representations, and deep learning).
 
 
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

* At least two graduate electives must come from the computer engineering department.

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
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
Choose one of the following flexible core courses:
3
  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-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-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.
 
Choose one of the following flexible core courses:
3
  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-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-677
   Machine Intelligence
Machine intelligence teaches devices how to learn a task without explicitly programming them how to do it. Example applications include voice recognition, automatic route planning, recommender systems, medical diagnosis, robot control, and even Web searches. This course covers an overview of machine learning topics with a computer engineering influence. Includes Matlab programming. Course topics include unsupervised and supervised methods, regression vs. classification, principal component analysis vs. manifold learning, feature selection and normalization, and multiple classification methods (logistic regression, regression trees, Bayes nets, support vector machines, artificial neutral networks, sparse representations, and deep learning).
 
 
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

* At least two graduate electives must come from the computer engineering department.

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 

Additional Info