Secure Systems Option - Computer Engineering BS - Curriculum
Secure Systems Option - Computer Engineering BS
Computer Engineering, Secure Systems Option, 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.) Lecture 4 (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.) Lecture 4 (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 GCIS-124 or GCIS-127 or SWEN-124 or CSEC-124 or ISTE-124 or IGME-106 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-361 | Introduction to Hardware Security The objective of this course is to build the knowledge and skills necessary to design, evaluate, and implement secure hardware systems. Course topics will span the fundamentals of hardware security and trust, which may include security principles and properties, encryption/decryption, side-channel attacks, hardware manufacture and test, physically uncloneable functions (PUF), true random number generation, hardware trojan detection, secure system design, and trusted execution environments. Laboratory assignments and projects facilitate the hands-on learning of course topics including cryptographic hardware design, side-channel attacks, integrated circuit test and verification, PUFs, true random number generation, and secure system design using a field programmable gate array (FPGA) and an embedded processor as an implementation platform. (Prerequisites: CMPE-250 and CMPE-260 or equivalent courses.) Lab 2, Lecture 3 (Fall). |
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 |
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 – Global Perspective |
3 | |
General Education – Immersion 2, 3 |
6 | |
Professional Electives |
3 | |
Open Electives |
3 | |
CMPE Option Electives |
6 | |
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.
CMPE Professional Electives are approved CMPE courses 500 level and above.
By default, CMPE Option Electives are courses selected from a published list of approved courses.