Calendar

B.Sc. in Computer Engineering

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

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 BSc in 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. The Khalifa University of Science and Technology’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 BSc in Computer Engineering degree will attain the following:

  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. A recognition of the need for 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

Degree Requirements

To be recommended for graduation with a BSc in Computer Engineering degree, students must successfully complete the courses in the specified categories as set out below. The categories cover the University General Education Requirements (GER, 43 credits), the College of Engineering Requirements (CER, 27 credits), as well as Computer Engineering Core and Technical Electives requirements. Students may also opt for the degree concentration in Software Systems. The normal length of the program is 137 credits.

Additional Math/Sciences Requirements (15 credits)

To satisfy the College of Engineering Requirements, the BSc in Computer Engineering requires the following Math courses in addition to the Math/Sciences required in GER: CHEM115, PHYS121, PHYS122, MATH111, and MATH112.

Course Code Course Name Credit Number
MATH204 Linear Algebra 3 cr.
MATH206 Differential Equations 3 cr.
MATH232 Electrical Engineering Mathematics 3 cr.
MATH234 Discrete Mathematics 3 cr.
MATH243 Probability & Statistical Inference 3 cr.

Computer Engineering Core Requirements (52 credits)

Course Code Course Name Credit Number
ECCE210 Digital Logic Design 4 cr.
ECCE221 Electric Circuits I 4 cr.
ECCE230 Object Oriented Programming 4 cr.
ECCE302 Signals & Systems 3 cr.
ECCE312 Electronic Circuits and Devices 4 cr.
ECCE316 Microprocessor Systems 4 cr.
ECCE336 Introduction to Software Engineering 3 cr.
ECCE342 Data Structures and Algorithms 3 cr.
ECCE350 Computer Architecture and Organization 3 cr.
ECCE354 Operating Systems 3 cr.
ECCE356 Computer Networks 4 cr.
ECCE434 Database Systems 3 cr.
ECCE450 Embedded Systems 3 cr.
ECCE497 Senior Design Project I 3 cr.
ECCE498 Senior Design Project II 3 cr.
ENGR399 Engineering Internship 1 cr.

Computer Engineering Technical Electives (12 credits)

Students are required to take a total of 12 credits (four courses) from an approved technical electives list. At most three credits of the technical electives may be at 300-level and at most three 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 in their program. Additional courses may be approved by the department as technical electives.

Computer Engineering – Software Systems (Concentration)

If students wish, they may select the Software Systems concentration before choosing the technical/free electives. Selecting a degree concentration at Khalifa University of Science and Technology leads to a specialized degree, which will be specified on the diploma and the student’s academic record (transcripts).

The Software Systems concentration requires the student to replace all technical electives (12 credits) and the free elective (3 credits) with the following five courses.

Course Code Course Name Credit Number
ECCE330 System Analysis and Software Design 3 cr.
ECCE432 Introduction to Human Computer Interfaces 3 cr.
ECCE436 Software Testing and Quality Assurance 3 cr.
ECCE438 Software Architecture 3 cr.
ECCE444 Computer Security 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:

  Fall Spring
Year 1 ENGL111 Academic Communication I 4 cr. ENGL112 Academic Communication II 4 cr.
MATH111 Calculus I 4 cr. MATH112 Calculus II 4 cr.
CHEM115 General Chemistry I 4 cr. PHYS121 University Physics I 4 cr.
ENGR111 Engineering Design 4 cr. ENGR112 Introduction to Computing with C++ 4 cr.
Summer
Year 2 ECCE210 Digital Logic Design 4 cr. MATH206 Differential Equations 3 cr.
MATH 232 Electrical Engineering Mathematics 3 cr. HUMAXXX Humanities and Social Sciences* 3 cr.
PHYS122 University Physics II 4 cr. MATH243 Probability & Statistical Inference 3 cr.
MATH204 Linear Algebra 3 cr. ECCE221 Electric Circuits I 4 cr.
ECCE230 Object-Oriented Programming 4 cr. BUSSXXX Business Elective 3 cr.
Summer
Year 3 ECCE336 Introduction to Software Engineering 3 cr. ENGR311 Innovation and Entrepreneurship in Engineering Design 4 cr.
ECCE302 Signals and Systems 3 cr. ECCE354 Operating Systems 3 cr.
ECCE350 Computer Architecture and Organization 3 cr. ECCE356 Computer Networks 4 cr.
MATH234 Discrete Mathematics 3 cr. ECCE312 Electronic Circuits and Devices 4 cr.
ECCE316 Microprocessor Systems 4 cr. ECCE342 Data Structures and Algorithms 3 cr.
Summer ENGR399 Engineering Internship 1 cr.    
Year 4 HUMAXXX Humanities and Social Sciences* 3 cr. HUMAXXX Humanities and Social Sciences* 3 cr.
ECCE450 Embedded Systems 3 cr. Technical Elective 3 cr.
ECCE434 Database Systems 3 cr. Technical Elective 3 cr.
Technical Elective 3 cr. Free Elective 3 cr.
Technical Elective 3 cr. BUSSXXX Business Elective 3 cr.
ECCE497 Senior Design Project I 3 cr. ECCE498 Senior Design Project II 3 cr.
Total Credits 137

*At least one Islamic Studies course must be taken from the Humanities Electives to meet graduation requirements.

Typical Course Sequence for BSc in Computer Engineering with Software Systems Concentration

  Fall Spring
Year 1 ENGL111 Academic Communication I 4 cr. ENGL112 Academic Communication II 4 cr.
MATH111 Calculus I 4 cr. MATH112 Calculus II 4 cr.
CHEM115 General Chemistry I 4 cr. PHYS121 University Physics I 4 cr.
ENGR111 Engineering Design 4 cr. ENGR112 Introduction to Computing with C++ 4 cr.
Summer
Year 2 ECCE210 Digital Logic Design 4 cr. MATH206 Differential Equations 3 cr.
MATH 232 Electrical Engineering Mathematics 3 cr. HUMAXXX Humanities and Social Sciences* 3 cr.
PHYS122 University Physics II 4 cr. MATH243 Probability & Statistical Inference 3 cr.
MATH204 Linear Algebra 3 cr. ECCE221 Electric Circuits I 4 cr.
ECCE230 Object-Oriented Programming 4 cr. BUSSXXX Business Elective 3 cr.
Summer
Year 3 ECCE336 Introduction to Software Engineering 3 cr. ENGR311 Innovation and Entrepreneurship in Engineering Design 4 cr.
ECCE302 Signals and Systems 3 cr. ECCE354 Operating Systems 3 cr.
ECCE350 Computer Architecture and Organization 3 cr. ECCE356 Computer Networks 4 cr.
MATH234 Discrete Mathematics 3 cr. ECCE312 Electronic Circuits and Devices 4 cr.
ECCE316 Microprocessor Systems 4 cr. ECCE342 Data Structures and Algorithms 3 cr.
Summer ENGR399 Engineering Internship 1 cr.    
Year 4 HUMAXXX Humanities and Social Sciences* 3 cr. HUMAXXX Humanities and Social Sciences* 3 cr.
ECCE450 Embedded Systems 3 cr. ECCE436 Software Testing and Quality Assurance 3 cr.
ECCE434 Database Systems 3 cr. ECCE438 Software Architecture 3 cr.
ECCE330 System Analysis and Software Design 3 cr. ECCE432 Introduction to Human Computer Interfaces 3 cr.
ECCE444 Computer security 3 cr. BUSSXXX Business Elective 3 cr.
ECCE497 Senior Design Project I 3 cr. ECCE498 Senior Design Project II 3 cr.
Total Credits 137

*At least one Islamic Studies course must be taken from the Humanities Electives to meet graduation requirements.

> Download study plan (PDF)

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