General electives can be selected from all the courses offered at Koç University.

COMP 317 / EMBEDDED SYSTEMS
Sınıf: Credit: 3Precondition: ELEC. 204 or consent of the instructor

Microcomputer fundamentals including architecture and operation of a typical microprocessor; bus organization; instruction set; addressing modes; analysis of clocks and timing; interrupt handling; memory (RAM and ROM); DMA, serial and parallel input/output; assembly language programming.

COMP 319A / MOBILE DEVICE PROGRAMMING-ANDROID
Sınıf: Credit: 3Precondition: COMP. 202 or COMP. 132 or consent of the instructor

This course covers programming environments and languages over mobile devices. Mobile device architectures and environments, MIDP Application Model, User Interface Libraries, High Level User Interface Components, Low Level User Interface Libraries, MIDP Persistance Libraries. Mobile device operating system environments. Operating Systems such as Symbian, Android, Mobile Windows.

COMP 341 / INTRODUCTION TO ARTIFICIAL INTELLIGENCE
Sınıf: Credit: 3Precondition: ENGR 200 or 201 or MATH 201 or 211 or MATH 202

Introduction to artificial intelligence concepts; agent based thinking; uninformed and informed search; constraint satisfaction; knowledge representation; logic; introduction to machine learning and its relation to artificial intelligence; representing uncertainty; markov decision processes; examples from vision, robotics, language and games.

COMP 350 / SELECTED TOPICS IN COMPUTER ENGINEERING
Sınıf: Credit: 3Precondition:

COMP 351 / SELECTED TOPICS IN COMPUTER ENGINEERING
Sınıf: Credit: 3Precondition:

COMP 390 / INDEPENDENT STUDY
Sınıf: Credit: 3Precondition:

Investigation of one or more topics of interest with the guidance of an instructor. Presentation of a research proposal at the end of the term.

COMP 391 / SUMMER PRACTICE II
Sınıf: Credit: 0Precondition: COMP 291 and ACWR 106-102-103-104-105-107

A minimum of 20 working days of training in an industrial summer practice program after the completion of third year. The training is based on the contents of the "Summer Practice Guide Booklet" prepared by each engineering department. Students receive practical knowledge and hands-on experience in an industrial setting.

COMP 404 / DIGITAL SPEECH AND AUDIO PROCESSING
Sınıf: Credit: 3Precondition: ELEC. 201 or consent of the instructor

Sound and human speech systems, phonetics and phonology, speech signal representations, role of pitch and formants, pitch-scale and time-scale modifications, basics of speech coding and VoIP systems, fundamentals of pattern and speech recognition, search algorithms for speech recognition.

COMP 408 / COMPUTER VISION AND PATTERN RECOGNITION
Sınıf: Credit: 3Precondition: ELEC. 201 or consent of the instructor

Study of computational models of visual perception and their implementation in computer systems. Topics include: image formation; edge, corner and boundary extraction, segmentation, matching, pattern recognition and classification techniques; 3-D Vision: projection geometry, camera calibration, shape from stereo/silhouette/shading, model-based 3D object recognition; color texture, radiometry and BDRF; motion analysis.

COMP 410 / COMPUTER GRAPHICS
Sınıf: Credit: 3Precondition: COMP. 202 or consent of the instructor

Theory and practice of 3D computer graphics. Topics covered include graphics systems and models; geometric representations and transformations; graphics programming; input and interaction; viewing and projections; compositing and blending; illumination and color models; shading; texture mapping; animation; rendering and implementation; hierarchical and object-oriented modeling; scene graphs; 3D reconstruction and modeling.

COMP 415 / DISTRIBUTED COMPUTING SYSTEMS
Sınıf: Credit: 3Precondition: COMP. 304 or consent of the instructor

Principles and concepts of distributed systems, middleware, peer-to-peer systems and algorithms, design and implementation issues, virtualization, communication and coordination in distributed systems, logical clocks, causality, distributed mutual exclusion, election algorithms, consistency and replication, consistent global states, fault tolerance, distributed deadlocks, recovery, agreement protocols, distributed transactions, cloud computing.

COMP 416 / COMPUTER NETWORKS
Sınıf: Credit: 3Precondition: COMP. 132 or consent of the instructor

Principles of computer networks and network protocols; Internet protocol stack with emphasis on application, transport, network and link layers; network edge and network core; client/server and peer-to-peer models; routing algorithms; reliable data transfer; flow and congestion control; protocol design and analysis; network performance metrics; software-defined networks; network programming and distributed applications.

COMP 428 / COMMUNICATION NETWORKS
Sınıf: Credit: 3Precondition:

Next generation communication systems, wireless cellular networks, machine-to-machine communications, Internet of things, software defined networking, physical layer data transmission, channel propagation characteristics, modulation, demodulation, medium access control layer, data link layer, forward and backward error control, routing layer, optimal routing, transport layer, flow control, congestion control.

COMP 429 / PARALLEL PROGRAMMING
Sınıf: Credit: 3Precondition: COMP. 132

Fundamental concepts of parallelism. Overview of parallel architectures, multicores, heterogeneous systems, shared memory and distributed memory systems. Parallel programming models and languages. Multithreaded, message passing, data driven, task parallel and data parallel programming. Design of parallel programs, decomposition, granularity, locality, communication, load balancing, and asynchrony. Performance modeling of parallel programs, sources of parallel overheads.

COMP 434 / COMPUTER AND NETWORK SECURITY
Sınıf: Credit: 3Precondition:

Overview of Computer Security Techniques, Conventional Encryption, Public-Key Cryptography, Key Management, Message Authentication, Hash Functions and Algorithms, Digital Signatures, Authentication Protocols, Access Control Mechanisms, Network Security Practice, TCP/IP Security, Web Security, SSL (Secure Socket Layer), Denial-of-Service Attacks, Intrusion Detection, Viruses.

COMP 437 / INTELLIGENT USER INTERFACES
Sınıf: Credit: 3Precondition: (COMP. 125 or COMP. 131) or consent of the instructor

Applications of artificial intelligence in user interfaces. Design, implementation, and evaluation of user interfaces that use machine learning, computer vision and pattern recognition technologies. Supporting tools for classification, regression, multi-modal information fusion. Gaze-tracking, gesture recognition, object detection, tracking, haptic devices, speech-based and pen-based interfaces.

COMP 441 / DEEP LEARNING
Sınıf: Credit: 3Precondition:

Basic linear models for classification and regression; stochastic gradient descent (backpropagation) learning; multi-layer perceptrons, convolutional neural networks, and recurrent neural networks; recent advances in the field; practical examples from machine translation, computer vision; practical experience in programming, training, evaluating and benchmarking deep learning models.

COMP 442 / NATURAL LANGUAGE PROCESSING
Sınıf: Credit: 3Precondition:

Fundamental concepts and current research in natural language processing. Algorithms for processing linguistic information. Computational properties of human languages. Analysis at the level of morphology, syntax, and semantics. Modern quantitative techniques of using large corpora, statistical models, and machine learning applied to problems of acquisition, disambiguation and parsing. Applications such as machine translation and question answering.

COMP 443 / MODERN CRYPTOGRAPHY
Sınıf: Credit: 3Precondition: COMP. 106 or consent of the instructor

Introduction to cryptographic concepts. Symmetric encryption, the public-key breakthrough, one-way functions, hash functions, random numbers, digital signatures, zero-knowledge proofs, modern cryptographic protocols, multi-party computation. Everyday use examples including online commerce, BitTorrent peer-to-peer file sharing, and hacking some old encryption schemes.

COMP 446 / ALGORITHM DESIGN AND ANALYSIS
Sınıf: Credit: 3Precondition: COMP. 202 or consent of the instructor

Advanced topics in data structures, algorithms, and their computational complexity. Asymptotic complexity measures. Graph representations, topological order and algorithms. Forests and trees. Minimum spanning trees. Bipartite matching. Union-find data structure. Heaps. Hashing. Amortized complexity analysis. Randomized algorithms. Introduction to NP-completeness and approximation algorithms. The shortest path methods. Network flow problems.

COMP 450 / SELECTED TOPICS IN COMPUTER ENGINEERING
Sınıf: Credit: 3Precondition: ENGR 200 and MATH 107 or consent of the instructor

COMP 451 / SELECTED TOPICS IN COMPUTER ENGINEERING
Sınıf: Credit: 3Precondition:

COMP 470 / BIOINFORMATICS AND ALGORITHMS IN COMPUTATIONAL BIOLOGY
Sınıf: Credit: 3Precondition:

Algorithms, models, representations, and databases for collecting and analyzing biological data to draw inferences. Overview of available molecular biological databases. Sequence analysis, alignment, database similarity searches. Phylogenetic trees. Discovering patterns in protein sequences and structures. Protein 3D structure prediction: homology modeling, protein folding, representation for macromolecules, simulation methods. Protein-protein interaction networks, regulatory networks, models and databases for signaling networks, data mining for signaling networks.

COMP 489 / SOFTWARE RELIABILITY: SPECIFICATION, TESTING AND VERIFICATION
Sınıf: Credit: 3Precondition:

Tools and techniques for ensuring software reliability. Specification formalisms and languages. Modeling tools and languages. Unit and integration testing. Automated testing and verification tools and algorithms. Mathematical representations for programs and executions. Hoare logic. Specification using modular contracts: Preconditions, postconditions, loop and object invariants. Ownership systems. Automated test generation. Model-based testing. Coverage metrics for testing adequacy. Type and effect systems for reliable software. Software model checkers. Static analysis. Concurrent/multi-threaded programs. Correctness criteria for concurrent programs: race-freedom, atomicity, linearizability and serializability. Testing, verification and debugging tools for concurrent programs.