PhD Courses

Course Code Course Name Description Prerequisite(s)
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).

Recommended or Required Reading

Baron, Michael. Probability and statistics for computer scientists. Chapman and Hall/CRC, 2019.

Topics
Data; Classification, Summarization and Tabulation of Data; Descriptive Statistics and Coding
Introduction to Probability
Conditional Probability, Random Variables, Expected Values
Discrete Distibutions, Binomial, Negative Binomial and Poisson Distibutions
Continuous uniform, Normal, Gamma, Exponential and Weibull Distributions.
Midterm
Introduction to Statistical Inference, Point Estimation, Interval Estimation
Tests of Hypotheses, Large Sample Tests
Tests of Hypotheses, Single Sample Tests, Two Sample Tests
Tests of Hypotheses, Small Sample Tests
Analysis of Categorical Data (Chi-Square Tests)
Simple Linear Regression and Correlation
Introduction to Multiple Linear Regression
Introduction to Experimentation, Analysis of Variance

Grading

Midterm 30%

Homework 40%

Final 30%

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.

Course Objective

Introduction to system and model concepts. To provide information about the theoretical foundations of simulation studies. To realize an actual system simulation study.

Recommended or Required Reading

Neelamkavil, F. (1987) Computer Simulation and Modelling. John Wiley and Sons. ,Law, A.M. and Kelton, W.D. (1991) Simulation Modelling and Analysis. 2nd Ed. McGraw-Hill.

Learning Outcomes

1. Gaining the concepts of system and model

2. Use of simulation technique in problem solving

3. Learning the foundations of simulation studies and gaining the ability of implementing simulation techniques

4. Learning how to estimate using simulation

Topics
Simulation vs Monte Carlo, Nature of Computer Simulation, When to Use Simulation
Systems, Models
Review of Basic Statistics and Random Variables
Review of Parameter Estimation and Testing Hypotheses
Goodness of Fit Tests
Selecting Input Probability Distributions
Random Numbers, Generation of Random Numbers, Testing Random Number Generators
Midterm
Techniques of Generating RV s, Inverse Transform Technique ad other methods
Table Look-up Procedures for Normal Distribution, Direct Transformation for Normal Distribution
Generating RV’s from other Continuous Distributions
Generating RV’s from Discrete Distributions
Discrete Event Simulation, Concepts
Programming Languages for Simulation

Grading

Midterm: 30%

Homework: 10%

Final: 60%

CENG 503 Computer Applications in Medicine and Biology

Computer applications in medicine and biology, medical imaging technics, disease diagnosis with medical image processing, hospital information systems, patient tracking systems, mathematical modelling of medical information, networking in medical information systems.

Course Objectives

1. To teach the use of computer Networks in medical informatics,

2. To examine mathematical modelling of medical information,

3. To examine medical information systems,

4. To teach the application areas of processes and differential equations in medical informatics,

5. To examine the principles of hospital information systems.

Recommended or Required Reading

Introduction to medical informatics, Lecture notes, N. Baykal, E. Musluoğlu, Sas Bilişim, 2000.

Learning Outcomes

1. Gain knowledge about computer applications in medicine and biology

2. Understand application fields of the computer networks in medicine and biology

3. Understand the usage of mathematical modelling in medicine and biology

4. Learn medical imaging techniques

5. Learn mathematical modelling of the raw data which is provided by the medical imaging methods

6. Understand application fields of medical imaging

7. Understand processes and differential equations in medicine and biology

8. Understand hospital information systems

Topics
Application fields of computers in medicine and biology
Medical data and information
Computer Networks in medicine
Bio signal analysis
Patient centered information systems
Clinical support systems
Planning, modelling and development of hospital information systems
Medical decision support systems
Processes and differential equations
Computer vision in medicine
System theory
Medical imaging techniques
Classification and treatment of medical raw data
Electronic medical records

Grading

Midterm: 25%

Homework: 25%

Presentaiton: 20%

Final: 30%

CENG 504 Optimization Methods

Unconstrained optimization; one-dimensional search, gradient search methods. Constrained optimization; linear and integer programming. Heuristics. Non-derivative methods (metaheuristics); simulated annealing, genetic algorithms, neural networks.

Class Hours

3 lecture hours

Prerequisite: Knowledge of calculus and elementary programming.

OBJECTIVE

To provide the fundamental concepts and mathematical tools in optimization theory.

LEARNING OUTCOMES

  1. Ability to formulate and solve engineering problems
  2. Ability to classify various optimization methods
  3. Ability to propose an optimization technique for a specific problem
  4. Ability to use optimization tools

TEXTBOOK

Chong, E. K. P., and Zak, S. H., An Introduction to Optimization, Fourth Edition, John Wiley & Sons, 2013.

Week Topic
1 Introduction to optimization
Math. Review
2 Vector spaces and matrices, linear transformations, orthogonal projections
3 Quadratic forms, calculus, conditions for local minimizers
Unconstrained optimization
4 One dimensional search – golden section search, Fibonacci search
5 One dimensional search – Newton’s method
6 Multi-dimensional gradient methods – steepest descent, Newton’s method
7 Conjugate direction methods
Constrained optimization
8 Linear programming
9 Linear programming – simplex algorithm
10
Integer programming
11
Heuristics for optimization
Non-derivative methods (Metaheuristics)
12
Simulated annealing
13
Genetic algorithms
14
Artificial neural networks
CENG 505 Advanced Computer Networks

Discussing the protocols, algorithms and other software that are essential to design advanced network services. Studying new research topics by focusing on the latest services and protocols.

Course Objectives

To recall the design issues of advanced network services and to discuss the latest research

Recommended or Required Reading

Andrew S. Tanenbaum, Computer Networks, 4th edition ,H. Zimmermann, “OSI Reference Model — The ISO Model of Architecture for Open Systems Interconnection, IEEE Transactions on Communications, 28(4), April, 1980, pp. 425-432 ,Yves Legrandgerard and Mohsen Souissi, “IPv6 Tutorial”, G6 Aristote – Renater IPv6 Conference, Paris, Oct 2002 ,Vern Paxson, “End-to-End Internet Packet Dynamics”, ACM SIGCOMM, Sep 1997

Learning Outcomes

1. To know computer networks

2. To be able to design networks

3. To be able to synthesis novel network protocols

4. To demonstrate the ability to take precautions for increasing network performance

Topics
Introduction to Computer Networks
Overview of Networks
OSI layers, Internet model, Layer 1 and Layer 2
Wireless Networks
TCP-UDP, wireless TCP and modifications
IP, mobile IP, IPv6
Routing – I
Routing – II
Performance Measurements, Traffic Analysis, Simulation
Congestion control and QoS schemes
Multicasting, Real-Time Communication Protocols
Security Issues
Future Networks and Protocols
Term Project Presentations and Discussions

Grading

Midterm: 30%

Presentation: 40%

Final: 30%

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.

Learning Outcomes:

Ability to comment about historical evolution of biometric recognition
Ability to list the basic working principles of artificial neural networks
Ability to apply the learned fundamental principles to train artificial neural networks
Ability to classify images using convolutional neural networks
Ability to apply the acquired knowledge in practice using artificial neural network coding frameworks such as torch, TensorFlow.
Topics
History of artificial neural networks and introduction
Image classification with linear methods – I
Image classification with linear methods – II
Backpropagation – I
Backpropagation – II
Training artificial neural networks I: data preprocessing, weight initialization and regularization, batch normalization and loss functions
Training artificial neural networks II: gradient checking, babysitting the training process, update methods, hyper-parameter optimization
Convolutional neural networks – I
Convolutional neural networks – II
Spatial localization and object detection with convolutional neural networks
Visualization and understanding of convolutional neural networks
Recurrent neural networks
Training convolutional networks in practice: Data augmentation, transfer learning
Deep neural network coding frameworks
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.

Course Objectives

The fundamental aim of this course is for students to gain basic knowledge on biometric recognition methods and systems. By teaching basic methods for two example biometric modes (face and fingerprint) and making them into project assignments, the given theoretical knowledge is aimed to be applied in practice. The course’s target audience is beginning graduate students.

Recommended or Required Reading

Introduction to Biometrics, Anil K. Jain, Arun A. Ross, Karthik Nandakumar, Springer Science & Business Media, 2011.

Course Learning Outcomes:

  1. Comment about historical evolution of biometric recognition
  2. List the common working principles of biometric systems
  3. Apply the fundamental principles to solve identification problems
  4. Develop basic face recognition systems using simple face recognition methods
  5. Develop basic fingerprint recognition systems using simple fingerprint recognition methods
Topics
History of person recognition and introduction of biometrics
Biometric systems
Biometric functionalities
Biometric performance measures
Introduction to fingerprint recognition
Feature extraction for fingerprint
Fingerprint matching
Introduction to face recognition
Facial image acquisition and preprocessing
Face detection
Facial feature extraction
Face matching
Handling facial variations
Face modeling

Grading

Midterm: 30%
Homework: 30%
Class attendance: 5%
Final: 35%

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.

Learning Outcomes:

To be able to describe the fundamental concepts in image processing
To identify state-of-the-art techniques in image processing research area
To implement algorithms to solve the encountered problems/requirements in the area of image processing
To prepare written and oral presentation for the performed work
Topics
Concepts in Image Processing
Digital Image Representation
MATLAB Tutorial and Image Representation in MATLAB
Image Noise and Filtering
Binary Image Processing
Image Segmentation
Fourier Transform and Its Applications
Image Enhancement
Mid-term Exam
Edge Detection
Corner Detection
Camera Geometry and Calibration
Feature Matching and Epipolar Geometry
Project Presentations
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.

Course Objectives

To provide the students with the necessary mathematical background required for basic object and camera tracking topics as well as information about the algorithms employed by state-of-the-art approaches.

Recommended or Required Reading

Kalman Filtering: Theory and Practice using MATLAB, 4th Edition, 2014 ,Multiple View Geometry by R. Hartley and A. Zissermen, 2nd Edition, 2003

Learning Outcomes

1. Describe the fundamental theoretical concepts in computer vision based tracking

2. Identify and discuss the state-of-the-art object tracking approaches

3. Design and implement a complete object tracking approach

4. Implement high performance real-time software for object tracking

Topics
Introduction to Tracking
Optical Flow and Lucas-Kanade Tracker
Template Tracking Basics
Advanced Template Tracking
Kalman Filter I
Kalman Filter II
Particle Filters
Introduction to Modeling
Sparse Models
3D Modeling
Semi-Dense models
Simultaneous Localization and Mapping I
Simultaneous Localization and Mapping II
Relocalization Approaches

Grading

Homework: %30

Research Presentation: %40

Final Exam: %30

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 multiple-users channels and channels with random parameters. Finally, correlated source encoding will be provided.

Course Objectives

To teach the fundamental principles behind modern communication systems To state the difficulties that are experienced during the design of communication systems To give the ability to optimize such systems.

Recommended or Required Reading

T.M. Cover and J.A. Thomas, “Elements of Information Theory”, Wiley, 2nd Edition, 2006. ,Imre Csiszár and J. Körner, “Information Theory: Coding Theorems for Discrete Memoryless Systems”, Akademiai Kiado, 3rd edition, Budapest, 1997. ,R.G. Gallager, “Information Theory and Reliable Communication”, Wiley, 1968. ,G. Kramer, “Topics in Multi-User Information Theory”, Foundations and Trends in Communications and Information Theory, vol. 4, nos. 4–5, pp. 265–444, 2007. ,J.L. Massey, “Applied Digital Information Theory I and II”, lecture notes, Swiss Federal Institute of Technology (ETH), Zurich, Switzerland. ,J.S. Muller, “Asymmetry: The Foundation of Information”, Springer, 2007. ,J.G. Roederer, “Information and Its Role in Nature (The Frontiers Collection)”, Springer, 2005. ,Claude E. Shannon, “A mathematical theory of communication”, Bell System Technical Journal, vol. 27, pp. 379–423 and 623–656, July and October 1948. ,R.W. Yeung, “A First Course in Information Theory”, Kluwer Academic Publishers, 2005.

Learning Outcomes

1. Know basic ideas of information theory.

2. Evaluate the modern communication systems by stating the pros and cons of them

3. Discuss the feasibility of new communication systems

4 Design communication systems

Topics
Method of types
Method of types, large deviation theory
Large deviation theory, conditional limit theorem
Conditional limit theorem, joint and conditional types
Strongly typical sets
Strongly typical sets, rate distortion theory
Rate distortion theory
Rate distortion theory
Rate distortion function
Multiple descriptions
Wyner-Ziv problem
Slepian-Wolf problem
Multiple-Access Channel
Multiple-Access Channel

Grading

Midterm: 30%

Research Presentation: 30%

Final Exam: 40%

CENG 512 Advanced Theory of Computation

This course will begin by explaining the different models of computation. It will then address the Church-Turing thesis. The course will also cover the topics of decidability and reducibility. Finally, detailed information is provided about complexity and related concepts.

Course Objectives

To define and teach different formal models of computation. To give the ability to prove the statements regarding the formal computational models. By covering the complexity classes, to make students use the concepts of NP-completeness to provide proofs for the newly introduced problems.

Recommended or Required Reading

L. Harry R., P. Christos H.,‘Elements of the Theory of Computation’, 2nd Ed., Upper Saddle River, NJ: Prentice-Hall, 1998 ,C. Daniel I.A.,’Introduction to Computer Theory’, 2nd Ed., John Wiley & Sons, Inc., 1997 ,L. Peter, ‘An Introduction to Formal Languages and Automata’,4th Ed., Jones and Bartlett Publishers, Inc., 2001 ,R. Elaine,’Automata, Computability, and Complexity Theory and Applications’, Upper Saddle River, NJ: Prentice-Hall, 2008 ,S. Arora and B. Barak, ’Complexity Theory: A Modern Approach’, Cambridge University Press, Cambridge, 2009 ,S. Cook, ‘The complexity of theorem-proving procedures’, In Proceedings of the 3rd ACM Symposium on the Theory of Computing, ACM, NY, pp 151–158, 1971. ,L. Fortnow, ‘The status of the P versus NP problem’, Commun. ACM. 52, 9 pp 78-86, 2009. ,M. Garey and D. Johnson, ‘Computers and Intractability. A Guide to the Theory of NP-Completeness’ , W. H. Freeman and Company, NY, 1979 ,A. Razborov and S. Rudich, ‘Natural proofs’, Journal of Computer and System Sciences 55, 1 pp 24–35, 1997 ,M. Sipser, ‘Introduction to the Theory of Computation’, PWS Pub. Co, 2005

Learning Outcomes

1. Recognize different computational models

2. Prove the representative models of computation for the given language definitions

3. Distinguish different complexity classes

4. Identify some hard problems of computer science and provide proofs for them

Topics
Introduction and Overview
Math Review
Finite Automata and Regular Languages
Context-Free Languages and Pushdown Automata
Turing Machines and the Church-Turing Thesis
Decidability
Catch-up and review
Reducibility
Time complexity, P, and NP
NP-completeness
Catch-up and review
Space complexity
Randomization
Parallel complexity

Grading

Midterm Exam: 30%

Homework: 30%

Final Exam: 40%

CENG 513 Compiler Design and Construction

This graduate-level course provides theoretical and practical concepts of compiler design. It will cover the front-end, including scanners and parsers, middle-end optimizations, and back-end with instruction selection, register allocation, and instruction scheduling techniques. We will have practical examples based on the LLVM framework.

Course Objectives

1. Understand scanning and parsing techniques.

2. Understand high-level optimizations and code transformations.

3. Practice and implement basic compiler structures.

4. Understand machine-dependent optimizations and low-level execution details.

Recommended or Required Reading

– Engineering a Compiler, Keith D. Cooper, Linda Torczon, Morgan Kaufmann.

– Practical examples with LLVM framework

Learning Outcomes

1. Know the theoretical fundamentals of compiler theory

2. Recognize theoretical limits on the abilities of compilers

3. Discuss the next generation compilers

4. Design and implement compilers

Topics
Introduction
Lexical Analysis
Parser
Parser – Kaleidoscope
Intermediate Representation
LLVM IR
Code Optimization
Code Optimization – LLVM Pass
Midterm
Instruction Selection
Instruction Scheduling
Register Allocation
ML Compilers
Paper Presentations

Grading

20% Midterm Exam – Take Home

20% Programming Assignments

20% Paper Reproduce and Presentation

40% Final Exam – Take Home

CENG 514 Computational Number Theory

The course Schedule includes the mathematical theories, and tools which are important for the cryptography such as the divisibility, prime numbers, congruencies, arithmetic with large integers, polynomial arithmetic, random numbers etc.

Course Objectives

To prepare the students for cryptography courses. (1,3) To develop skills to understand the divisibility, prime numbers, congruencies, arithmetic with large integers, polynomial arithmetic, random numbers, and related theories .

Recommended or Required Reading

J. H. Silverman, A Friendly Introduction to Number Theory , Second Edition ,Shoup, A Computational Introduction to Number Theory and Algebra , Version 2, E-Book, http://shoup.net/ntb ,N. Koblitz, A Course in Number Theory and Cryptography , Second Edition ,D. Bressoud and S. Wagon, A Course in Computational Number Theory ,D. E. Knuth, The Art of Computer Programming , volume 2, Second edition, 1981

Learning Outcomes

1. To be able to recognize and implement of the mathematical concepts of behind the cryptographic applications.

2. To be able to employ the coding of computational number theorical components and algorithms.

3. To be able to compare of different mathematical structures according to requirements of cryptosystems.

4. To be able to analyze the mathematical structers of symmetrical and asymmetrical cryptosystems.

Topics
Introduction
Basic Properties of Integers
Congruences
Congruences
Basic Integer Arithmetic, Faster Integer Arithmetic
Computation with large integers
Asymptotic notation, Machine models and complexity theory
Euclid s Algorithm
Prime Numbers
Abelian Groups
Rings
Finite and Discrete Probability
Hash Functions
Probabilistic Algorithms

Grading

Midterm: 30%

Presentation: 40%

Final: 30%

CENG 515 Topics in Computer Science

In this course the recent popular subjects and new technologies are discussed. The inspiring innovations in different fields in computational sciences are examined. New ideas are discussed and open subjects in hot topics are clarified.

Course Objectives

1. To discuss the milestones of the computer science,

2. To discuss the recent Technologies,

3. To examine inspiring topics in computer science,

4. To search open subjects in popular research fields in computer science.

Recommended or Required Reading

Supplementary course material provided by the course instructor.

Learning Outcomes

1. To learn fundamental innovations in computer science

2. To have knowledge about new and recent technologies

3. To examine different computational Technologies and to present potential research fields

4. To build innovative and creative thinking

5. To search open subjects and hot topics in recent technologies

6. To discuss new and innovative ideas

Topics
Biometrics in Authentication
CMMI (The Capability Maturity Model)
Next Generation Networks
Software Measurements and Metrics
SQA (Software Quality Assurance)
WAP (Wireless Application Protocol)
Distance Education
Fuzzy Logic
Genetic Algorithms
Intrusion detection systems with neural networks
Using Genetic Algorithms for FPS Bots
Cloud computing
Virtual reality
Artificial intelligence

Grading

Midterm: 30%

Homework: 30%

Final: 40%

CENG 516 Advanced Programming Languages

Functional and logic programming, concepts of programming language design, and formal reasoning about programs and programming languages.

Course Objectives

1. To understand fundamental concepts in programming languages.

2. To analyze and design programming languages.

3. To study some recent topics in programming languages research.

Recommended or Required Reading

B. C. Pierce, Types and Programming Languages , MIT Press, 2002. ,G. Winskel, The Formal Semantics of Programming Languages , MIT Press, 1993.

Learning Outcomes

1. Understand, generalize and analyse different programming languages.

2 Design and implement programming languages.

3 Compare and evaluate different programming languages.

4 Apply different programming languages to real world problems.

Topics
Introduction to programming languages
Syntax and semantics I
Syntax and semantics II
Denotational semantics
Type theory I
Type theory II
Lambda calculus I
Lambda calculus II
Functions
Axiomatic semantics I
Axiomatic semantics II
Verifying program properties with theorem provers
Logic programming I
Logic programming II

Grading

Midterm: 30%

Presentation: 40%

Final: 30%

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.

Course Objectives

Knowledge of ideas and basic assumptions inside the classics articles of computer science provides the understanding of the boundaries of the field. This paves the way for advanced research. The objective of the course is thus to provide this necessary background to give new perspectives.

Recommended or Required Reading

D. E. Denning, “A Lattice Model of Secure Information Flow”, Commun. ACM, vol. 19, pp. 236 243, 1976

Learning Outcomes

1. Know the basic assumptions and ideas in computer science

2. Know the scientists who are leading the way in computer science

Topics
Gödel’s Undecidability Theorem
On Computable Numbers, with an Application to the Entscheidungsproblem by Alan M. Turing
Simulating Physics with Computers Richard P. Feynman
Non-Cooperative Games by John Nash
A Mathematical Theory of Communication by Claude E. Shannon
Paths, Trees, and Flowers by Jack Edmonds
New Directions in Cryptography by Whitfield Diffie and Martin E. Hellman
Midterm
As We May Think by Vannevar Bush
Recursive Functions of Symbolic Expressions and Their Computation by Machine by John McCarthy
Computing Machinery and Intelligence by A.M. Turing
A Theory of the Learnable by L.G. Valiant
A Lattice Model of Secure Information Flow by Dorothy E. Denning
In Search of Lost Time Decoding the ancient Greek astronomical calculator known as the Antikythera Mechanism High Tech from Ancient Greece

Grading

Midterm: 30%

Homework: 30%

Final: 40%

CENG 518 Introduction 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.

Course Objectives

This course includes an understanding of what computer science researchers do and the philosophy and ethics related to how they do it.

Recommended or Required Reading

Research Methods in Computer Science Course Notes by Prof.Dr. Ullrich Hustadt, Department of Computer Science, University of Liverpool (2008)

Learning Outcomes

1. The internalization of the research methodology.

2. Able to do experimental design.

3. Able to construct and test experimental hypotheses.

4. The internalization of general ethical issues and ethics in research.

Topics
Introduction to research methodology and ethics
Research
Origins of scientific method
The scientific method
Choosing a project
Project planning
Reading research papers
Searching for literature
References and citing
Presentation techniques
Ethics in scholarly work
Student project proposal presentations week 01
Student project proposal presentations week 02
Student project proposal presentations week 03

Grading

Report 40%

Homework 40%

Final 20%

Important remark for incoming Erasmus students:

This course is graded as Pass/Fail. You cannot get AA, BA or any letter grade from it.

CENG 521 Advanced Operating Systems

Students will study advanced operating system topics and be exposed to recent developments in operating systems research. This course involves readings and lectures on classic and recent papers. Topics: virtual memory management, synchronization and communication, file systems, protection and security, operating system structure and extension techniques, fault tolerance, and history and experience of systems programming.

Course Objectives

To teach the fundamentals topics and theorems of computer science. To teach the research, analyze, compare and modeling techniques of computer science. To teach the hot topic concepts, research areas and problems of computer science.

Recommended or Required Reading

Yee, Sehr, Dardyk, Chen, Muth, Ormandy, Okasaka, Narula, Fullagar / Ben Hawkes, Native Client: A Sandbox for Portable, Untrusted x86 Native Code Exploiting Native Client ,Dersin belirlenmiş bir kitabı yoktur. Öğrencilerin verilen sırada makale/bildirileri okuyarak derse gelmeleri beklenir. ,Richard Gabriel, The Rise of “Worse is Better” ,Savage, Burrows, Nelson, Sobalvarro, and Anderson, Eraser: A Dynamic Data Race Detector for Multithreaded Programs ,Butler Lampson,Experience with Processes and Monitors in Mesa ,Hans-J. Boehm,Threads cannot be implemented as a library ,Ousterhout, von Behren, and Adya, Cooperative Task Management without Manual Stack Management, Why Threads Are A Bad Idea, Why Events Are A Bad Idea ,Navarro, Iyer, Druschel, and Cox, Practical, Transparent, Operating System Support for Superpages ,Waldspurger,Memory Resource Management in VMware ESX Server ,Rinard, Cadar, Dumitran, Roy, Leu, Beebee, Enhancing Server Availability and Security Through Failure-Oblivious Computing ,Adams and Agesen, A Comparison of Software and Hardware Techniques for x86 Virtualization ,Rosenblum and Ousterhout, The Design and Implementation of a Log-Structured File System ,Nightingale, Veeraraghavan, Chen, Flinn, Rethink the Sync (slides) ,Mogul and Ramakrishnan, Eliminating Receive Livelock in an Interrupt-Driven Kernel ,Sandberg et al. / Gray and Cheriton, Design and Implementation of the SUN Network Filesystem Leases: An Efficient Fault-Tolerant Mechanism for Distributed File Cache Consistency ,Muthitacharoen, Chen, and Mazieres, A Low-Bandwidth Network File System ,Dean and Ghemawat / DeWitt and Stonebraker, MapReduce: Simplified Data Processing on Large Clusters MapReduce: A major step backwards ,Bessey, Block, Chelf, Chou, Fulton, Hallem, Henri-Gros, Kamsky, McPeak, A Few Billion Lines of Code Later: Using Static Analysis to Find Bugs in the Real World.

Learning Outcomes

1. The analyzing and modelling capability of the changing and the new requirments of the operating systems which are coming with technological improvements.

2. Defining and modelling capability of computer science hot topic research problems.

3. To have the estimate and plan capability for the future studies and research areas on computer science.

4. To be able to analyze and compare the architectural design of new operating systems.

Topics
The Rise of “Worse is Better”
Eraser: A Dynamic Data Race Detector for Multithreaded Programs
Experience with Processes and Monitors in Mesa
Threads cannot be implemented as a library
Cooperative Task Management without Manual Stack Management
Practical, Transparent, Operating System Support for Superpages
Memory Resource Management in VMware ESX Server
Enhancing Server Availability and Security Through Failure-Oblivious Computing
A Comparison of Software and Hardware Techniques for x86 Virtualization
The Design and Implementation of a Log-Structured File System
Rethink the Sync (slides)
Eliminating Receive Livelock in an Interrupt-Driven Kernel
An Efficient Fault-Tolerant Mechanism for Distributed File Cache Consistency
A Low-Bandwidth Network File System

Grading

Midterm: 30%

Application: 40%

Final: 30%

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

Course Objectives

Discussing the latest issues on advanced embedded system design.

Recommended or Required Reading

“Real-Time Systems Design and Analysis”. Phillip A. Laplante. A John Wiley & Sons, Inc., Publication ,“Software Engineering for Real-Time Systems”, J.E. Cooling, Addison Wesley. ,Adamski, Marian Andrzej. Design of Embedded Control Systems, Boston, MA : Springer Science+Business Media, Inc., 2005. ,Berger, Arnold. Embedded systems design:an introduction to processes tools and tecniques. San Francisco;Lawrence, Kan: CMP Books, c2002 ,“Modeling and Verification of Real-Time Systems Using Timed Automata: Theory and Practice”. Paul Pettersson. PhD. Thesis. Uppsala University.

Learning Outcomes

1. To have knowledge of embedded systems fundamentals

2. To be able to design real-time systems

3. To know the state-of-the-art of embedded systems

4. To know the state-of-the-art of fault-tolerant systems

 

Topics
Introduction to Embedded System Design
Review of Digital Logic and Computer Architecture Concepts
FPGA design; VHDL Programming Language
Single and General Purpose Datapath Design
Microprocessor Concepts and Design
Embedded System Design with Microcontrollers
Real-Time Kernels
Modeling and Verification of RT Embedded Systems
Data Acquisition and Digital Signal Processing Applications
Control Systems
Embedded Software Development
Documentation, Software Re-Use and Continuous Improvement
Fault-Tolerance Techniques
Recent Developments and Research

Grading

Midterm: 30%

Research Presentation: 30%

Final Exam: 40%

CENG 523 Advanced Topics of Real Time Systems

Real-Time software design issues, real-time operating systems, real-time scheduling algorithms, formal methods in software specification, modeling and verification using timed-automata, software design, programming languages, testing, performance analysis and optimization, documentation, software re-use, fault-tolerance.

Course Objectives

To give the students the latest research issues on the software development, programming, design, test and documentation for real-time systems

Recommended or Required Reading

Phillip Laplante, Real-Time Systems Design and Analysis – An Engineer’s Handbook, IEEE Press, 1993.
S.H.Son, Advances in real-time systems, Englewood Cliffs, N.J.: Prentice Hall, c1995.

Learning Outcomes

1. To have knowledge of real-time systems fundamentals
2. To be able to design real-time systems
3. To know the state-of-the-art of real-time systems
4. To know the state-of-the-art of safety critical and fault-tolerant systems

Topics
Introduction to Real-Time Systems
Basics of Developing Software for Real-Time Systems
Real-Time Operating Systems I
Real-Time Operating Systems II
Software Requirements Engineering
Model Checking Issues
Software Design
Summary and Examination
Programming Languages
Testing
Performance Analysis and Optimization
Safety-Critical Systems and Fault-Tolerance
Documentation, Software Re-Use and Continuous Improvement
Term Project Presentations and Discussions

Grading

Written Midterm Exam: 20%
Written Final Exam: 30%
Assignments: 10%
Term Project: 40%
CENG 524 Advanced Computer Architecture

Basic principles of processor design, instruction set architecture, pipelining, design of advanced memory hierarchies, multithreading, task-level and instruction-level parallelism, inter-processor communication models, multiprocessors, future trends.

Course Objectives

To give a comprehensive discussion about the latest develeopments on computer architecture and recent microprocessors on the market. To study the latest research topics by focusing especially on Pentim 4, multicore and EPIC processors.

Recommended or Required Reading

David A. Patterson, John L. Hennessy. Computer Organization and Design . 3rd Ed. 2005. Morgan Kaufmann Pub. ,John L. Hennessy and David A. Patterson. Computer Architecture: A Quantitative Approach; 4th ed., Morgan Kaufmann Publishers. ,Hesham El-Rewini, Mostafa Abd-El-Barr. Advanced Computer Architecture and Parallel Processing. 2005, Wiley, online library.

Learning Outcomes

1. To have knowledge of computer architecture fundamentals

2. To be able to design microprocessors

3. To know the state-of-the-art of computer architectures

4. To know the state-of-the-art of parallel computing and multi-core architectures

Topics
Computer Systems Overview
Instruction Set Arcitecture: Datapath and Controller
Pipelining, Instruction-Level Parallel (ILP) Architecture
Lab Exercise: General Purpose Processor Design
Scheduling
Thread-Level Parallelism
Timing Issues in a Computer System
Multiprocessors
Multiprocessors
Lab Exercise: Multiprocessors
Caches and Memory Hierarchy
Interconnection Networks
Review and Future Trends
Presentations and Discussions of Self-Studies

Grading

Midterm: 30%

Research Presentation: 30%

Final: 40%

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.

Course Objectives

To introduce fault modeling, testing and redundancy techniques to achieve fault tolerance in computer systems

Recommended or Required Reading

Israel Koren, C. Mani Krishna, Fault-Tolerant Systems, Morgan Kaufmann, 2007.
B.S. Dhillon, Computer System Reliability, CRC Press, 2013.

Learning Outcomes

1. To be able to understand faults and testing
2. To be able to design and evaluate hardware and software fault tolerance techniques
3. To demonstrate the experience to apply the reliability techniques on safety-critical systems

Week Topics
1 Introduction to fault tolerance
2 Digital circuits and fault modeling
3 Testing for combinational and sequential circuits
4 Testing of microprocessor based systems
5 Error detection, self-checking modules
6 Malfunction diagnosis, redundancy
7 Midterm
8 Software reliability
9 Resilient algorithms
10 Error coverage
11 Vulnerability discovery
12 Failure recovery
13 Current research in the field
14 Current research in the field

Grading

Written Midterm Exam: 20%

Written Final Exam: 30%

Assignments: 10%

Term Project: 40%

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.

Course Objectives

1. Analysing cognitive models

2.Analysing interaction models

3.Develop sample smart systems

Recommended or Required Reading

Luger, George; Stubblefield, William; 2004; “Artificial Intelligence: Structures and Strategies for Complex Problem Solving”; The Benjamin/Cummings Publishing; ISBN 0805347801 ,Russell, Stuart; Norvig, Peter; 2003; “Artificial Intelligence – A Modern Approach”; Prentice-Hall; 0131038052 ,Giarratano, Joseph C.; Ritel, Gary D.; 2005; “Expert Systems – Principles and Programming”; Thompson Course Technology; 0534384471 ,Munakata, Toshinori; 2007; “Fundamentals of the New Artificial Intelligence Neural, Evolutionary, Fuzzy and More”; Springer; 9781846288395 ,Maedche, Alexander; 2002 ; “Ontology learning for the semantic web”; Kluwer Academic Publishing; 0792376560 ,Hjelm, Johan; 2001; “Creating the semantic Web with RDF: professional developer s guide”; John Wiley; ,Goertzel, Ben; Pennachin, Cassio; 2007; “Artificial General Intelligence”; Springer; 9783540237334 ,Nabiyev, Vasif V.; 2005; “Yapay Zeka”; Seçkin Yayıncılık; 9753479859

Learning Outcomes

1. Develop smart behaviours

2. Programme in declarative or rule-based languages

3. Develops interactive systems

4. Develops distributed systems

Topics
Overview
Alternative AI Approaches
Higher-order Logic
Planning
Expert Systems
Environment Modelling
Summary
Soft Computing
Non-Symbolic Learning
Natural Language Processing
Intelligent Agent
Multi-Agent System
Semantic Web
Robotics

Grading

Midterm 30%

Homework 10%

Research Presentation 30%

Final 30%

CENG 532 Expert Systems and Knowledge Engineering

Analyse concepts that facilitate modelling knowledge, like propositional logic, predicate logic, uncertainty and fuzzy logic, analyse concepts that enable the development of purpose-oriented architectures, like knowledge representation, corpus, language processing and production systems, and analyse advanced systems that involve expert systems, like ontologies & intelligent agents, decision support systems and behavioural robotics.

Course Objectives

1.Analyse concepts that facilitate modelling knowledge

2.Develop purpose-oriented architectures

3.Analyse concepts for building advanced systems

Recommended or Required Reading

Giarratano, Joseph C.; Ritel, Gary D.; 2005; “Expert Systems – Principles and Programming”; Thompson Course Technology; 0-534-38447-1 ,Helbig, Hermann; 2006; “Knowledge Representation and the Semantics of Natural Language”; Springer; 3-540-24461-1 ,Wooldridge, Michael; 2009; “An Introduction to MultiAgent Systems”; Wiley; 978-0-470-51946-2 ,Siler, W; Buckley, JJ; 2005; “Fuzzy expert systems and fuzzy reasoning “; Wiley

Learning Outcomes

Upon the completion of this course a student :

1. Acquire and model knowledge
2. Develop knowledge-based systems
3. Re-organise knowledge
4. Develop reasoning systems

Topics
Overview
Knowledge Representation
Corpus
Uncertainty
Language Processing
Knowledge Acquisition
Expert System Architechtures
Production Systems
Summary
Ontologies
Intelligent Agents
Knowledge Organisation
Decision Support Systems
Robotics

Grading

Midterm 30%

Homework 10%

Research Presentation 30%

Final 30%

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.

Course Objectives

The challenges of modeling and reasoning under uncertainty is defined and solution approaches based on probabilistic reasoning are discussed in this course.

Recommended or Required Reading

Bayesian Artificial Intelligence; Kevin B. Korb, Ann E. Nicholson; Chapman & Hall/CRC, 2004. ,Learning Bayesian Networks; Richard E. Neapolitan, Prentice Hall, 2003. ,Probabilistic Reasoning in Intelligent Systems (2nd Edition); Judea Pearl; Morgan Kaufmann Publishers Inc., 1988.

Learning Outcomes

1. Teaching the concept of uncertainty

2. To teach graphical probabilistic models

3. Being able to understand reasoning and learning in Bayesian networks

4. Being able to design Bayesian network applications

Topics
Introduction
Graphical Probability Models
Representing Knowledge in an Uncertain World
Bayesian Reasoning
Inference in Bayesian Networks
Learning in Bayesian Networks
Summary and Examination
Knowledge Engineering
Bayesian Network Applications
Temporal Models
Inference in Dynamic Bayesian Networks
Markov Decision Processes
Partially Observable Markov Decision Processes
Project Presentations

Grading

Midterm : 15%

Homework : 20%

Research Presentation: 30%

Final : 35%

CENG 534 Deep Learning for Natural Language Processing

Natural language processing (NLP) is one of the most important technologies of theinformation age. In traditionalNLP, task-specific feature engineering and language-specific 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 cutting-edge research in deep learning applied to NLP. Topics include word vector representations, window-based neural networks, recurrent neural networks, long-short-term-memory 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.

Course Objectives

To advance students on the cutting-edge research in deep learning applied to NLP.

Recommended or Required Reading

Goodfellow, I., Bengio, Y., and Courville, A. (2016). Deep Learning: MIT Press.  ,Goldberg, Y., &Hirst, G. (2017). Neural Network Methods in Natural Language Processing: Morgan & Claypool Publishers. ,Mikolov, T., Sutskever, I., Chen, K., Corrado, G., &Dean, J. (2013). Distributed representations of words and phrases and their compositionality. In: Advances in Neural Information Processing Systems – Volume 2, Lake Tahoe, Nevada. ,Mikolov, T., Chen, K., Corrado, G.,and Dean, J. (2013). Efficient Estimation of Word Representations in Vector Space. CoRR, abs/1301.3781.  ,Pennington, Jeffrey and Socher, Richard and Manning, Christopher D. (2014). Glove: Global Vectors for Word Representation. In: Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP), 14. ,Huang, Eric H., Richard Socher, Christopher D. Manning, and Andrew Y. Ng. 2012. Improving word representations via global context and multiple word prototypes. In Proceedings of the 50th Annual Meeting of the Association for Computational Linguistics: Long Papers – Volume 1. Jeju Island, Korea: Association for Computational Linguistics. ,Collobert, Ronan, Jason Weston, #233, onBottou, MichaelKarlen, KorayKavukcuoglu,and PavelKuksa. 2011. Natural Language Processing (Almost) from Scratch. J. Mach. Learn. Res. no.12:2493-2537. ,Hirschberg, J.and Manning, C.D. (2015) Advances in Natural Language Processing. Science, 349, 261-266. , Turney, P. D., &Pantel, P. (2010). From frequency to meaning: vector space models of semantics. J. Artif. Int. Res., 37(1), 141-188.

Learning Outcomes

Upon the completion of this course a student :
1. Able to process different word vector representations
2. Able to design and implement custom neural network solutions for a given NLP task
3. Able to tune the experimental settings for a neural network model
4. Able to present project results

Week Topics
1 Intro to NLP and Deep Learning
2 Simple Word Vector representations: word2vec, GloVe
3 Advanced word vector representations: language models, softmax, single layer networks
4 Neural Networks and backpropagation — for named entity recognition
5 Practical tips: gradient checks, overfitting, regularization, activation functions, details
6 Recurrent neural networks — for language modeling and other tasks
7 Recursive neural networks — for parsing
8 Review Session for Midterm
9 Convolutional neural networks — for sentence classification
10 Guest Lecture: Speech Recognition
11 Guest Lecture: Machine Translation
12 Guest Lecture: Seq2Seq and Large Scale DL
13 The future of Deep Learning for NLP: Dynamic Memory Networks
14 Project Presentations

Grading

Midterm 30%

Research Presentation 35%

Final 35%

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; object-oriented 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.

Course Objectives

1.Learn advanced topics of database field

2.Gain ability to capture research articles

3.Gain ability to make a survey, propose solution and develop a project

Recommended or Required Reading

E.F. CODD. A Relational Model of Data for Large Shared Data Banks, Coomunication of the ACM, vol 15, June 1970 ,P.G. SELLINGER, M.M. ASTRAHAN, D.D. CHAMBERLIN, R.A. LORIE and T.G. PRICE, Access Path Selection in a Reletional Database System, ACM, 1979 ,S.CHAUDHURI, An Overview of Query Optimization in Relational Systems, PODS 1998 ,A. GUTTMAN. R-TREES. A Dynamic Index Structure for Spatial Searching, ACM 1984 ,J. NIEVERGELT and H. HINTERBERGER. The Grid File: An Adaptable, Symmetric Multikey File Structure, ACM 1984 ,P.O’NEAL and D. QUASS. Improved Query Performance with Variant Indexes, ACM 1997 ,D.J. DeWITT and J. GRAY.Parallel Database Systems: The Future of High Performance Database Processing, Communications of the ACM, Vol. 36, No. 6, June 1992 ,M. STONEBRAKER, P. M. AOKI, W. LITWIN, A. PFEFFER, A. SAH, J. SIDELL, C. STAELIN, A. YU. Mariposa: a wide-area distributed database system, The VLDBJournal, Springer-Verlag 1996 ,R. SNODGRASSF and I. AHN. A Taxonomy of Time in Databases, ACM, 1985 ,R. AGRAWAL and R. SRIKANT. Fast Algorithms for Mining Association Rules, Proceedings of the 20th VLDB ConferenceSantiago, Chile, 1994 ,J. GRAY, S. CHAUDHURI, A. BOSWORTH, A. LAYMAN, D. REICHART and M. VENKATRAO. Data Cube: A Relational Aggregation Operator Generalizing Group-By, Cross-Tab, and Sub-Totals, Data Mining and Knowledge Discovery 1, 29–53 (1997) ,S. BRIN and L. PAGE The Anatomy of a Large-Scale Hypertextual Web Search Engine, Proceeding of 7th International Conference on World Wide Web, 1998 ,C.J. Date, An Introduction to Database Systems, Addison-Wesley, Seventh Edition, 2010

Learning Outcomes

1. Learn the history and development of aproaches and methods behind the functions of database management system (PO1, PO3),

2. Gain ability to read, abstract and discuss the important articles of the feld (PO1, PO3),

3. Understand, present and discuss the present research in the field of database.

Topics
Relational Model
Query Processing
Query Optimization
Query Optimization
Indexing
Indexing
Locks & Concurrency
Concurrency Management
Parallel Databases
Distributed Databases
Temporal Databases
Data Mining
Data Cubes
Web Search Engines

Grading

Midterm 30%

Research Presentation 30%

Final 40%

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.

Course Objectives

1.Read, abstarct and discuss research papers on one of the topics of computer science field (1), 2.Make a survey, propose a solution and test the performance of the solution on one of the open problems of the field (2, 3), 3.Document and present the research process (4)

Recommended or Required Reading

J. Han, Data Mining: Concepts and Techniques, Morgan Kaufman, 2000 ,M. H. Dunham, Data Mining Introductory and Advanced Topics, Prentice Hall, Pearson Education, 2003. ,R. J. Roiger and M. W. Geatz, Data Mining: A Tutorial Based Primer, Addison Wesley, 2003. ,M. J. A. Berry and G. S. Linoff, Mastering Data Mining Wiley, 2000.

Learning Outcomes

1. Recall the process of knowledge discovery and data mining algorithms and be able to compare them

2. Make a survey on one of the open problems of the field

3. Gain the ability of developing a knowledge discovery process using using data mining tools

4. Document and present the project of the developed knowledge discovery process

Topics
Knowledge Discovery
Data Mining in General
Data Warehousing Models and Techniques
Data Preparation
Data Mining Primitives
Concept Description
Association Rule Mining
Association Rule Mining
Classification and Prediction
Classification and Prediction
Cluster Analysis
Cluster Analysis
Web Mining
Data Mining Applications

Grading

Midterm: 30%

Research Presentation: 40%

Final: 30%

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.

Course Objectives

To teach the fundamentals of information retrieval systems. To increase awareness to the differences between structured databases and unstructured data collections. To improve practical software design and implementation skills needed for processing large data collections.

Recommended or Required Reading

Search Engines: Information Retrieval in Practice by W. B. Croft, D. Metzler, and T. Strohman, 2010 ,Information Storage and Retrieval Systems by Kowalski G., Maybury M.T., 2000

Learning Outcomes

1. To be able to explain fundamental theoretical concepts of information retrieval

2. Identify and discuss the state-of-the-art information retrieval systems

3. Design and implement a complete information retrieval system

4. Analyze high performance software that can process very large scale data sets

Topics
Boolean Retrieval
Dictionaries and Tolerant Retrieval
Index Construction and Compression
Scoring, Term Weighting, and the Vector Space Model
Evaluation in Information Retrieval
Relevance Feedback and Query Expansion
Probabilistic Information Retrieval
Language Models
Text Classification
Document Clustering
Web Search Basics
Link Analysis
Indexing Images and Video Data
Information Visualization

Grading

Midterm 30%

Homework 10%

Research Presentation 30%

Final 30%

CENG 544 Large-Scale Data Management

This course introduces the fundamental concepts and computational paradigms of large-scale data management. This includes major methods for storing, updating and querying large datasets as well as for data-intensive computing. The course covers concepts, algorithms, and system issues on the topics of parallel and distributed databases, peer-to-peer data management, MapReduce and its ecosystem, Spark and dataflows, datalakes and NoSQL databases.

Course Objectives

To introduce students to the current trends in large-scale data management covering concepts, architectures, algorithms and system issues.

Recommended or Required Reading

T. Özsu, P. Valduriez. Principles of Distributed Database Systems. Springer, 4th ed., 2020.

M. Kleppman. Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems. O’Reilly Media, Inc., 2017.

Learning Outcomes

  1. To understand current research and technological trends in large-scale data management
  2. To comprehend the fundamental principles of modern database management systems
  3. To identify bottlenecks in large-scale data management applications and make appropriate design decisions
  4. To install and utilize open-source software systems and libraries required for meaningful data management operations
Week Topics
1 Distributed Database Systems

Distributed Database Design

2 Distributed Query Processing
3 Distributed Transaction Processing
4 Parallel Database Systems

Parallel Architectures and Data Placement

5 Parallel Query Processing
6 Peer-to-Peer Data Management

Infrastructure and Schema Mapping

7 Querying and Replica Consistency
8 Blockchain
9 Big Data Processing

Distributed Storage Systems

10 MapReduce and its Ecosystem
11 Spark and Data Flows and DataLakes
12 NOSQL, NewSQL and Polystores

Key-Value Stores and Document Stores

13 Wide-Column Stores and Graph DBMSs
14 Hybrid Data Stores and Polystores

Midterm: 30%

Research Presentation: 30%

Final: 40%

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.

Course Objectives

To provide the graduate students with the ability to evaluate the software engineering techniques and approaches To present the current level of software engineering practices and inform about the historical progress To give the ability of professional decision making in choosing the right approaches for the project at hand.

Recommended or Required Reading

Glass, Robert L.;2003; “One Giant Step Backward.” Communications Of the ACM 46, no. 5. ,Gray, Lewis.;1998; “Gray Rebuts Bach: No Cowboy Programmers!” Computer pp 102, 103 and 105. ,Hatton, Les.;1998; “Does OO Sync with How We Think?” IEEE Software pp 46-54. ,Hoare, C. A. R.;1969; “An Axiomatic Basis For Computer Programming.” Communications of the ACM 12, no. 10 pp 576-583. ,Howard, Alan.;2001; “Software Engineering Project Management.” Communications Of The ACM 44, No. 5 pp 23 and 24. ,Kearney, Joseph K., Robert L. Sedlmeyer, William B. Thompson, Michael A. Gray, and Michael A. Adler.;1986; “Software Complexity Measurement.” Communications of the ACM 29, No. 11 pp 1044-1050. ,Krueger, Charles W.;1992; “Software Reuse.” ACM Computing Surveys 24, No. 2 pp 132-183. ,Lawrence, Brian, Karl Wiegers, and Christof Ebert.;2001; “The Top Risks of Requirements Engineering.” IEEE Software pp 62 and 63. ,Ledgard, Henry F.;2001; “The Emperor with No Clothes.” Communications of the ACM 44, no. 10 pp 126-128. ,Mackeyn, Karen.;2000; “Mars versus Venus.” IEEE Software pp 14-15. ,Mantei, Marilyn.;1981; “The Effect of Programming Team Structures on Programming Tasks.” Communications of the ACM 24, no. 3 pp 106-113. ,Martin, Robert C.;2000; “eXtreme Programming Development through Dialog.” IEEE Software pp 12 and 13. ,McConnell, Steve.;1998; “Problem Programmers.” IEEE Software pp 126-128. ,McConnell, Steve.;2000; “Cargo Cult Software Engineering.” From The Editor column, IEEE Software pp 11-13. ,Meyer, Bertrand.;1999; “A Really Good Idea.” Computer pp 144-147. ,Parnas, David Lorge.;1985; “Software Aspects of Strategic Defense Systems.” Communications of the ACM 28, 12 pp 1326-1335. ,Paulk, Mark C., Bill Curtis, Mary Beth Chrissis, and Charles V. Weber. “The Capability Maturity Model for Software.” IEEE Software. ,Pressman, Roger S.;1998; “Can Internet-Based Applications Be Engineered?” IEEE Software pp 104-109. ,Rettig, Mark.;1990; “Software Teams.” Communications of the ACM 33, no. 10 pp 23-27. ,Rothman, Johanna.;1998; “Of Crazy Numbers and Release Criteria.” Computer pp 127-128. ,Saiedian, Hossein.;1996; “An Invitation to Formal Methods.” Computer pp 16-30, New York. ,Schaible, Dawn, and Keith Britton.;2003; “Testing in NASA Human-Rated Spacecraft Programs: How Much is Just Enough?” SDM Master s thesis. MIT, Chaps. 2, 4, and 5. ,Shapiro, Stuart.;1997; “Splitting the Difference: The Historical Necessity of Synthesis in Software Engineering.” IEEE Annals of the History of Computing 19, no. 1 pp 20-54. ,Watkins, Robert, and Mark Neal.;1994; “Why and How of Requirements Tracing.” IEEE Software pp 104-106. ,Weyuker, Elaine J.;1998; “Testing Component-Based Software: A Cautionary Tale.” IEEE Software pp 54-59. ,Williams, Laurie, Robert R. Kessler, Ward Cunningham, and Ron Jeffries.;2000; “Strengthening the Case for Pair Programming.” IEEE Software pp 19-25. ,Wing, Jeannette M.;1990; “A Specifier s Introduction to Formal Methods.” Computer pp 8-24. ,Wirth, Niklaus.;1971; “Program Development by Stepwise Refinement.” Communications of the ACM 14, no. 4 pp 221-227. ,Wirth, Niklaus.;1995; “A Plea for Lean Software.” Computer pp 64-68. ,Yamaura, Tsuneo.;1998; “How to Design Practical Test Cases.” IEEE Software pp 30-36. ,Highsmith, Jim, and Alistair Cockburn.;2001; “Agile Software Development: The Business of Innovation.” Computer pp 120-122. ,Bollinger, Terry;1997; “The Interplay of Art and Science in Software.” Computer pp 125-127 and 128. ,Brooks.;1987; “No Silver Bullet: Essence and Accidents of Software Engineering.” Computer. ,Budgen, David.;1999; “The Loyal Opposition: Software Design Methods: Life Belt or Leg Iron?” IEEE Software pp 133-136. ,Cockburn, Alistair, and Jim Highsmith.;2001; “Agile Software Development: The People Factor.” Computer pp 131-133. ,DeMillo, Richard A., Richard J. Lipton, and Alan J. Perlis.;1979; “Social Processes and Proofs of Theorems and Programs.” Communications of the ACM 22, no. 5. ,Ferdinandi, Patricia L.;1998; “Facilitating Communication.” Culture At Work column, IEEE Software pp 92-96. ,Garlan, David, and Mary Shaw.;1993; “An Introduction to Software Architecture.” In Advances in Software Engineering and Knowledge Engineering. Vol. 1. Edited by V. Ambriola, and G. Tortora. New Jersey: World Scientific Publishing Company. Also appears as CMU Software Engineering Institute Technical Report CMU/SEI-94-TR-21, ESC-TR-94-21. ,Glass, Robert L.;1998; “The Loyal Opposition: Reuse: What s Wrong With This Picture?” IEEE Software pp 57-59.

Learning Outcomes

1. To have knowledge of software engineering concepts

2. Ability to learn from common software engineering faults

3. Discuss software engineering problems

4. Ability of professional decision making

Topics
The Problem
Process and Life Cycle Models
Requirements and Specification I
Requirements and Specification II
Design I
Design II
Building Confidence (Testing, Analysis, QA, Reviews)
Metrics and Reliability Assessment
COTS and Reuse
Formal Verification
Team Organization and People Management
Software Engineering Aspects of Programming Languages
Software Safety and Wrapup
Case Studies

Grading

Homework 100%

CENG 552 Software Testing

Techniques, methods, and tools which help in the systematic and effective testing of software systems.

Course Objectives

1. To obtain an insight of systematic testing within the software development cycle.

2. To learn different kinds, phases, and aspects of systematic testing.

3. To get experience in applying some test development techniques and some test tools.

Recommended or Required Reading

A.P. Mathur, Foundations of Software Testing , Addison-Wesley, 2008. ,P. Ammann, J. Offutt, Introduction to Software Testing , Cambridge University Press, 2008.

Learning Outcomes

1. Understand, generalize and analyse different testing methods.

2. Design, implement, and apply different test strategy and tools.

3. Compare and evaluate different testing methods.

4. Apply testing methods to real world problems.

Topics
Introduction to software verification and validation
Software testing overview and classifications
Functional(black box) testing I
Functional(black box) testing II
Structural (white box) testing I
Structural (white box) testing II
Mutation testing
Model-based testing
Integration testing
Regression testing
Overview of test case generation
Overview of test processes
Testing tools and test automation
Software reliability modeling

Midterm: 30%

Homework: 30%

Final: 40%

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 cross-platform compatibility, agility and cost-efficiency. In particular, microservice based architectures, reactive systems and event-oriented modelling will be taught and serverless computing will be introduced.

Reference book(s):

  • SOA: Principles of Service Design, Thomas Erl, 2008, Prentice Hall.
  • Web Services: Concepts, Architectures and Applications, Alonso, Casati, Kuno, Machiraju, , Springer 2004
  • RESTful Web APIs, Richardson and Amundsen, O’Reilly, 2013
  • Web Service Implementation and Composition Techniques by H-Y Paik, A. Lemos, M. Barukh, B. Benatallah and A. Natarajan, Springer, late 2017.
  • Building Microservices, Newman, Sam, 2015, O’Reilly Media.
  • Reactive Microsystems, Jonas Boner, 2017, Lightbend, Inc.
  • DevOps: A Software Architecture’s Perspective by L.Bass, I. Weber and L. Zhu, Addison-Wesley, 2016

Course Objectives:

To introduce students to the current trends in software architectures and event oriented modeling analysis and design of systems.

Week Topics
1 Service Orientation
2 Service Oriented Architecture
3 Service Design Principles, and SOA Benefits
4 Evolution of the Web Service
5 Programmable Web
6 Resource Oriented Architecture
7 Evolution of Services
8 Domain Driven Design
9 Domain Driven Design
10 Event Oriented Modeling
11 Event Oriented Analysis Methodology
12 Reactive Systems
13 Reactive Systems
14 Design Patterns for Microservice Based Systems

Grading:

  • Final Exam%40
  • Term Project %40
  • Assignments %20

Course Learning Outcomes:

CO1- Describe different architectural design approaches and their role in engineering software.

CO2- Apply modelling of services in different settings

CO3- Be competent in designing, managing and documenting services

CO4- Understand techniques for enterprise modelling of simple and complex structures as well as their associated technical standards and technologies.

Contribution of Program Learning Outcomes:

 

              P01      P02       P03       P04      P05       P06       P07

CO1                       x                          x                          x            x

CO2                                    x                                                       x

CO3                                                                                             x

CO4                                    x            x                                         x

Justification of the course:

An elective course of the Computer Engineering Master of Science and PhD Programs. ‘Software Architectures’ are one of the most significant areas of the software engineering discipline. This is the first course that focus on the state of the art software architectures. Today’s modern era permeates with phenomenal growth and advancement across a wide range of areas: from science and technology, to medicine and art, as well the social sciences. Amongst all, the notion of “services” plays a critical role to abstract and make available snippets of innovation, that can thereby be used cross-disciplinary to create bigger, better and more interesting innovations. This course arms students with the knowledge and expertise to “design” and “engineer” services using modern Web technology.

Overlapping with or complementing topics in courses:

CENG 551 Advanced Software Engineering – General software engineering knowledge is a crucial part for understanding and designing software systems. Although, CENG 551 is not a prerequisite for this course, students are advised to have general knowledge on software engineering, software analysis and design methods and programming.

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 as well as gain hands on experience on measurement and prediction for software projects.

Reference book(s):

  • ISO 330XX Information technology — Process assessment, family of standards, 2015.
  • Weinberg, G. M., Quality Software management, Volume 1, System Thinking, Dorset House, 1992.
  • Argyris, C., Knowledge for action: A guide to overcoming barriers to organizational change. Jossey-Bass, 1993.
  • Senge, P. M. The Fifth Discipline: The Art and Practice of the Learning Organization, 1990.

 Course Objectives: To advance students on the current trends in software quality management and software measurement.

Week Topics
1 Concepts of Quality Improvement
2 Quality Control to Quality Assurance to Quality Management
3 Adding Value through Quality Management
4 Software Subcultures
5 Maturity Models
6 Agile Maturity Models
7 Changing Patterns
8 Process Modelling Notations
9 Process Modelling
10 Measurement Theory
11 Measuring Quality
12 Software Size Measurement and Prediction
13 Barriers to Organizational Change
14 Knowledge Based Organizations, Learning Organizations

Grading:

Final Exam                    %40

Term Project                  %40

Assignments                  %20

Course Learning Outcomes:

C1 – Assess and describe software organizations maturity levels

C2 – To be able to model organizational processes in different setting by various notations

C3 –  Measure size of software products using different techniques

C4 – Understand and apply techniques to predict effort for software projects

Contribution of Program Learning Outcomes:

 

          P01      P02       P03       P04      P05       P06       P07

C01                                                x                       x             x

C02                                  x                                                    x

C03                                               x                                       x

C04                                               x                                       x

Justification of the course: An elective course of the Computer Engineering Master of Science and PhD Programs. Management of software is crucial for overall success of software systems development. This course gives a thorough grounding in software management from quality and measurement perspectives and establishes the skills needed to manage innovative technologies and techniques. It is the first course focused on Software Management within the department.

Overlapping with or complementing topics in courses:

CENG 551 Advanced Software Engineering – General software engineering knowledge is a crucial part for understanding and evaluating the models of software management. Although, CENG 551 is not a prerequisite for this course, students are advised to have fundamental knowledge on software engineering.

CENG 557 Advanced Software Design Patterns

This course focuses on advanced software design patterns. Primary topics include advanced object-oriented programming principles, object-oriented design patterns, patterns of enterprise application architecture, enterprise integration patterns, and patterns related to domain-driven design. Students will learn concepts of modern software development with design patterns and participate in development of a mid-size programming project working in teams.

Course Objectives

To advance students on the current trends in software design patterns

Recommended or Required Reading

Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Addison-Wesley, 1995. ,Patterns of Enterprise Application Architecture, Martin Fowler, Addison-Wesley, 2003. ,Enterprise Integration Patterns, Gregor Hohpe, Bobby Wolf, Addison-Wesley, 2011. ,Patterns, Principles, and Practices of Domain-Driven Design, Scott Millett, Nick Tune, John Wiley & Sons, 2015.

Learning Outcomes

1. To be able to identify and explain design principles and patterns in software

2. To be able to apply design principles and patterns when developing software in teams

3. To be able to critically evaluate and report consequences of design patterns with respect to desired software qualities

4. To be able to analyze and report the relationship between design principles, design patterns, and programming language design, application frameworks, or application domains

Week Topics
1 Introduction to Object-Oriented Analysis and Design
2 Inheritance and Polymorphism with Abstract Classes and Interfaces
3 Object Oriented Programming Principles
4 Architectural Design Pattern – Model View Controller
5 Observer Design Pattern
6 Creational Design Patterns
7 Structural Design Patterns
8 Behavioral Design Patterns
9 Introduction to Patterns of Enterprise Application Architecture
10 Object-Relational Design Patterns
11 Introduction to Enterprise Integration Patterns
12 Messaging Design Patterns
13 Introduction to Domain Driven Design
14 Microservice Design Patterns

Grading

Homework 20%

Research Presentation 40%

Final 40%

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, host-based and network-based 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.

Course Objectives

To teach the fundamental topics and theorems of computer security. To teach the doing research, problem analyzing, defining alternative solutions, comparing them and modeling the solution techniques for the ICT security. To teach the hot topic concepts, research areas and problems of computer science which are related to ICT security.

Recommended or Required Reading

Aleph One – Smashing the Stack for Fun and Profit: http://www.phrack.org/issues.html?issue=49&id=14#article ,US Security Awareness (.org): http://www.ussecurityawareness.org/highres/index.html ,NSU InfoSec web site (of course): http://infosec.nova.edu/ ,Bruce Schneier – Crypto-gram Newsletter: http://www.schneier.com/crypto-gram.html ,Microsoft Security Guidance Center: http://www.microsoft.com/security/guidance/default.mspx ,B. Matt, Introduction to Computer Security ,Addison-Wesley, Pearson Education, 2005 ,SNORT.ORG: http://www.snort.org/

Learning Outcomes

1 . The analyzing and modelling capability for the security architectures of the Information and Communication systems which are the coming with technological improvements.

2.  Defining and modelling capability of security problems of new technological improvements and related hot topic security research problems.

3.  To have the estimate and plan capability for the future study and research areas of security and the theoretical parts of computer science.

4. To be able to design and manage new information security interdisciplinary projects which have the positive impact to social life.

Topics
Introduction Module 1: Introduction to Computer Security and Assurance
Introduction Module 1: Introduction to Computer Security and Assurance
Introduction Module 1: Introduction to Computer Security and Assurance
Module 2: Policies
Module 2: Policies
Module 3: Cryptography and Key Management
Module 3: Cryptography and Key Management
Module 3: Cryptography and Key Management
Module 4: Authentication and Access Control
Module 4: Authentication and Access Control
Module 5: Network Security and Intrusion Detection
Module 5: Network Security and Intrusion Detection
Course Project completion
Course Project completion

Grading

Midterm 25%

Presentation 40%

Final 35%

CENG 562 Internet Security

Computer network security, encryption, access control, network package security, e-mail security, IP security, firewalls, intrusion detection systems.

Course Objectives

1. To teach the fundamentals of computer network security. 2. To provide students with the fundementals of network package security. 3. To teach the fundementals of computer local/cooperate network security.

Recommended or Required Reading

W. Stallings, Network Security Essentials: Applications and Standards , Prentice-Hall, 2010. ,C. Kaufman, R. Perlman, M. Speciner, Network Security: PRIVATE Communication in a PUBLIC World , Prentice-Hall, 2002.

Learning Outcomes

1. Know and compare different network security approaches.

2. Analyze network security problems, design and implement solutions.

3. Demonstrate the ability to abstract in security context.

4. Apply security engineering methods to real world problems.

Topics
Introduction to computer network security
Symetric encryption
Asymetric encryption
Access control
Distributed acess control
E-mail security
IP security with IPSEC
Security in network management
Attacts to computer networks
Firewalls
Firewall policies
Technologies used with firewalls (NAT, VPN)
Attact an intrusion detection systems 1
Attact an intrusion detection systems 2

Grading

Midterm 30%

Presentation 40%

Final 30%

CENG 563 Database and Software Security

The methodologies in developing and maintaining secure software and secure databases as well as the techniques such as authentication, authorization, auditing, encryption, access control, safety, availability, reliability and durability.

Course Objectives

1. To identify and analyze security problems in software and databases. 2. To devise, evaluate, and explain solutions to software and database security. 3. To teach authentication -authorization -auditing -transparent data encryption -granular access control and label security.

Recommended or Required Reading

G. McGraw, Software Security: Building Security in. , 2008. ,B. Natan, Implementing Database Security and Auditing , 2005. ,M. Dowd, J. McDonald, J. Schuh, The Art of Software Security Assessment: Identifying and Preventing Software Vulnerabilities. , 2006.

Learning Outcomes

1. Identify potential threats and vulnerabilities early in software development and database administration lifecycle and apply measures that prevent or reduce them.

2. Know techniques and tools to be used in software and database security.

3 .Create and maintain software and databases with security in mind.

4. Apply secure software and database development methods to real world problems.

Topics
Introduction to software security
Software vulnerabilities I
Software vulnerabilities II
Secure software development methodology
Secure software analysis and design
Secure software implementation, testing and auditing
Code Inspection
Static analysis
Common Criteria
Introduction to database security
Access control
Role-based access control
Lattices
Label security

Grading

Midterm 30%

Presentation 40%

Final 30%

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

Course Objectives

1. To conceptualize and comprehend complex nature of information systems management. 2. To devise and evaluate solutions for information systems management. 3. To teach strategic importance of policy based management of information systems for organizations.

Recommended or Required Reading

J. Ward, J. Peppard, Strategic Planning for Information Systems , John Wiley, 2002.

Learning Outcomes

1 . Identify information systems management actions which add value to business.

2.  Know techniques and tools to be used in management of information systems.

3. Policy based design, implementation and maintenance of information systems with quality and trust in mind.

4.  Apply information systems management techniques to real world problems.

Topics
Introduction to information systems management
Evolution of information systems management
Information systems management models and frameworks
Information technologies governance
Information systems planning I
Information systems planning II
Organizational models for information systems
Standards and procedures
Legal issues
Financial issues
Quality management of information systems
Policy based management of information systems I
Policy based management of information systems II
Trust management in information systems

Grading

Midterm 30%

Presentation 40%

Final 30%

CENG 565 C4I and Information Warfare

Concepts, Terminology, Command-Control-Communications-Computers and Intelligence (C4I ) 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.

Course Objectives

To teach the C4I and information warfare concepts To highlight the decisive role of information and communication technologies in contemporary warfare To give the ability to analyze the performed cyber attacks To introduce the tools that support the intelligence function and give an implementation project on this topic

Recommended or Required Reading

A. Kott, “Information Warfare and Organizational Decision Making”, Artech House, 2006. ,E. Waltz, “Information Warfare Principles and Operations”, Artech House, 1998. ,S. Zi, V.H. Mair, “Art of War: Sun Zi s Military Methods”, Columbia University Press, New York, 2009.

Learning Outcomes

1. Have knowledge of information warfare terminology

2. Evaluate work related to information warfare

3. Define information warfare strategy, specify the associated tactics and tools

4. Able to analyze performed cyber attacks

Topics
Introduction
Concepts of Information in Warfare
Information and War: Is it a Revolution?
The New Face of War, Cyberwarfare: Connecting the Dots in Cyber Intelligence
Art of War : Sun Zi s Military Methods
Know Thy Enemy
Learning from the Enemy
Who’s Calling? Deriving Organization Structure from Communication Records
Means and Ways: Practical Approaches to Impact Adversary Decision-Making Processes
Breakdown of Control—Common Malfunctions of Organizational Decision-Making
Propagation of Defeat—Inducing and Mitigating a Self-Reinforcing Degradation
Gossip Matters—Destabilization of an Organization by Injecting Suspicion
Crystal Ball
Organizational Armor—Design of Attack-resistant Organizations

Grading

Midterm 30%

Homework 30%

Final 40%

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 privacy-enhancing technologies (PET) and some of their applications.

Course Objectives

To advance students on the current trends in privacy enhancing technologies

Recommended or Required Reading

C. Dwork and A. Roth, The Algorithmic Foundations of Differential Privacy, Foundations and Trends in Theoretical Computer Science, 2014. ,R. Cramer, I.B. Damgård, JB Nielsen. Secure Multiparty Computation and Secret Sharing. Cambridge University Press, 2015. ,A. Gkoulalas-Divanis, and L. Grigorios. Medical data privacy handbook. Springer, 2015.

Learning Outcomes

1. Selecting appropriately privacy mechanisms

2. Developing privacy technologies

3. Assessing / Evaluating privacy protection

4. Reasoning about privacy concerns

Topics
Introduction
Cryptography-Based Solutions
Cryptography-Based Solutions
Privacy in Databases
Privacy in Databases
Privacy on the Internet
Location Privacy
Privacy in E-Payments
Privacy in E-Voting
Privacy in Blockchain
Medical Privacy
Genomic Privacy
Privacy-Preserving Machine Learning
Privacy-Preserving Machine Learning
CENG 600 PhD Thesis

Program of research leading to PhD 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 write-up of the thesis is in progress.

Course Objectives

To conduct and present an independent theoretical or experimental study under the supervision of a faculty advisor.

Recommended or Required Reading

Resources suggested by the academic advisor

Learning Outcomes

1. To be able to inspect and apply proper theoretical and practical methods in an area of study

2. To be able to recognize ethical guidelines to follow in a research

3. To be able to evaluate a specific problem in a scientifically sound, thorough and precise manner in the course of a given period of time

4. To be able to understand how to deal with data sets or information gathered to reach a solution for the problem being tackled and to be able to present the thoughts and findings in a convincing way

Grading

Class Participation: 20 %

Research Presentation: 80 %

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.

Course Objectives

To teach the imaging geometry of cameras. To describe the algorithms used in 3D information and shape extraction and to improve ability to implement these algorithms. To form acquaintance with the applications of this research area. To improve the ability of written and oral presentation.

Recommended or Required Reading

Computer Vision: Algorithms and Applications, Richard Szeliski, Springer, 2010.

Learning Outcomes:

1. Describe the fundamental concepts in imaging geometry

2. Identify state-of-the-art techniques used in 3D information and shape extraction from images

3. Construct programs that implement algorithms of 3D information extraction and 3D reconstruction

4. Prepare written and oral presentation for the performed work

 

Topics
Camera models and calibration
Feature point extraction and matching
Feature point tracking and optical flow
2D projective geometry
RANSAC and image alignment using feature points (image warping)
3D projective geometry and epipolar geometry
Two-view and multi-view structure-from-motion
3D simultaneous localization and mapping
Depth extraction with stereo matching
Image segmentation
Shape-from-X
3D reconstruction
Active sensing techniques

 

Grading

Midterm 25%

Homework 15%

Presentation 30%

Final 30%

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.

Course Objectives

Algorithms are important for scientific researches and engineering due the changing technologies. These algorithms should be evaluated and optimized from many points such as their used time and space, complexities. The aim of the course is to learn to the students related concepts, techniques and methodologies

Recommended or Required Reading

Introduction to Algorithms, second edition. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein. The MIT Press, 2001

Learning Outcomes

To be able to analyze the complexity of applications
To identify algorithm design alternatives for a given problem
To suggest algorithmic solutions for the given problems
To recognize the characteristics of algorithm approach alternatives

Topics
Fundamentals: asymptotic analysis
Design and analysis of sequential algorithms
Divide-and-conquer approach
Dynamic programming
Greedy algorithms
Analysis of a few sequential and parallel algorithms
Computational complexity
Probability and average complexity of algorithms
Introduction to Lower Bound Theory
Performance analysis and evaluation of parallel systems
Models of parallel computation
Space-Time tradeoffs and Memory-Hierarchy tradeoffs

Grading

Midterm 25%

Homework 40%

Final 35%

CENG 612 Category Theory in Computer Science

Under this course, the students will learn to use the category theory for the topics of computer science. Therefore the abstraction methodologies and concepts of Category Theory will be studied.

Course Objectives

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

Recommended or Required Reading

M. Barr and C.Wells. Category Theory for Computing Science. Centre de Recherches Math_ematiques, third edition, 1999

Learning Outcomes

1. Learning the basic language and proof methods of category theory

2.Gaining the ability to use category theory in computer science research

Grading

Midterm 25%

Homework 35%

Final 40%

CENG 613 Research Methods in Computer Science

What is experimental computer science; Computing science research methodology; Statistics of interest; Exploratory data analysis; Hypothesis testing; Sampling; Experiment design; Explaining performance; Parametric modeling, regression; Generalization.

Course Objectives

This course gives a rigorous background in empirical methods for students working in any area of applied computer science. It covers experimental design, probabilistic modeling, exploratory data analysis, hypothesis testing, and system tuning. It encourages the use of computer-intensive statistical methods as an alternative to classical statistics.

Recommended or Required Reading

Cohen, P. R. (1995). Empirical methods for artificial intelligence, MIT Press.

Knuth, D. E. (1997). Seminumerical Algorithms. Reading, MA, USA, Addison-Wesley.

Learning Outcomes

1. Understand the importance of empirical research.

2.Construct a causal model between input and output variables.

3.Apply hypothesis testing.

4.Adopt computer-intensive statistical methods.

5.Assess performance.

Topics

What is experimental computer science

Computing science research methodology
Empirical research
Descriptive statistics
Exploratory data analysis
Basic issues in experiment design
Hypothesis testing and estimation
Computer-intensive statistical methods-Monte Carlo
Computer-intensive statistical methods-Bootstrap and Randomization
Performance assessment
Analysis of variance
Explaining performance: Interactions and Dependencies
Modeling
Tactics for Generalization

Grading

Midterm 30%

Project 30%

Project Publication 40%

CENG 631 Cognitive Computing

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

Course Objectives

Development of cognitive concepts and models that simulate human intelligence. Development of sample cognitive systems.

Recommended or Required Reading

Thagard, P; 2005; “Mind: Introduction to Cognitive Science”; MIT Press; ISBN 026270109X ,Konar, A; Jain, LC; 2005; “Cognitive engineering: a distributed approach to machine intelligence”; ISBN 1852339756 ,Raab, M; Johnson, JG; Heekeren , HR; 2009; “Mind and motion: the bidirectional link between thought and action”; Elsevier; ISBN 978-0-444-53356-2 ,Bermúdez, JL; 2010; “Cognitive Science: An Introduction to the Science of the Mind”; Cambridge University Press; ISBN 978-0-521-70837-1 ,Wang, Y; 2010; “Discoveries and Breakthroughs in Cognitive Informatics and Natural Intelligence”; IGI Global snippet; ISBN 1605669024 ,Cohen, H; Lefebvre , C; 2005; “Handbook of categorization in cognitive science”; ISBN 0080446124 ,Eysenck, MW; Keane , MT; 2005; Cognitive psychology: a student’s handbook”; ISBN 1841693596 ,Mataric, Maja J; 2007; “The Robotics Primer”; MIT Press; ISBN 026263354x ,; 2000; “Temporal logic: mathematical foundations and computational aspects”; Oxford: Clarendon press; ISBN 0-19-853768-9 ,Baeten, JCM; Basten, T; Reniers, MA; 2009; “Process algebra: equational theories of communicating processes “; Cambridge University Press; SBN 0521820499

Learning Outcomes

1.  Cognitive concepts and structures required to model human reasoning

2. Cognitive architectures combining symbolic and evolving artificial intelligence methods

3. Data structures and algorithms for cognitive architectures

 

Topics
Overview
Human Brain
Problem Decomposition
Denotational Mathematics
Cognitive Environment
Cognitive Concepts
Behavioural Architectures
Cognitive Architectures
Examination
Evolution of Mind
Computational Intelligence
Learning
Interaction
Cognitive Machines

Grading

Midterm 30%

Homework 10%

Presentation 30%

Final 30%

CENG 632 Computational Intelligence

Perceptrons, multi-layer perceptrons, recurrent neural networks, genetic algorithms, differential evolution, particle swarm intelligence, ant colony optimization.

Course Objectives

To introduce students to the fundamentals and applications of computational intelligence techniques inspired by natural systems, including neural networks, evolutionary algorithms, and swarm-based optimization. The course aims to equip students with the skills to model, analyze, and solve complex problems using biologically inspired computational approaches.

Recommended or Required Reading

Kruse, R., Borgelt, C., Braune, C., Mostaghim, S., Steinbrecher, M., Klawonn, F., & Moewes, C. (2011). Computational intelligence. Vieweg+ Teubner Verlag.

Eiben, A. E., & Smith, J. E. (2015). Introduction to evolutionary computing. springer.

Learning Outcomes:

1. To be able to explain computational intelligence and its main mechanisms.

2. To be able to identify the most appropriate computational intelligence method for a given problem.

3. To be able to apply computational intelligence methods to machine learning and optimization problems.

4. To be able to design experimental studies for computational intelligence algorithms.

Weeks Topics
1

Introduction to computational intelligence

2

Perceptrons

3

Multi-layer Perceptrons

4

Multi-layer Perceptrons

5

Recurrent neural networks

6

Self organizing maps

7

Evolutionary algorithms, genetic algorithms

8

Evolutionary algorithms, genetic algorithms

9

Differential evolution algorithm

10

Particle swarm optimization

11

Ant colony optimization

12

Experimental work design for computational intelligence algorithms

13

Student project presentations

14

Student project presentations

Grading:

  • Midterm Exam %50
  • Final Exam %50

Submissions: Project, Report

Supplementary course: CENG 504, CENG 506

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.

Course Objectives

Today, organizations are in need of accessing information from heterogeneous data sources through a single uniform interface. This course discusses the basics and main challenges in data integration together with the state of art technologies and future directions.

Recommended or Required Reading

J.M. HELLERSTEIN, M.J. FRANKLIN, S. CHNADRASEKARAN, A. DESHPANDE, K. HILDRUM, S. MADDEN, V. RAMANA and M.A. SHAH; Adaptive Query Processing: Technology in Evolution, IEEE Data Engineering Bulletin, vol. 23, no. 2, 2000. ,Y.E. IOANNIDIS and E. WONG; Query Optimization by Simulated Annealing, Proc. of ACM STGMOD Conf., 1987. ,O. M. DUSCHKA; Query Planning and Optimization in Information Integration. Ph.D thesis, Stanford University, Stanford, Calfornia, 1998. ,M.J. FRANKLIN, B.T. JONSSON and D. KOSSMANN; Performance Tradeoffs for Client-Server Query Processing, SIGMOD Conference, 1998, pp. 9-18. ,R. GOLDMAN and J. WIDOM; WSQ/DSQ: A Practical Approach for Combined Querying of Databases and the Web. Proc. of ACM SIGMOD Conf., 2000. ,L.M. HAAS, D.KOSSMANN, E.L. WIMMERS and J.Y. YANG; Optimizing Queries Across Diverse Data Sources, Proc. of the VLDB Conference, 1997, pp.276-285. ,S. CHAUDHURI and K. SHIM; Query optimization in the presence of foreign functions, Proc. of the VLDB, 1993. ,A.Y. HALEVY; Answering Queries Using Views: A Survey, VLDB Journal, 2001, pp. 270-294. ,Z. IVES, A. HALEVY and D. WELD; Adapting to Source Properties in Processing Data Integration Queries, Proc. of ACM SIGMOD International Conference on Management of Data, June, 2004. ,C. LI; Computing Complete Answers to Queries in the Presence of Limited Access Patterns, The VLDB Journal, Vol. 12, 2003, pp. 211-227. ,L.F. MACKERT and G.M. LOHMAN; R* Optimizer Validation and Performance Evaluation for Distributed Queries, Proc. of the 12th Int. Conf. On VLDB, 1986 pp. 149-159. ,A. RAJARAMAN and Y. SAGIV, J. ULLMAN; Answering Queries Using Templates with Binding Patterns. Proc. of ACM PODS, San Jose, CA, 1995. ,I. MANOLESCU, L. BOUGANIM, F. FABRET and E. SIMON; Efficient Querying of Distributed Resources in Mediator Systems. Proc. of the Confederated International Conferences DOA, CoopIS and ODBASE, LNCS 2519, Springer-Verlag, 2002, pp. 468 – 485. ,T. OZSU and P. VALDURIEZ; Principles Of Distributed Database Systems, Prentice Hall, 2013.

Learning Outcomes

1. To learn the underlying approaches and methods behind all functionalities of a data integration system

2.To acquire the ability to read, comprehend, and discuss key publications in the field of data integration

3.To develop solution proposals for a research problem in the domain of data integration

4.To implement the proposed solution for the selected research problem, evaluate its performance, and present the findings in both written and oral forms as a technical report

Topics
What is Data Integration?
Challenges in Data Integration
Modelling Data Sources
Modelling Data Sources
Automatic Schema Mapping
Query Processing in Data Integration Systems
Query Processing in Data Integration Systems
Query Optimization in Data Integration Systems
Query Optimization in Data Integration Systems
Architectures for Data Integration
Architectures for Data Integration
Dataspaces
Commercial Data Integration Systems
Evolution of Data Integration Systems
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 border-based approaches, to exact hiding algorithms that offer guarantees on the quality of the computed hiding solution at an increased, however, computational complexity cost.

Course Objectives

This course provides an extensive survey on a specific class of privacy preserving data mining methods that belong to the knowledge hiding thread and are collectively known as association rule hiding methods.

Recommended or Required Reading

A.G.GKOULALAS-DIVANIS and V.S. VERYKIOS. Association rule hiding functions, Springer, 2010. ,O. ABUL, M. ATZORI, F. BONCHI, and F. GIANNOTTI. Hiding sequences, In Proceedings of the 23rd International Conference on Data Engineering Workshops (ICDEW), pp.147–156, 2007. ,C. C. AGGARWAL and P. S. YU. Privacy preserving data mining: Models and algorithms, Springer–Verlag, 2008.

Learning Outcomes

1. Understand and compare the approach and algorithms of privacy preserving data mining

2. Make a survey on one of the open problems of the field

3. Model and implement one of the tasks of privacy preserving data mining

4. Document and present the project of the developed

Topics
Introduction to Privacy Preserving Data Mining and Association Rule Hiding
Background (Terminology and Preliminaries)
Classes of Association Rule Hiding Methodologies
Other Knowledge Hiding Methodologies
Heuristic Approaches
Border Based Approaches
Max–Min Algorithms (BBA Algorithm)
Max–Min Algorithms (Other)
Exact Hiding Approaches (Menon’s Algorithm)
Exact Hiding Approaches (Inline Algorithm)
Exact Hiding Approaches (Two–Phase Iterative Algorithm)
Exact Hiding Approaches (Hybrid Algorithm)
Exact Hiding Approaches (Paralelization Framework)
Quantifying the Privacy of Exact Hiding Algorithms

Grading

Midterm 30%

Homework 30%

Final 40%

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 market-basket 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.

Course Objectives
To introduce students to the current trends in frequent pattern mining with a broad view that captures their usage domains, algorithms, data types, scalability and applications.
Recommended or Required Reading

C.C. Aggarwal and J. Han. Frequent Pattern Mining, Springer, 2014 ,J. Han, M. Kamber, J. Pei. Data Mining Concepts and Techniques, Morgan-Kaufmann-Series-in-Data-Management-Systems, 2012 ,P-N. Tan, M. Steinbach, A. Karpatne, V. Kumar, Introduction to Data Mining (2nd Edition), Pearson, 2019

Learning Outcomes

1. Learn state-of-the-art research and industry trends in pattern mining,

2. Understand the fundamental principles of the field,

3. Be able to make design decisions in deploying pattern mining tasks in data centric applications as well as to identify the bottlenecks of such applications,

4. Learn how to read-understand-present-discuss research articles of the field.

Topics
Frequent Pattern Mining Algorithms
Mining Long Patterns
Compression-based Pattern Models
MDL for Data Mining
Frequent Pattern Mining in Data Streams
Sequential Pattern Mining
Spatiotemporal Pattern Mining
Parallel Frequent Pattern Mining
Parallel Sequence Mining
Mining Graph Patterns
Frequent Pattern Mining Algorithms in Clustering
Supervised Pattern Mining in Classification
Input Privacy
Output Privacy

Grading

Quizzes 20%

Assignments 20%

Class Participation 20%

Final Exam 40%

 

CENG 651 Formal Methods for Safety and Security

This course presents how to incorporate formal methods within software engineering methodologies, especially for those applications which are critical for safety and security. The course introduces some specific formal notations, such as the CSP process algebra and Temporal Logics, as well as automatic tools for system modeling and verification. Finally, the course investigates the use of formal methods in the analysis of safety and security properties of systems.

Course Objectives:

To teach formal methods within software engineering for safety and security. To describe the algorithms used within software engineering for safety and security and to improve ability to implement these algorithms. To form acquaintance with the applications of this research area. To improve the ability of written and oral presentation.

Recommended or Required Reading:

B. Bérard et al.. Systems and Software Verification, Model Checking Techniques and Tools, Springer-Verlag, 2001

Learning Outcomes:

1. Describe the fundamental concepts in formal methods within software engineering for safety and security

2. Identify state-of-the-art formal methods used in software engineering for safety and security

3. Construct programs that implement algorithms for safety and security of software systems

4. Prepare written and oral presentation for the performed work

Topics
Introduction to Formal Methods
Propositional Logic and Predicate Logic
Program Verification
Program Verification
CSP process algebra
Protocol Verification
Model Checking
System Modeling with Automata
System Properties Specification with Temporal Logics
Model Checking Algorithms
Model Checking Algorithms
Symbolic Model Checking
Abstraction Methods
SPIN Model Checker

Grading:

Midterm: 30%

Homework: 10%

Research Presentation: 30%

Final: 30%

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

Course Objectives:

At the end of the course, the students will be analyzed the open research topics of asymmetrical cryptography and its security functions. They will learn the recent solution protocols, related standards and their already exist vulnerabilities. The students will have the ability to do risk analysis and assessment for asymmetrical cryptographic solution mechanisms.

Recommended or Required Reading:

Resources suggested by the instructor

Course Outcomes:

1. Learning asymmetric cryptosystem problem solving and design techniques.

Grading:

Midterm: 25%

Homework: 40%

Final: 35%

CENG 662 Advanced Symmetrical Cryptosystems

The students should be know the analysis of the security level of these cryptosystem and which cryptanalytic attacks are how much efficient on it.

Course Objectives:

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.

Recommended or Required Reading:

Introduction to Cryptography with Coding Theory 2 nd Ed., W. Trappe, L.Washington, 2006.

Course Outcomes:

Learning the basic structures and techniques of symmetric cryptosystems.

Grading:

Midterm: 25%

Homework: 40%

Final: 35%

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.

Course Objectives:

At the end of the course the students will have the ability to analyze the security level of the cryptographic solutions and design cryptosystems to resistant for the known cryptanalytic attacks.

Recommended or Required Reading:

Decrypted Secrets, Methods and Maxims of Cryptology, 4th revised and extended Ed., F.L. Bauer, 2007, Springer.

Course Outcomes:

Learning analysis techniques and attack methods of security levels of cryptosystems.

Grading:

Midterm: 25%

Homework: 40%

Final: 35%

CENG 690 Advanced Seminar

The course is composed of the research, analyze, data collecting and reporting the results of the master student relating to the specific subject the student aims to study.

Course Objectives:

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.

Recommended or Required Reading:

Articles, textbooks and class notes relating to the seminar subject.

Course Outcomes:

1. To be able to make a literature research and data arrangement on a given subject

2. To be able to analyze the results obtained and make a scientific report

3. To be able to express themselves in front of the audience

4. To be able to make a presentation by using the appropriate technics, format and content

Grading:

Application / Practical Work: 100%