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.