CENG MS Courses
Course Code  Course Name  Description  Prerequisite(s)  

CENG 500  MSc Thesis  Program of research leading to MSc degree, arranged between a student and the faculty member. Students register to this course in all semesters starting from the beginning of their second semester while the research program or writeup of the thesis is in progress. 

CENG 501  Introduction to Statistical Data Processing  Organization and application of computers and statistical techniques to data processing. Data handling in terms of coding, preparation, acquisition (with and without computers), screening and reduction; summarization, tabulation and analysis; random variables, statistical estimation and hypothesis testing, enumerated data analysis, linear models ( regression, correlation, analysis of variance).


CENG 502  System Modeling and Computer Simulation  Introduction, System concept, System modeling, Monte Carlo technique, definition and selection of system input variables, generation and examination of random numbers, generation of random variables, Discrete System simulation, Discrete System Simulation Software.


CENG 503  Computer Applications in Medicine and Biology  The analysis and design of Hospital Information Systems. The mathematical, physical and Physiological basis for algorithms used in medicine, imaging and biological modeling. Topics in computer modeling of organs will be chosen from the brain, heart, nervous system, sense organs etc.


CENG 504  Optimization Methods  Linear programming, nonlinear programming, iterative methods and dynamic programming are presented, especially as they relate to optimal control problems. Discrete and continuous optimal regulators are derived from dynamic programming approach which also leads to the HamiltonJakobiBellman Equation and the Minimum Principle. Linear quadratic regulators, linear tracking problems and output regulators are treated. Linear observer and the separation theorem are developed for controller implementation.


CENG 505  Advanced Computer Networks  Overview of computer networks, wireless networks, OSI, Internet model, TCPUDP/IP, wireless TCP, mobile IP, IPv6, congestion control, QoS services, multicast routing, supports for realtime communication, network security, future trends in networks.


CENG 506  Deep Learning  This course covers methods for designing and training deep neural networks. The course content includes the historical evolution of deep neural networks, their fundamental working principles and image classification and object detection and recognition in images using convolutional neural networks.


CENG 507  Introduction to Biometric Recognition  This course covers biometric recognition and identification methods and systems. The course content includes the historical evolution of biometric recognition, the fundamental principles of biometric recognition systems and basic face and fingerprint recognition algorithms.


CENG 508  Digital Image Processing  This course covers the materials required to process and enhance photographic images, remote sensor multispacial scanner data and others. Topics include transform techniques, records and discriminate function.


CENG 509  Vision Based Tracking and Modeling  This course covers the tracking of object and camera positions from images and videos by using computer vision techniques. Course contents include the mathematical theory and the algorithms used in practice necessary for modeling the objects and scene to be tracked.


CENG 511  Advanced Information Theory  This course will begin by explaining the methods of types. It will then address the rate distortion theory. It will also cover multipleusers channels and channels with random parameters. Finally, correlated source encoding will be provided.


CENG 512  Advanced Theory of Computation  This course will begin by explaining the different models of computation. It will then address the ChurchTuring thesis. The course also will cover the topics of decidability and reducibility. Finally, detailed information is provided about complexity and related concepts.


CENG 513  Compiler Design and Construction  This course deals with the theory and practice of compiler design. It will address the topics of scanning and parsing. Semantic analysis will also be covered.


CENG 514  Computational Number Theory  Fundamentals, Algorithms for Congruences, Equations, and Powers, Euler’s Φ Function and Coding, Second Degree Congruences, Prime Numbers, Quadratic Residues, Continued Fractions, Algorithms for Primality Testing, Finding Large Primes, Elliptic Curves, Factoring Algorithms, Algorithms for Exponential Methods of Factoring Integers, Subexponential Factoring Algorithms, Computing Discrete Logarithms.


CENG 515  Topics in Computer Science  Topics from advanced areas will be discussed in a seminar format. Contents may vary.


CENG 516  Advanced Programming Languages  Design and implement new language features, to precisely understand the rationale for existing features in modern languages, and to understand how design decisions can impact implementations.


CENG 517  Classics Works in Computer Science  Gödel’s undecidability theorem, computability, game theory ideas, information theory basics, graphs, networks, new directions in cryptography, the Antikythera mechanism, declarative programming, relational database model, machines and intelligence, computational complexity.


CENG 518  Introductin to Research Methodology and Ethics  Empirical computer science. Basic research methodology. Research and experimental questions. Experimental evaluation. Ethics in research. Study of the larger ethical and social issues of computing, including the role of a digital society in the modern world.. Practical and theoretical applications of computer privacy and reliability. Ethical theory and its application to problems in computing.


CENG 521  Advanced Operating Systems  Operating systems review, process synchronization, distributed system communication, synchronization in distributed systems, distributed algorithms, static and dynamic scheduling in distributed systems, group communication, fault tolerance, distributed realtime systems.


CENG 522  Advanced Embedded System Design  Nature of embedded systems, their role in computer engineering; special and general purpose microprocessor design, embedded microcontrollers, embedded software; real time systems, problems of timing and scheduling; testing and performance issues, reliability; design methodologies, software tool support for development of such systems; problems of maintenance and upgrade; introduction to Application Specific Integrated Circuit (ASIC) Design, VHDL.


CENG 523  Advanced Topics of Real Time Systems  RealTime software design issues, realtime operating systems, realtime scheduling algorithms, formal methods in software specification, modeling and verification using timedautomata, software design, programming languages, testing, performance analysis and optimization, documentation, software reuse, faulttolerance


CENG 524  Advanced Computer Architecture  Basic principles of processor design, instruction set architecture, pipelining, design of advanced memory hierarchies, multithreading, tasklevel and instructionlevel parallelism, interprocessor communication models, multiprocessors, future trends.


CENG 525  Fault Tolerant Computing  Fault modeling, testing and redundancy techniques to achieve fault tolerance in computer systems, error detection, failure recovery, error coverage, current research in the field.


CENG 531  Advanced Artificial Intelligence  Approaches to AI; higherorder logic; planning; expert systems; environment of AI systems; soft computing in AI systems; nonsymbolic learning; natural language processing; intelligent agent; multiagent system; semantic web; robotics.


CENG 532  Expert Systems and Knowledge Engineering  Introduction to the various techniques used in building an expert systems. Topics covered include: knowledge representation methods, production systems, inference procedures, uncertainty and evidence combination, expert systems architectures and control, knowledge acquisition, programming languages for expert systems, and various case studies.


CENG 533  Probabilistic Reasoning  Graphical Probability Models. Bayesian Reasoning. Bayesian Networks. Learning in Bayesian Networks. Knowledge Engineering. Temporal Models. Inference in Dynamic Bayesian Networks. Markov Decision Processes.


CENG 534  Deep Learning for Natural Language Processing  Natural language processing (NLP) is one of the most important technologies of the information age. In traditional NLP, taskspecific feature engineering and languagespecific solutions were common. Recently, deep learning approaches have obtained very high performance across many different NLP tasks and multilingual solutions have been introduced. This course covers cuttingedge research in deep learning applied to NLP. Topics include word vector representations, windowbased neural networks, recurrent neural networks, longshorttermmemory models, recursive neural networks, convolutional neural networks as well as some very novel models involving a memory component. A term project to implement, train, test, and visualize a custom neural network solution to a large scale NLP problem will be given.


CENG 541  Advanced Database Management Systems  Relational theory and extensions, such as relational calculus, relational algebra, higher order normal forms; advanced DBMS concepts, such as integrity, recovery, concurrency, security, query optimisation; objectoriented databases; distributed databases, related techniques and protocols, such as data replication, data fragmentation, synchronisation, load balancing; parallel databases; deductive databases; federated databases and homogeneity/heterogeneity.


CENG 542  Knowledge Discovery  Knowledge discovery and data mining, 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 543  Information Retrieval Systems  This course covers the components of information retrieval systems that are used to search within document collections that contain unstructured data. Information retrieval from text documents as well as documents containing rich media (such as images and video) is included in the course contents.


CENG 544  LargeScale Data Management  This course introduces the fundamental concepts and computational paradigms of largescale data management. This includes major methods for storing, updating and querying large datasets as well as for dataintensive computing. The course covers concepts, algorithms, and system issues on the topics of parallel and distributed databases, peertopeer data management, MapReduce and its ecosystem, Spark and dataflows, datalakes and NoSQL databases. 

CENG 551  Advanced Software Engineering  This course will begin by explaining the concept of software engineering. Afterwards, the software development process is described. The course will then cover software requirements, software specification, software analysis, and formal analysis. Finally, quality management, product metrics, process metrics, COTS, and software psychology are addressed.


CENG 552  Software Testing  Fundamentals of software testing; software test process and continuous quality improvement; Test generation using finite state models; Test adequacy assessment using black box and white box criteria; applications of model based testing.


CENG 555  Analysis and Design of Microservice Based Systems  This course arms students with the knowledge and expertise to “design” and “engineer” services using state of the art technology. Students will learn the Service Oriented Architecture (SOA) as a way to design an enterprise environment that features crossplatform compatibility, agility and costefficiency. In particular, microservices based architectures, reactive systems and eventoriented modelling will be taught and serverless computing will be introduced.


CENG 556  Software Management  This course focuses on two advanced aspects of software management; organizational change and software measurement. Primary topics include software process improvement frameworks, agile maturity models, software process modeling languages, software measurement and social aspects of organizational change. Students participate in a modelling and organizational assessment project to as well as gain hands on experience on measurement and prediction for software projects.


CENG 557  Advanced Software Design Patterns  This course focuses on advanced software design patterns. Primary topics include advanced objectoriented programming principles, objectoriented design patterns, patterns of enterprise application architecture, enterprise integration patterns, and patterns related to domaindriven design. Students will learn concepts of modern software development with design patterns and participate in development of a midsize programming project working in teams.


CENG 561  Advanced Information Security  Concepts and applications of system and data security. Topics include risks and vulnerabilities, policy formation, controls and protection methods, database security, encryption, authentication technologies, hostbased and networkbased security issues, personnel and physical security issues, issues of law and privacy. Areas of particular focus include secure network design, implementation and transition issues, and techniques for responding to security breaches.


CENG 562  Internet Security  Internet security overview; Basic encryption techniques; TCP/IP security; Authentication protocols; Electronic mail security; Web security; Network management security; Firewalls; Intrusion detection systems, Internet security management tools.


CENG 563  Database and Software Security  Developments, issues, and challenges in secure databases and secure software applications. Security models, fundamentals and practices for databases and software.


CENG 564  Information Systems Policy, Management and Organization  The policy based management for planning, developing, installing, operating, and maintaining information systems in organizations with focus on political, economic, technological, physical and organizational factors.


CENG 565  C4I and Information Warfare  Concepts, Terminology, CommandControlCommunicationsComputers and Intelligence (C^{4}I ) Structure, Aims and Threats, Attacks and Defenses in Cyber Space, Economic – Psychological and Intelligence Warfare, Information Warfare Strategy, Intelligence and Counterintelligence in Cyber Space, Cyber Terrorism.


CENG 566  Privacy Enhancing Technologies  Data privacy is an important issue for the scientific community and industry. This course will give an overview of privacy concepts and terminology as well as concrete examples of privacyenhancing technologies (PET) and some of their applications. 

CENG 590  Seminar  This seminar course must be taken by all MSc students working towards their MSc thesis. The students taking the course are required to make presentations on their thesis studies and prepare progress reports and final reports. The aim of this course is that students could gain knowledge via literature search, make the report and present it as a seminar. Besides, this course aims to inform students about presentation techniques, format and outline. 

CENG 608  3D Photography  This course covers algorithms and applications to extract 3D information (especially shape) from images. It starts with the camera model and calibration, 2D and 3D projective geometries and extracting feature points. Then it covers passive 3D reconstruction techniques such as single view reconstruction, structure from motion, shape from silhouettes. Active sensing techniques (time of flight cameras, structured light, laser scanners etc.) that directly obtain 3D data are also briefly covered.


CENG 611  Advanced Design and Analysis of Algorithms  This course examines a variety of theoretical issues that have important practical consequences in the design and analysis of algorithms. We emphasize the importance of asymptotic analysis and the common methodology used in the analysis of sequential and parallel algorithms. We will analyze the factors that influence the performance of algorithms on different computer architectures (such that many cores and parallel computers and high performance computers) and their implications on scientific applications of interest. We will survey major design strategies used in the complexity analysis of different algorithms. New models for parallel computation will be studied and critically evaluated. The complexity and limitations of these models will be discussed. 

CENG 612  Category Theory in Computer Science  This course aims to provide foundations on the mathematical theory of categories as needed in applications to computer science. On completion of this course students should be learn the basic language and proof methods of category theory, and thereby be able to read and study research papers in computer science that use and/or are based on category theory. 

CENG 613  Research Methods in Computer Science  What is research; Research process models; Intellectual discovery; Research methods; Who is Who in Computer Science Research; Reading research papers; Structure of research papers; Literature searches; Bibliographies and referencing; Research presentations; Research project proposal; Research project planning; Risk management; Legal, social and ethical issues. 

CENG 631  Cognitive Computing  Human brain; cognitive concepts, models and architectures; mathematical models for cognitive concepts; modelling evolution of mind; collaborative cognition; cognitive machines.


CENG 632  Computational Intelligence  Bayesian networks; chaos theory; smart behaviours; hybridisation and hybrid systems. 

CENG 641  Data Integration  This course will begin by explaining the different reasons that make data integration hard: systems, logical and social reasons. The course will then cover the fundamentals of data integration, such as languages for resolving heterogeneity, automatic schema mapping techniques, query processing in heterogeneous systems and novel architectures for data integration. Finally, the commercial state of the art in this area and data spaces will be discussed.


CENG 642  Privacy Preserving Data Mining  Due to the combinatorial nature of the problem, the proposed methodologies span from simple, time and memory efficient heuristics and borderbased approaches, to exact hiding algorithms that offer guarantees on the quality of the computed hiding solution at an increased, however, computational complexity cost.


CENG 643  Pattern Discovery in Data Mining  This course introduces students to different aspects of pattern discovery (frequent pattern mining or pattern mining or association rule mining) which is the earliest and most popular task of data mining where the objective is to find hidden frequent patterns in massive data. Frequent patterns are important in many domains like marketbasket analysis, software bug mining, web click analysis, phrase mining, image processing, recommender systems, etc. The course will cover the key aspects of the field in terms of algorithms, variations, scalability, data types and applications. The topics include frequent patterns, pattern usage in compression, patterns in dynamic data (streams, sequences and spatiotemporal objects), big data frequent pattern mining, frequent patterns in classification and clustering and privacy in pattern mining.


CENG 651  Formal Methods for Safety and Security  Introduction to Formal Methods, Propositional Logic and Predicate Logic, Program Verification, CSP process algebra, Protocol Verification, Model Checking, System Modeling with Automata, System Properties Specification with Temporal Logics, Model Checking Algorithms, Symbolic Model Checking, Abstraction Methods, SPIN Model Checker.


CENG 661  Advanced Asymmetrical Cryptosystems  This course follows on from the introductory cryptography course. In that course cryptographic algorithms were introduced according to the properties they possessed and how they might fit into larger security architecture. In this unit, the most popular and widely deployed algorithms are studied and highlighted design and cryptanalytic trends over the past twenty years. This course is, by necessity, somewhat mathematical and some basic mathematical techniques will be used. However, despite this reliance on mathematical techniques, the emphasis of the module is on understanding the more practical aspects of the performance and security of some of the most widely used cryptographic algorithms. 

CENG 662  Advanced Symmetrical Cryptosystems  The aim of this course is to prepare the students for the design and analysis of symmetrical cryptosystem. Therefore the students should be know the analysis of the security level of these cryptosystem and which cryptanalytic attacks are how much efficient on it. 

CENG 663  Cryptanalysis  The aim of this course is to prepare the students for the design and analysis of any cryptosystem. Therefore the students should be know the analysis of the security level of the cryptosystem and which cryptanalytic attacks are how much efficient on it. 