Courses

 

IZMIR INSTITUTE OF TECHNOLOGY
DEPARTMENT OF COMPUTER ENGINEERING
UNDERGRADUATE SCHOOL (English)


1st Year

Fall

CENG111

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.

CENG113

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.

CENG115

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.

Spring

CENG112

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.

Prerequisites: CENG113

CENG114

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.

2nd Year

Fall

CENG211

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.

Prerequisites: CENG113

CENG213

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.

Spring

CENG212

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.

CENG214

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.

CENG216

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.

3rd Year

Fall

CENG311

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.

Prerequisites: CENG214

CENG313

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.

CENG315

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.

Spring

CENG312

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.

CENG314

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.

CENG316

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

4th Year

Fall

CENG411

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.

CENG415

Senior Design Project & Seminar I

Prerequisites: CENG316

Spring

CENG412

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.

CENG414

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.

CENG416

Senior Design Project & Seminar II

Prerequisites: CENG415


Track Courses

Computer Networks

CENG421

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.

CENG422

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.

Software Engineering

CENG431

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.

CENG432

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.

CENG433

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.

CENG437

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.

Prerequisites: CENG316

Information Management

CENG435

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.

Prerequisites: CENG315

CENG436

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.

Prerequisites: CENG315

Multicore Architectures & Parallel Programming

CENG441

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.

CENG442

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.

Embedded Systems

CENG451

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.

CENG452

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.

Artificial Intelligence

CENG461

Artificial Intelligence

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

CENG462

Soft Computing

Artificial neural networks; evolutionary computation; fuzzy systems.

CENG463

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.

CENG482

Evolutionary Computation

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

CENG483

Behavioural Robotics

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

Security

CENG471

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.

CENG472

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.

CENG473

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.


Other Technical Elective Courses

CENG381 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.

CENG382 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.

CENG383 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.

CENG384 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.

CENG385 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.

CENG386 Fuzzy Logic Systems

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

CENG388 Web Programming

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

CENG389 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.

CENG390 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.

CENG391 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.

CENG421 Network Programming

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

CENG422 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.

CENG431 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.

CENG432 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.

CENG433 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.

CENG434 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.

CENG435 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.

CENG436 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.

CENG437 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.

CENG441 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.

CENG442 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.

CENG451 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.

CENG452 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.

CENG461 Artificial Intelligence

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

CENG462 Soft Computing

Artificial neural networks; evolutionary computation; fuzzy systems.

CENG463 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.

CENG471 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.

CENG472 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.

CENG473 Security of Information and Communication Technologies

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

CENG481 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.

CENG482 Evolutionary Computation

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

CENG483 Behavioural Robotics

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

CENG484 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.

CENG485 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.

CENG487 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.

Click here for İYTE Central repository.