Computer Engineering

Students with computer controlled helicopter

Bachelor of Science in Computer Engineering (BSCPE)

The Computer Engineering program prepares students for careers relating to the analysis, design and application of modern computer systems, including both hardware and software components. The Computer Engineering faculty is committed to sustaining a vigorous academic environment that values quality and diversity in the educational experience. Program strengths include a major engineering design experience, integration of hardware/software and computer systems issues, especially in the context of real-time, embedded, and networked systems; use of contemporary engineering design and modeling tools throughout the curriculum; and advanced engineering design electives in hardware, software and networking.

A broad background in engineering is developed through the engineering core curriculum and courses from electrical and computer engineering. The curriculum provides a thorough basis in mathematics, probability and statistics, physical sciences, engineering sciences, laboratory experience, and design experience. This background enables students to apply computer engineering principles to a variety of contemporary problems. An engineering approach is emphasized throughout computer related coursework.

Computer Engineering Advising and Mentoring

Computer Engineering majors receive curriculum advising from the Center for Engineering Education (CUE2) which is located in the Engineering Building Room 157.  Students are free to make an appointment to speak with an advisor to discuss curriculum planning, progress towards graduation, and problems with classes or other concerns as needed. Please click on this link for more information:

Important Links

 CPE Program Check Sheet and Flowchart


Undergraduate Computer Engineering Courses (CPE)

112 Introduction to Computer Programming in Engineering (3 hrs)
Solution of engineering problems using a digital computer. Hardware structure of the stored-program computer; programming in a high level language such as C or C++, engineering approximation of dynamic systems; top-down design and algorithms. Practice in solving engineering problems. Students enrolling in CPE 112 must enroll concurrently in CPE 112L. Prerequisites: MA 113 or MA 115 or higher.

212 - Fundamentals of Software Engineering (3 hrs)
Introduction to structured programming using C++. Search and sort algorithms. Introduction to data structures. Applications to engineering related problems. Prerequisites: CPE 112.

221 - Computer Organization (3 hrs)
Functional organization of stored-program digital computers including number representation, assembly language programming, computer hardware, micro-operations, and control logic; microprocessor architecture. Prerequisites: EE 202. Same as EE 321.

322 – Digital Hardware Design Fundamentals (3 hrs)
Advanced concepts in Boolean algebra, use of hardware description languages as a practical means to implement hybrid sequential and combinational designs, digital logic simulation, rapid prototyping techniques, and design for testability concepts. Focuses on the actual design and implementation of sizeable digital design problems using representative Computer Aided Design (CAD) tools. Prerequisites: CPE 221. Corequisite: CPE 324.

323 - Introduction to Embedded Computer Systems (3 hrs)
The course examines both hardware and software aspects in building embedded computer systems, as well as methods to evaluate design tradeoffs between different technology choices. The students develop an appreciation of technology capabilities and limitations and appreciation of all system components necessary to be able to design and implement a basic embedded computer system and interface it to the outside world. Experiments performed in the Microcomputer Laboratory provide considerable experience, allowing students to develop programs in assembly language and C and program embedded systems to perform required functions. Prerequisites: EE 202, CPE 221. Corequisite: CPE 325.

324 Advanced Logic Design Laboratory (1 hr)
Demonstration through laboratory experimentation of fundamental concepts in digital logic design. Use of hardware description languages as a practical means to implement hybrid sequential and combinational digital designs, digital logic simulation, and rapid prototyping techniques. Focuses on the actual design and implementation of sizable digital design probelems using representative Computer Aided Design (CAD) tools. Corequisite: CPE 322

325 - Embedded Systems Laboratory (1 hr)
Laboratory component of Introduction to Embedded Computer Systems. Students will gain considerable experience working with modern integrated software development environments and hardware platforms to solve practical problems. The experiments will include software development in assembly and C/C++; debugging and testing of embedded systems; and input/output interfacing including timers, serial comunication interfaces, ports, analog-to-digital converters, digital-to-analog converters, and direct memory-access controllers. Corequisite: CPE 323.

353 Software Design and Engineering (3 hrs)
Hands-on experience developing a substantial software project using software design tools such as the SQL database system and the Qt graphical interface development environment. Introduction to a software process including requirements elicitation and testing techniques. Prerequisites: CPE 212. Prerequisite with concurrency: CS 317.

381 Fundamentals of Signals and Systems for Computer Engineers (3 hrs)
Introduction to the fundamental concepts in continuous and discrete signals and systems, and methods of signal and system analysis. Topics covered: Fourier series, Fourier and Laplace transforms, system representation by transfer functions and impulse response functions, convolution integrals, discrete time signals and system, sampling techniques, Z and discrete Fourier transforms. No credit for EE or OPE students. Prerequisites: EE 213 and MA 238.

CPE 412 Introduction to Parallel Programming (3 hrs)
Introduction to software development methodologies for multi-core, clustered, and general purpose GPU computing environments. Exploration of parallel machine models, performance evaluation, process and thread creation, mutual exclusion, synchronization, and message passing communication mechanisms. Students gain insight into theseconcepts through hands-on exercises written in C/C++ that employ the MPI, OpenMP,and OpenACC SDKs. Prerequisites: CPE 212 and CS 317.

CPE 423 - Hardware/Software Co-Design (3 hrs)
Study and design of Systems On a Chip (SOC). Emphasis on Field Programmable realizations of SOC systems. Prerequisites: CPE 322 or CPE 426 or permission of instructor.

CPE 426 Modeling, and Synthesis (3 hrs)
Modern VLSI design techniques and tools, such as silicon compilers, (V)HDL modeling languages, placement and routing tools, synthesis tools, and simulators. Students will design, simulate, and layout using both programmable logic families and ASIC libraries. Prerequisites: EE 202 and EE 315.

 CPE 427 VLSI Design I (3 hrs)
Introduction to VLSI design using CAD tools, CMOS logic, switch level modeling, circuit characterization, logic design in CMOS, systems design methods, test subsystem design, design examples, student design project. Design project to be fabricated and tested in EE/CPE 428. Students enrolling in CPE 427 must enroll concurrently in CPE 427L. Prerequisites: EE 202 and 315. Same as EE 427.

CPE 437 VLSI Design II (3 hrs)
Advanced experience with CAD tools for VLSI design, IC testing. Design Project from EE/CPE 427 to be fabricated and tested. Implementation and verification of test programs, IC testing and troubleshooting, legal, economic, and ethical design issue. Oral presentations and written reports are required. Students enrolling in CPE 428 must enroll concurrently in CPE 428L. Prerequisites: CPE/EE 427. Same as EE 428.

CPE 431 Introduction to Computer Architecture (3 hrs)
Study of existing computer structures. Computer organization with emphasis on busing systems, storage systems, and instruction sets. Performance models and measures, pipelining, cache and virtual memory, introduction to parallel processing. Prerequisites: CPE 322 and CPE 323.