The BSc in Computer Engineering program is accredited by the Engineering Accreditation Commission (EAC) of ABET, www.abet.org, under the commission’s General Criteria and Program Criteria for Electrical, Computer, Communications, Telecommunication(s), and Similarly Named Engineering Programs.

The BSc in Computer Engineering program is concerned with the design and development of computers and computer-based systems. It involves the study of hardware, software, and networking. The program provides a strong understanding of the relationship between computer hardware and software and all related issues.

Computer Engineering is the key to many career opportunities in both government and industry sectors. Students are offered opportunities to customize their education by selecting from a pool of technical elective courses. The BSc in Computer Engineering program also gives students the opportunity to select a concentration in Software Systems.

Program Enrolment and Degree Data
Number of Enrolled Students
Fall 2023 409
Fall 2022 342
Fall 2021 267
Fall 2020 244
Fall 2019 176
Fall 2018 136
Number of Graduates
Academic Year Count
2023 71
2022 47
2021 45
2020 42
2019 18
2018 17
Program Educational Objectives
  • Graduates would meet the expectations of employers and the society for timely and relevant technical knowledge and competencies, for careers, and for potential leadership related to their fields.
  • Graduates would be able to pursue advanced studies or professional growth through continuous learning and adaptation to technological advancement and the changing needs of their professions.
Student Outcomes (Program Learning Outcomes)

Students graduating with a BSc in Computer Engineering will attain the following:


An ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics.


An ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors.


An ability to communicate effectively with a range of audiences.


An ability to recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts.


An ability to function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives.


An ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions.


An ability to acquire and apply new knowledge as needed, using appropriate learning strategies.


Career Opportunities and Specializations

Computer Engineers usually work in research laboratories that design, build and test various types of computer software models. Most work in high-tech manufacturing firms in the telecommunications, semiconductor and mobile industries. There are also computer systems opportunities in design firms, research and development firms, or in governmental bodies such as defense, armed forces, police, health care and information technology (IT).

Career specializations within this field include:

  • Embedded System Engineer
  • Internet of Things (IoT) Engineer
  • Computer Network Engineer
  • Systems Engineer
  • Robotics Engineer
  • Computer Vision Engineer
  • Computer Project Engineer
  • Test Engineer
  • Computer Network Engineer
  • Hardware Engineer
  • Computer Security Analyst
  • Systems Analyst
  • Software Development
  • Cloud Computing
  • Cybersecurity
Program Facilities

The Computer Engineering Program laboratories include:

  • Analog Electronics Laboratory
  • Digital Systems Laboratory
  • Microprocessors and Embedded Systems Laboratory
  • Computer Networks Laboratory
  • Software Engineering Laboratory
  • Communication Systems Laboratory
  • Senior Design Project Laboratory
Structure and Requirements
Course Description

Course Description of Computer Engineering

ECCE 210                             Digital Logic Design (3-3-4)

Prerequisite:      ENGR 112 or ENGR 113

Data representation in digital computers. Boolean algebra. Minimization and implementation of logic functions.  Design of combinational circuits.  Programmable devices, multiplexers, decoders, memory and tri-state devices. Basic ALU design.  Elements of sequential circuits: latches, flip-flops and counters.  Design of synchronous sequential machines.  Introduction to CAD tools and hardware description languages.  Laboratory experiments provide hands-on experience in the simulation, implementation and testing of combinational and sequential logic circuits.

 ECCE 221                             Electric Circuits I (3-3-4)

Co-requisites:    MATH 232; PHYS 122

Physical principles underlying the modeling of circuit elements. Basic circuit elements: resistance; inductance, capacitance, independent and controlled sources, and op-amps. Circuit analysis techniques, steady-state and transient responses, first-order circuits, complex numbers, sinusoidal steady-state analysis, sinusoidal steady-state power calculations, and balanced three-phase circuits.

ECCE 230                             Object-Oriented Programming (3-3-4)

Prerequisite:      ENGR 112 or ENGR 113

The course covers the foundation of object oriented concepts and programming. Basic Object Oriented Programming (OOP) concepts, such as, objects, classes, methods, parameter passing, information hiding, inheritance, exception handling and polymorphism. The course also covers Java language elements and characteristics, including data types, operators, control structures, search and sort algorithms.

ECCE 302                             Signals and Systems (3-0-3)

Prerequisites:    MATH 232; MATH 204

Co-requisite:      ECCE 221

Time/space-domain analysis of analog and discrete signals: basic signals, properties and operations. Frequency analysis of signals: Fourier series and transform, Laplace transform, sampling and reconstruction and z-transform. Time/space-domain analysis of signal processing systems: properties, block diagrams, differential/difference equations, state-space model of LTI systems, impulse response, and convolution. Frequency analysis of signal processing systems: frequency response (gain and phase), transfer function, z-transfer function, stability analysis, Fundamentals of analog filter design.

ECCE 312                             Electronic Circuits and Devices (3-3-4)

Prerequisite:      ECCE 221

Introduction to semiconductors. Operation of pn-junction and its applications as rectifiers, clippers, and voltage regulators. Operation of bipolar junction transistors (BJT) and field effect transistors (FET). Small signal modeling of BJTs and FETs. Use of BJTs and FETs as single stage amplifiers. BJT, JFET and MOSFET differential and multistage amplifiers. Amplifier classification and Power amplifiers.

ECCE 316                             Microprocessor Systems (3-3-4)

Prerequisites:    ECCE 210

Introduction to current microprocessor, microcontroller and microcomputer systems:  basic components, memory map, organization and processor architecture.  Hardware and software models of microprocessor and microcontroller systems.  Processor instructions and assembly language programming.  Exception handling: interrupts, traps and exception processing.  Memory decoding, input/output interfaces and programming peripheral devices. Laboratory experiments provide hands-on experience in the use of cross-assemblers, C-programming, simulators and actual microprocessor/microcontroller hardware.

 ECCE 326                             Introduction to Semiconductor Devices (3-0-3)

Prerequisites:    ECE 312

This course is designed to provide an introduction to the mechanisms of device operation. It introduces and explains terminology, models, properties, and concepts associated with semiconductor devices and offers insight into the internal workings of the “building-block” device structures such as the pn-junction diode, BJT, and MOSFET. The course also introduces optoelectronics, discusses current technological issues, and feature modern devices.


ECCE 330                             System Analysis & Software Design (3-0-3)

Prerequisite:      ECCE 336

Design principles, patterns, notations and methodologies with focus on object-oriented and scenario-based design. From requirements to design to implementation; reconcile the models; refining and verifying the models; Domain partitioning; object design; Model-driven design and Unified Modeling Language (UML). Structural and behavioral design descriptions and specifications; Adding software behavior; Introduction to software architecture (styles and view models); Test-driven development; User interfaces.

ECCE 336                             Introduction to Software Engineering (3-0-3)

Prerequisite:      ECCE 230

Introduction to Software Engineering; The Software Process; Project Management Concepts; Software Requirements Engineering Using Unified Modeling Language (UML) Use-Cases; System Models; Architectural Design; Object-Oriented Software Design; Testing and Maintenance; Emerging software development methods.

ECCE 341                              Java and Network Programming (2-3-3)

Prerequisite:      ECCE 230

Java basics, exception handling, I/O. Java Graphics: applets, AWT, Swing, Graphics, listeners. Java OO features: inheritance, abstract classes, polymorphism, interfaces, inner classes, anonymous classes. Basics of network programming. Java network programming: multithreading, URLs, sockets, RMI. Emerging Mobile Java Technology.


ECCE 342                             Data Structures and Algorithms (2-3-3)

Prerequisites:    ECCE 230; MATH 234

Review of object-oriented design. Learning the Standard Template Library (STL) data structures and algorithms with practical examples. Analysis of algorithm complexity. Fundamental data structures: Concept of Abstract Data Types (ADTs), Queues, Stacks, Lists, Trees;  Fundamental computing algorithms: binary search trees, hash tables, heaps, balanced trees, sorting algorithms, searching algorithms.  

ECCE 350                             Computer Architecture and Organization (3-0-3)

Prerequisite:      ENGR 112 or ENGR 113

Co-requisite:      ECCE 210

Fundamentals of computer system design. Measuring and reporting performance. Elements of machine and assembly languages. Instructions types and formats, operations, addressing modes, stacks. Classifying instruction set architecture. Data representations, Computer arithmetic, ALU design. Pipelining, instruction pipelining, hazards, pipeline performance. Memory system hierarchy design and cache memory. I/O fundamentals and operations and interrupt handling. Introduction to parallel computers and alternative architectures.

ECCE 354                             Operating Systems (3-0-3)

Prerequisite:      ECCE 350

Historical perspective of operating systems. Operating system concepts, functions and structure. Processes, threads, process synchronization, interprocess communication, process scheduling. Deadlock management. Memory management and virtual memory.  Device management. File management. OS Security and Protection.

ECCE 356                             Computer Networks (3-3-4)

Prerequisite:      ECCE 210

Introduction to computer networks. Fundamentals of computer networks theory, design, implementation, protocols, analysis and operation. OSI model. Data transmissions and transmission media. Local and wide area networks, IP networks, switching techniques, routing, congestion control, quality of service. Principles of network applications. Introduction to network security. Implementation, analysis and management of computer networks and their various protocols.

ECCE 391                              Independent Study I (Variable course credits from 1 to 3)

Prerequisite:      Approval of department and junior standing

This course gives an upper level undergraduate student the opportunity to participate in an individual or group project, study, or research activity under the supervision of a faculty member.  A formal report is required.

ECCE 406                             Instrumentation and Measurements (2-3-3)

Prerequisites:    ECCE 302; ECCE 312

The course provides an introduction to measurement and instrumentation. The covered topics include static and dynamic characteristics of measurement systems; accuracy of measuring systems; measurement error and uncertainty quantification; noise and noise reduction techniques; sensing elements, signal conditioning and processing elements; measurement system analysis, design, and applications.

ECCE 408                             Digital Systems Design (3-0-3)

Prerequisite:      ECCE 210

Design and analysis of practical modern digital systems.  Simulation, synthesis, and FPGA-based implementation of digital systems using hardware description languages (HDLs). Design space of integer and floating-point arithmetic units. Power- and performance-oriented design techniques and evaluation metrics.

ECCE 410                              VLSI Systems Design (3-0-3)

Prerequisites:    ECCE 312; ECCE 210

Introduction to the fabrication of digital VLSI (Very Large Scale Integrated Circuits) systems.  Design and layout of VLSI circuits for complex digital systems.  CMOS technology using standard-cell-based design flow.  Circuit characterization and performance.  Interconnect, timing and synchronization issues. Low-power and deep submicron designs.  Fault models and design for testability techniques. VLSI design methodologies.  Commercial CAD simulation and synthesis tools.

ECCE 420                              Industrial Automation (2-3-3)

Prerequisite:      ECCE 406

Principles of industrial automation with emphasis on oil and gas industries. Topics on sensors, actuators, field devices, signal conditioning, PLCs, and ladder logic programming are covered in theory and practice. Different types of closed loop controllers, system modeling, SCADA, and DCS are also addressed.

ECCE 432                                      Introduction to Human Computer Interfaces (3-0-3)

Prerequisite:      ECCE 336

Human Factors of Interactive Software; HCI Theories Principles and Guidelines; HCI Design; Principles of user interface design, development, and programming; HCI Development Tools; Expert Reviews; Usability Testing; User interface evaluation; Web based user interfaces.

ECCE 436                                              Software Testing and Quality Assurance (3-0-3)

Prerequisite:      ECCE 336

Overview of the maintenance and testing activities within the software life cycle; Software Maintenance: Major maintenance activities. Estimating maintenance costs and productivity; Quality Assurance: Examination of various quality/complexity metrics; Software validation planning; Software testing fundamentals including test plan creation and test case generation, black-box and white-box testing techniques, unit integration, validation and system testing, and object-oriented testing.

ECCE 438                              Software Architecture (3-0-3)

Co-requisite:      ECCE 330

Introduction to Software Architecture; Architecture Descriptions: Architecture Description Languages, Architecture Styles, A Model of software Architecture; Repository Model; Layered Model; Client-Server Model; Inter-Process Communication: Remote Procedure Call (RPC) versus Object Request Broker (ORB); N-Tiered Client-Server; Design Patterns; Specialized Software Architectures; Techniques and criteria used for the evaluation of software architecture.


ECCE 440                              Distributed Systems (3-0-3)

Prerequisite:      ECCE 354; ECCE 356

Characterization of distributed systems. Software layers, models of distribution, inter-process communication, client-server. Middleware, remote procedure calls, interface specification languages, remote method invocation. Distributed object-based systems. Operating systems support, multiprocessing vs. multithreading, load sharing, synchronization. Distributed File and name services. Fault tolerance. Security requirements and mechanisms.

ECCE 444                              Computer Security (2-2-3)

Prerequisite:      ECCE 354

Introduction to computer security. Fundamentals of cryptography: Substitution ciphers, hashing, symmetric and asymmetric crypto. Program Security: detect and exploit vulnerabilities in programs. Web vulnerabilities: SQL injection, cross site scripting. Identification and Authentication: Username and passwords, spoofing attack, password cracking. Access control: access control matrix and list, role based access control, multi-level security, access control in operating system such as Linux. Malware and Malware detection. Emerging threats: overview of other threats.

ECCE 446                              Network Security (3-0-3)

Prerequisite:      ECCE 356

Modern network security vulnerabilities, threats, and attacks.  Penetration testing and network scanning.  Digital signatures, certificates, and PKI. Entity authentication and Kerberos.  Network security protocols: SSL, TLS, IPSec.    Network Firewalls, IDS/IPS, and Honeynets. Wireless security.

ECCE 448                             Cloud Infrastructure and Services (3-0-3)

Pre-requisite:    ECCE 354; ECCE 356

Cloud Computing: history, computing paradigms, business drivers, drawbacks. Classic Data Center (CDC) vs. Virtualized Data Center (VDC). Cloud services models, deployment models, and economics. Amazon Elastic Compute Cloud (EC2). Cloud Infrastructure and Management. Virtualization: compute, storage, networking, desktop and applications. Business Continuity in VDC.  Cloud Migration strategies and factors. Cloud Security: concerns and countermeasures, access control and identity management, and best practices.

 ECCE 449                              iOS App Development (3-0-3)

Prerequisite:      ECCE 230

This course will instruct students on the fundamentals of mobile computing and mobile application development using Apple’s iOS SDK. An introduction to the Objective-C programming language, including object-oriented design, and the model-view-controller pattern, will be covered. Using iOS APIs and tools, such as Xcode, students will be able to create fully-featured iPod Touch, iPhone, and iPad applications. User interface and application design considerations specific to mobile technologies will also be explored.

ECCE 450                             Embedded Systems (3-0-3)

Prerequisite:      ECCE 316

Introduce the main hardware and software elements of an embedded system.  Fundamental concepts and design techniques of embedded systems.  Architecture and programming of embedded processors.  Basic services provided by real-time operating system (“RTOS”) kernels.  Design and development of multitasking code and application software. Interfacing, device drivers and input/output devices.  Applications of embedded systems in consumer electronics, mobile, automotive, aerospace, digital control and other real time systems.

ECCE 454                              Artificial Intelligence (3-0-3)

Prerequisite:      ECCE 342

This course covers the fundamental aspects of classic and modern Artificial Intelligence.  Topics include AI History, solving problems by searching, knowledge representation and reasoning techniques, agents, machine learning, evolutionary computation and fuzzy logic.

ECCE 456                              Image Processing and Analysis (3-0-3)

Prerequisite:      ECCE 302 or BMED 352


Digital Image Processing Fundamentals, Human Visual Perception, Digital Image Acquisition Pipeline, Monochrome and Color Images, Color Spaces, Intensity Transformation, Histogram Equalization, Color Enhancement, Image Interpolation, Image Assessment techniques, Frequency Domain Representation, 2D Filters, Smoothing and Sharpening Filters, Filtering in the Spatial and Frequency Domains,  Noise Reduction and Restoration, Image Segmentation, Image Compression.

 ECCE 463                              Information and Coding Theory (3-0-3)

Prerequisite:      ECCE 362

History of information theory, information measure, entropy, information rate, memory less sources, sources with memory, information transmission on discrete channels (mutual information, discrete channel capacity), continuous channel, channel capacity, Shannon theory, coding applications (Huffman coding), Channel coding Techniques: Block and convolution codes, interleaving, puncturing, the bandwidth efficiency plane, the error probability planes.

ECCE 470                             Antennas and Propagation (3-0-3)

Prerequisite:      ECCE 320

Antenna fundamentals, Radiation from a short current dipole, far field approximation, Radiation pattern, Radiation resistance.  Radiation integral approach, dipole and monopole antennas, Image techniques, Antenna arrays, Broadside and end-fire arrays, Pattern multiplication, Pattern synthesis, Binomial and Chebyschev arrays, Aperture antennas, Fourier-transform method, Field equivalence principle, Sky-wave and space-wave propagation, Evolving antenna technologies and applications; fundamental design concepts of reconfigurable and conformal antennas, UWB MIMO antennas, antennas for: cognitive radio, propagation at THz and mm-wave, antennas for nano-communications, and biomedical applications

ECCE 472                              Optical Communications and Networks (3-0-3)

Prerequisite:      ECCE 320

Elements of optical communication systems; Optical fibers, Step-index and graded-index fibers, Single-mode and multi-mode fibers, Fiber attenuation and dispersion, Optical sources and transmitters, Light-emitting diodes, Semiconductor laser diodes, Optical detectors and receivers, Photodiodes, Optical system design, Types of noises and system impairments, Power budget, Power penalty; Dispersion compensation, Optical communication networks


ECCE 481                              Wireless Sensor Networks and Internet of Things – TE (2-3-3)

Prerequisites:      ECCE 360; ECCE 316

Wireless sensor networks (WSN), sensor nodes, sensor network applications, design challenges, performance metrics, medium access control, data routing, sensor localization, time synchronization, energy constraints, power management, Internet of Things (IoT), Ardruino, XBee, Raspberry Pi.

 ECCE 495                              Special Topics in Computer Engineering

Prerequisite:      Topic specific

This course mainly deals with new trends in Computer Engineering and emerging technologies. Course is repeatable if title and content differ.

ECCE 497                              Senior Design Project I (1-6-3)

Prerequisites:    ECCE 312, ECCE 316 and Senior Standing

Participation in team projects dealing with design and development of a product or a system, in accordance with project-specific objectives and constraints. A number of projects will be offered by the different engineering departments, some of which will be multi-disciplinary in nature. This will provide an opportunity to exercise initiative, engineering judgment, self-reliance and creativity, in a team environment similar to the industry environment. The design projects require students to use engineering standards in their design process, developing suitable criteria for selection based on their acquired engineering skills, experience, and other pertinent resources. Oral and written presentations are required.

ECCE 498                              Senior Design Project II (0-9-3)

Prerequisite:      ECCE 497

 Continuation of ECCE 497.

ECCE 362                              Digital Communications I (2-3-3)

Prerequisite:      ECCE 360

Introduction to Digital Communication. Spectral Density Autocorrelation. Bandwidth of Digital Data. Baseband Systems. Formatting Textual Data, Messages, Characters, and Symbols. Sources of Corruption. Pulse Code Modulation. Uniform and Nonuniform Quantization. Baseband Modulation. Source Coding. Signals and Noise. Detection of Binary Signals in Gaussian Noise. Intersymbol Interference (bandwidth limited channels). Pulse shaping. Eye diagrams. Equalization. Digital Bandpass Modulation Techniques. Detection of Signals in Gaussian Noise. Coherent Detection. Noncoherent Detection. Complex Envelope. Error Performance for Binary Systems in AWGN channels.

ECCE 402                              Digital Signal Processing (3-0-3)

Prerequisite:      ECCE 302

This combined theory and practical course introduces the principles of digital signal processing (DSP). It includes introduction to discrete-time signals and systems, sampling, A/D conversion, aliasing, the z-transform, discrete Fourier transform, fast Fourier transform, Models of digital filters, FIR filter design, and IIR filter design. MATLAB hands-on sessions form an integral part of this course.

ECCE 460                             Wireless Communications (3-0-3)

Prerequisite:      ECCE 360

Overview of Wireless Communications Including Standards. Characterization of Wireless Channels. Bandpass Transmission Techniques for Wireless Communications. Receiver architecture and performance over Fading Channels and Diversity Techniques.  Fundamentals of Cellular Communications.  Orthogonal Frequency Division Multiplexing

ECCE 461                              Advanced Digital Communications (3-0-3)

Prerequisite:      ECCE 360

Spread spectrum techniques: Direct sequence (DS) and frequency hopping (FH). Multi user communications: Code division multiple access (CDMA), time division multiple access (TDMA), spatial division multiple access (SDMA), random access techniques (ALOHA), carrier sense multiple access (CSMA). Synchronization: time, frequency, phase, frame, network. Channel estimation and equalization techniques. Adaptive communications: Adaptive power, digital modulation and coding.

ECCE 462                              Communication Systems Design and Prototyping (2-3-3)

Prerequisite:      ECCE 362

Overview of system design and prototyping techniques. Using computer simulation (Simulink/Matlab, LabVIEW) to design and evaluate the performance of communication systems. Overview of hardware prototyping using SDR and FPGA. Transmitter/receiver design, simulation and implementation: modulation, pulse shaping, RF up-conversion, RF down-conversion, sampling, matched filtering, channel estimation, synchronization, detection.

ECCE 484                              Satellite and Space Communications (3-0-3)

Prerequisite:      ECCE 360

Overview of Satellite Services, Orbital Mechanics, transmission losses, the link budget power equation, system noise, carrier to noise ratio, the uplink, the downlink, the combined uplink and downlink carrier to noise, possible modes of interference, interference between the different satellite circuits, Satellite Access Techniques, Direct Broadcast Satellite Services, VSAT.