Courses given by the Department of Computer Engineering


Course Code Course Name METU Credit Contact (h/w) Lab (h/w) ECTS
CNG52 ANKARA CAMPUS EXCHANGE PROGRAM 3 3.00 1.00 5.0

Course Content

For course details, see https://catalog2.metu.edu.tr.
CNG70 TRANSFER COURSE 3 0.00 0.00

Course Content

For course details, see https://catalog2.metu.edu.tr.
CNG100 INTRODUCTION TO INFORMATION TECH. AND APPLICATIONS 0 2.00 0.00 1.0

Course Content

To introduce all METU NCC students to the information technology basic and concepts and up to date applications in their freshman year, preparing them to use these skills during their undergraduate studies in their respective disciplines, as well as professional lives.

CNG101 COMPUTER ENGINEERING ORIENTATION 0 2.00 0.00 1.0

Course Content

An orientation course to provide counsel to the students about the Department and Computer Engineering in general. An introduction to ethical and legal issues related to computer programs. An introduction to the faculty and their activities. Visit to several Computer Centers in and outside the University.

CNG111 INTRODUCTION TO COMPUTER ENG. CONCEPTS 4 3.00 2.00 4.0

Course Content

Introduction to fundamentals of Computer systems, including Computer organization, operating systems, language processors and user interfaces. Introduction to algorithms and programming. Reasoning informally about the correctness and efficiency of programs. A functional programming language will be used for practical work.

CNG140 C PROGRAMMING 4 3.00 2.00 4.0

Course Content

Advanced programming with C: storage and control structures, recursion and programming with dynamic data structures. Homeworks are required to run on Unix environment.

CNG213 DATA STRUCTURES 4 3.00 2.00 6.0

Course Content

Classification of data structures, space and time considerations. Linked lists, stacks and queues. Tree structures, binary search trees. Array and pointer based implementations. Recursive applications. Sorting and searching.

CNG223 DISCRETE COMPUTATIONAL STRUCTURES 3 3.00 0.00 6.0

Course Content

Fundamentals of logic, set relations, functions, induction, graph theory, trees introduction to algebraic structures, lattices.

CNG230 INTRODUCTION TO C PROGRAMMING 3 2.00 2.00 5.0

Course Content

Introduction. Constants, variables, expressions, statements. Selective structures. Repetitive structures and arrays. Functions. Pointers. Multi-dimensional arrays.

CNG232 LOGIC DESIGN 4 3.00 2.00 7.0

Course Content

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.

CNG240 PROGRAMMING WITH PYTHON FOR ENGINEERS 3 2.00 2.00 4.0

Course Content

Basic computer organization; binary data representation; introduction to Python; basic and container data types; variables, expressions, statements; repetitive programming; algorithmic thinking; functions; working with files; exception handling and debugging; scientific programming.

CNG242 PROGRAMMING LANGUAGE CONCEPTS 4 3.00 2.00 7.0

Course Content

Evolution of programming languages. Overview of language translation, virtual machines, and run-time environments. Names, bindings and scopes. Values, expressions and types. Type CNGatibility and type checking. Storage, variables, and commands. Procedural abstraction. Generic units. Overview of functional programming paradigm. Overview of object-oriented programming paradigm: Encapsulation, classes and objects, inheritance, polymorphism, dynamic binding.

CNG280 FORMAL LANGUAGES AND ABSTRACT MACHINES 3 3.00 0.00 6.0

Course Content

Introduction to strings, languages and grammars. Concept of abstract machines and language acceptance. Deterministic and non-deterministic finite state machines. Regular expressions. machines with pushdown tape. Turing Machines and recursive functions.

CNG300 SUMMER PRACTICE I 0 0.00 0.00 2.0

Course Content

A minimum of four weeks (20 working days) of training in Computer centers involving observation of the Computer system and the software developed and used in the center, and discussion of various aspects of the system. The training is based on the contents of the summer practice manual.

CNG301 ALGORITHMS AND DATA STRUCTURES 3 3.00 0.00 5.0

Course Content

Linked lists, stacks, queues, recursion, trees, sorting, searching, introduction to graphs, space and time consideration. (Offered to non-CNG students only).

CNG310 ALGORITHMS AND DATA STRUCTURES WITH PYTHON 3 3.00 0.00 5.0

Course Content

Introduction to Algorithms, Space and Time Considerations, Python built-in types, Linked lists, Stacks, Queues, Recursion. Trees, Sorting, Searching, Implementations in Python, Introduction to graphs.

CNG315 ALGORITHMS 3 3.00 0.00 6.0

Course Content

Selected Computer algorithms: sorting, searching, string processing and graph algorithms. Algorithm design and analysis techniques. Time and CNGutational CNGlexities of algorithms. Introduction to NP-CN?leteness, parallelization of algorithms, linear and dynamic programming.

CNG316 PRACTICE OF ALGORITHMS 3 2.00 2.00 6.0

Course Content

Advanced algorithmic problems in graph theory, combinatorics, and artificial intelligence. Creative approaches to algorithm design. Efficient implementation of algorithms.

CNG331 COMPUTER ORGANIZATION 3 3.00 0.00 6.0

Course Content

Microprogramming and micro programmed control. Input and output devices, I/O interfaces. Memory hierarchy and memory management. Fast arithmetic: fast multipliers and floating point operations. Reduced instruction set Computer. Computer communications.

CNG332 SYSTEMS PROGRAMMING AND SUPPORT ENVIROMENTS 3 3.00 0.00 6.0

Course Content

Basic System Software. Assemlers. Macro Processors. Compilers. Interpreters. Loaders and Linkers. Run-Time Support Environments. Networking Software. Network Programming. Issues of Systems Integration over Networks. Graphical User Interfaces. Windows Programming.

CNG334 INTRODUCTION TO OPERATING SYSTEMS 3 3.00 0.00 5.5

Course Content

Introduction to Operating Systems. Memory Management. Process Management. Concurrent Processes. Deadlocks. Processor Management. I/O and Device Management. Gile Management and File Systems. Introduction to Distributed Operating Systems. Synchronization in Distributed Systems. Distributed File Systems. Overview of contemporary OS technology.

CNG336 INTRODUCTION TO EMBEDDED SYSTEMS DEVELOPMENT 4 3.00 2.00 5.5

Course Content

Assembly language and controller architecture. Peripheral interfaces:A/D and D/A conversion, parallel and serial ports, interrupts and timers/counters I/O bus architectures. Sensors and actuators. Design and analysis techniques. Real time operating systems.

CNG340 RAPID APPLICATION DEVELOPMENT 3 2.00 2.00 5.0

Course Content

Overview of the base language of a Rapid Application Development (RAD) tool; object definitions, methods, properties, inheritance. Form design using visual components Application development using the libraries of an industry standard RAD tool.

CNG350 SOFTWARE ENGINEERING 3 3.00 0.00 5.5

Course Content

Software Project Management: metrics, estimation, planning. Software requirement analysis techniques. Software design techniques. Software implementation. Software quality assurance. Software testing.

CNG351 DATA MANAGEMENT AND FILE STRUCTURES 3 3.00 0.00 6.0

Course Content

Sequential files. Unordered sequential files. Ordered sequential files. External sorting. Heap sort. Replacement selection sort. Large memory sorting. B+tree index. Hashing. Classical hashing. Linear hashing. Introduction to DBMSs. Relational databases. Relational query languages. Relational algebra. Relational calculus. SQL. QBE.QUEL. Implementing the join operation. Entity-Relationship data model.

CNG352 DATABASE MANAGEMENT SYSTEMS 4 3.00 2.00 6.0

Course Content

Relational model of data, relational algebra, query optimization, entity-relationship data model, normalization, physical database design and tuning, transaction management, concurrency control in DBMSs, crash recovery, client-server architectures, security and authorization, XML, XQuery, Web data management, Web services.

CNG353 SOFTWARE DESIGN PATTERNS 3 3.00 0.00 6.0

Course Content

For course details, see https://catalog2.metu.edu.tr.
CNG371 SCIENTIFIC COMPUTING 3 3.00 0.00 5.0

Course Content

Accuracy in numerical analysis. The sources and propagations of errors. Solution of non-linear equations. Interpolating polynomials. Solution of linear algebraic equations. Least squares curve fitting. Numerical integration.

CNG382 ANALYSIS OF DYNAMIC SYSTEMS WITH FEEDBACK 3 3.00 0.00 5.5

Course Content

Mathematical modelling of systems. Difference and differential equations. State-space representation. Solutions of state equations. Linear-time-invariant systems and impulse response (discrete and continuous time). Stability. Routh-Hurwitz method. Feedback. Controllability. Observability. An introduction to nonlinear systems.

CNG384 SIGNALS AND SYSTEMS FOR COMPUTER ENGINEERS 3 3.00 0.00 5.0

Course Content

Linear time invariant systems; Frequency domain; Periodic and finite signals; Frequency response; Fourier series and transforms; Filtering; Finite impulse response filters; Sampling and reconstruction.

CNG400 SUMMER PRACTICE II 0 0.00 0.00 2.0

Course Content

A minimum of four weeks (20 working days) of training in Computer centers involving observation of the Computer system and the software developed and used in the center, and discussion of various aspects of the system. The training is based on the contents of the summer practice manual. Students are expected to be involved in the software development projects of the Computer center.

CNG409 SPECIAL TOPICS: INTRODUCTION TO MACHINE LEARNING 3 3.00 0.00 6.0

Course Content

This course provides a broad introduction to machine learning. The topics include supervised and unsupervised learning, Bayesion inference/classification, regression, clustering, kernels and Support Vector Machines (SVM) and accompanying concepts such as model and feature selection, combining classifiers such as boosting, active learning, dimension reduction techniques.

CNG435 DATA COMMUNICATIONS AND COMPUTER NETWORKING 3 3.00 0.00 6.0

Course Content

Introduction to data communications. OSI Reference Model. Physical layer. Electrical interface and data transmission. Data Link layer. Media Access sublayer.LAN/MAN Technologies.Network layer. Inter networking. Bridging and routing. Transport layer. Introduction to upper Layers issues.

CNG436 WIRELESS COMMUNICATIONS AND NETWORK 3 3.00 0.00 6.0

Course Content

For course details, see https://catalog2.metu.edu.tr.
CNG438 INFORMATION AND NETWORK SECURITY 3 3.00 0.00 6.0

Course Content

Introduction to security. Principles of cryptography. Software security. Operating system security techniques. Authentication. Public key infrastructure. Integrity. Access control. Security in many layers. Web and wireless network security.

CNG443 INT. TO OBJECT ORIENT.PROG. LANG. & SYSTEMS 3 3.00 0.00 6.0

Course Content

Object-Orientated Programming Basics. Advanced Object-Orientation Programming Concepts. Exception Handling. I/O Streams and Decorator Pattern. Concurrency. GUI Development. Security Issues. Objects over Network. Database Connectivity. Serialization and Deserialization. Remote Method Calls. Introduction to Enterprise Components.

CNG444 LANGUAGE PROCESSORS 3 3.00 0.00 6.0

Course Content

Formal description and classification of programming languages. Specifications syntax. The parsing problem. Top-down and bottom-up parsing. Attaching semantics to syntax. Translator writing systems. Translator writing case study.

CNG445 SOFTWARE DEVELOPMENT WITH SCRIPTING LANGUAGES 3 3.00 0.00 6.0

Course Content

Features and facilities provided by scripting languages; systems programming and interfacing with other programs; object oriented design and programming; concurrent programming with scripting languages; web application development, server side and browser side scripting.

CNG451 INFORMATION SYSTEM DEVELOPMENT 3 3.00 0.00 6.0

Course Content

Information systems life cycle. Effective human communications. Common tools for information gathering. Some classical tools. Some structured tools. Organizational structure and personnel for information systems department. Computer systems evaluation and selection. Modeling and simulation. An information systems development methodology. A Case tool.

CNG457 SPECIAL TOPICS IN COMPUTER ENGINEERING: SOFTWARE CONSTRUCTION 3 0.00 0.00 6.0

Course Content

Development of a complete software system based on available reference architectures; best practices in development; contemporary development environments and tools; architectural styles; concurrency; design patterns; libraries and frameworks;development of interface mechanisms including services and APIs;GUI design and implementation;design for reusability; component implementation; unit,component and system testing

CNG462 ARTIFICIAL INTELLIGENCE 3 3.00 0.00 6.0

Course Content

Basic LISP programming; picture analysis WALTZ algorithm; game playing, game trees, the mini-max rule, alpha-beta pruning technique; nature language understanding, transformation of grammar, ATN grammars, techniques used in semantics.

CNG463 INTRODUCTION TO NATURAL LANGUAGE PROCESSING 3 3.00 0.00 6.0

Course Content

Introduction to linguistic theory and techniques used in natural language processing (NLP). Template and keyword systems. Declerative and procedural approaches to NL parsing. Phrase Structure. Unification-based grammar. Parsing algorithms. Semantics. Morphology and Lexicon.

CNG465 INTRODUCTION TO BIOINFORMATICS 3 3.00 0.00 6.0

Course Content

This course covers computatioanl techniques for mining the large amount of information produced by recent advances in biology, such as genome sequencing and microarray technologies. Main topics of the course include: DNA and protein sequence alignment, phylogenetic trees, protein structure prediction, motif finding, microarray data analysis, gene/protein networks.

CNG466 FUNDAMENTAL IMAGE PROCESSING TECHNIQUES 3 3.00 0.00 6.0

Course Content

For course details, see https://catalog2.metu.edu.tr.
CNG476 SYSTEM SIMULATION 3 3.00 0.00 6.0

Course Content

Introduction to simulation as a general scientific problem solving technique. Methodology of simulation and use of computers. Classification of simulation models. Introduction to simulation programming languages.

CNG477 INTRODUCTION TO COMPUTER GRAPHICS 3 3.00 0.00 6.0

Course Content

Hardware and software components of graphics systems. Output and filled-data primitives. Forrier analysis, convolution, sampling, quantization, aliasing, 2D and 3D geometric transformations.

Two-dimentional viewing. Three-dimentional viewing: Viewing pipeline, viewing parameters, projections, viewing transformations, clipping. Visible surface detection. Introduction to illumination models and surface rendering.

CNG478 INTRODUCTION TO PARALLEL COMPUTING 3 3.00 0.00 6.0

Course Content

History and basic concepts of parallel computing. Classification of parallel processing systems. Organisation of data and parallel storage. Design and analysis of parallel and vector algorithms. Performance and complexity of parallel algorithms. Examples and applications of some parallel algorithms.

CNG483 INT. TO COMP. VISION 3 3.00 0.00 6.0

Course Content

Image formation, camera models and parameters, stereo vision, shape from stereo, shape from single image cues, apparent motion, optical flow, introduction to 3D shape representation and recognition.

CNG487 SPECIAL TOPICS IN COMPUTER ENGINEERING: INTRODUCTION TO QUANTUM COMPUTING 3 3.00 0.00 6.0

Course Content

Fundamental concepts in quantum computing; quantum mechanics for computer scientists; quantum circuits and quantum instruction set; quantum programming languages; quantum algorithms; error correction and fault tolerance.

CNG491 COMPUTER ENGINEERING DESIGN I 3 2.00 2.00 7.0

Course Content

Analysis, requirement specification and design phases of a computer system. Issues related to project design and presentation. Engineering ethics. Projects will be inspired from real life hardware/software problems and students are expected to come up with a professional quality design solution by applying computer and software engineering methods. This course is the first one of the two courses (491 and 492) that collectively constitutes the senior project design. This first course mainly concentrates on analysis and design, and presentation.

CNG492 COMPUTER ENGINEERING DESIGN II 3 1.00 4.00 7.0

Course Content

Analysis, requirement specification and design phases of a computer system. Issues related to project design and presentation. Engineering ethics. Projects will be inspired from real life hardware/software problems and students are expected to come up with a professional quality design solution by applying computer and software engineering methods. This course is the second one of the two courses (491 and 492) that collectively constitutes the senior project design. In this second course, students mainly concentrate on implementation and testing of the system based on the design they produced in the first course (CNG-491).

CNG493 CLUSTER COMPUTING 3 3.00 0.00 6.0

Course Content

For course details, see https://catalog2.metu.edu.tr.
CNG495 CLOUD COMPUTING 3 3.00 0.00 5.0

Course Content

Cloud basics. Service models. Cloud platforms. Cloud access. Resource virtualization. Virtualization types. Multi-tenant software. Cloud applications: design, construction and deployment. Use of workflows. MapReduce. Data in the cloud. CAP theorem. NoSQL.

CNG496 INTRODUCTION TO SEMANTIC WEB 3 3.00 0.00 6.0

Course Content

For course details, see https://catalog2.metu.edu.tr.
CNG498 SPECIAL TOPICS IN COMPUTER ENGINEERING: SOFTWARE DEVELOPMENT WITH SCRIPTING LANGUAGES 3 3.00 0.00 6.0

Course Content

For course details, see https://catalog2.metu.edu.tr.
CNG500 M.SC.THESIS 0 0.00 0.00 50.0

Course Content

For course details, see https://catalog2.metu.edu.tr.
CNG514 DATA MINING 3 3.00 0.00 8.0

Course Content

For course details, see https://catalog2.metu.edu.tr.
CNG532 DISTRIBUTED COMPUTING SYSTEMS 3 3.00 0.00 8.0

Course Content

Basics of distributed computing systems. Global state management indistributed computing systems. Communication in distributed systems. Inter Process Communication and remote procedure call. Distribute file systems. Fault tolerance. Synchronization and deadlocks. Load balancing and process migration. Distributed Operating Systems issues. Project(s).

CNG562 MACHINE LEARNING 3 3.00 0.00 8.0

Course Content

For course details, see https://catalog2.metu.edu.tr.
CNG583 COMPUTATIONAL VISION 3 3.00 0.00 8.0

Course Content

For course details, see https://catalog2.metu.edu.tr.
CNG591 GRADUATE SEMINAR 0 0.00 2.00 10.0

Course Content

For course details, see https://catalog2.metu.edu.tr.
CNG592 RESEARCH METHODS AND ETHICS 0 0.00 0.00 8.0

Course Content

For course details, see https://catalog2.metu.edu.tr.
CNG769 WEB BASED SOFTWARE ARCHITECTURES 3 3.00 0.00 6.0

Course Content

Introduction to Web Application Architectures; DOM Level 1; Cascading Style Sheets (CSS); Service Oriented Web Architecture; Web Services Specification; P2P Architectures; Grid and Agent Based Architectures; MASHUP Architectures; B2B Document Standards.

CNG798 SPECIAL TOPICS IN COMPUTER ENGINEERING: QUANTUM COMPUTING 3 3.00 0.00 8.0

Course Content

Properties of quantum computational systems and their mathematical representations. Basic quantum theory. Quantum mechanical principles, superposition, entanglement, interference. Quantum algorithms. Quantum teleportation. Superdense coding. Quantum computational complexity classes. Quantum error correction. Quantum finite automata. Quantum programming languages.

CNG1530 MEDICAL IMAGE ANALYSIS 3 3.00 0.00 8.0

Course Content

The aim of the course is to acquaint the graduate students with the fundamental theory and techniques of medical image analysis, like image enhancement, automatic and semi-automatic segmentation, quantification (shape and texture analysis, feature extraction), computer-aided diagnosis, registration and fusion.

CNG1531 DISTRIBUTED INTERACTIVE SIMULATION 4 3.00 2.00 10.0

Course Content

Fundamentals of distributed discrete event simulation. Distributed interactive simulation and networked virtual environments. High Level Architecture. Federation development and execution process. Conceptual models of mission space. Verification and validation. Synthetic environments.

CNG2546 SOFTWARE ARCHITECTURE 3 3.00 0.00 8.0

Course Content

Architectural level of software design. Major architectural styles. Architecture description languages and related tools. Architectural specification and analysis case studies. Relations with Frameworks, Design Patterns and Component Orientation.