CMPE2043Software Engineering4 ch (3C 2L)
Introduction to fundamentals of the discipline of software engineering with focus on the software development life cycle. Topics include software development methodologies and processes, requirements, analysis, modeling, architecture, design, implementation, testing, and maintenance. Basics of software management are also introduced. Credit cannot be obtained for both CMPE 2043 and CS 2043.

Prerequisite: CS 1083
CMPE2214Digital Logic Design3 ch (3C 1T)
An introductory course to practical aspects of digital system design. The course covers digital logic design, including basic design concepts and implementation technology, number representation, synthesis of combinational and sequential logic, and the use of HDL and computer-based tools. Credit cannot be obtained for both CMPE 2214 and ECE 2214.


Prerequisite: 
CS 1003 or CS 1073 or equivalent. Recommended: ECE 1813

Co-requisite: CMPE 2215
CMPE2215Digital Logic Design Laboratory1 ch (3L*)
This is an introductory course to practical aspects of digital system design. Course includes the design of digital circuits with CAD tools and VHDL hardware description language. Credit cannot be obtained for both CMPE 2215 and ECE 2215.

Prerequisites: 
CS 1003 or CS 1073 or equivalent. Recommended: ECE 1813.


Co-requisite:
CMPE 2214
CMPE2412Simulation and Engineering Analysis4 ch (3C 2L)
An introduction to modeling and numerical methods as applied in the solution of engineering problems. The solution of nonlinear equations, polynomials, curve fitting, numerical integration and difference equations. Simulation tools such as MATLAB will be used. Credit cannot be obtained for both CMPE 2412 and ECE 2412.

Prerequisites:
CS 1003 or CS 1073 or equivalent; ECE 1813 or equivalent; MATH 1013; MATH 1503 or equivalent.
CMPE3033Software Design and Development4 ch (3C 1T)
Presents advanced modeling techniques (mostly UML) for object oriented and real-time design. Includes related topics such as design patterns, quality, reusability, and CASE tools. Credit cannot be obtained for both CMPE 3033 and CS 3033.

Prerequisite: CMPE 2043
CMPE3111Electronics I4 ch (3C 1T 3L*)
An introduction to analog electronics using a device-based approach. The course starts with basic nomenclature and the ideal amplifier model concept. Semiconductor diodes, BJTs and MOSFETs are then introduced followed by how these devices can be used to implement single-stage small-signal amplifiers. To complement this overall analog approach, the use of both BJTs and MOSFETs in digital logic gates is also covered which in turn introduces the concept of noise margins. 

Prerequisite: ECE 2711
CMPE3232Embedded Systems Design4 ch (3C 2L)
A hardware-oriented course with emphasis on the components and techniques used in the design of embedded systems. Topics include system design and methodologies and techniques, microcontroller hardware design, software design using C, testing and implementation. A team project will be used to provide the opportunity to apply the content of this course to the development of an embedded application. Most lecture material will be delivered in the context of this project.

Prerequisite: CS 1023 or CS 1083


Co-requisite: CMPE 3813
CMPE3511Signals4 ch (3C 1T 3L*)
Discrete-time (DT) and continuous-time (CT) signals. Signal characterization. Basic signal manipulation. Linear time-invariant systems and the convolution integral/sum. Signal approximation via orthogonal signal sets. Fourier Series. The CT Fourier Transform (FT) and properties. Sampling and reconstruction of signals. The DTFT and its properties. The DFT. 

Prerequisites: ECE 2722 and MATH 3503


Co-requisite: STAT 2793
CMPE3813Computer Architecture and Organization4 ch (3C 2L*)
Advanced concepts in assembly language programming, functional organization of a computer system, organization of CPU, organization of I/O, interrupts, memory organization, cache and virtual memories, performance enhancements, pipelining, superscalar processors and embedded systems. Credit cannot be obtained for both CMPE 3813 and CS 3813.

Prerequisites: CMPE 2214 and CS 2253
CMPE3893Computer Networking4 ch (3C)
This course provides an in-depth look at the hardware and software behind the Internet and other computer networks. Topics include OSI network architecture, communication protocols, UDP and TCP, socket programming, common application-level protocols, congestion control, routing protocols, Internet Protocol, link layer services, network security. Credit cannot be obtained for both CMPE 3893 and CS 3893.

Prerequisite: CS 2253


Co-requisite: CMPE 2214
CMPE4033Software Project Management and Quality Assurance4 ch (3C 1T)
Discusses the "umbrella" activities in software development: project planning and monitoring, risk management, quality assurance through reviews and testing (including reliability and safety, and test automation), and the management of technical debt. Emphasis is put on software metrics and their use in quantitative management. Introduces concepts in software process improvement. Credit cannot be obtained for both CMPE 4033 and CS 4033.

Prerequisite: CMPE 2043
CMPE4045Computer Engineering Design Project7 ch (4 ch + 3 ch) [W]
Working in teams, students will complete a computer engineering design project that draws on their knowledge and skills obtained in previous courses. Student teams will design a structure, system, or process to meet a broad range of specified contraints. The development process should consider a broad range of constraints including health and safety, sustainable development and environmental stewardship. Students will manage their projects professionally, prepare a comprehensive written report, and present their design work orally. 

Prerequisites: CMPE 3232, CMPE 3813, and at least 100 credit hours of CMPE core courses.