Undergraduate Courses
First Year
Course Code  Course Name  Description  Prerequisite(s)  

CENG 111  Concepts in Computer Engineering  An orientation course to provide counsel to the students about the Department and Computer Engineering in general. An introduction to the faculty and their activities. Visit to several Computer Centers in and outside the University. Basic computer literacy: terminology, system components and operation. Internet, HTML Coding and Java, Desktop Softwares, WindowsUnixDos Operating Systems, Library Usage. Learning Outcomes:


CENG 112  Data Structures  Basic concepts of data, data structures and data types: arrays, strings, linear structures, sequential searching and sorting techniques, stacks, queues, pointers, linked lists. Various forms of mway search and Btrees. Learning Outcomes:

CENG 113  
CENG 113  Programming Basics  Fundamentals of computer programming: sequence, decision, repetion, syntax, compilation, debugging and maintenance, procedures, parameters, arrays, object, topdown structured design, layout and style. The emphasis is on an engineering “rightfirsttime” approach to solving large problems using computers. Basic concepts of algorithmics and algorithmic terminologies. Learning Outcomes:


CENG 115  Discrete Structures  Sets, and Functions, The Fundamentals: Algorithms, the Integers, and Matrices, Methods of Proof, Mathematical Induction, Recursive Definitions, Recursive Algorithms, Program Correctness, Basics of Counting, The Pigeonhole Principle, Permutations and Combinations, Recurrence Relations, DivideandConquer Relations, InclusionExclusion, Relations and Their Properties, nary Relations, Representing Relations, Closures of Relations, Equivalence Relations, Partial Orderings, Graph Terminology, Representing Graphs and Graph Isomorphism, Connectivity, Euler and Hamiltonian Paths, Shortest Path Problems, Planar Graphs and Graph Coloring, Tree Traversal, Trees and Sorting, Spanning Trees, Minimum Spanning Trees, Boolean Functions and Their Representations, Minimization, Elements of Computability, Complexity Classes, P – NP – NP Completeness, Space Complexity, Number Conversion, Calculational Logic, Maximum and Minimum, Coding and Constructions. Learning Outcomes:

Second Year
Course Code  Course Name  Description  Prerequisite(s)  

CENG 211  Programming Fundamentals  Ideas from objectoriented programming, methods, classes, information hiding, and inheritance; fundamental algorithms, sorting and searching; user defined classes; concept of recursion, benefits and problems; exception handling; using APIs; simple graphics programming; concept of software design. Learning Outcomes:

CENG 113  
CENG 212  Concepts of Programming Languages  Syntax, semantics and pragmatics of programming languages. Data, storage and control. Binding of identifiers. Procedural abstraction. Definitions, sequences and concurrent processes. Types. Formal semantics. Study of key features of existing programming languages. Learning Outcomes:


CENG 213  Theory of Computation  Abstract automata, especially finite state machines; pushdown automata; and Turing machines. Formal languages, especially contextfree languages. The relationship between automata and languages. Computability and solvability. Learning Outcomes:


CENG 214  Logic Design  Introduction to Computer Architecture. Number Systems. Boolean Algebra. Logic Gates and Flip Flops. Combinational and Sequential Circuit Design. Registers, Counters. Bus Transfer. RAM, ROM units. Instruction Execution and Hardwired Control. Learning Outcomes:


CENG 215  Circuits and Electronics  Fundamentals of electric circuits, including the basic concepts (e.g. voltage, current, power), basic components (e.g. resistance, inductance, capacity, MOS transistor, operational amplifier), basic laws (e.g., Ohm’s law, Kirchhoff’s law, equivalent resistance exchange) and methods of circuit analysis. Transient analysis, frequency response, Laplace transforms, Fourier series, introduction to electronic materials and devices, diodes, bipolar transistors and logic families, MOS technology. Learning Outcomes: 1.To be able to analyse circuits and devise solutions to design problems.


CENG 216  Numerical Computation  Surveys and applications of numerical techniques related to matrix inversion, systems of linear equations and optimization, finite difference expressions, interpolation and approximation, numerical differentiation and integration. The problems of speed, accuracy and applicability of the topics are examined with related algorithms. The applications of these numerical methods and subjects on computers using efficient programming techniques and with necessary programming languages. Learning Outcomes:


CENG 218  Analysis and Design of Algorithms  The role of algoritms in computing, Growth of functions, recurrences, probabilistic analysis and randomized algorithms, dynamic programming, greedy algorithms, advanced data structures, graph algorithms, NPCompleteness. Learning Outcomes:


CENG 222  Probability and Statistics  Elementary probability theory, conditional probability and independence, random variables, distribution functions, joint and conditional distributions, law of large numbers, central limit theorem, parameter estimation, confidence intervals, and hypothesis testing. Learning Outcomes: 1.To be able to explain and apply the concepts of probability and random variables.

Third Year
Course Code  Course Name  Description  Prerequisite(s)  

CENG 311  Computer Architecture  Basic computer organization and design. Instruction fetch, decode and execution. CPU organization. Hardwired and microprogrammed control organization. Arithmetic algorithms and arithmetic processor design. InputOutput organization. Memory organization, virtual memories, caches, and their management. Machine language and assembly language. Instruction formats and addressing modes. Survey of computer architectures: Von Neumann, Parallel and RISC. Pipelining and other advanced techniques for performance improvements. Introduction to parallel computing, interconnection networks, and multiprocessors. Learning Outcomes: 1.To be able to design general purpose and dedicated microprocessors.

CENG 214  
CENG 312  Computer Networks  Overview of computer networks: Network architecture and the ISOOSI model. Circuit switching, packet switching. Network topology: Connectivity analysis, delay analysis and backbone analysis. Physical layer: Transmission and multiplexing, terminal handling, errors. Data link layer and link protocols. Network layer: Routing and congestion, satellite and packet radio networks, local networks. Transmission and session layer, presentation layer, application layer. Ethernet, token ring networks, protocols, discussion of some networks and their properties, network planning and management. Learning Outcomes: 1.To be able to analyse systems using fundamental concepts of communication.


CENG 315  Information Management  Relevance of information management in the context of computer engineering; introduction to database systems and the relational model; normal forms and their benefits; building databases, underlying methodology, database languages; issues associated with information retrieval; SQL, its use and power; information systems in the context of networks, intranets, extranets; special systems and applications; particular issues, access, security, and integrity; relevant legal and ethical issues. Learning Outcomes: 1. To be able to design a relational database.


CENG 316  Software Engineering  Software engineering, role of software engineers; evaluation of software and principles thereof, software lifecycle models; notions of requirements, specification, design implementation; main techniques; importance of maintenance; quality concerns at all stages of the software development process; important benefits of and good practice in software reuse; verification and validation; the use of metrics; structure of teams; human computer interface as a software engineering activity. Learning Outcomes:


CENG 318  Human Computer Interaction  A review of HCI concepts and history, input devices and interaction techniques, information appliances, user interface design paradigms, 3D user interfaces, adaptive interfaces, user modeling, speech recognition and conversational interfaces, wearable computers, multimodal interfaces, and perceptual interfaces. Learning Outcomes: 1.To be able to gain an understanding of humancomputer interaction theory and research.


CENG 322  Operating Systems  Classification and structure of operating systems. Storage media, memory management and dynamic storage strategies. Scheduling algorithms. I/O and interrupt structures. Protection and security. Queueing and network control models. System software: Linkers, loaders, assemblers, translators and programming environments. Case studies of existing operating systems and implementation of operating system modules. Learning Outcomes:


CENG 323  Project Management  This course is designed to introduce the engineering students to economic and management concepts. Topics will include economic concepts such as; cash flow, interest rates, rate of return, demand supply relations, product pricing, taxes, inflation, and related subjects; and management analysis such as management layers, network analysis, project management via CPM/PERT networks, optimization concepts, linear programming, and decision analysis. The course also includes use of related software. Learning Outcomes: 1.To be able to recognize the personal and technical properties required for a project manager.


CENG 370  Mainframe Computing  This course introduces students to the fundamentals of mainframe computer systems, including their history and their current implementations on personal computers.


CENG 381  Stochastic Processes  Probability spaces, random variables, distribution and density functions, random vectors, sequences of random variables, convergence notions, the central limit theorem, the law of large numbers, stochastic processes, stationary notions, Poisson processes, Gaussian processes, transformations of stochastic processes, ergodicity, second order random processes, representation theorems, Markov processes, homogeneous Markov models and applications.


CENG 382  Information Theory  An introduction to Shannon’s information theory and elementary binary coding schemes with and without noise. The concept of information, entropy, simple sources, Markov sources, continuous sources, information channels, average error, ambiguity, transformation, capacity, noiseless coding, KraftMcMillan theorem, ShannonFano and Huffmann coding schemes, errorcorrecting codes, linear codes, cyclic codes. Data Compression.


CENG 383  RealTime Systems  Specification and verification techniques for realtime systems with many interacting components. formal design of realtime systems using (a) programming languages with unambiguous semantics of time – related behavior and (b) scheduling algorithms. Realtime operating systems, concepts of programming languages for realtime systems. Synchronous programming languages for reactive systems and their mathematical background. Software development for realtime systems.


CENG 384  Microprocessors  Elements of microprocessors and microcomputers, software and hardware for microprocessors; microcontrollers; embedded system design with microcontrollers, memory interface, analogdigital input/output interfaces and interrupt interface of typical microprocessors/controllers; programming with assembly and high level languages; realtime working, realtime operating systems; design of single and general purpose microprocessor/controllers using FPGAs; system control, analysis of feedback control systems, controller design; data acquisition, fundamentals of digital signal processing.


CENG 385  Mathematical Logic  Propositional logic: syntax, semantics, decision procedures; firstorder logic: syntax, semantics, definability, formal system, completeness, undecidability, incompleteness; secondorder logic; advanced topics: manyvalued logic, modal logic, temporal logic, fuzzy logic.


CENG 386  Fuzzy Logic Systems  Fuzzy set theory, fuzzy relations, fuzzy rule base, approximate reasoning, fuzzy control, fuzzy logic system design.


CENG 388  Web Programming  During this course, we will be creating and maintaining a web server, creating HTML pages and learn how to program effectively in PHP. We will create a web site of your choosing as Project.


CENG 389  Mobile Application Development  This course covers the fundamentals of programming mobile devices, how to access and use mobile device hardware, and the interaction between mobile apps and web services. Topics include the design and implementation of user interfaces on the Android platform, crossplatform mobile application development, and programming with sensor such as the camera and the GPS.


CENG 390  Cloud Computing  This course provides a handson comprehensive study of Cloud concepts, the history and fundamentals of cloud computing across various cloud service models including IaaS, SaaS, PaaS, including requirements, constraints, architecture, principals, areas of implementation, advantages/disadvantages and comparison to hybrid and local architectures. PaaS topics covers a range of Cloud platforms such as Google App Engine, Amazon Web Services(AWS), Microsoft Azure and others. Topics include the design, development and implementation of cloud based mobile applications, web applications, databases and systems as well as migrating existing software applications to the cloud, working on hybrid solutions. Course offers wide range of case studies of globally recognized technology startups, products and brands which are built on cloud platforms and analyze and review them in terms of technology, operations, finance, branding and business plan aspects.


CENG 391  Introduction to Image Understanding  This course covers the basic image processing techniques and approaches for image content analysis.. The course content includes memory representation of images, basic image processing techniques, keypoint extraction and description, image matching and fundamentals of camera geometry.

Fourth Year
Course Code  Course Name  Description  Prerequisite(s)  

CENG 400  Summer Practice  The summer practice allows students to experience practical applications in companies. It also allows students to know general structure of the host company. With this experience students involve ongoing reallife projects. Learning Outcomes:


CENG 411  Professional Issues in Computer Engineering  Critical examination of ethical problems associated with computer engineering; discussion of these problems conducted within the framework of classical philosophical ethical theories; legal and quasilegal (i.e., policy and regulative) issues; topics addressed include the process of ethical decisionmaking, privacy and confidentiality, computer crime, professional codes and responsibilities, professional practice, system security, impact of computers on society. Learning Outcomes: 1.To be able to understand ethical issues in information technology.


CENG 415  Senior Design Project & Seminar I  Writing technical reports, project management and planning, system analysis, requirement analysis, engineering ethics, data design, software design, presenting a project Learning Outcomes: 1.To be able to identify problem.


CENG 416  Senior Design Project & Seminar II  Invited speakers, change management, coding documentation, coding standards, testing, reliability, security, protyping, user manuals, group demos Learning Outcomes: 1.To be able to identify problem.

CENG 415  
CENG 418  Information Security  Information Security is a comprehensive study of the principles and practices of computer system security including operating system security, network security, software security and web security. Topics include common attacking techniques such as virus, trojan, worms and memory exploits; the formalisms of information security such as the access control and information flow theory; the common security policies such as BLP and Biba model; the basic cryptography, RSA, cryptographic hash function, and password system; network intrusion detection; software security theory; web security; legal and ethical issues in computer security. Learning Outcomes: 1.To be able to learn the common security threats in digital world.


CENG 421  Network Programming  This course covers all aspects of TCP/IP and network socket programming. Starting with a review of IP and TCP, including its services and IPv6, we will then learn about socket programming and time permitting, we will be exploring new trends in networking and programming.


CENG 422  Network Design & Management  LAN/WAN analysis and design; LAN standards, internetworking, recent technologies, LAN design procedures; WAN design, network services, WAN design procedures; LAN management, SNMP (simple network management protocol); design tools, network simulators.


CENG 424  Embedded Computer Systems  Nature of embedded systems, particular problems, special issues; role in computer engineering; embedded microcontrollers, embedded software; real time systems, problems of timing and scheduling; testing and performance issues, reliability; low power computing, energy sources, leakage; design methodologies, software tool support for development of such systems; problems of maintenance and upgrade; networked embedded systems; FPGA design issues. Learning Outcomes:


CENG 431  Building Software Systems  Concepts of open source, shareware, freeware; issues of quality, conditions of use, availability; issues of software reuse; program libraries, software components; creation of additional libraries and other components; application program interfaces; use of separate compilations; use of software libraries and other software components; problems of building large systems; assessment of software including interfaces such as metrics and measures; criteria; simple principles of interface design; multimedia issues; special problems associated with color, sound, video and multimedia; advanced issues in objectoriented programming, modularity, storage management issues, parallelism; client server computing, different kinds of servers, the role of middleware; overview of the software support needed for client services and server services; illustrations of the use of object oriented techniques applied to the building of certain commonly used software tools; applets and servlets; simple design patterns; nature of the software life cycle and its different phases; concept of process; differences across various developments and the reasons for the differences.


CENG 432  Fundamentals of Enterprise Application Development  This course explores advanced application development techniques in a large enterprisewide setting. Topics include agile software development, multitier applications, server side programming, transaction processing, web programming, application installation and deployment issues.


CENG 433  Scalable Software Development for Internet  Logical / physical arhitecture design and server components, performance measurement, advanced caching strategies, horizontal scaling with MySQL and handling peak load.


CENG 434  Enterprise Application Integration  This course topics include types of enterprise application integration, their design and implementation issues as well as their qualites such as security, reliability and fault tolerance.


CENG 435  Database System Design and Implementation  This course will cover a number of advanced topics in database management systems and modern database applications. The specific topics include advanced concurrency control techniques, query processing and optimization strategies for relational database systems, advanced indexing methods, parallel and distributed database systems, nextgeneration data models, data mining on large databases, data on the web, and topics in data security and privacy.

CENG 315  
CENG 436  Distributed Information Management  This course investigates principles of distributed database systems including design and architecture, security, integrity, query processing and optimization, transaction management, concurrency control, and fault tolerance. The course blends theory with practice in that each student will use distributed database concepts to develop a JDBC application and to implement a JDBC driver onto Webbased distributed databases.

CENG 315  
CENG 437  Software Quality Management  This course covers the topics of software quality management, quality management paradigms (CMMI, ISO, IEEE), methods used in quality management, enhancement of quality process, management of quality cost, error, preventive error avoidance.

CENG 316  
CENG 441  Introduction to Parallel Programming  Introduction to the programming techniques to effectively utilize modern multicore computers. Identifying the parallelism, naming shared data, synchronizing threads, the latency and bandwidth associated with communication, analyzing & improving parallel performance, parallel programming tools, miscallenous lab works & exercises.


CENG 442  Multicore Architectures and Operating Systems  An evolutionary approach to the multicore architectures, integration of multicore architectures with operating systems, OS kernel design for multiprocessors and multithreding, OS support for threads, User level threads, Kernel level threads, An example: Solaris threads, Threads and libraries, Hardware support for multithreading in a uniprocessor and in a multiprocessor.


CENG 443  Heterogenous Parallel Programming  Heterogeneous GPU architecture, GPU programming models and techniques, CUDA programming.


CENG 444  Parallel Programming Patterns  Paralel programming, concurrency, task parallelism, synchronization patterns.


CENG 451  Advanced Digital System Design  Finite state machine design and analysis; highlevel hardware description languages, VHDL, automated synthesis in design; digital integrated circuit design and advanced design principles; electrical properties of digital circuits, synchronous and asynchronous circuits, computer arithmetic and interfacing to external circuitry, digital system testing and design for testability; implementation of embedded computing systems in terms of Application Specific Integrated Circuits; Design for reuse.


CENG 452  Building Software for Embedded Systems  Design and implementation of software for programmable embedded systems; software tools such as compilers, schedulers, code generators, and systemlevel design tools; dataflow and control models of computation and software synthesis for uniprocessor and multiprocessor architectures; synchronous/reactive languages and their mathematical properties; implementation of signal processing, communication and control algorithms using variety of technologies such as digital signal processors, microcontrollers, FPGAs, ASICs and realtime operating systems; realtime kernel design; software implemented faulttolerance techniques.


CENG 461  Artificial Intelligence  Declarative programming; problem solving; knowledge representation; reasoning; acting logically; uncertainty; learning; communicating.


CENG 462  Soft Computing  Artificial neural networks; evolutionary computation; fuzzy systems.


CENG 463  Introduction to Machine Learning  An Introduction to the machine learning with examples in different application areas. Bayesian decision theory. Supervised learning techniques. Model selection. Dimensionality reduction. Clustering. Support vector machines. Graphical models. Introduction to neural networks. Reinforcement learning.


CENG 464  Text Mining  This course provides an opportunity to learn key components of text mining and analytics aided by the realworld datasets and the text mining toolkit written in Python. Handson experience in core text mining techniques including text preprocessing, sentiment analysis, and topic modeling.


CENG 465  Principles of DataIntensive Systems  The main aim of this course is to familiarize students with fundamental ideas behind a broad variety of data systems. The students will be able to compare diverse approaches, techniques, and tools for storing and processing data so that they can discuss the strengths and weaknesses of each and decide the most suitable one for their applications. Data models and query languages; storage and retrieval; replication and partitioning in distributed data; transactions; challenges of distributed systems, consistency, and consensus in distributed systems; batch and stream processing.


CENG 471  Cryptography  Secrecy, integrity, authentication, history of the cryptography, the fundamental concepts of information theory, secrecy systems, monoalphabetical substitution, polyalphabetical substitution, transposition, block ciphers, Data Encryption Standard (DES), Advanced Encryption Standard (AES), key management, combining block ciphers, Symmetrical cryptosystem security architectures, Symmetrical cryptosystem design & verification. Factorization based (RSA), ECC based asymmetrical cryptosystems, Random number generators, prime number generators and primality testers, hashing algorithms (MD5SHA0SHA1SHA2), PKI and related models, standards: IEEE P1363, Fips 186.2, – 140.2, x9.62, x9.63, PKCS#6, x509v3.


CENG 472  Network Security  Link Encryption, EndtoEnd Encryption, Network and Internet Based Attacks, Firewalls, Email Security Issues, Web Based Security Issues, Disaster Recovery, C2 Functionality Standalone vs Network Operation, Hackers and Crackers, Network Crackings.


CENG 473  Security of Information and Communication Technologies  Introduction to security of information and communication technologies, fundamental security functions and related cryptographic tools, network security and related problems, protection mechanisms and tool will be evaluated. Then current hot topic security problems will be analyzed for “cloud computing”, “web applications and services”, “wireless networks”, etc. and security management of information systems will be discussed. Students will have a term project for the course about an uptodate problem of these topics, which they are interested in and will prepare a written report about it then, present their work.


CENG 481  Theoretical Approaches in Computer Science  Turning theoretical ideas into solution sets in computer science. Integration of mathematical approaches with general problem solving techniques and computer science applications. Topics will be from Algorithms, Complexity Theory, Game Theory, Probability Theory, Graph Theory, Automata Theory, Algebra, and Cryptography.


CENG 482  Evolutionary Computation  Evolution strategies, evolutionary programming, genetic algorithms, genetic programming, overview of selected evolutionary computation techniques.


CENG 483  Behavioural Robotics  Mechatronics; architectures; control; AI components; computer vision; mapping; planning; navigation; communication; cooperation; robot ethics; applications.


CENG 484  Data Mining  Data mining in general, data warehousing, data preparation and data mining primitives, concept description, mining association rules in large databases, classification and prediction, cluster analysis, web mining, applications in data mining.


CENG 485  Information Technology Entrepreneurship  In addition to an introductory treatment of business fundamentals in information technology, course topics will include paradigms, strategies and methods in goal setting, team formation, intellectual property, customer projects and business management for information technologies.


CENG 486  Entrepreneurship for Smart Business  Components of smart business and its ecosystem. Automation of business processes. Business models for Smart Business and their implementation.


CENG 487  Introduction to Computer Graphics  This course covers rendering techniques and programming interfaces for Computer Graphics. The course topics include basic mathematical concepts in Computer Graphics (two and three dimensional transformations), lighting models, methods for basic scene modeling and visibility analysis. Application of these Computer Graphics techniques on modern hardware using OpenGL is also covered.


CENG 488  Computer Graphics  This course covers advanced rendering techniques for Computer Graphics. The course topics include advanced lighting models, acceleration and volume rendering techniques. Acceleration of these Computer Graphics techniques on modern hardware is also covered.
