B.Sc. in Computer Engineering

B.Sc. in Computer Engineering (with optional concentration in Software)

Computer Engineering is concerned with the design and development of computers and computer-based systems. It involves the study of hardware, software, and networking.

A Computer Engineering degree provides a strong understanding of the relationship between computer hardware and software and all related issues. It 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. Khalifa University’s program also gives students the opportunity to specialize in software systems.

Accredited by the Engineering Accreditation Commission of ABET. 

  • Graduates will meet the expectations of employers of Computer engineers.
  • Qualified graduates will pursue advanced study if they so desire.

Students graduating with a Computer Engineering degree will have the following abilities:

  1. an ability to apply knowledge of mathematics, science, and engineering.
  2. an ability to design and conduct experiments, as well as to analyze and interpret data.
  3. an ability to design a system, component, or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability.
  4. an ability to function on multi-disciplinary teams.
  5. an ability to identify, formulate, and solve engineering problems.
  6. an understanding of professional and ethical responsibility.
  7. an ability to communicate effectively.
  8. the broad education necessary to understand the impact of engineering solutions in a global, economic, environmental, and societal context.
  9. a recognition of the need for, and an ability to engage in life-long learning.
  10. a knowledge of contemporary issues.
  11. an ability to use the techniques, skills, and modern engineering tools necessary for engineering practice.

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:

  • systems engineer
  • computer project engineer
  • test engineer
  • computer network engineer
  • hardware engineer
  • computer network security analyst
  • systems analyst

To be recommended for the degree of B.Sc. in Computer Engineering, students must successfully complete the courses in the specified categories as set out below. The categories cover an extended set of requirements, including Computer Engineering core and Technical Electives requirements. Students can also choose the Software Systems concentration. The normal length of the program is 140 credits.

> General Education Requirements
> College of Engineering Requirements

Math/Sciences Requirement (8 credits)

To satisfy the College of Engineering general education requirements (total 76 credits), the B.Sc. in Computer Engineering Program requires the following additional Math courses:

Course Code Course Name Credit Number
MATH 311 Probability and Statistics with Discrete Mathematics 4 cr.
MATH 312 Complex Variables with Applications 4 cr.

Computer Engineering Core Requirements (52 credits)

Course Code Course Name Credit Number
ECCE 210 Digital Logic Design 4 cr.
ECCE 220 Electric Circuits 4 cr.
ECCE 230 Object Oriented Programming 3 cr.
ECCE 302 Signal Processing 4 cr.
ECCE 312 Electronic Circuits and Devices 4 cr.
ECCE 316 Microprocessor Systems 4 cr.
ECCE 342 Data Structures and Algorithms 3 cr.
ECCE 336 Introduction to Software Engineering 3 cr.
ECCE 350 Computer Architecture and Organization 3 cr.
ECCE 354 Operating Systems 3 cr.
ECCE 356 Computer Networks  4 cr.
ECCE 450 Embedded Systems 3 cr.
ECCE 497 Senior Design Project I  3 cr.
ECCE 498 Senior Design Project II 3 cr.
ENGR 399 Engineering Internship  1 cr.

Computer Engineering Technical Electives (12 credits)

Students are required to take a total of 12 credits (four courses) from ECE department technical electives list. At most 3 credits of the technical electives may be at 300-level and at most 3 credits may be independent study. Students can choose any course from the list to satisfy both their technical and/or free elective requirements as long as it is not a core requirement course for their program. Additional courses may be approved by the department as technical electives.

ECCE 320 Applied Electromagnetics 3 cr.
ECCE 360 Communication Systems 4 cr.
ECCE 362 Digital Communications I 3 cr.
ECCE 364 Information Theory 3 cr.
ECCE 370 or 356 Communication Networks or Computer Networks 3 cr. or 4 cr.
ECCE 391 Independent Study I 1-3 cr.
ECCE 460  Wireless Communications 3 cr.
ECCE 470  Antennas and Propagation 3 cr.
ECCE 461 Digital Communications II 3 cr.
ECCE 462 Modulation and Coding Techniques 3 cr.
ECCE 472 Optical Communications 3 cr.
ECCE 484 Broadband Telecommunications 3 cr.
ECCE 484  Satellite Communications 3 cr.
ECCE 336 Introduction to Software Engineering 3 cr.
ECCE 350 Computer Architecture and Organization 3 cr.
ECCE 354  Operating Systems  3 cr. 
ECCE 342 Data Structures and Algorithms 3 cr.
ECCE 330 System Analysis and Design 3 cr.
ECCE 341 Java and Network Programming 3 cr.
ECCE 432 Introduction to Human Computer Interfaces 3 cr. 
ECCE 434 Database Systems 3 cr.
ECCE 436 Software Testing and Quality Assurance 3 cr.
ECCE 438 Software Architecture 3 cr.
ECCE 440 Distributed Systems 3 cr.
ECCE 444 Computer Security  3 cr.
ECCE 446 Network Security  3 cr.
ECCE 448 Cloud Infrastructure and Services 3 cr.
ECCE 454 Artificial Intelligence 3 cr.
ECCE 326 Introduction to Semiconductor Devices  4 cr.
ECCE 324 Electromechanical Systems 4 cr.
ECCE 415 Feedback Control Systems 4 cr.
ECCE 401 Filter Synthesis 3 cr.
ECCE 404 Microwave Circuits and Devices 3 cr.
ECCE 406 Measurement and Instrumentation 3 cr.
ECCE 408 Digital Systems Design  3 cr.
ECCE 410 VLSI Systems Design 3 cr.
ECCE 411 Analog Integrated Circuits Design 3 cr.
ECCE 421 Power System Analysis  3 cr.
ECCE 422 High Voltage Engineering  3 cr.
ECCE 423 Power Electronics 3 cr.
ECCE 425 Power System Stability and Control 3 cr.
ECCE 426 Power Electronics for Renewables Integration  3 cr.
ECCE 450 Embedded Systems 3 cr.
ECCE 456 Image Processing and Analysis 3 cr.
ECCE 491 Independent Study II 1-3 cr.
ECCE 495 Special Topics in ECE  3 cr.

Software Systems (Concentration)

A concentration at Khalifa University leads to a specialized degree and will be specifies on the diploma and the student’s academic record (transcripts). Before selecting their technical/free electives, Electrical and Electronic Engineering students have the option of selecting the Power Systems Concentration.

In case students opt for the Power Systems Concentration, instead of taking 12 credits of technical elective courses and 3 credits of free elective course, they should take the following five courses:

ECCE 330 System Analysis and Design 3 cr. 
ECCE 432 Introduction to Human Computer 3 cr. 
ECCE 434 Database Systems 3 cr.
ECCE 436 Software Testing and Quality Assurance 3 cr. 
ECCE 438 Software Architecture 3 cr. 

ECCE 210 Digital Logic Design (3-3-4)
Prerequisite: ENGR 112

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 220 Electric Circuits (3-3-4)
Prerequisites: MATH 211; PHYS 122

Voltage and current independent and dependent sources. Ohm’s and Kirchhoff’s laws. Circuit theorems: Nodal and Mesh analysis, superposition and source transformation, Thevenin, Norton and maximum power transfer theorem. Transient and step responses of first-order and second-order RC, RL and RLC circuits. Phasor representation and steady state AC analysis. Transfer function of filter circuits and Bode plot. Poles and zeros of AC circuits and their resonance, bandwidth and quality factors. Two-Port Networks

ECCE 230 Object-Oriented Programming (2-3-3)
Prerequisite: ENGR112

Foundation of object oriented concepts and programming. Basic Object Oriented Programming (OOP) concepts: objects, classes, methods, parameter passing, information hiding, inheritance, exception handling and polymorphism. Java language elements and characteristics, including data types, operators, control structures, search and sort algorithms.

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 311

Review of object-oriented design. 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
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, Integer and floating point 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. Memory management and virtual memory. Device management. File management.

ECCE 356 Computer Networks (3-3-4)
Prerequisite: ECCE 260

Introduction to computer communications. 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. 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: Junior standing and approval of the department

This course gives an undergraduate student the opportunity to participate in an individual or group oriented project, study and/or research study under direction of a faculty member. A formal report is required.

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 434 Database Systems (2-2-3)
Prerequisite: ECCE 230

Introduction to the theory, design and implementation of database systems; Data models; Entity-relationship model; Relational model; SQL query language; Data integrity; Normalization; Storage access.

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, interprocess 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 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 491 Independent Study II (Variable course credits from 1 to 3)
Prerequisite: Senior standing and approval of the department

This course gives an undergraduate student the opportunity to participate in an individual or group oriented project, study and/or research study under direction of a faculty member. A formal report is required.

ECCE 497 Senior Design Project I (1-6-3)
Prerequisites: Senior standing and approval of department

Students will pursue an in-depth project of significance in communication engineering by going from concept to working prototype. Some of the proposed design projects may involve interaction with industry. The students normally work in teams under faculty supervision. The project fosters teamwork between group members and allows students to develop their project management, technical writing, and technical presentation skills. Formal interim and final reports and presentations are required from each group.

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

Continuation of ECCE 497.

 The following is a typical sequence of study for a B.Sc. in Computer Engineering student:

Year 1 ENGL 111 English Communication I 4cr. ENGL 112 English Communication II  4cr.
MATH 111 Calculus I  4cr. MATH 112 Calculus II  4cr.
CHEM 115 Introduction to General Chemistry for Engineers 4cr. PHYS 121 University Physics I 4cr.
ENGR 111 Engineering Design 4cr. ENGR 112 Introduction to Computing  4cr.
Summer HUMA xxx Humanities and Social Sciences  3cr.
Year 2 MATH 211 Differential Equations and Linear Algebra 4cr. MATH 312 Probability and Statistics with Discrete Mathematics 4cr.
PHYS 122 University Physics II  4cr. MATH 311 Complex Variables with Applications 4cr.
HUMA XXX Humanities and Social Sciences
3cr. ECCE 260 Principles of Telecommunications 3cr.
ECCE 210 Digital Logic Design  4cr. ECCE 220 Electric Circuits 4cr.
ECCE 230 Object-Oriented Programming  3cr. BUSS 201 Fundamentals of Accounting and Finance 3cr.
Summer HUMA xxx Humanities and Social Sciences    3cr.
Year 3 ECCE 342 Data Structures and Algorithms 3cr. ENGR 311 Innovation and Entrepreneurship in Engineering Design 4 cr.
ECCE 336 Introduction to Software Engineering 3cr. ECCE 354 Operating Systems 3cr.
ECCE 350 Computer Architecture and Organization 3cr. ECCE 316 Microprocessor Systems 4cr.
ECCE 312 Electronic Circuits and Devices  4cr. Techical Elective 3cr.
ECCE 302 Signal Processing 4cr. ECCE 356 Computer Networks  4cr.
Summer ENGR 399 Internship  1cr.    
Year 4 ECCE 450 Embedded Systems 3cr. BUSS 301 Inside Organizations  3cr.
HUMA XXX Humanities and Social Sciences 3cr. Free Elective  3cr.
Free Elective  3cr. Technical Elective  3cr.
Technical Elective  3cr. Technical Elective  3cr.
ECCE 497 Senior Design Project I  3cr. ECCE 498 Senior Design Project II 3cr.

> Download study plan (PDF)

> Download study plan (for Software Concentration) (PDF)