Computer Engineering

Bachelor of Science
CurriculumCourses

What is Computer Engineering?

At its core, computer engineering is at the forefront of technological innovation, blending the realms of electrical engineering and computer science to sculpt the future of computing. It’s the art and science of crafting the digital architecture that underpins tomorrow’s world, where the boundaries between hardware and software blur into seamless integration.

In this ever-evolving landscape, computer engineers are the architects of progress, shaping the next generation of intelligent systems, from advanced robotics to quantum computing. They’re the trailblazers who harness the power of emerging technologies like artificial intelligence, augmented reality, and the Internet of Things to engineer solutions that redefine what’s possible.

As we journey into the future, computer engineers are the cornerstone of innovation, driving humanity toward new frontiers of discovery and transforming the way we interact with technology.

Computer Engineering or Computer Science?

What sets computer engineering apart from either electrical engineering or computer science is that it combines expertise in both electronic hardware and software design. The computer engineer has the understanding to evaluate the possible trade-offs between hardware and software and to provide the best system at the lowest cost, that is, the optimum design for a computer-based system.

In different jobs or at different times, the computer engineer may focus more on software or on hardware, but an appreciation for the integration of the two is always implicit in the work. While design is the heart of the engineering profession, computer engineers perform other functions in research and development, manufacturing, technical sales, management, and teaching.

Computer Science primarily deals with how to solve computation using computer systems, hence there is more emphasis in software. Computer Engineering primarily deals with how to build computer systems, hence there is more emphasis in hardware and low-level software that make up the systems.

Programming & Career Focus

Computer engineers design computing systems – nearly anything involving a microprocessor – including CPUs, software, digital integrated circuits, and digital signal processing systems.

Curricula & CODA

  • CPE Degree Curriculum
  • Students who complete first-year engineering requirements can apply to CODA in the CPE degree.
  • Also see ECE Academic Advising for more information

Specialization Electives

CPE requires two courses (6 hrs) selected from any of the following.

  • Computer Architecture & Systems
  • Embedded Systems
  • Networking Systems
  • Software Systems

Total Credits

122 credit hrs minimum required to graduate

Dual Degree (Double Major)

  • Students who complete first-year engineering requirements can apply to CODA in the EE/CPE Dual Degree program.
  • The curriculum follows the CPE curriculum, taking ECE 303 as the open elective, and adding three extra classes (1 foundation elective and 2 EE electives)
  • Total Credit Hours: 131

Accelerated BS/MS

5-year BS/MS in Electrical or Computer Engineering

Academic Minors

Curriculum

Freshman Year

Fall Semester Credit Spring Semester Credit
CH 101 Chemistry, A Molecular Science1 3 ECE 109 Intro to Computer Systems2 3
CH 102 General Chemistry Lab1 1 MA 241 Calculus II1 4
E 101 Intro to Engr & Prob Solving2 1 PY 205 Physics for Engineers & Scientists I1 3
E 115 Intro to Computing Environ2 1 PY 206 Physics for Engineers & Scientists I Lab 1
ENG 101 Academic Writing & Research2 4 E 102 Engineering in the 21st Century (GEP-IP) 2
MA 141 Calculus I1 4 HES_***Health & Exercise Studies Course* 1
GEP Requirement* 3    
  17   14

Sophomore Year

Fall Semester Credit Spring Semester Credit
ECE 200 Intro to ECE Laboratory2 4 COM 110 Public Speaking 3
ECE 209 Computer Systems Programming2 3 CSC 226 Discrete Mathematics2 3
MA 242 Calculus III 4 ECE 211 Electric Circuits2 4
PY 208 Physics for Engineers & Scientists II 3 ECE 212 Fund of Logic Des2 3
PY 209 Physics for Engineers & Scientists II Lab 1 ECE 220 Analytical Found of ECE 2 3
  15   16

Junior Year

Fall Semester Credit Spring Semester Credit
ECE 301 Linear Systems 3 ECE 309 Object-Oriented Programming 3
ECE 302 Intro to Microelectronics 4 ECE 380 or 381 or 3833 1
ECE 306 Intro to Embedded Systems 3 ECE 310 Design of Complex Digital Sys 3
GEP Requirement* 3 Open/Technical Elective6 3
ST 371 Intro to Prob and Dist Theory 3 ENG 331 Comm for Engr & Tech 3
    HES_***Health & Exercise Studies Course* 1
  16   14

Senior Year

Fall Semester Credit Spring Semester Credit
ECE 484 ECE Senior Design Project I 3 ECE 485 Senior Design Project II 3
ECE 4xx CPE Elective4 3 ECE 4xx ECE Elective5 3
ECE 4xx CPE Elective4 3 ECE 4xx ECE Elective5 3
GEP Requirement* 3 GEP Requirement* 3
GEP Requirement* 3 GEP Requirement* 3
  15   15

Core Courses

 

ECE 109: Introduction to Computer Systems

Introduction to key concepts in computer systems. Number representations, switching circuits, logic design, microprocessor design, assembly language programming, input/output, interrupts and traps.

See a Sample Syllabus

ECE 200: Introduction to Signals, Circuits and Systems

Ohm's law and Kirchoff's laws; circuits with resistors, photocells, diodes and LEDs; rectifier circuits; first order RC circuits; periodic signals in time and frequency domains, instantaneous, real and apparent power; DC and RMS value; magnitude andpower spectra, dB, dBW, operational amplifier circuits, analog signal processing systems including amplification, clipping, filtering, addition, multiplication, AM modulation sampling and reconstruction. Weekly hardware laboratory utilizing multimeter, function generator, oscilloscope and spectrum analyzer and custom hardware for experiments on various circuits and systems.

See a Sample Syllabus

ECE 209: Computer Systems Programming

Computer systems programming using the C language. Translation of C into assembly language. Introduction to fundamental data structures: array, list, tree, hash table.

See a Sample Syllabus

ECE 211: Electric Circuits

Introduction to theory, analysis and design of electric circuits. Voltage, current, power, energy, resistance, capacitance, inductance. Kirchhoff's laws node analysis, mesh analysis, Thevenin's theorem, Norton's theorem, steady state and transient analysis, AC, DC, phasors, operational amplifiers, transfer functions.

See a Sample Syllabus

ECE 212: Fundamentals of Logic Design

Introduction to digital logic design. Boolean algebra, switching functions, Karnaugh maps, modular combinational circuit design, latches, flip-flops, finite state machines, synchronous sequential circuit design, datapaths, memory technologies, caches, and memory hierarchies. Use of several CAD tools for simulation, logic minimization, synthesis, state assignment, and technology mapping.

See a Sample Syllabus

ECE 220: Analytical Foundations of Electrical and Computer Engineering

This course is designed to acquaint you with the basic mathematical tools used in electrical and computer engineering. The concepts covered in this course will be used in higher level courses and, more importantly, throughout your career as an engineer. Major topics of the course include complex numbers, real and complex functions, signal representation, elementary matrix algebra, solutions to linear systems of equations, linear differential equations, laplace transforms used for solving linear differential equations, fourier series and transforms and their uses in solving ECE problems.

See a Sample Syllabus

ECE 301: Linear Systems

Representation and analysis of linear systems using differential equations: impulse response and convolution, Fourier series, and Fourier and Laplace transformations for discrete time and continuous time signals. Emphasis on interpreting system descriptions in terms of transient and steady-state response. Digital signal processing.

See a Sample Syllabus

ECE 302: Microelectronics

Introduction to the physics of semiconductors, diode (pn-junctions, and transistors (MOSFET, BJT): Physics of operation, I-V characteristics, circuit models, PSPICE analysis; diode circuits; Single Stage Transistor Amplifiers: Common Emitter, Common Source, Common Base, Common Gate, Common Collector and Common Drain configurations, biasing, calculations of small signal voltage gain and current gain, input and output resistances; Logic Inverters, CMOS logic.

See a Sample Syllabus

ECE 303: Electromagnetic Fields

This course prepared the students to formulate and solve electromagnetic problems relevant to all fields of electrical and computer engineering and that will find application in subsequent courses in RF circuits, photonics, microwaves, wireless networks, computers, bioengineering, and nanoelectronics. Primary topics include static electric and magnetic fields, Maxwell's equations and force laws, wave propagation, reflection and refraction of plane waves, transient and steady-state behavior of waves on transmission lines.

See a Sample Syllabus

ECE 380: Engineering Profession for Electrical Engineers

Introduction to engineering as a profession including issues surrounding electrical engineering. Topics include professional and ethical responsibilities, risks and liabilities, intellectual property, and privacy. Economic issues including entrepreneurship and globalization.

See a Sample Syllabus

ECE 381: Engineering Profession for Computer Engineers

Introduction to engineering as a profession including issues surrounding computer engineering. Topics include professional and ethical responsibilities, risks and liabilities, intellectual property, and privacy. Economic issues including entrepreneurship and globalization.

See a Sample Syllabus

ECE 383: Introduction to Entrepreneurship and New Product Development

This course is part of the Engineering Entrepreneurs Program. Students work as team members on projects being led by seniors completing their senior capstone design. Students will be exposed to many areas of product development and will assist in the design and implementation of the prototype product.

ECE 484: Senior Design Project I

Applications of engineering and basic sciences to the total design of electrical and/or computer engineering circuits and systems. Consideration of the design process including concept and feasibility study, systems design, detailed design, project management, cost effectiveness, along with development and evaluation of a prototype accomplished through design-team project activity. Supported with introduction to a parallel functions impacting engineering design process to including: industrial design, finance, operations, etc.

See a Sample Syllabus

ECE 485: Senior Design Project II

Applications of engineering and basic sciences to the total design of electrical engineering circuits and systems. Consideration of the design process including feasibility study, preliminary design detail, cost effectiveness, along with development and evaluation of a prototype accomplished through design-team project activity. Complete written and oral engineering report required.

See a Sample Syllabus

CPE-Specific Courses

ECE 306: Introduction to Embedded Systems

Many ECE students will design embedded systems in industry. To do this well they need to pull together concepts from a variety of fields (such as compilers, computer architecture, operating systems, testing and development) and understand how they relate to embedded systems. This course covers these concepts from that point of view and uses various hands-on programming projects to examine major concepts. Students use a 16-bit microcontroller board with powerful software development tools to develop their embedded systems.

See a Sample Syllabus

ECE 309: Object-Oriented Programming for Electrical and Computer Engineers

Object-oriented design and programming of complex software. Java programming. Data abstraction and data structures. Programming by contract. Software testing. Interacting classes and interface design. Stream input/output, exceptions. Iterators, recursion, analysis of running time.

See a Sample Syllabus

ECE 310: Design of Complex Digital Systems

Design principles for complex digital systems. Decomposition of functional and interface specifications into block-diagrams and simulation with hardware description languages. Synthesis of gate-level descriptions from register-transfer level descriptions. Design and test of increasingly complex systems.

See a Sample Syllabus

Specialization Electives

Computer Architecture and Systems

ECE 463: Adv. Microprocessor Systems Design

Advanced topics in microprocessor systems design, including processor architectures, virtual-memory systems, multiprocessor systems, and single-chip microcomputers. Architectural examples include a variety of processors of current interest, both commercial and experimental. Major design project. Credit is not allowed for both ECE 463 and ECE 521.

See a Sample Syllabus

ECE 464: ASIC Design

Design of digital application specific integrated circuits (ASICs) based on hardware description languages (Verilog, VHDL) and CAD tools. Emphasis on design practices and underlying algorithms. Introduction to deep sub-micron design issues like interconnections and low power and to modern applications including multi-media, wireless telecommunications and computing. Required design project. Credit is not allowed for both ECE 464 and ECE 520.

Embedded Systems

ECE 460: Embedded System Architectures

Concepts of architectures for embedded computing systems. Emphasis on hands-on implementation. CPU scheduling approaches to support multithreaded programs, including interrupts, cooperative schedulers, state machines, and preemptive scheduler [real-time kernel]. Communication and synchronization between threads. Basic real-time analysis. Using hardware peripherals to replace software. Architectures and design patterns for digital control, streaming data, message parsing, user interfaces, low power, low energy, and dependability. Software engineering concepts for embedded systems. Students may not receive credit for both ECE 460 and ECE 560.

ECE 461: Embedded System Design

Design and implementation of software for embedded computer systems. The students will learn to design systems using microcontrollers, C and assembly programming, real-time methods, computer architecture, interfacing system development and communication networks. System performance is measured in terms of power consumption, speed and reliability. Efficient methods for project development and testing are emphasized. Credit is not allowed for both ECE 461 and ECE 561.

See a Sample Syllabus

Networking Systems

ECE 407: Intro to Computer Networking

This course focuses on engineering principles of computer communications and networking, including layering concepts, overview of protocols, architectures for local, metropolitan, and wide-area networks, routing protocols, internet operations, transport control and applications, emerging issues in computer networks.

ECE 470: Internetworking

Introduction, Planning and Managing networking projects, networking elements-hardware, software, protocols, applications; TCP/IP, ATM, LAN emulation. Design and implementation of networks, measuring and assuring network and application performance; metrics, tools, quality of service. Network-based applications, Network management and security.

Software Systems

ECE 466: Compiler Optimization and Scheduling

Provide insight into current compiler designs dealing with present and future generations of high performance processors and embedded systems. Investigate dataflow analysis and memory disambiguation, classical and parallelism enhancing optimizations, scheduling and speculative execution, and register allocation. Review of techniques used in current research compilers. Credit is not allowed for both ECE 466 and ECE 566.

Special Topic Courses

Special Topic Courses (ECE-492) are offered each semester, and the selection (and content) frequently changes. These courses delve into a broad range of specific applications pertinent to electrical or computer engineering and offer students the opportunity to explore beyond the base courses required for in the degree.