Computer Engineering Bachelor of Science Degree

In RIT’s BS in computer engineering you’ll design computer hardware, components, and software to develop next-gen products and appliances that contain embedded systems.


100%

Outcome Rate of RIT Graduates from this degree

$84K

Average First-Year Salary of RIT Graduates from this degree


Overview for Computer Engineering BS

Why Pursue a Computer Engineering Bachelor’s Degree at RIT

  • Multidisciplinary Design Experience: In your final year, you will complete a two-semester, two-course experience where you will work on a team to develop a solution to a real-world engineering problem.  
  • Gain Hands-On Career Experience: Four blocks of engineering co-op mean nearly a year of hands-on, full-time, paid work experience in industry.
  • Strong Career Paths: Students are hired for co-ops and full-time positions by companies such as Alion Science and Technology, Bose, Collins Aerospace, U.S. Department of Defense, IBM, JPMorgan Chase & Co., Lockheed Martin, Microsoft, MIT, Lockheed Martin, Tesla, The Boeing Company, and Thermo Fisher Scientific.

RIT’s Bachelor of Science in Computer Engineering 

In the computer industry, there is a great demand for computer engineers who can do it all—from designing high performance computer hardware components and software to developing next-generation intelligent, resilient, and sustainable products and appliances that contain embedded systems.

Courses in Computer Engineering

RIT’s BS in computer engineering begins with the fundamental math, science, and technology courses that are essential to the curriculum. Emphasis is placed on selected areas of computer science, software engineering, and electrical engineering, including:

  • Data structures
  • Object-oriented programming languages
  • Circuits
  • Electronics
  • Principles of software engineering

Upper-level computer engineering courses prepare you to integrate hardware and software by formulating complete system solutions. This is achieved through courses in:

  • Computer architecture
  • Digital systems
  • Interfacing
  • Computer networks
  • Digital signal processing

Concentration areas provide you with an opportunity to gain additional in-depth knowledge in an area of particular interest within computer engineering. If you’re interested in conducting research, we highly encourage you to choose a concentration in an area of research that interests you and corresponds to the research initiatives of our engineering faculty. Concentrations are available in: 

  • Software
  • High-performance computing
  • Computer architecture
  • Integrated circuits and systems
  • Networks and security
  • Computer vision and machine intelligence
  • Signal processing, control, and embedded systems

Learn more about the Student Learning Outcomes and Program Educational Objectives for the computer engineering bachelor’s degree.

Hands-On Experience in Computer Engineering

In RIT’s BS in computer engineering you will gain valuable hands-on experience through a senior design capstone experience, undergraduate research, and more.

Senior Design Capstone Experience: Computer engineering students complete a senior project that consists of a two-semester capstone design experience. You will work in multidisciplinary design project teams of four to seven students from different engineering majors, including biomedical, computer, electrical, industrial, and mechanical engineering. Teams are assigned to projects before the start of the first course. Most projects are initiated by industry sponsors, community partners, or faculty members; however, students may also propose their own project ideas. While completing your senior design project, you will develop engineering management and project organization skills, learn to communicate your ideas effectively within a multidisciplinary team, and present your project and ideas to a diverse audience of students, faculty, and industrial partners.

Furthering Your Education in Computer Engineering

Combined Accelerated Bachelor’s/Master’s Degrees: RIT offers Combined Accelerated Bachelor’s/Master’s Degrees that enable you to earn both a bachelor’s and a master’s degree in as little as five years, giving you a competitive advantage.

  • Computer Engineering BS/MS: In this combined dual degree option you’ll gain a foundation in computer engineering in the bachelor’s degree program while the  computer engineering master’s focuses on the design and development of computer and computer-integrated systems, with consideration to engineering factors as function, performance, security, and sustainability.
  • +1 MBA Early Acceptance Pathway: Successful RIT applicants who are offered admission into the BS in computer engineering as an incoming first-year student may also be offered conditional early acceptance into the +1 MBA Early Acceptance Pathway. Learn more about the +1 MBA Early Acceptance Pathway.
  • +1 MBA: Students who enroll in a qualifying undergraduate degree have the opportunity to add an MBA to their bachelor’s degree after their first year of study, depending on their program. Learn more about the +1 MBA

What’s The Difference Between Engineering and Engineering Technology?

It’s a question we’re asked all the time. While there are subtle differences in the course work between the two, choosing a major in engineering or engineering technology is more about identifying what you like to do and how you like to do it.

Loading...

Careers and Cooperative Education

Typical Job Titles

Computer Engineer Semiconductor Engineer
Electrical Engineer Firmware Engineer
Embedded Software Engineer Test Automation Engineer
Manufacturing Engineer Quality Engineer
Project Engineer Sales Engineer

Industries

  • Aerospace
  • Civil Engineering
  • Computer Networking
  • Defense
  • Electronic and Computer Hardware
  • Government (Local, State, Federal)
  • Internet and Software

Cooperative Education

What’s different about an RIT education? It’s the career experience you gain by completing cooperative education and internships with top companies in every single industry. You’ll earn more than a degree. You’ll gain real-world career experience that sets you apart. It’s exposure–early and often–to a variety of professional work environments, career paths, and industries.

Co-ops and internships take your knowledge and turn it into know-how. Your engineering co-ops will provide hands-on experience that enables you to apply your engineering knowledge in professional settings while you make valuable connections between classwork and real-world applications.

The computer engineering degree requires students to complete four blocks (48 weeks) of cooperative education experience. After completing the first two years of course work, you'll spend the next two years alternating course work on campus with cooperative education experience. This employment not only adds real experience to your resume, but prepares you for more sophisticated academic work. Students have completed co-ops at companies as Motorola, Intel, Advanced Micro Devices, IBM, Hewlett Packard, Eastman Kodak Company, and for the federal government, as well as a host of smaller companies. Co-op has taken our students from the high-tech corridors of New England and California to businesses close to their hometowns. Students have worked on product development teams for companies like IBM, Intel, Hewlett-Packard, Lucent Technologies, and Kodak. They have also worked on software projects for smaller companies and the government.

During co-op experiences, computer engineering students have been on product development teams for new computers and electronic imaging systems as well as a variety of large software projects for industry and government.

Featured Profiles

Curriculum for 2023-2024 for Computer Engineering BS

Current Students: See Curriculum Requirements

Computer Engineering, BS degree, typical course sequence

Course Sem. Cr. Hrs.
First Year
CMPE-110
Introduction to Computer Engineering
This course overviews the field of computer engineering, the computer engineering curriculum at RIT, and research and career opportunities. The topics covered include basic circuit analysis, number systems, digital logic, programming, robotics, laboratory equipment, teamwork, critical thinking, technical writing, modern and contemporary issues, ethics, diversity, and communication skills. Lab 2, Lecture 1 (Fall).
1
CMPE-160
Digital System Design I
This course covers the specification, analysis, modeling and design of digital systems. Standard modules, such as decoders, multiplexers, shifter registers, adders, and counters, will be analyzed. Lectures will discuss fundamental design methodologies, state machines, and digital system modeling with the use of VHDL as a hardware description language. The laboratory provides hands-on experiences of the design, modeling, implementation, and testing of digital systems using commercial IC components as well as CAD tools. (Co-requisite: CSCI-105 or CSCI-140 or CSCI-141 or equivalent course.) Lab 2, Lecture 3 (Fall, Spring).
3
CSCI-141
Computer Science I (General Education)
This course serves as an introduction to computational thinking using a problem-centered approach. Specific topics covered include: expression of algorithms in pseudo code and a programming language; functional and imperative programming techniques; control structures; problem solving using recursion; basic searching and sorting; elementary data structures such as lists, trees, and graphs; and correctness, testing and debugging. Assignments (both in class and for homework) requiring a pseudo code solution and an implementation are an integral part of the course. An end-of-term project is also required. Lec/Lab 6 (Fall, Spring).
4
CSCI-142
Computer Science II (General Education)
This course delves further into problem solving by continuing the discussion of data structure use and design, but now from an object-oriented perspective. Key topics include more information on tree and graph structures, nested data structures, objects, classes, inheritance, interfaces, object-oriented collection class libraries for abstract data types (e.g. stacks, queues, maps, and trees), and static vs. dynamic data types. Concepts of object-oriented design are a large part of the course. Software qualities related to object orientation, namely cohesion, minimal coupling, modifiability, and extensibility, are all introduced in this course, as well as a few elementary object-oriented design patterns. Input and output streams, graphical user interfaces, and exception handling are covered. Students will also be introduced to a modern integrated software development environment (IDE). Programming projects will be required. (Prerequisites: CSCI-141 with a grade of C- or better or equivalent course.) Lec/Lab 6 (Fall, Spring, Summer).
4
MATH-181
Calculus I (General Education – Mathematical Perspective A)
This is the first in a two-course sequence intended for students majoring in mathematics, science, or engineering. It emphasizes the understanding of concepts, and using them to solve physical problems. The course covers functions, limits, continuity, the derivative, rules of differentiation, applications of the derivative, Riemann sums, definite integrals, and indefinite integrals. (Prerequisites: MATH-111 or (NMTH-220 and NMTH-260 or NMTH-272 or NMTH-275) or equivalent courses with a minimum grade of B-, or a score of at least 60% on the RIT Mathematics Placement Exam. Co-requisites: MATH-181R or equivalent course.) Lecture 6 (Fall, Spring).
4
MATH-182
Calculus II (General Education – Mathematical Perspective B)
This is the second in a two-course sequence. It emphasizes the understanding of concepts, and using them to solve physical problems. The course covers techniques of integration including integration by parts, partial fractions, improper integrals, applications of integration, representing functions by infinite series, convergence and divergence of series, parametric curves, and polar coordinates. (Prerequisites: C- or better in MATH-181 or MATH-181A or equivalent course. Co-requisites: MATH-182R or equivalent course.) Lecture 6 (Fall, Spring).
4
PHYS-211
University Physics I (General Education – Scientific Principles Perspective)
This is a course in calculus-based physics for science and engineering majors. Topics include kinematics, planar motion, Newton's Laws, gravitation, work and energy, momentum and impulse, conservation laws, systems of particles, rotational motion, static equilibrium, mechanical oscillations and waves, and data presentation/analysis. The course is taught in a workshop format that integrates the material traditionally found in separate lecture and laboratory courses. (Prerequisites: C- or better in MATH-181 or equivalent course. Co-requisites: MATH-182 or equivalent course.) Lec/Lab 6 (Fall, Spring).
4
YOPS-10
RIT 365: RIT Connections
RIT 365 students participate in experiential learning opportunities designed to launch them into their career at RIT, support them in making multiple and varied connections across the university, and immerse them in processes of competency development. Students will plan for and reflect on their first-year experiences, receive feedback, and develop a personal plan for future action in order to develop foundational self-awareness and recognize broad-based professional competencies. (This class is restricted to incoming 1st year or global campus students.) Lecture 1 (Fall, Spring).
0
 
General Education – First-Year Writing (WI)
3
 
General Education – Artistic Perspective
3
 
General Education – Social Perspective
3
 
General Education – Elective
3
Second Year
CMPE-250
Assembly and Embedded Programming
This course introduces embedded systems, along with fundamental computer organization, assembly language programming, and mixed language programming with C and assembly. Using a modern microcontroller and embedded systems IDE, such as the ARM Cortex-M0+ and Keil Microcontroller Development Kit, the course covers embedded programming concepts and interface modules, as well as addressing methods, machine instructions, assembler directives, macro definitions, code relocatability, subroutine linkage, data structures, I/O programming, exception processing, and interrupts. Program design techniques necessary to write efficient, maintainable device drivers are considered. (Prerequisites: CMPE-160 or EEEE-120 or equivalent courses. Co-requisites: CSCI-140 or CSCI-142 or CSCI-242 or equivalent courses.) Lab 2, Lecture 3 (Fall, Spring).
3
CMPE-260
Digital System Design II
This course presents modern approaches to the design, modeling and testing of digital system. Topics covered are: VHDL and Verilog HDL as hardware description languages (HDLs), simulation techniques, design synthesis, verification methods, and implementation with field programmable gate arrays (FPGAs). Combinational and both the synchronous and asynchronous sequential circuits are studied. Testing and design for testability techniques are emphasized and fault tolerant and fail safe design concepts are introduced. Laboratory projects that enable students gain hands-on experience are required. The projects include complete design flow: design of the system, modeling using HDLs, simulation, synthesis and verification. (Prerequisites: CMPE-160 or CMPE-161 or equivalent courses. Co-requisites: PHYS-212 or PHYS-208 or EEEE-281 or equivalent courses.) Lab 2, Lecture 3 (Fall, Spring).
4
EEEE-281
Circuits I
Covers basics of DC circuit analysis starting with the definition of voltage, current, resistance, power and energy. Linearity and superposition, together with Kirchhoff's laws, are applied to analysis of circuits having series, parallel and other combinations of circuit elements. Thevenin, Norton and maximum power transfer theorems are proved and applied. Circuits with ideal op-amps are introduced. Inductance and capacitance are introduced and the transient response of RL, RC and RLC circuits to step inputs is established. Practical aspects of the properties of passive devices and batteries are discussed, as are the characteristics of battery-powered circuitry. The laboratory component incorporates use of both computer and manually controlled instrumentation including power supplies, signal generators and oscilloscopes to reinforce concepts discussed in class as well as circuit design and simulation software. (Prerequisite: MATH-173 or MATH-182 or MATH-182A or equivalent course.) Lab 3, Lecture 3 (Fall, Spring, Summer).
3
EGEN-99
Engineering Co-op Preparation
This course will prepare students, who are entering their second year of study, for both the job search and employment in the field of engineering. Students will learn strategies for conducting a successful job search, including the preparation of resumes and cover letters; behavioral interviewing techniques and effective use of social media in the application process. Professional and ethical responsibilities during the job search and for co-op and subsequent professional experiences will be discussed. (This course is restricted to students in Kate Gleason College of Engineering with at least 2nd year standing.) Lecture 1 (Fall, Spring).
0
MATH-190
Discrete Mathematics for Computing (General Education)
This course introduces students to ideas and techniques from discrete mathematics that are widely used in Computer Science. Students will learn about the fundamentals of propositional and predicate calculus, set theory, relations, recursive structures and counting. This course will help increase students’ mathematical sophistication and their ability to handle abstract problems. (Co-requisites: MATH-182 or MATH-182A or MATH-172 or equivalent courses.) Lecture 3, Recitation 1 (Fall, Spring).
3
MATH-219
Multivariable Calculus (General Education)
This course is principally a study of the calculus of functions of two or more variables, but also includes the study of vectors, vector-valued functions and their derivatives. The course covers limits, partial derivatives, multiple integrals, and includes applications in physics. Credit cannot be granted for both this course and MATH-221. (Prerequisite: C- or better MATH-173 or MATH-182 or MATH-182A or equivalent course.) Lecture 3 (Fall, Spring, Summer).
3
MATH-231
Differential Equations (General Education)
This course is an introduction to the study of ordinary differential equations and their applications. Topics include solutions to first order equations and linear second order equations, method of undetermined coefficients, variation of parameters, linear independence and the Wronskian, vibrating systems, and Laplace transforms. (Prerequisite: MATH-173 or MATH-182 or MATH-182A or equivalent course.) Lecture 3, Recitation 1 (Fall, Spring, Summer).
3
MATH-241
Linear Algebra (General Education)
This course is an introduction to the basic concepts of linear algebra, and techniques of matrix manipulation. Topics include linear transformations, Gaussian elimination, matrix arithmetic, determinants, vector spaces, linear independence, basis, null space, row space, and column space of a matrix, eigenvalues, eigenvectors, change of basis, similarity and diagonalization. Various applications are studied throughout the course. (Prerequisites: MATH-190 or MATH-200 or MATH-219 or MATH-220 or MATH-221 or MATH-221H or equivalent course.) Lecture 3 (Fall, Spring).
3
PHYS-212
University Physics II (General Education – Natural Science Inquiry Perspective)
This course is a continuation of PHYS-211, University Physics I. Topics include electrostatics, Gauss' law, electric field and potential, capacitance, resistance, DC circuits, magnetic field, Ampere's law, inductance, and geometrical and physical optics. The course is taught in a lecture/workshop format that integrates the material traditionally found in separate lecture and laboratory courses. (Prerequisites: (PHYS-211 or PHYS-211A or PHYS-206 or PHYS-216) or (MECE-102, MECE-103 and MECE-205) and (MATH-182 or MATH-172 or MATH-182A) or equivalent courses. Grades of C- or better are required in all prerequisite courses.) Lec/Lab 6 (Fall, Spring).
4
SWEN-261
Introduction to Software Engineering
An introductory course in software engineering, emphasizing the organizational aspects of software development and software design and implementation by individuals and small teams within a process/product framework. Topics include the software lifecycle, software design, user interface issues, specification and implementation of components, assessing design quality, design reviews and code inspections, software testing, basic support tools, technical communications and system documentation, team-based development. A term-long, team-based project done in a studio format is used to reinforce concepts presented in class. (Prerequisite: CSCI-140 or CSCI-142 or CSCI-242 or SWEN-124 or CSEC-124 or GCIS-124 or GCIS-127 or equivalent course.) Lec/Lab 3 (Fall, Spring).
3
 
General Education – Ethical Perspective
3
Third Year
CMPE-350
Computer Organization
The course covers the important aspects of the design, organization, and performance evaluation of modern computer systems. Topics include computer performance measures, instruction set architecture classification, input/output organization, CPU datapath and control unit design, microprogramming, arithmetic and logic unit design, and the memory hierarchy, including cache levels and virtual memory. (Prerequisites: CMPE-250 or equivalent course.) Lecture 3 (Fall, Spring).
3
CMPE-380
Applied Programming in C
This course uses the C language to implement algorithms used in the numerical solution of common problems encountered in science and engineering. Topics include an introduction to C, computer number representation and roundoff error, algorithms for finding roots of nonlinear equations, interpolation, threading, software security, numerical differentiation and integration, function approximation and data fitting solutions to systems of linear equations, and general matrix manipulation. (Prerequisites: MATH-241 and CMPE-250 or equivalent courses.) Lab 2, Lecture 2 (Fall, Spring).
3
CMPE-499
Co-op (spring and summer)
After completing Co-op Seminar (EGEN-099) or Co-op Workshop as well as meeting Co-op enrollment requirements, Computer Engineering students should register for CMPE-499 for each term of full-time, paid employment in the Computer Engineering field. Students who take on Spring-Summer or Summer-Fall Co-ops must register for both the semester term and the summer term. Students must obtain permission from the Computer Engineering office for any exception to the assigned Co-op blocks. (This class is restricted to CMPE-BS students with at least 3rd year standing who have completed EGEN-99, EEEE-281, SWEN-261 and CMPE-260 or CMPE-499.) CO OP (Fall, Spring, Summer).
0
EEEE-282
Circuits II
This course covers the fundamentals of AC circuit analysis starting with the study of sinusoidal steady-state solutions for circuits in the time domain. The complex plane is introduced along with the concepts of complex exponential functions, phasors, impedances and admittances. Nodal, loop and mesh methods of analysis as well as Thevenin and related theorems are applied to the complex plane. The concept of complex power is developed. The analysis of mutual induction as applied to coupled-coils. Linear, ideal and non-ideal transformers are introduced. Complex frequency analysis is introduced to enable discussion of transfer functions, frequency dependent behavior, Bode plots, resonance phenomenon and simple filter circuits. Two-port network theory is developed and applied to circuits and interconnections. (Prerequisites: C or better in EEEE-281 or equivalent course.) Lecture 3, Recitation 2 (Fall, Spring, Summer).
3
EEEE-380
Digital Electronics
This is an introductory course in digital MOS circuit analysis and design. The course covers the following topics: (1) MOSFET I-V behavior in aggressively scaled devices; (2) Static and dynamic characteristics of NMOS and CMOS inverters; (3) Combinational and sequential logic networks using CMOS technology; (4) Dynamic CMOS logic networks, including precharge-evaluate, domino and transmission gate circuits; (5) Special topics, including static and dynamic MOS memory, and interconnect RLC behavior. (Prerequisites: EEEE-281 or equivalent course.) Lab 3, Lecture 3 (Fall, Spring, Summer).
3
 
General Education – Global Perspective
3
Fourth Year
CMPE-460
Interface and Digital Electronics (WI-PR)
This course covers various sensors, motors, and signal conditioning circuits, including amplification, filtering, level shifting, ADC, and DAC. Modern tools, such as Arm Keil MDK and PSpice, are used to simulate and debug modern microcontrollers, such as TI Arm-based MSP, analog active filters, and operational amplifier application circuits. Students typically work in teams of two to design a complete data acquisition system from sensors, amplification, filtering, ADC, and DAC to analog signals through either wired or wireless transmission circuits. (Prerequisites: EEEE-282 and (EEEE-380 or EEEE-381) and CMPE-250 or equivalent courses. Corequisites: CMPE-380 or equivalent course.) Lab 2, Lecture 3 (Fall, Spring).
4
CMPE-480
Digital Signal Processing
This course introduces the basic elements of continuous and discrete time signals and systems and fundamental signal processing techniques, such as FIR and IIR Filtering, the Fourier transform, the Discrete Fourier transform and the z transform. Theory is strengthened through MATLAB-based projects and exercises. (Prerequisites: MATH-231 and MATH-241 and EEEE-282 or equivalent courses.) Lecture 3 (Fall, Spring).
3
CMPE-499
Co-op (fall and summer)
After completing Co-op Seminar (EGEN-099) or Co-op Workshop as well as meeting Co-op enrollment requirements, Computer Engineering students should register for CMPE-499 for each term of full-time, paid employment in the Computer Engineering field. Students who take on Spring-Summer or Summer-Fall Co-ops must register for both the semester term and the summer term. Students must obtain permission from the Computer Engineering office for any exception to the assigned Co-op blocks. (This class is restricted to CMPE-BS students with at least 3rd year standing who have completed EGEN-99, EEEE-281, SWEN-261 and CMPE-260 or CMPE-499.) CO OP (Fall, Spring, Summer).
0
CMPE-550
Computer Architecture
The course covers various aspects of advanced uniprocessor computer architecture design. Instruction set architecture design alternatives are discussed with emphasis on the Reduced Instruction Set Computer (RISC) architecture. Techniques to enhance CPU performance such as pipelined execution optimizations, conditional branch handling techniques, exploitation of instruction-level parallelism, multiple-instruction issue, and dynamic scheduling are studied. Cache, and memory hierarchy design and performance issues are also presented. The design aspects of efficient and reliable input/output systems are also covered. The course concludes with an introduction to concepts of multiprocessor systems design. (Prerequisite: CMPE-350 or equivalent course.) Lecture 3 (Fall, Spring).
3
MATH-251
Probability and Statistics  (General Education)
This course introduces sample spaces and events, axioms of probability, counting techniques, conditional probability and independence, distributions of discrete and continuous random variables, joint distributions (discrete and continuous), the central limit theorem, descriptive statistics, interval estimation, and applications of probability and statistics to real-world problems. A statistical package such as Minitab or R is used for data analysis and statistical applications. (Prerequisites: MATH-173 or MATH-182 or MATH 182A or equivalent course.) Lecture 3, Recitation 1 (Fall, Spring, Summer).
3
 
General Education – Immersion
3
Fifth Year
CMPE-497
Multidisciplinary Senior Design I
This is the first in a two-course sequence oriented to the solution of real-world engineering design problems. This is a capstone learning experience that integrates engineering theory, principles, and processes within a collaborative environment. Multidisciplinary student teams follow a systems engineering design process, which includes assessing customer needs, developing engineering specifications, generating and evaluating concepts, choosing an approach, developing the details of the design, and implementing the design to the extent feasible, for example by building and testing a prototype or implementing a chosen set of improvements to a process. This first course focuses primarily on defining the problem and developing the design, but may include elements of build/ implementation. The second course may include elements of design, but focuses on build/implementation and communicating information about the final design. (Prerequisites: CMPE-460 and at least 4th year standing in CMPE-BS with a minimum of 2 terms of co-op completed.) Studio 6 (Fall, Spring).
3
CMPE-498
Multidisciplinary Senior Design II (WI-PR)
This is the second in a two-course sequence oriented to the solution of real-world engineering design problems. This is a capstone learning experience that integrates engineering theory, principles, and processes within a collaborative environment. Multidisciplinary student teams follow a systems engineering design process, which includes assessing customer needs, developing engineering specifications, generating and evaluating concepts, choosing an approach, developing the details of the design, and implementing the design to the extent feasible, for example by building and testing a prototype or implementing a chosen set of improvements to a process. The first course focuses primarily on defining the problem and developing the design, but may include elements of build/ implementation. This second course may include elements of design, but focuses on build/implementation and communicating information about the final design. (Prerequisite: CMPE-497 or equivalent course.) Studio 6 (Fall, Spring).
3
CMPE-570
Data and Communication Networks
This course gives an overview of the technologies, architectures, and protocols used to build various types of computer and communication networks. The course emphasizes various network design problems and solution approaches. Specific issues covered include framing and coding, error detection, multiple access control, addressing, routing, flow and congestion control, scheduling, and switching. (Prerequisites: CMPE-380 and MATH-251 or equivalent courses.) Lecture 3 (Fall, Spring).
3
 
General Education – Immersion 2, 3
6
 
Professional Electives
6
 
Open Electives
9
Total Semester Credit Hours
129

Please see General Education Curriculum (GE) for more information.

(WI-PR) Refers to a writing intensive course within the major.

* Please see Wellness Education Requirement for more information. Students completing bachelor's degrees are required to complete two different Wellness courses.

Combined Accelerated Bachelor’s/Master’s Degrees

The curriculum below outlines the typical course sequence(s) for combined accelerated degrees available with this bachelor's degree.

Computer Engineering, BS/MS degree, typical course sequence

Course Sem. Cr. Hrs.
First Year
CMPE-110
Introduction to Computer Engineering
This course overviews the field of computer engineering, the computer engineering curriculum at RIT, and research and career opportunities. The topics covered include basic circuit analysis, number systems, digital logic, programming, robotics, laboratory equipment, teamwork, critical thinking, technical writing, modern and contemporary issues, ethics, diversity, and communication skills. Lab 2, Lecture 1 (Fall).
1
CMPE-160
Digital System Design I
This course covers the specification, analysis, modeling and design of digital systems. Standard modules, such as decoders, multiplexers, shifter registers, adders, and counters, will be analyzed. Lectures will discuss fundamental design methodologies, state machines, and digital system modeling with the use of VHDL as a hardware description language. The laboratory provides hands-on experiences of the design, modeling, implementation, and testing of digital systems using commercial IC components as well as CAD tools. (Co-requisite: CSCI-105 or CSCI-140 or CSCI-141 or equivalent course.) Lab 2, Lecture 3 (Fall, Spring).
3
CSCI-141
Computer Science I (General Education – Elective)
This course serves as an introduction to computational thinking using a problem-centered approach. Specific topics covered include: expression of algorithms in pseudo code and a programming language; functional and imperative programming techniques; control structures; problem solving using recursion; basic searching and sorting; elementary data structures such as lists, trees, and graphs; and correctness, testing and debugging. Assignments (both in class and for homework) requiring a pseudo code solution and an implementation are an integral part of the course. An end-of-term project is also required. Lec/Lab 6 (Fall, Spring).
4
CSCI-142
Computer Science II (General Education – Elective)
This course delves further into problem solving by continuing the discussion of data structure use and design, but now from an object-oriented perspective. Key topics include more information on tree and graph structures, nested data structures, objects, classes, inheritance, interfaces, object-oriented collection class libraries for abstract data types (e.g. stacks, queues, maps, and trees), and static vs. dynamic data types. Concepts of object-oriented design are a large part of the course. Software qualities related to object orientation, namely cohesion, minimal coupling, modifiability, and extensibility, are all introduced in this course, as well as a few elementary object-oriented design patterns. Input and output streams, graphical user interfaces, and exception handling are covered. Students will also be introduced to a modern integrated software development environment (IDE). Programming projects will be required. (Prerequisites: CSCI-141 with a grade of C- or better or equivalent course.) Lec/Lab 6 (Fall, Spring, Summer).
4
MATH-181
Project-Based Calculus I (General Education – Mathematical Perspective A)
This is the first in a two-course sequence intended for students majoring in mathematics, science, or engineering. It emphasizes the understanding of concepts, and using them to solve physical problems. The course covers functions, limits, continuity, the derivative, rules of differentiation, applications of the derivative, Riemann sums, definite integrals, and indefinite integrals. (Prerequisites: MATH-111 or (NMTH-220 and NMTH-260 or NMTH-272 or NMTH-275) or equivalent courses with a minimum grade of B-, or a score of at least 60% on the RIT Mathematics Placement Exam. Co-requisites: MATH-181R or equivalent course.) Lecture 6 (Fall, Spring).
4
MATH-182
Project-Based Calculus II (General Education – Mathematical Perspective B)
This is the second in a two-course sequence. It emphasizes the understanding of concepts, and using them to solve physical problems. The course covers techniques of integration including integration by parts, partial fractions, improper integrals, applications of integration, representing functions by infinite series, convergence and divergence of series, parametric curves, and polar coordinates. (Prerequisites: C- or better in MATH-181 or MATH-181A or equivalent course. Co-requisites: MATH-182R or equivalent course.) Lecture 6 (Fall, Spring).
4
PHYS-211
University Physics I (General Education – Scientific Principles Perspective)
This is a course in calculus-based physics for science and engineering majors. Topics include kinematics, planar motion, Newton's Laws, gravitation, work and energy, momentum and impulse, conservation laws, systems of particles, rotational motion, static equilibrium, mechanical oscillations and waves, and data presentation/analysis. The course is taught in a workshop format that integrates the material traditionally found in separate lecture and laboratory courses. (Prerequisites: C- or better in MATH-181 or equivalent course. Co-requisites: MATH-182 or equivalent course.) Lec/Lab 6 (Fall, Spring).
4
YOPS-10
RIT 365: RIT Connections
RIT 365 students participate in experiential learning opportunities designed to launch them into their career at RIT, support them in making multiple and varied connections across the university, and immerse them in processes of competency development. Students will plan for and reflect on their first-year experiences, receive feedback, and develop a personal plan for future action in order to develop foundational self-awareness and recognize broad-based professional competencies. (This class is restricted to incoming 1st year or global campus students.) Lecture 1 (Fall, Spring).
0
 
General Education – Elective
3
 
First-Year Writing (WI) (General Education)
3
 
General Education – Artistic Perspective
3
 
General Education – Social Perspective
3
Second Year
CMPE-250
Assembly and Embedded Programming
This course introduces embedded systems, along with fundamental computer organization, assembly language programming, and mixed language programming with C and assembly. Using a modern microcontroller and embedded systems IDE, such as the ARM Cortex-M0+ and Keil Microcontroller Development Kit, the course covers embedded programming concepts and interface modules, as well as addressing methods, machine instructions, assembler directives, macro definitions, code relocatability, subroutine linkage, data structures, I/O programming, exception processing, and interrupts. Program design techniques necessary to write efficient, maintainable device drivers are considered. (Prerequisites: CMPE-160 or EEEE-120 or equivalent courses. Co-requisites: CSCI-140 or CSCI-142 or CSCI-242 or equivalent courses.) Lab 2, Lecture 3 (Fall, Spring).
3
CMPE-260
Digital System Design II
This course presents modern approaches to the design, modeling and testing of digital system. Topics covered are: VHDL and Verilog HDL as hardware description languages (HDLs), simulation techniques, design synthesis, verification methods, and implementation with field programmable gate arrays (FPGAs). Combinational and both the synchronous and asynchronous sequential circuits are studied. Testing and design for testability techniques are emphasized and fault tolerant and fail safe design concepts are introduced. Laboratory projects that enable students gain hands-on experience are required. The projects include complete design flow: design of the system, modeling using HDLs, simulation, synthesis and verification. (Prerequisites: CMPE-160 or CMPE-161 or equivalent courses. Co-requisites: PHYS-212 or PHYS-208 or EEEE-281 or equivalent courses.) Lab 2, Lecture 3 (Fall, Spring).
4
EEEE-281
Circuits I
Covers basics of DC circuit analysis starting with the definition of voltage, current, resistance, power and energy. Linearity and superposition, together with Kirchhoff's laws, are applied to analysis of circuits having series, parallel and other combinations of circuit elements. Thevenin, Norton and maximum power transfer theorems are proved and applied. Circuits with ideal op-amps are introduced. Inductance and capacitance are introduced and the transient response of RL, RC and RLC circuits to step inputs is established. Practical aspects of the properties of passive devices and batteries are discussed, as are the characteristics of battery-powered circuitry. The laboratory component incorporates use of both computer and manually controlled instrumentation including power supplies, signal generators and oscilloscopes to reinforce concepts discussed in class as well as circuit design and simulation software. (Prerequisite: MATH-173 or MATH-182 or MATH-182A or equivalent course.) Lab 3, Lecture 3 (Fall, Spring, Summer).
3
EGEN-99
Engineering Co-op Preparation
This course will prepare students, who are entering their second year of study, for both the job search and employment in the field of engineering. Students will learn strategies for conducting a successful job search, including the preparation of resumes and cover letters; behavioral interviewing techniques and effective use of social media in the application process. Professional and ethical responsibilities during the job search and for co-op and subsequent professional experiences will be discussed. (This course is restricted to students in Kate Gleason College of Engineering with at least 2nd year standing.) Lecture 1 (Fall, Spring).
0
MATH-190
Discrete Mathematics for Computing (General Education – Elective)
This course introduces students to ideas and techniques from discrete mathematics that are widely used in Computer Science. Students will learn about the fundamentals of propositional and predicate calculus, set theory, relations, recursive structures and counting. This course will help increase students’ mathematical sophistication and their ability to handle abstract problems. (Co-requisites: MATH-182 or MATH-182A or MATH-172 or equivalent courses.) Lecture 3, Recitation 1 (Fall, Spring).
3
MATH-219
Multivariable Calculus (General Education – Elective)
This course is principally a study of the calculus of functions of two or more variables, but also includes the study of vectors, vector-valued functions and their derivatives. The course covers limits, partial derivatives, multiple integrals, and includes applications in physics. Credit cannot be granted for both this course and MATH-221. (Prerequisite: C- or better MATH-173 or MATH-182 or MATH-182A or equivalent course.) Lecture 3 (Fall, Spring, Summer).
3
MATH-231
Differential Equations (General Education – Elective)
This course is an introduction to the study of ordinary differential equations and their applications. Topics include solutions to first order equations and linear second order equations, method of undetermined coefficients, variation of parameters, linear independence and the Wronskian, vibrating systems, and Laplace transforms. (Prerequisite: MATH-173 or MATH-182 or MATH-182A or equivalent course.) Lecture 3, Recitation 1 (Fall, Spring, Summer).
3
MATH-241
Linear Algebra I (General Education – Elective)
This course is an introduction to the basic concepts of linear algebra, and techniques of matrix manipulation. Topics include linear transformations, Gaussian elimination, matrix arithmetic, determinants, vector spaces, linear independence, basis, null space, row space, and column space of a matrix, eigenvalues, eigenvectors, change of basis, similarity and diagonalization. Various applications are studied throughout the course. (Prerequisites: MATH-190 or MATH-200 or MATH-219 or MATH-220 or MATH-221 or MATH-221H or equivalent course.) Lecture 3 (Fall, Spring).
3
PHYS-212
University Physics II (General Education – Natural Science Inquiry Perspective)
This course is a continuation of PHYS-211, University Physics I. Topics include electrostatics, Gauss' law, electric field and potential, capacitance, resistance, DC circuits, magnetic field, Ampere's law, inductance, and geometrical and physical optics. The course is taught in a lecture/workshop format that integrates the material traditionally found in separate lecture and laboratory courses. (Prerequisites: (PHYS-211 or PHYS-211A or PHYS-206 or PHYS-216) or (MECE-102, MECE-103 and MECE-205) and (MATH-182 or MATH-172 or MATH-182A) or equivalent courses. Grades of C- or better are required in all prerequisite courses.) Lec/Lab 6 (Fall, Spring).
4
SWEN-261
Introduction to Software Engineering
An introductory course in software engineering, emphasizing the organizational aspects of software development and software design and implementation by individuals and small teams within a process/product framework. Topics include the software lifecycle, software design, user interface issues, specification and implementation of components, assessing design quality, design reviews and code inspections, software testing, basic support tools, technical communications and system documentation, team-based development. A term-long, team-based project done in a studio format is used to reinforce concepts presented in class. (Prerequisite: CSCI-140 or CSCI-142 or CSCI-242 or SWEN-124 or CSEC-124 or GCIS-124 or GCIS-127 or equivalent course.) Lec/Lab 3 (Fall, Spring).
3
 
General Education – Ethical Perspective
3
Third Year
CMPE-350
Computer Organization
The course covers the important aspects of the design, organization, and performance evaluation of modern computer systems. Topics include computer performance measures, instruction set architecture classification, input/output organization, CPU datapath and control unit design, microprogramming, arithmetic and logic unit design, and the memory hierarchy, including cache levels and virtual memory. (Prerequisites: CMPE-250 or equivalent course.) Lecture 3 (Fall, Spring).
3
CMPE-380
Applied Programming in C
This course uses the C language to implement algorithms used in the numerical solution of common problems encountered in science and engineering. Topics include an introduction to C, computer number representation and roundoff error, algorithms for finding roots of nonlinear equations, interpolation, threading, software security, numerical differentiation and integration, function approximation and data fitting solutions to systems of linear equations, and general matrix manipulation. (Prerequisites: MATH-241 and CMPE-250 or equivalent courses.) Lab 2, Lecture 2 (Fall, Spring).
3
CMPE-499
Co-op (spring and summer)
After completing Co-op Seminar (EGEN-099) or Co-op Workshop as well as meeting Co-op enrollment requirements, Computer Engineering students should register for CMPE-499 for each term of full-time, paid employment in the Computer Engineering field. Students who take on Spring-Summer or Summer-Fall Co-ops must register for both the semester term and the summer term. Students must obtain permission from the Computer Engineering office for any exception to the assigned Co-op blocks. (This class is restricted to CMPE-BS students with at least 3rd year standing who have completed EGEN-99, EEEE-281, SWEN-261 and CMPE-260 or CMPE-499.) CO OP (Fall, Spring, Summer).
0
EEEE-282
Circuits II
This course covers the fundamentals of AC circuit analysis starting with the study of sinusoidal steady-state solutions for circuits in the time domain. The complex plane is introduced along with the concepts of complex exponential functions, phasors, impedances and admittances. Nodal, loop and mesh methods of analysis as well as Thevenin and related theorems are applied to the complex plane. The concept of complex power is developed. The analysis of mutual induction as applied to coupled-coils. Linear, ideal and non-ideal transformers are introduced. Complex frequency analysis is introduced to enable discussion of transfer functions, frequency dependent behavior, Bode plots, resonance phenomenon and simple filter circuits. Two-port network theory is developed and applied to circuits and interconnections. (Prerequisites: C or better in EEEE-281 or equivalent course.) Lecture 3, Recitation 2 (Fall, Spring, Summer).
3
EEEE-380
Digital Electronics
This is an introductory course in digital MOS circuit analysis and design. The course covers the following topics: (1) MOSFET I-V behavior in aggressively scaled devices; (2) Static and dynamic characteristics of NMOS and CMOS inverters; (3) Combinational and sequential logic networks using CMOS technology; (4) Dynamic CMOS logic networks, including precharge-evaluate, domino and transmission gate circuits; (5) Special topics, including static and dynamic MOS memory, and interconnect RLC behavior. (Prerequisites: EEEE-281 or equivalent course.) Lab 3, Lecture 3 (Fall, Spring, Summer).
3
MATH-251
Probability and Statistics (General Education – Elective)
This course introduces sample spaces and events, axioms of probability, counting techniques, conditional probability and independence, distributions of discrete and continuous random variables, joint distributions (discrete and continuous), the central limit theorem, descriptive statistics, interval estimation, and applications of probability and statistics to real-world problems. A statistical package such as Minitab or R is used for data analysis and statistical applications. (Prerequisites: MATH-173 or MATH-182 or MATH 182A or equivalent course.) Lecture 3, Recitation 1 (Fall, Spring, Summer).
3
 
General Education – Global Perspective
3
Fourth Year
CMPE-460
Interface and Digital Electronics (WI-PR)
This course covers various sensors, motors, and signal conditioning circuits, including amplification, filtering, level shifting, ADC, and DAC. Modern tools, such as Arm Keil MDK and PSpice, are used to simulate and debug modern microcontrollers, such as TI Arm-based MSP, analog active filters, and operational amplifier application circuits. Students typically work in teams of two to design a complete data acquisition system from sensors, amplification, filtering, ADC, and DAC to analog signals through either wired or wireless transmission circuits. (Prerequisites: EEEE-282 and (EEEE-380 or EEEE-381) and CMPE-250 or equivalent courses. Corequisites: CMPE-380 or equivalent course.) Lab 2, Lecture 3 (Fall, Spring).
4
CMPE-480
Digital Signal Processing
This course introduces the basic elements of continuous and discrete time signals and systems and fundamental signal processing techniques, such as FIR and IIR Filtering, the Fourier transform, the Discrete Fourier transform and the z transform. Theory is strengthened through MATLAB-based projects and exercises. (Prerequisites: MATH-231 and MATH-241 and EEEE-282 or equivalent courses.) Lecture 3 (Fall, Spring).
3
CMPE-497
Multidisciplinary Senior Design I
This is the first in a two-course sequence oriented to the solution of real-world engineering design problems. This is a capstone learning experience that integrates engineering theory, principles, and processes within a collaborative environment. Multidisciplinary student teams follow a systems engineering design process, which includes assessing customer needs, developing engineering specifications, generating and evaluating concepts, choosing an approach, developing the details of the design, and implementing the design to the extent feasible, for example by building and testing a prototype or implementing a chosen set of improvements to a process. This first course focuses primarily on defining the problem and developing the design, but may include elements of build/ implementation. The second course may include elements of design, but focuses on build/implementation and communicating information about the final design. (Prerequisites: CMPE-460 and at least 4th year standing in CMPE-BS with a minimum of 2 terms of co-op completed.) Studio 6 (Fall, Spring).
3
CMPE-499
Co-op (summer)
After completing Co-op Seminar (EGEN-099) or Co-op Workshop as well as meeting Co-op enrollment requirements, Computer Engineering students should register for CMPE-499 for each term of full-time, paid employment in the Computer Engineering field. Students who take on Spring-Summer or Summer-Fall Co-ops must register for both the semester term and the summer term. Students must obtain permission from the Computer Engineering office for any exception to the assigned Co-op blocks. (This class is restricted to CMPE-BS students with at least 3rd year standing who have completed EGEN-99, EEEE-281, SWEN-261 and CMPE-260 or CMPE-499.) CO OP (Fall, Spring, Summer).
0
CMPE-550
Computer Architecture
The course covers various aspects of advanced uniprocessor computer architecture design. Instruction set architecture design alternatives are discussed with emphasis on the Reduced Instruction Set Computer (RISC) architecture. Techniques to enhance CPU performance such as pipelined execution optimizations, conditional branch handling techniques, exploitation of instruction-level parallelism, multiple-instruction issue, and dynamic scheduling are studied. Cache, and memory hierarchy design and performance issues are also presented. The design aspects of efficient and reliable input/output systems are also covered. The course concludes with an introduction to concepts of multiprocessor systems design. (Prerequisite: CMPE-350 or equivalent course.) Lecture 3 (Fall, Spring).
3
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. (Prerequisites: CMPE-480 and (MATH-251 or 1016-345) or graduate standing in the CMPE-MS program.) Lecture 3 (Fall, Spring).
3
CMPE-670
Data and Communication Networks
This course gives an overview of the technologies, architectures, and protocols used to build various types of computer and communication networks. The course emphasizes various network design problems and solution approaches. Specific issues covered include framing and coding, error detection, multiple access control, addressing, routing, flow and congestion control, scheduling, and switching. (Prerequisites: CMPE-380 and MATH-251 or equivalent courses or graduate standing in the CMPE-MS program.) Lecture 3 (Fall, Spring).
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. (This class is restricted to students in the CMPE-MS, CMPE-BS/MS program.) Seminar (Fall, Spring).
0
Choose one of the following:
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. (Prerequisites: CMPE-260 and EEEE-282 and (EEEE-380 or EEEE-381) or equivalent courses.) Lab 2, Lecture 3 (Fall, Spring).
 
   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. (Prerequisites: CMPE-260 or equivalent course or graduate standing in the CMPE-MS program.) Studio 3 (Fall).
 
   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. (Prerequisite: CMPE-350 or equivalent course or graduate standing in the CMPE-MS program.) Lecture 3 (Fall).
 
 
Professional Elective
3
 
General Education – Immersion 1, 2
6
 
Open Elective
3
Fifth Year
CMPE-498
Multidisciplinary Senior Design II
This is the second in a two-course sequence oriented to the solution of real-world engineering design problems. This is a capstone learning experience that integrates engineering theory, principles, and processes within a collaborative environment. Multidisciplinary student teams follow a systems engineering design process, which includes assessing customer needs, developing engineering specifications, generating and evaluating concepts, choosing an approach, developing the details of the design, and implementing the design to the extent feasible, for example by building and testing a prototype or implementing a chosen set of improvements to a process. The first course focuses primarily on defining the problem and developing the design, but may include elements of build/ implementation. This second course may include elements of design, but focuses on build/implementation and communicating information about the final design. (Prerequisite: CMPE-497 or equivalent course.) Studio 6 (Fall, Spring).
3
 
Graduate Electives
12
 
General Education – Immersion 3
3
 
Open Elective
3
Choose one of the following:
9
   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. (Enrollment in this course requires permission from the department offering the course.) Thesis (Fall, Spring, Summer).
 
   CMPE-792
 Graduate Project plus two additional Project Focus Electives
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. (This class is restricted to students in the CMPE-MS, CMPE-BS/MS program.) Project (Fall, Spring, Summer).
 
   
 Graduate Elective plus two additional Flexible Core Courses�
 
Total Semester Credit Hours
150

Please see General Education Curriculum (GE) for more information.

(WI-PR) Refers to a writing intensive course within the major.

* Please see Wellness Education Requirement for more information. Students completing bachelor's degrees are required to complete two different Wellness courses.

† Completing this option requires passing a comprehensive examination.

Computer Engineering, BS degree/Science, Technology and Public Policy, MS degree, typical course sequence

Course Sem. Cr. Hrs.
First Year
CMPE-110
Introduction to Computer Engineering
This course overviews the field of computer engineering, the computer engineering curriculum at RIT, and research and career opportunities. The topics covered include basic circuit analysis, number systems, digital logic, programming, robotics, laboratory equipment, teamwork, critical thinking, technical writing, modern and contemporary issues, ethics, diversity, and communication skills. Lab 2, Lecture 1 (Fall).
1
CMPE-160
Digital System Design I
This course covers the specification, analysis, modeling and design of digital systems. Standard modules, such as decoders, multiplexers, shifter registers, adders, and counters, will be analyzed. Lectures will discuss fundamental design methodologies, state machines, and digital system modeling with the use of VHDL as a hardware description language. The laboratory provides hands-on experiences of the design, modeling, implementation, and testing of digital systems using commercial IC components as well as CAD tools. (Co-requisite: CSCI-105 or CSCI-140 or CSCI-141 or equivalent course.) Lab 2, Lecture 3 (Fall, Spring).
3
CSCI-141
Computer Science I
This course serves as an introduction to computational thinking using a problem-centered approach. Specific topics covered include: expression of algorithms in pseudo code and a programming language; functional and imperative programming techniques; control structures; problem solving using recursion; basic searching and sorting; elementary data structures such as lists, trees, and graphs; and correctness, testing and debugging. Assignments (both in class and for homework) requiring a pseudo code solution and an implementation are an integral part of the course. An end-of-term project is also required. Lec/Lab 6 (Fall, Spring).
4
CSCI-142
Computer Science II
This course delves further into problem solving by continuing the discussion of data structure use and design, but now from an object-oriented perspective. Key topics include more information on tree and graph structures, nested data structures, objects, classes, inheritance, interfaces, object-oriented collection class libraries for abstract data types (e.g. stacks, queues, maps, and trees), and static vs. dynamic data types. Concepts of object-oriented design are a large part of the course. Software qualities related to object orientation, namely cohesion, minimal coupling, modifiability, and extensibility, are all introduced in this course, as well as a few elementary object-oriented design patterns. Input and output streams, graphical user interfaces, and exception handling are covered. Students will also be introduced to a modern integrated software development environment (IDE). Programming projects will be required. (Prerequisites: CSCI-141 with a grade of C- or better or equivalent course.) Lec/Lab 6 (Fall, Spring, Summer).
4
MATH-181
Project-Based Calculus I (General Education – Mathematical Perspective A)
This is the first in a two-course sequence intended for students majoring in mathematics, science, or engineering. It emphasizes the understanding of concepts, and using them to solve physical problems. The course covers functions, limits, continuity, the derivative, rules of differentiation, applications of the derivative, Riemann sums, definite integrals, and indefinite integrals. (Prerequisites: MATH-111 or (NMTH-220 and NMTH-260 or NMTH-272 or NMTH-275) or equivalent courses with a minimum grade of B-, or a score of at least 60% on the RIT Mathematics Placement Exam. Co-requisites: MATH-181R or equivalent course.) Lecture 6 (Fall, Spring).
4
MATH-182
Project-Based Calculus II (General Education – Mathematical Perspective B)
This is the second in a two-course sequence. It emphasizes the understanding of concepts, and using them to solve physical problems. The course covers techniques of integration including integration by parts, partial fractions, improper integrals, applications of integration, representing functions by infinite series, convergence and divergence of series, parametric curves, and polar coordinates. (Prerequisites: C- or better in MATH-181 or MATH-181A or equivalent course. Co-requisites: MATH-182R or equivalent course.) Lecture 6 (Fall, Spring).
4
PHYS-211
University Physics I (General Education – Scientific Principles Perspective)
This is a course in calculus-based physics for science and engineering majors. Topics include kinematics, planar motion, Newton's Laws, gravitation, work and energy, momentum and impulse, conservation laws, systems of particles, rotational motion, static equilibrium, mechanical oscillations and waves, and data presentation/analysis. The course is taught in a workshop format that integrates the material traditionally found in separate lecture and laboratory courses. (Prerequisites: C- or better in MATH-181 or equivalent course. Co-requisites: MATH-182 or equivalent course.) Lec/Lab 6 (Fall, Spring).
4
YOPS-010
RIT 365: RIT Connections
RIT 365 students participate in experiential learning opportunities designed to launch them into their career at RIT, support them in making multiple and varied connections across the university, and immerse them in processes of competency development. Students will plan for and reflect on their first-year experiences, receive feedback, and develop a personal plan for future action in order to develop foundational self-awareness and recognize broad-based professional competencies. (This class is restricted to incoming 1st year or global campus students.) Lecture 1 (Fall, Spring).
0
 
General Education – First Year Writing (WI)
3
 
General Education – Elective
3
 
General Education – Artistic Perspective
3
 
General Education – Social Perspective
3
Second Year
CMPE-250
Assembly and Embedded Programming
This course introduces embedded systems, along with fundamental computer organization, assembly language programming, and mixed language programming with C and assembly. Using a modern microcontroller and embedded systems IDE, such as the ARM Cortex-M0+ and Keil Microcontroller Development Kit, the course covers embedded programming concepts and interface modules, as well as addressing methods, machine instructions, assembler directives, macro definitions, code relocatability, subroutine linkage, data structures, I/O programming, exception processing, and interrupts. Program design techniques necessary to write efficient, maintainable device drivers are considered. (Prerequisites: CMPE-160 or EEEE-120 or equivalent courses. Co-requisites: CSCI-140 or CSCI-142 or CSCI-242 or equivalent courses.) Lab 2, Lecture 3 (Fall, Spring).
3
CMPE-260
Digital System Design II
This course presents modern approaches to the design, modeling and testing of digital system. Topics covered are: VHDL and Verilog HDL as hardware description languages (HDLs), simulation techniques, design synthesis, verification methods, and implementation with field programmable gate arrays (FPGAs). Combinational and both the synchronous and asynchronous sequential circuits are studied. Testing and design for testability techniques are emphasized and fault tolerant and fail safe design concepts are introduced. Laboratory projects that enable students gain hands-on experience are required. The projects include complete design flow: design of the system, modeling using HDLs, simulation, synthesis and verification. (Prerequisites: CMPE-160 or CMPE-161 or equivalent courses. Co-requisites: PHYS-212 or PHYS-208 or EEEE-281 or equivalent courses.) Lab 2, Lecture 3 (Fall, Spring).
4
EEEE-281
Circuits I
Covers basics of DC circuit analysis starting with the definition of voltage, current, resistance, power and energy. Linearity and superposition, together with Kirchhoff's laws, are applied to analysis of circuits having series, parallel and other combinations of circuit elements. Thevenin, Norton and maximum power transfer theorems are proved and applied. Circuits with ideal op-amps are introduced. Inductance and capacitance are introduced and the transient response of RL, RC and RLC circuits to step inputs is established. Practical aspects of the properties of passive devices and batteries are discussed, as are the characteristics of battery-powered circuitry. The laboratory component incorporates use of both computer and manually controlled instrumentation including power supplies, signal generators and oscilloscopes to reinforce concepts discussed in class as well as circuit design and simulation software. (Prerequisite: MATH-173 or MATH-182 or MATH-182A or equivalent course.) Lab 3, Lecture 3 (Fall, Spring, Summer).
3
EGEN-099
Engineering Co-op Preparation
This course will prepare students, who are entering their second year of study, for both the job search and employment in the field of engineering. Students will learn strategies for conducting a successful job search, including the preparation of resumes and cover letters; behavioral interviewing techniques and effective use of social media in the application process. Professional and ethical responsibilities during the job search and for co-op and subsequent professional experiences will be discussed. (This course is restricted to students in Kate Gleason College of Engineering with at least 2nd year standing.) Lecture 1 (Fall, Spring).
0
MATH-190
Discrete Mathematics for Computing
This course introduces students to ideas and techniques from discrete mathematics that are widely used in Computer Science. Students will learn about the fundamentals of propositional and predicate calculus, set theory, relations, recursive structures and counting. This course will help increase students’ mathematical sophistication and their ability to handle abstract problems. (Co-requisites: MATH-182 or MATH-182A or MATH-172 or equivalent courses.) Lecture 3, Recitation 1 (Fall, Spring).
3
MATH-219
Multivariable Calculus
This course is principally a study of the calculus of functions of two or more variables, but also includes the study of vectors, vector-valued functions and their derivatives. The course covers limits, partial derivatives, multiple integrals, and includes applications in physics. Credit cannot be granted for both this course and MATH-221. (Prerequisite: C- or better MATH-173 or MATH-182 or MATH-182A or equivalent course.) Lecture 3 (Fall, Spring, Summer).
3
MATH-231
Differential Equations
This course is an introduction to the study of ordinary differential equations and their applications. Topics include solutions to first order equations and linear second order equations, method of undetermined coefficients, variation of parameters, linear independence and the Wronskian, vibrating systems, and Laplace transforms. (Prerequisite: MATH-173 or MATH-182 or MATH-182A or equivalent course.) Lecture 3, Recitation 1 (Fall, Spring, Summer).
3
MATH-241
Linear Algebra
This course is an introduction to the basic concepts of linear algebra, and techniques of matrix manipulation. Topics include linear transformations, Gaussian elimination, matrix arithmetic, determinants, vector spaces, linear independence, basis, null space, row space, and column space of a matrix, eigenvalues, eigenvectors, change of basis, similarity and diagonalization. Various applications are studied throughout the course. (Prerequisites: MATH-190 or MATH-200 or MATH-219 or MATH-220 or MATH-221 or MATH-221H or equivalent course.) Lecture 3 (Fall, Spring).
3
PHYS-212
University Physics II (General Education – Natural Science Inquiry Perspective)
This course is a continuation of PHYS-211, University Physics I. Topics include electrostatics, Gauss' law, electric field and potential, capacitance, resistance, DC circuits, magnetic field, Ampere's law, inductance, and geometrical and physical optics. The course is taught in a lecture/workshop format that integrates the material traditionally found in separate lecture and laboratory courses. (Prerequisites: (PHYS-211 or PHYS-211A or PHYS-206 or PHYS-216) or (MECE-102, MECE-103 and MECE-205) and (MATH-182 or MATH-172 or MATH-182A) or equivalent courses. Grades of C- or better are required in all prerequisite courses.) Lec/Lab 6 (Fall, Spring).
4
SWEN-261
Introduction to Software Engineering
An introductory course in software engineering, emphasizing the organizational aspects of software development and software design and implementation by individuals and small teams within a process/product framework. Topics include the software lifecycle, software design, user interface issues, specification and implementation of components, assessing design quality, design reviews and code inspections, software testing, basic support tools, technical communications and system documentation, team-based development. A term-long, team-based project done in a studio format is used to reinforce concepts presented in class. (Prerequisite: CSCI-140 or CSCI-142 or CSCI-242 or SWEN-124 or CSEC-124 or GCIS-124 or GCIS-127 or equivalent course.) Lec/Lab 3 (Fall, Spring).
3
 
General Education – Ethical Perspective
3
Third Year
CMPE-350
Computer Organization
The course covers the important aspects of the design, organization, and performance evaluation of modern computer systems. Topics include computer performance measures, instruction set architecture classification, input/output organization, CPU datapath and control unit design, microprogramming, arithmetic and logic unit design, and the memory hierarchy, including cache levels and virtual memory. (Prerequisites: CMPE-250 or equivalent course.) Lecture 3 (Fall, Spring).
3
CMPE-380
Applied Programming in C
This course uses the C language to implement algorithms used in the numerical solution of common problems encountered in science and engineering. Topics include an introduction to C, computer number representation and roundoff error, algorithms for finding roots of nonlinear equations, interpolation, threading, software security, numerical differentiation and integration, function approximation and data fitting solutions to systems of linear equations, and general matrix manipulation. (Prerequisites: MATH-241 and CMPE-250 or equivalent courses.) Lab 2, Lecture 2 (Fall, Spring).
3
CMPE-499
Co-op (spring)
After completing Co-op Seminar (EGEN-099) or Co-op Workshop as well as meeting Co-op enrollment requirements, Computer Engineering students should register for CMPE-499 for each term of full-time, paid employment in the Computer Engineering field. Students who take on Spring-Summer or Summer-Fall Co-ops must register for both the semester term and the summer term. Students must obtain permission from the Computer Engineering office for any exception to the assigned Co-op blocks. (This class is restricted to CMPE-BS students with at least 3rd year standing who have completed EGEN-99, EEEE-281, SWEN-261 and CMPE-260 or CMPE-499.) CO OP (Fall, Spring, Summer).
0
EEEE-282
Circuits II
This course covers the fundamentals of AC circuit analysis starting with the study of sinusoidal steady-state solutions for circuits in the time domain. The complex plane is introduced along with the concepts of complex exponential functions, phasors, impedances and admittances. Nodal, loop and mesh methods of analysis as well as Thevenin and related theorems are applied to the complex plane. The concept of complex power is developed. The analysis of mutual induction as applied to coupled-coils. Linear, ideal and non-ideal transformers are introduced. Complex frequency analysis is introduced to enable discussion of transfer functions, frequency dependent behavior, Bode plots, resonance phenomenon and simple filter circuits. Two-port network theory is developed and applied to circuits and interconnections. (Prerequisites: C or better in EEEE-281 or equivalent course.) Lecture 3, Recitation 2 (Fall, Spring, Summer).
3
EEEE-380
Digital Electronics
This is an introductory course in digital MOS circuit analysis and design. The course covers the following topics: (1) MOSFET I-V behavior in aggressively scaled devices; (2) Static and dynamic characteristics of NMOS and CMOS inverters; (3) Combinational and sequential logic networks using CMOS technology; (4) Dynamic CMOS logic networks, including precharge-evaluate, domino and transmission gate circuits; (5) Special topics, including static and dynamic MOS memory, and interconnect RLC behavior. (Prerequisites: EEEE-281 or equivalent course.) Lab 3, Lecture 3 (Fall, Spring, Summer).
3
 
General Education – Global Perspective
3
Fourth Year
CMPE-460
Interface and Digital Electronics (WI-PR)
This course covers various sensors, motors, and signal conditioning circuits, including amplification, filtering, level shifting, ADC, and DAC. Modern tools, such as Arm Keil MDK and PSpice, are used to simulate and debug modern microcontrollers, such as TI Arm-based MSP, analog active filters, and operational amplifier application circuits. Students typically work in teams of two to design a complete data acquisition system from sensors, amplification, filtering, ADC, and DAC to analog signals through either wired or wireless transmission circuits. (Prerequisites: EEEE-282 and (EEEE-380 or EEEE-381) and CMPE-250 or equivalent courses. Corequisites: CMPE-380 or equivalent course.) Lab 2, Lecture 3 (Fall, Spring).
4
CMPE-480
Digital Signal Processing
This course introduces the basic elements of continuous and discrete time signals and systems and fundamental signal processing techniques, such as FIR and IIR Filtering, the Fourier transform, the Discrete Fourier transform and the z transform. Theory is strengthened through MATLAB-based projects and exercises. (Prerequisites: MATH-231 and MATH-241 and EEEE-282 or equivalent courses.) Lecture 3 (Fall, Spring).
3
CMPE-499
Co-op (summer)
After completing Co-op Seminar (EGEN-099) or Co-op Workshop as well as meeting Co-op enrollment requirements, Computer Engineering students should register for CMPE-499 for each term of full-time, paid employment in the Computer Engineering field. Students who take on Spring-Summer or Summer-Fall Co-ops must register for both the semester term and the summer term. Students must obtain permission from the Computer Engineering office for any exception to the assigned Co-op blocks. (This class is restricted to CMPE-BS students with at least 3rd year standing who have completed EGEN-99, EEEE-281, SWEN-261 and CMPE-260 or CMPE-499.) CO OP (Fall, Spring, Summer).
0
CMPE-550
Computer Architecture
The course covers various aspects of advanced uniprocessor computer architecture design. Instruction set architecture design alternatives are discussed with emphasis on the Reduced Instruction Set Computer (RISC) architecture. Techniques to enhance CPU performance such as pipelined execution optimizations, conditional branch handling techniques, exploitation of instruction-level parallelism, multiple-instruction issue, and dynamic scheduling are studied. Cache, and memory hierarchy design and performance issues are also presented. The design aspects of efficient and reliable input/output systems are also covered. The course concludes with an introduction to concepts of multiprocessor systems design. (Prerequisite: CMPE-350 or equivalent course.) Lecture 3 (Fall, Spring).
3
CMPE-570
Data and Communication Networks
This course gives an overview of the technologies, architectures, and protocols used to build various types of computer and communication networks. The course emphasizes various network design problems and solution approaches. Specific issues covered include framing and coding, error detection, multiple access control, addressing, routing, flow and congestion control, scheduling, and switching. (Prerequisites: CMPE-380 and MATH-251 or equivalent courses.) Lecture 3 (Fall, Spring).
3
MATH-251
Probability and Statistics
This course introduces sample spaces and events, axioms of probability, counting techniques, conditional probability and independence, distributions of discrete and continuous random variables, joint distributions (discrete and continuous), the central limit theorem, descriptive statistics, interval estimation, and applications of probability and statistics to real-world problems. A statistical package such as Minitab or R is used for data analysis and statistical applications. (Prerequisites: MATH-173 or MATH-182 or MATH 182A or equivalent course.) Lecture 3, Recitation 1 (Fall, Spring, Summer).
3
PUBL-701
Graduate Policy Analysis
This course provides graduate students with necessary tools to help them become effective policy analysts. The course places particular emphasis on understanding the policy process, the different approaches to policy analysis, and the application of quantitative and qualitative methods for evaluating public policies. Students will apply these tools to contemporary public policy decision making at the local, state, federal, and international levels. Lecture 3 (Fall).
3
PUBL-702
Graduate Decision Analysis
This course provides students with an introduction to decision science and analysis. The course focuses on several important tools for making good decisions, including decision trees, including forecasting, risk analysis, and multi-attribute decision making. Students will apply these tools to contemporary public policy decision making at the local, state, federal, and international levels. Lecture 3 (Spring).
3
 
Graduate Professional Elective: Policy Elective
3
 
Open Elective
3
 
General Education – Immersion 1
3
Fifth Year
CMPE-497
Multidisciplinary Senior Design I
This is the first in a two-course sequence oriented to the solution of real-world engineering design problems. This is a capstone learning experience that integrates engineering theory, principles, and processes within a collaborative environment. Multidisciplinary student teams follow a systems engineering design process, which includes assessing customer needs, developing engineering specifications, generating and evaluating concepts, choosing an approach, developing the details of the design, and implementing the design to the extent feasible, for example by building and testing a prototype or implementing a chosen set of improvements to a process. This first course focuses primarily on defining the problem and developing the design, but may include elements of build/ implementation. The second course may include elements of design, but focuses on build/implementation and communicating information about the final design. (Prerequisites: CMPE-460 and at least 4th year standing in CMPE-BS with a minimum of 2 terms of co-op completed.) Studio 6 (Fall, Spring).
3
CMPE-498
Multidisciplinary Senior Design II
This is the second in a two-course sequence oriented to the solution of real-world engineering design problems. This is a capstone learning experience that integrates engineering theory, principles, and processes within a collaborative environment. Multidisciplinary student teams follow a systems engineering design process, which includes assessing customer needs, developing engineering specifications, generating and evaluating concepts, choosing an approach, developing the details of the design, and implementing the design to the extent feasible, for example by building and testing a prototype or implementing a chosen set of improvements to a process. The first course focuses primarily on defining the problem and developing the design, but may include elements of build/ implementation. This second course may include elements of design, but focuses on build/implementation and communicating information about the final design. (Prerequisite: CMPE-497 or equivalent course.) Studio 6 (Fall, Spring).
3
PUBL-700
Readings in Public Policy
An in-depth inquiry into key contemporary public policy issues. Students will be exposed to a wide range of important public policy texts, and will learn how to write a literature review in a policy area of their choosing. (This class is restricted to degree-seeking graduate students or those with permission from instructor.) Seminar (Fall).
3
PUBL-703
Evaluation and Research Design
The focus of this course is on evaluation of program outcomes and research design. Students will explore the questions and methodologies associated with meeting programmatic outcomes, secondary or unanticipated effects, and an analysis of alternative means for achieving program outcomes. Critique of evaluation research methodologies will also be considered. Seminar (Spring).
3
STSO-710
Graduate Science and Technology Policy Seminar
Examines how federal and international policies are developed to influence research and development, innovation, and the transfer of technology in the United States and other selected nations. Students in the course will apply basic policy skills, concepts, and methods to contemporary science and technology policy topics. (This class is restricted to degree-seeking graduate students or those with permission from instructor.) Seminar (Fall).
3
 
Professional Elective/Graduate Policy Elective
3
 
Policy Graduate Elective
3
 
General Education – Immersion 2, 3
6
 
Open Elective
3
Choose one of the following:
6
   PUBL-785
 Capstone Experience
The Public Policy Capstone Experience serves as a culminating experience for those MS in Science, Technology and Public Policy students who chose this option in the Public Policy Department. Over the course of the semester, students will have the opportunity to investigate and address contemporary topics in science and technology policy using analytic skills and theoretical knowledge learned over the course of their MS degree. Project 1 (Fall, Spring, Summer).
 
   PUBL-790
 Public Policy Thesis
The master's thesis in science, technology, and public policy requires the student to select a thesis topic, advisor and committee; prepare a written thesis proposal for approval by the faculty; present and defend the thesis before a thesis committee; and submit a bound copy of the thesis to the library and to the program chair. (Enrollment in this course requires permission from the department offering the course.) Thesis 3 (Fall, Spring, Summer).
 
   PUBL-798
 Comprehensive Exam plus 2 Graduate Electives
 
Total Semester Credit Hours
150

Please see General Education Curriculum for more information.

* Please see Wellness Education Requirement for more information. Students completing bachelor's degrees are required to complete two different Wellness courses.

Admissions and Financial Aid

This program is STEM designated when studying on campus and full time.

First-Year Admission

A strong performance in a college preparatory program is expected. This includes:

  • 4 years of English
  • 3 years of social studies and/or history
  • 4 years of math is required and must include algebra, geometry, algebra 2/trigonometry, and pre-calculus. Calculus is preferred.
  • 2-3 years of science. Chemistry and physics are required.

Transfer Admission

Transfer course recommendations without associate degree
Pre-engineering courses such as calculus, calculus-based physics, chemistry, and liberal arts.

Appropriate associate degree programs for transfer
AS degree in engineering science

Learn How to Apply

Financial Aid and Scholarships

100% of all incoming first-year and transfer students receive aid.

RIT’s personalized and comprehensive financial aid program includes scholarships, grants, loans, and campus employment programs. When all these are put to work, your actual cost may be much lower than the published estimated cost of attendance.
Learn more about financial aid and scholarships

Accreditation

The BS program in computer engineering is accredited by the Engineering Accreditation Commission of ABET. Visit the college's accreditation page for information on enrollment and graduation data, program educational objectives, and student outcomes.

Research

The faculty and students in the Kate Gleason College of Engineering are engaging in numerous areas of research, which takes place across all of our engineering disciplines and often involves other colleges at RIT, local health care institutions, and major industry partners. Explore the college's key research initiatives to learn more about our research in:

Latest News