Undergraduate Courses

Undergraduate Courses

First Year

Course Code Course Name Description Prerequisite(s)
CENG 111 Concepts in Computer Engineering

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

Introduction to computer engineering
Data storage
Data processing
Operating systems
Computer Networks and Internet
Algorithms cont.
Programming languages
Software engineering
Data structures
File structures
Database management systems
Artificial intelligence
General evaluation
CENG 112 Data Structures

Basic concepts of data, data structures and data types: arrays, strings, linear structures, sequential searching and sorting techniques, stacks, queues, pointers, linked lists. Various forms of m-way search and B-trees.

Data Abstraction
Queues and Stacks
Analysis of Algorithms
Recursive Data Structures: Linked Lists and Trees
Elementary Sorts: Selection Sort, Insertion Sort, and Shellsort
Heaps and Priority Queues
Symbol Tables and Binary Search
Binaary Search Trees
Balanced Search Trees
Hash Tables
Graph Representation and Traversal
CENG 113
CENG 113 Programming Basics

Fundamentals of computer programming: sequence, decision, repetion, syntax, compilation, debugging and maintenance, procedures, parameters, arrays, object, top-down structured design, layout and style. The emphasis is on an engineering “right-first-time” approach to solving large problems using computers. Basic concepts of algorithmics and algorithmic terminologies.

Introduction to Programming Basics – Tutorial – I
Introduction to Programming Basics – Tutorial – II
Types, Operators and Expressions
Program Control Flow
Program Structures
Course Evaluation and Review
Arrays and Strings
Pointers and Arrays
Recursive Functions
Dynamic Memory Allocation
Course Evaluation and Review
Input Output Functions
CENG 114 Probability & Statistics

Elementary probability theory, conditional probability and independence, random variables, distribution functions, joint and conditional distributions, law of large numbers, central limit theorem, parameter estimation, confidence intervals, and hypothesis testing.

Population and Variates, Tables and Graphs, the Center of a Set of Observations
The Measure of Variability, Samples and Population
Random Variables, Expectation of a Random Variable
Discrete Random Variables, Uniform, Bernoulli, Binomial and Poisson Distibutions
Continuous Random Variables, Normal Distribution
Testing Hypotheses
Testing Hypotheses, Large Sample Tests
Testing Hypotheses, Small Sample Tests
Testing Hypotheses Using X^2 Distibution
Linear Regression and Correlation
CENG 115 Discrete Structures

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

Propositional Logic
Predicate Logic
Proof Techniques
Sets and Functions
Sequences and Summations
Algorithms and complexity analysis
Integers, divisibility, and matrices
Mid-term Exam
Induction and recursion
Counting, pigeonhole principle, permutation, and combination
Discrete probability

Second Year

Course Code Course Name Description Prerequisite(s)
CENG 211 Programming Fundamentals

Ideas from object-oriented programming, methods, classes, information hiding, and inheritance; fundamental algorithms, sorting and searching; user defined classes; concept of recursion, benefits and problems; exception handling; using APIs; simple graphics programming; concept of software design.

Control Structures
Classes and Methods
Objects and Methods
Exception Handling
Streams and File I/O
Dynamic Data Structures and Generics
Problem Solutions
Review of the Semester
CENG 113
CENG 212 Concepts of Programming Languages

Syntax, semantics and pragmatics of programming languages. Data, storage and control. Binding of identifiers. Procedural abstraction. Definitions, sequences and concurrent processes. Types. Formal semantics. Study of key features of existing programming languages.

Programming Language Syntax
Names, Scopes, and Bindings
Control Flow Structures
Iteration and Recursion
Data Types
Subroutines and Control Abstraction
Parameter Passing Methods
Data Abstraction and Object-Oriented Approach-1
Data Abstraction and Object-Oriented Approach-2
Functional Programming-1
Functional Programming-2
Logic Programming-1
Logic Programming-2
CENG 213 Theory of Computation

Abstract automata, especially finite state machines; push-down automata; and Turing machines. Formal languages, especially context-free languages. The relationship between automata and languages. Computability and solvability.

Sets, Relations, and Functions
Basic Proof Techniques, Closures
Deterministic and Nondeterministic Finite Automata
Regular Expressions
Context-Free Grammars
Pushdown Automata
Turing Machines
The Chomsky Hierarchy
Computational Complexity
NP versus P
CENG 214 Logic Design

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

Binary logic and gates
Boolean algebra, standard forms
Map Simplification, Map Manipulation,
NAND, NOR and EXCLUSIVE-OR Gates Integrated Circuits
Analysis Procedure, Design Procedure
Arithmetic Circuits, Decoders, Encoders
Multiplexers, Standart Graphics Symbols
Latches, Flip-Flops
Analysis Procedure, Design with D Flip-Flops, Design with JK Flip-Flops
Registers, Shift Registers, Shift Registers with Parallel Load
Ripple Counter, Synchronous Binary Counters, Other Synchronous Counters
RAM, Memory Decoding, Error Detection and Correction, ROM
Programmable Logic Device (PLD), Programmable Logic Array (PLA), Programmable Array Logic (PAL).
Register Transfer, Algorithmic State Machine, Microoperations, Bus Transfer, Processor Unit
CENG 216 Numerical Computation

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

Introduction to numerical calculation methods
Numerical calculation errors
Taylor series
Taylor series cont.
Forward and backward differences
Central differences, polynomials
Interpolation & extrapolation
Finding roots of equations, Newton method
Finding roots of equations, Secant method
The solution of simultaneous linear algebraic equations
Matrix inversion
Least-squares curve fitting
Functional integration
Numerical integration

Third Year

Course Code Course Name Description Prerequisite(s)
CENG 311 Computer Architecture

Basic computer organization and design. Instruction fetch, decode and execution. CPU organization. Hardwired and microprogrammed control organization. Arithmetic algorithms and arithmetic processor design. Input-Output organization. Memory organization, virtual memories, caches, and their management. Machine language and assembly language. Instruction formats and addressing modes. Survey of computer architectures: Von Neumann, Parallel and RISC. Pipelining and other advanced techniques for performance improvements. Introduction to parallel computing, interconnection networks, and multiprocessors.

Introduction to Computer Architecture and Organization
Computer Arithmetics (Lab: Fundamentals of VHDL)
MIPS Architecture and Assembly (Lab:VHDL Programming and Simulation)
Single and General Purpose Datapath Design (LAB: Datapath implementation on Modelsim -1)
VHDL Programming Language (LAB: Datapath implementation on Modelsim -2)
Design of Pabs microprocessor – 1 (Lab: Implementation of the internal units)
Design of Pabs microprocessor – 2 (Lab: Integration of the internal units and testing)
Design of external IO units and interrupt mechanisms
Pipelining, Pabs Assembly (Lab: Assembler and Linker of uPabs)
8086 based Computer Organization (Lab: 8086 Assembly Programming – 1)
8086 assembly programming – 1 (Lab: 8086 Assembly Programming – 2)
8086 assembly programming – 2 (Lab: 8086 Assembly Programming – 3)
Segmentation, Paging, real-mode, protected-mode and others
Memory organization (Lab: Fundamentals of operating system design)
CENG 214
CENG 312 Computer Networks

Overview of computer networks: Network architecture and the ISO-OSI model. Circuit switching, packet switching. Network topology: Connectivity analysis, delay analysis and backbone analysis. Physical layer: Transmission and multiplexing, terminal handling, errors. Data link layer and link protocols. Network layer: Routing and congestion, satellite and packet radio networks, local networks. Transmission and session layer, presentation layer, application layer. Ethernet, token ring networks, protocols, discussion of some networks and their properties, network planning and management.

Chapter 1 Introduction, Chapter 2 Network Models
Chapter 3 Data and Signals
Chapter 6 Multiplexing & Spreading
Chapter 7 Transmission Media
Chap 9 : Using Telephone and Cable for Data Transmission + Chap 13: Wired LANs: Ethernet
Chap 14: Wireless LANs
Chap 18: Virtual Circuit Networks: Frame Relay & ATM
Chap 19: Network Layer: Logical Addressing
Chap 23: Process to Process Delivery:UDP,TCP,SCTP
Chap 25: Domain Name System
Chap 26: Remote Logging, Electronic Mail, File Transfer
Chap 27: WWW and HTTP
CENG 313 Operating Systems

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

An Overview to Operating Systems, Introduction and Basic Concepts
Processes and Process Management
Threads and Processes
Interprocess Communication
Processes Synchronization
Memory Management
Virtual Memory Management
Uniprocessor Scheduling
Multiprocessor Systems and Scheduling
File Systems
I/O Systems
Disk Management
CENG 314 Embedded Computer Systems

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

Gömülü Sistem Tasarımına Giriş
Bilgisayar Mimarisi Konseptlerinin Gözden Geçirilmesi
FGPA Tasarımı ve VHDL Programlama Dili
Özel ve Genel Amaçlı Veriyolu ve Mikroişlemci Tasarımı
Mikrodenetleyicilerle Gömülü Sistem Tasarımı
LAB – I : Arduino ile basit bir uygulama
Geribeslemeli Kontrol Sistemlerinin Temelleri
Veri Toplama ve Sayısal İşaret İşleme
LAB – II : Motor hız kontrolü için gerekli devrenin ve test ortamının kurulması
Gerçek-Zamanlı Sistemler
Gerçek-Zamanlı İşletim Sistemleri
Gömülü Yazılım Tasarımı
Hataya Dayanıklılık (Fault-Tolerance) Teknikleri
LAB – III : Arduino ile geribeslemeli motor hız kontrolü uygulaması
CENG 315 Information Management

Relevance of information management in the context of computer engineering; introduction to database systems and the relational model; normal forms and their benefits; building databases, underlying methodology, database languages; issues associated with information retrieval; SQL, its use and power; information systems in the context of networks, intranets, extranets; special systems and applications; particular issues, access, security, and integrity; relevant legal and ethical issues.

Introduction to Database Management Systems
Architecture of Database Management Systems
Relational Model
Relational Database Design
Relational Algebra
Consistency and Security
Efficient Query Optimization
Server and Clients
Term Projects
CENG 316 Software Engineering

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

Introduction to Software Engineering, Process View
Process Models, Agile Process Model
Software Engineering Practice, Systems Engineering
Requirements Engineering, Analysis Model
The Object-oriented Approach
Design Model, Design Architecture
Testing Strategies and Techniques
Computer Aided Software Development Tools
Product Metrics
Project Management, Metrics Measurement
Software Quality Management
Formal Methods
Project Technical Review Meetings
Project Presentations and Demonstrations
CENG 381 Stochastic Processes

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

Quick Review of Probability
Random Variables, Parameters of Random Variables, Jointly Distributed Random Variables
Transform Methods, Moment Generating Function, Inequalities
Probability Distributions – Discrete Random Variables
Probability Distributions – Discrete RV s, Continuous RV s
Probability Distributions – Continuous Random Variables – Central Limit Theorem, Applied Transforms
Stochastic Processes, Poisson Process
Birth+Death Process
Markov Chains
Queueing Theory, Introduction, Describing a Queueing System
Little s Law, M/M/1 Queueing System
Other Queueing Systems
CENG 382 Information Theory

An introduction to Shannon’s information theory and elementary binary coding schemes with and without noise. The concept of information, entropy, simple sources, Markov sources, continuous sources, information channels, average error, ambiguity, transformation, capacity, noiseless coding, Kraft-McMillan theorem, Shannon-Fano and Huffmann coding schemes, error-correcting codes, linear codes, cyclic codes. Data Compression.

Introduction; Related concepts.
Entropy, relative entropy and mutual information
Asymptotic equipartition property
Entropy rates of stochastic processes
Data compression -I
Data compression -II
Channel capacity
Differential entropy
The Gaussian channel
Network Information Theory – I
Network Information Theory – II
Relevant topics in Information Theory today
CENG 383 Real-Time Systems

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

Fundamentals of Real-Time Systems
Review of Computer Architectures in terms of the Realization of Real-Time Systems
Real-Time Definition and Design Techniques
Formal Methods: Timed Automata and Petri-Nets, Model Checking
Real-Time Programming Languages
Synchronous Programming Languages
Real-Time Kernels – I: Theoretical Findings, Scheduling Algoritms
Laboratory Work – I (Advanced C and Assembly Programming)
Real-Time Kernels – II: POSIX
HW/SW Integration, Performance Analysis and Optimization
Laboratory Work – II (Real-Time Kernel Design: Bootstrap, process management)
Laboratory Work – III (Real-Time Kernel Design: Time Management, Interrupt Mechanisms)
Laboratory Work – III(Real-Time Kernel Design: Coding Real-Time Scheduling Algorithms)
CENG 384 Microprocessors

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

Introduction to Computing, 8051 Microcontrollers
8051 Assembly Language Programming
Jump, Loop and Call Instructions, I/O Port Programming
EPROM programming
8051 Addressing Modes
Arithmetic & Logic Instructions and Programs, 8051 Hardware Connection and Intel Hex File
Calculator application
Timer Programming in Assembly
Serial Port Programming in Assembly
Interrupts Programming in Assembly
Seconds counter application
LCD and Keyboard Interfacing
ADC, DAC and Sensor Interfacing
Temperature Measurement via ADC application
CENG 386 Fuzzy Logic Systems

Fuzzy set theory, fuzzy relations, fuzzy rule base, approximate reasoning, fuzzy control, fuzzy logic system design.

Fuzzy set theory
Fuzzy algebra
Fuzzy connectives
Fuzzy relations
Approximate reasoning
Fuzzy control
Fuzzy system simulation environments
Fuzzy logic simulation environments
Possibility theory
Incomplete data management
Fuzzy measures
Fuzzy logical soft computing
CENG 388 Web Programming

Web and .NET framework, software development with ASP.NET, web services programming, MVC programming.

Introduction to Web ve .NET Framework
IIS Web Servers
Introduction to MS Visual Studio
Software Project Development with MS Visual Studio
Introduction to ASP.NET
ASP.NET Page Life Cycle
Web Application Project Templates
Web Form /User Control/ Master Page Concepts
Client Side Programming
AJAX Programming
Introduction to Web Services
Web Service Development with ASP.NET
MVC Architecture
ASP.NET MVC Framework
CENG 389 Mobile Application Development

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

Introduction to Mobile Programming
Applications and Activities
Building User Interfaces
Intents, Broadcast Receivers, and Adapters
Threads and Notifications
Data Storage and Access
Location Based Services, Maps, and Sensors
Connectivity with Wi-Fi and Bluetooth
Working with Multimedia and the Camera
Graphics and Animation
User Experience Principles
Web Apps and Cross Platform Programming
Interacting with Web Services
Graphics and Computation with the GPU
CENG 390 Cloud Computing

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

Introduction to Cloud Computing
Service Models (SaaS, PaaS, IaaS)
Cloud Computing Components
Cloud Systems Models (public, private, hybrid)
Public Cloud: AWS, Google App Engine, MS Azure
Data Storage, Processing, Access & security
In-House vs Cloud Strategy & Planning
Scalable Cloud Database Architectures – SQL, NoSql, Hadoop
Migrating to the Cloud Architecture
Big Data & Data Science
Mini Lab – Developing and Deploying Apps on Cloud Platforms
Global Startups, Cloud Applications and Entrepreneurship
Enterprise Cloud-Based High Performance Computing (HPC) Applications
Global Cloud Strategy for Apps and Businesses
CENG 391 Introduction to Image Understanding

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

Image Representation
Basic Image Processing
Image Pyramids
Keypoint Detection
Keypoint Description and Matching
Planar Projective Geometry
Optimization Techniques
Image Matching
Optical Flow and Template Tracking
Basic Camera Geometry
Epipolar Geometry
Dense Image Features
Object Category Detection

Fourth Year

Course Code Course Name Description Prerequisite(s)
CENG 385 Mathematical Logic

Propositional logic: syntax, semantics, decision procedures; first-order logic: syntax, semantics, definability, formal system, completeness, undecidability, incompleteness; second-order logic; advanced topics: many-valued logic, modal logic, temporal logic, fuzzy logic.

Propositions in Propositional Logic
Normal Forms in Propositional Logic
Semantics of Propositional Logic
Inference in Propositional Logic
Syntaxt and Semantics of Predicate Logic
Satisfiability of Predicate Logic
Formal Systems of Predicate Logic
Completeness of Predicate Logic
Undecidability and Incompleteness of Predicate Logic
Higher-Order Predicate Logics
Advanced Topics
Fuzzy Logic
CENG 400 Summer Practice

The summer practice allows students to experience practical applications in companies. It also allows students to know general structure of the host company. With this experience students involve ongoing real-life projects.

CENG 411 Professional Issues in Computer Engineering

Critical examination of ethical problems associated with computer engineering; discussion of these problems conducted within the framework of classical philosophical ethical theories; legal and quasi-legal (i.e., policy and regulative) issues; topics addressed include the process of ethical decision-making, privacy and confidentiality, computer crime, professional codes and responsibilities, professional practice, system security, impact of computers on society.

Freedom of Speech (part 1)
Freedom of Speech (part 2)
Intellectual Property (part 1)
Intellectual Property (part 2)
Sociotechnical Systems
Evaluating and Controlling Technology
Errors, Failures and Risk
Professional Ethics and Responsibilities (part 1)
Professional Ethics and Responsibilities (part 2)
Discussions and summary
CENG 412 Analysis and Design of Algorithms

The role of algoritms in computing, Growth of functions, recurrences, probabilistic analysis and randomized algorithms, dynamic programming, greedy algorithms, advanced data structures, graph algorithms, NP-Completeness.

Complexity Theory
Asymptotic Notation
Dynamic Programming
Analysis, Design & Implementation
Greedy Algorithms
Advanced Data Structures
Graph Algorithms
String Matching
Problem solving
CENG 414 Project Management

This course is designed to introduce the engineering students to economic and management concepts. Topics will include economic concepts such as; cash flow, interest rates, rate of return, demand supply relations, product pricing, taxes, inflation, and related subjects; and management analysis such as management layers, network analysis, project management via CPM/PERT networks, optimization concepts, linear programming, and decision analysis. The course also includes use of related software.

Introduction to project management. What is project and management? Project selection
Project team, Project Manager, Project Office
Work Breakdown Structure, Staement of Work, Responsibility Schedule
Source Planning, Cost Planning
Time Planning, FAST Management, Gannt Chart, Business Network Planning
Business Network Planning (cont.), Project Acronym Methods
Introduction to computer program (MS Project)
Team organization, management and leadership
Risk Analysis Methods
Project Supervision, Cost Supervision, Earned Value Analysis, Change Control
Quality Control
Decision methods and tools
Project closure
CENG 415 Senior Design Project & Seminar I

Writing technical reports, project management and planning, system analysis, requirement analysis, engineering ethics, data design, software design, presenting a project

Writing technical reports
Project management and planning
System analysis
Requirement analysis
Engineering ethics
Data design
Software design
Presenting the project
Invited speaker- Project management
Invited speaker- Software development
Student project presentations
Student project presentations
Student project presentations
CENG 415-416 Bitirme Projeleri Yönergesi
CENG 415 - Proje Konusu Tanımlama Formu
CENG 316
CENG 416 Senior Design Project & Seminar II

Invited speakers, change management, coding documentation, coding standards, testing, reliability, security, protyping, user manuals, group demos

Invited speaker
Change management
Coding documentation
Coding standards
Group protype presentations
Group protype presentations
User manual preparation
Invited speaker
Group demos
Group demos
CENG 415
CENG 421 Network Programming

Unix systems: signals, threads, interprocess communication; TCP-UDP/IP; socket programming in Unix; windows sockets, network programming in C; client/server model, web-based programming; remote procedure calls; network security issues.

Basic Concepts of Networking
Basic Concepts of Networking
TCP/IP Programming
TCP/IP Programming
TCP/IP Programming
Midterm Exam
PHP/MySQL Programming
PHP/MySQL Programming
PHP/MySQL Programming
PHP/MySQL Programming
PHP/MySQL Programming
PHP/MySQL Programming
PHP/MySQL Programming
CENG 422 Network Design & Management

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

Review of LANs
Review of WANs
Intranet, Internet middleware technologies: CORBA, OpenDoc, ODBC
Several Computation Models: Client/Server, Client/Agent/Server, Peer-to-Peer
Configuration of TCP/IP
Transport Layer Protocol Design
Summary (Examination)
Choice and Configuration Network Active Devices
LAN Design: Concepts, Tools, Applications
Analysis of Traffic in Different Networks
Network Management, SNMP Protocol
WAN Design: Concepts, Tools, Applications
Use of Simulators, Case Studies
Network Security
CENG 431 Building Software Systems

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

Object oriented software development 1
Object oriented software development 2
Object oriented analysis and design with UML 1
Object oriented analysis and design with UML 2
Software development with components
Design approach with abstraction
Object oriented application frameworks
Unit testing
A case study from design to software
Design patterns 1
Design patterns 2
Design patterns 3
CENG 432 Fundamentals of Enterprise Application Development

This course explores advanced application development techniques in a large enterprise-wide setting. Topics include agile software development, multi-tier applications, server side programming, transaction processing, web programming, application installation and deployment issues.

Introduction to enterprise application development
Web programming 1
Web programming 2
Thread programming 1
Thread programming 2
Client socket programming
Server socket programming
Database connections for enterprise applications
JSP server pages
AJAX framework
Enterprise application design patterns 1
Enterprise application design patterns 2
Spring application context
Spring MVC web framework
CENG 433 Scalable Software Development for Internet

Logical / physical arhitecture design and server components, performance measurement, advanced caching strategies, horizontal scaling with MySQL and handling peak load.

Introduction to Play Framework
Base project
Introduction to Internet logical architecture designs .
Load Performance testing
Caching Strategies
Distributed data fetching and queuing Distrubed DNS structures.
Performance logging on the server and browser
Developing for scalable databases .
Scaling MySQL
Map Reduce with Hadoop
Handling unpredictable peak-time load and failures
Online deployment strategies
Handling unpredictable / peak-time load and failures (static fallbacks, failover mechanisms, etc.)
Online deployment strategies
CENG 434 Enterprise Application Integration

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

Overview of enterprise architecture
Layers of an enterprise information system
Fundamental problems of enterprise application integration
Integration types
Components and patterns of enterprise application integration
Web services
Transaction processing monitors
Enterprise service bus I
Enterprise service bus II
Business processes, workflow and orchestration I
Business processes, workflow and orchestration II
Business activities monitoring
Reliability and Fault-Tolerance
CENG 435 Advanced Information Management

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

Revisiting Database Systems, Data Definition, Data Manipulation
Clients and Servers, JDBC
Disk Management
File Management
Memory Management
Transaction Management
Record Management
Metadata Management
Query Processing
Query Processing
Planning, Database Server
Query Optimization
CENG 315
CENG 436 Distributed Information Management

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

Introduction to distributed databases
Revisiting relational database management systems
Computer networks
Distributed database architectures
Distributed database design- Horizontal partitioning
Distributed database design- Vertical partitioning
Semantic data management
Query processing in general
Query decomposition and data localization
Distributed query optization
Distributed concurrency
Distributed consistency protocols
Distributed security protocols
Presentation and discussion of team projects
CENG 315
CENG 437 Software Quality Management

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

Introduction to SW Quality Management
Components of Quality and Quality Models (CMMI, RUP)
Components of Quality and Quality Models (ISO9001, SPICE, IEEE12207)
Methods and Tools used in Quality Management
Error and Problem Avoidance Methods
Error and Problem Avoidance Methods
Software Test Methods
Software Test Methods
Maintenance Mangement
Maintenance Mangement
Configuration Management
Software Quality Metrics
Process Quality Metrics and Cost of Quality Management
Process Quality Metrics and Cost of Quality Management
CENG 316
CENG 441 Introduction to Parallel Programming

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

Inroduction to Parallel Computing
Paralle Programming Platforms
Princibles of Algorithm Design I
Princibles of Algorithm Design II
Shared Memory and Threads
Implementing Domain Decompositions OpenMP
Confronting Race Conditions OpenMP
Implementing Task Decompositions OpenMP
Programming Shared Address Space Platforms – Thread Based Programming
Analyzing Parallel Performance
Improving Parallel Performance
Programming Using MPI Paradigm Part 1 ms-MPI Install Setup
MPI Exercise ms-MPI
Programming Using MPI Paradigm Part 2 MPI Lab. Experiments
CENG 442 Multicore Architectures and Operating Systems

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

An Introduction
Processor Architecture
Processor Implementation
Interrupts, Traps and Exceptions
Processor Performance
Rudiments of Pipelined Processor Design
Midterm 1
New Architectures and Multicore Designs
Processor Scheduling
Memory Management Techniques
Memory Hierarchy
Parallel Processors
Input/Output and File Systems
Conclusion: Putting Them All Together
CENG 451 Advanced Digital System Design

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

Introduction to Digital System Design
Review of Electronics
Digital Design Concepts
FPGA and ASIC design; VHDL Programming Language – I
Summary (Examination)
Electronic Design Automation Tools
Dedicated Soft Microprocessor/Microcontroller Design
General Purpose Soft Microprocessor/Microcontroller Design
Digital Signal Processor Design
Fault-Tolerant Hardware Design Issues
Interfacing to External Circuitry
Design for Reuse, Testing and other Topics
Case Study, Term Project
CENG 452 Building Software for Embedded Systems

Design and implementation of software for programmable embedded systems; software tools such as compilers, schedulers, code generators, and system-level design tools; data-flow and control models of computation and software synthesis for uniprocessor and multiprocessor architectures; synchronous/reactive languages and their mathematical properties; implementation of signal processing, communication and control algorithms using variety of technologies such as digital signal processors, microcontrollers, FPGAs, ASICs and real-time operating systems; real-time kernel design; software implemented fault-tolerance techniques.

Introduction to Embedded Software Design
Compilers, Code Generators, System-Level Design Tools
Data-flow and Control Models of Computation
Software Synthesis for Uniprocessor and Multiprocessor Systems
Synchronous/Reactive Programming Languages
Overview of Real-Time Operating Systems
Summary (Examination)
Real-Time Scheduling Techniques
Various Algorithms in Digital Signal Processing, Communication and Control
Implementation of Algorithms on Microcontrollers, DSPs, FPGAs and ASICs
Software Development Tools
Testing, Design for Reuse
Software-Implemented Fault-Tolerance Techniques
Term Project
CENG 461 Artificial Intelligence

Declarative programming; problem solving; knowledge representation; reasoning; acting logically; uncertainty; learning; communicating.

Declarative software languages
Problem solving
Knowledge of existence
Acting logically
Uncertain Knowledge
Reasoning under uncertainty
Perception and labeling
CENG 462 Soft Computing

Artificial neural networks; evolutionary computation; fuzzy systems.

Alternative AI Approaches
Higher-order Logic
Expert Systems
Environment Modelling
Soft Computing
Non-Symbolic Learning
Natural Language Processing
Intelligent Agent
Multi-Agent System
Semsantic Web
CENG 463 Introduction to Machine Learning

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

Concepts in Machine Learning
Bayesian Decision Theory
Supervised Learning Fundamentals
Linear Regression
Logistic Regression
Model Selection Procedures
Multivariate Classification, Multivariate Regression
Summary and Examination
Dimensionality Reduction and Principal Component Analysis
Linear Discriminant Functions
Neural Networks
Supervised Learning: Non-parametric approaches
Design and Analysis of Machine Learning Experiments
CENG 471 Cryptography

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

Introduction to Cryptography with basic definitions and concepts
Information Theory and Probability Theory and Cryptography
Monoalphebetical and Polyalphabetical Crypto
Block Ciphering, DES and AES
Symmetrical Key Management and Security Architecture
Symmetrical Cryptosystem Design and Verification
Introduction to Number Theory I
Introduction to Number Theory II
Factorization based Asymmetrical Cryptosystems – RSA
Discrete Logarithm Problem and Cryptosystems: DHKE, ElGamal
Elliptic Curve Cryptosystems- ECC
Public Key Infrastructures
Design of Cryptographic Protocols: FIPS 140-2/3
CENG 472 Network Security

Link Encryption, End-to-End Encryption, Network and Internet Based Attacks, Firewalls, Email Security Issues, Web Based Security Issues, Disaster Recovery, C2 Functionality Stand-alone vs Network Operation, Hackers and Crackers, Network Crackings.

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
Firewall policies
Technologies used with firewalls (NAT, VPN)
Attact an intrusion detection systems 1
Attact an intrusion detection systems 2
CENG 473 Security of Information and Communication

Introduction to security of information and communication technologies, fundamental security functions and related cryptographic tools, network security and related problems, protection mechanisms and tool will be evaluated. Then current hot topic security problems will be analyzed for “cloud computing”, “web applications and services”, “wireless networks”, etc. and at last security management of information systems will be discussed.

Introduction to Information and Communication Security
Main Security Functions and Cryptographic Tools
Main Security Functions and Cryptographic Tools
Network Security – Detection
Network Security – Prevention
Network Security – Protection
Security for Cloud Computing
Security of Web Applications and Servers
Operating Systems Security
Internet Security
Security of Wireless Networks
Security of Wireless Networks
Management of Information Security
Management of Information Security
CENG 481 Theoretical Approaches in Computer Science

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

Introduction: related topics and introducing of course content.
Computational Complexity Theory – I
Computational Complexity Theory – II
Automata Theory
Languages and Computability
Algorithms ; Algorithm Theory
Algorithms ; Algorithm Analysis
Algorithms ; Data Structures
Algorithms ; Approximation Algorithms Medium size
Algorithms ; Graph Algorithms
Algorithms ; Numerical Analysis
Artificial Intelligence
Machine Learning
Algorithms; Computational Biology
CENG 482 Evolutionary Computation

Evolution strategies, evolutionary programming, genetic algorithms, genetic programming, overview of selected evolutionary computation techniques.

Evolution Strategy
Evolutionary Programming
Introduction to Genetic Algorithms
Applications of Genetic Algorithms
Genetic Programming
Learning Classifier Systems
Swarm Intelligence
Differential Evolution
Harmony Search
Artificial Immune Systems
Artificial Life
Cultural Algorithms
CENG 483 Behavioural Robotics

Mechatronics; architectures; control; AI components; computer vision; mapping; planning; navigation; communication; co-operation; robot ethics; applications.

Software Architectures
Artificial Intelligence Components
Robot Vision
Robot Ethics
CENG 484 Data Mining

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

Knowledge Discovery Overview
Data Mining in General
Data Warehousing and Methods
Data Preparation
Basics of Data Mining
Association Rule Mining
Association Rule Mining
Classification and Prediction
Classification and Prediction
Cluster Analysis
Cluster Analysis
Web Mining
Data Mining Applications
Presentation and Discussion of Term Projects
CENG 485 Information Technology Entrepreneurship

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

First entrepreneurship experience
Presentation in information technologies
Marketing methodologies
Business development strategies
IBM and Microsoft examples
Team management paradigms
Insource and outsource concepts
Strategic planning and its importance
Importance of customer projects in business expansion
Experienced models in software team management
New business models
Global software trends and Türkiye
Future of software business I
Future of software business II
CENG 487 Introduction to Computer Graphics

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

Mathematics for Computer Graphics
Three Dimensional Graphics
Shading and Illumination I
Introduction to Rendering
Ray Tracing Basics
Photon Mapping and Global Illumination
Accelerating Ray Tracing
Shading and Illumination II
Volume Rendering
CENG 488 Computer Graphics

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

Ray Tracing Techniques
Photon Mapping I
Photon Mapping II
Global Illumination I
Global Illumination II
Accelarating Raytracing
Volume Rendering I
Volume Rendering II
Advanced Scene Modelling I
Advanced Scene Modelling II