Curriculum

Course Code Course Name Theoretic - Practical - Credit
CMP601Graduate Seminar2 2 3
CMP603Programming Languages Theory3 0 3
CMP604Computational Theory3 0 3
CMP614Text Mining3 0 3
CMP625Computer Networks and Open Systems3 0 3
CMP634Advanced Computer Architecture3 0 3
CMP640Software Development for Real-Time Systems3 0 3
CMP641Software Development for Parallel Computer3 0 3
CMP642Operating System Theory3 0 3
CMP652Next Generation Database Management Systems3 0 3
CMP653Database Management Systems3 0 3
CMP655Wireless Networks3 0 3
CMP656Advanced Computer and Network3 0 3
CMP661Cryptography3 0 3
CMP662Mobile Computing3 0 3
CMP670Statistical Natural Language Processing3 0 3
CMP671Probabilistic Learning3 0 3
CMP672Research Methods in Software Engineering3 0 3
CMP673Business Process Management3 0 3
CMP674Parallel Computing with GPUs3 0 3
CMP681Information Retrieval Systems3 0 3
CMP682Artificial Intelligence3 0 3
CMP684Neural Networks3 0 3
CMP691Academic Skills and Practices0 2 1
CMP694Graph Theory3 0 3
CMP701Graduate Seminar2 2 3
CMP710Parallel and Distributed Simulation Systems3 0 3
CMP711Natural Language Processing3 0 3
CMP712Machine Learning3 0 3
CMP713Data Mining3 0 3
CMP715Advanced Computer Graphics3 0 3
CMP716Evolutionary Computation3 0 3
CMP717Image Processing3 0 3
CMP719Computational Vision3 0 3
CMP720Embedded System Design3 0 3
CMP722Advanced Computer Vision3 0 3
CMP723Geographic Data Processing3 0 3
CMP724Game Technologies3 0 3
CMP725Semantic Web Programming3 0 3
CMP726Information Filtering3 0 3
CMP727Intelligent Systems and Soft Computing3 0 3
CMP729Understanding Images and Text3 0 3
CMP730Pattern Classification Methods3 0 3
CMP735Speech Recognition3 0 3
CMP741Advanced Analysis of Algorithms I3 0 3
CMP742Advanced Analysis of Algorithms II3 0 3
CMP744Compiler Construction3 0 3
CMP751Advanced UML Modelling3 0 3
CMP755Robotics3 0 3
CMP756Swarm Systems3 0 3
CMP781Software Quality Management3 0 3
CMP782Software Metrics3 0 3
CMP784Deep Learning3 0 3
CMP791Research Methods in Computer Science0 2 1
CMP793Advanced Academic Skills and Practices0 2 1

CMP601 Graduate Seminar (2 2 3)

Graduate students have to present prestudy of their thesis and prepare a paper about their literature research.

CMP603 Programming Languages Theory (3 0 3)

Conceptual study of programming language syntax, semantics and implementation, Lamda calculus and functional languages, fundamentals and language features of denotational semantics, mathematics of recursion, first order logic and declerative languages, axiomatic semantics and consistency of semantic definitions.

CMP604 Computational Theory (3 0 3)

The theory of computability and complexity. The computability part includes Church-Turing thesis, decidability, reducibility, recursion theorem and computational learning theory. The complexity theory part includes complexity measures, complexity classes, time complexity, space complexity and intractability.

CMP614 Text Mining (3 0 3)

Unstructured text processing methods, Topic models and statistical models, Pattern based information extraction methods, Graph theory based text mining, Semantic Analysis, Apllication of Natural Language Processing.

CMP625 Computer Networks and Open Systems (3 0 3)

Introduction to Computer Networks, Basic networking terminology, TCP layers: Transport Layer: Connectionless communication, Connection-oriented communication, Reliable communication algorithms, TCP and UDP protocols, Congestion control, Flow Control, Socket mechanism, Socket programming, RPC mechanism, Network Layer: Packet Switching, Circuit Switching, IP addresses, IP protocol, Routing tables, Routing algorithms: Link-state and Distance-vector algorithms, RIP, BGP, OSPF protocols, Hierarchical routing, NAT, ICMP protocol, Data-link Layer: Link-level (MAC) addressing, Multiple access protocols, Aloha, Ethernet, Token-ring, ARP and RARP protocols, Point-to-point protocols, PPP, Quality of service, ATM, MPLS, Local area network design, Switch and Router distinction, Proxies, Introduction to wireless networks, 802.11 protocol, Bluetooth, Wi-MAX, GSM networks, Mobile IP, MANET networks, Introduction to peer-to-peer networks, Sample peer-to-peer networks: Napster, Gnutella, Torrent, Chord.

CMP634 Advanced Computer Architecture (3 0 3)

Evolution of computer architecture and the factors influencing the design of hardware and software elements of computer systems. Topics include memory architectures, cache and virtual memory organizations, virtual memory implementation, CPU and Pipelines, RISC architectures, vector processors, multiprocessing systems.

CMP640 Software Development for Real-Time Systems (3 0 3)

Modular structure that provides data, type and packeting subprograms, performing processes running in parallel on real-time programming possibilites, exception handling, dependent features of data string with the provider of complete control over the string forms of involvement in an algorithmic programming language with facilities including the development of modular software and parallel process issues and structures roles. Although object-oriented algorithmic languages are not object-oriented languages,especially like modular structures, examination of aspects of object oriented programming prone.

CMP641 Software Development for Parallel Computer (3 0 3)

Introduction to parallel computer architecture. Data communication on parallel computer. Program development process. Common problems that require parallel processing and solution types. Parallel programing error detection methods. Event tracking, imaging analysis methods and tools on parallel programs.

CMP642 Operating System Theory (3 0 3)

Process Synchronization: cocept of process, concurrent processes, sequencers and eventcounts, (OR, AND, NOT) synchronizations, interprocess communication; Language Mechanisms for Concurrency; Deadlocks: definition, concepts from graph theory, general model and special cases, recovery and prevention from deadlocks; Virtual Memory: stack algorithms, working sets, models of virtual memory, clock algorithms; Distributed Systems, Computer Security.

CMP652 Next Generation Database Management Systems (3 0 3)

New data types. Expanded database functions: data management, object management and knowledge management. Query languages. rule definiton and rule management. Time dimensions in databases. Version concept. Multi media databases. Advanced subjects about database management system implementation techniques.

CMP653 Database Management Systems (3 0 3)

Object-relational and object oriented data models. Query processing, query optimization. Transaction processing. Associated control. Recovery system. Database system architecture. Distirbuted databases. Parallel databases. Application development and management. Advanced-level data types. Advanced topics on transaction processing. Data mining. Data warehouses.

CMP655 Wireless Networks (3 0 3)

The module surveys the emerging field of wireless networks (including mobile ad hoc networks, wireless sensor networks, vehicular networks). The course will cover a broad range of topics, including radio communication, networking protocols, energy management, mobility, and applications. Introduction Wireless Networks , Wireless Sensor Networks, Mobile Ad hoc Networks, Vehicular Networks , Networking and Routing Protocols, Cooperation in Wireless Networks , Mobility, Understanding Low-Power Wireless Networks, Security in Wireless Networks.

CMP656 Advanced Computer and Network Security (3 0 3)

This course presents the principal protocols and applications that are used in the Internet today, their vulnerabilities and how they are exploited. The prevention and detection techniques in the literature are examined. Introduction to Security, Identification and Authentication, Vulnerabilities, Vulnerability Scanning, Attacks, Bot-nets, Firewalls and Traffic Filtering, Monitoring, Audit, and Intrusion Detection, Cryptography , Security in Wireless Networks, Future Issues.

CMP661 Cryptography (3 0 3)

Classical ciphers: Ceaser cipher, Vigenere cipher, Vernam cipher, Jefferson wheel cipher, and the Enigma machine. One-time pad. Perfect secrecy. Block ciphers: DES, AES. Encryption modes. Hash functions: MD5, SHA1. HMAC standard. Number theory. Chinese remainder theorem. Discrete Logarithms. Quadratic residues. Factoring large numbers. Diffie-Hellman Key Exchange. Pohlig-Hellman cipher, Mental Poker. Public-key cryptography: RSA, ElGamal.Digital Signatures. X509. Oblivious transfer. Blind signatures. Group signatures.Certified email. PGP.Fair exchange. Digital cash. Electronic voting.Threshold cryptography. Elliptic curves.Zero-knowledge protocols.Kerberos.

CMP662 Mobile Computing (3 0 3)

Understanding and building systems support mechanisms for mobile computing systems including mobile ad hoc and sensor networks for achieving the goal of anytime, anywhere computing in wireless mobile environments. The fundamental concepts of mobile computing are introduced. Operating systems, programming languages, and protocols for sensor networks, mobility and service management, routing in mobile ad hoc and sensor networks, mobile communication, mobile hardware and software.

CMP670 Statistical Natural Language Processing (3 0 3)

Probabilistic Language Modelling, Probabilistic Context Free Grammars (PCFGs), Parsing with PCFGs, Collocations and Clustering, Part-of-Speech Tagging and Hidden Markov Models, Bayesian Language Modelling, NonParametric Bayesian Language Modelling, Word Class Induction By Distributional.

CMP671 Probabilistic Learning (3 0 3)

Probability Concepts, Generative Models for Discrete Data, Bayesian Statistics, Frequentist Statistics, Mixture Models, Linear Regression, Hidden Markov Models, Sampling, Graphic Models.

CMP672 Research Methods in Software Engineering (3 0 3)

Course introduction and overview, Introduction to Research Methods in SE, Systematic Literature Review (SLR) and Systematic Mapping (SM) studies and SM guideline papers, Presentation of chosen SM papers, Research design and Planning, Experiments, Case Studies, Presentation of chosen Empirical SE (EMSE) papers, Presentation of students SM work in the class.

CMP673 Business Process Management (3 0 3)

Introduction to Business Process Management, identificaiton of business processes, business process modeling and process discovery, qualitative and quantitative process analysis methods, business process automation and process intelligence.

CMP674 Parallel Computing with GPUs (3 0 3)

Trends in Parallel Computing and GPU Computing, Fundamentals of Parallel Algorithms, GPU Programming Model, GPU Hardware Specifications, Parallel Computing Patterns, Optimization Techniques, Hands on experience on Sample Applications.

CMP681 Information Retrieval Systems (3 0 3)

The theory, design, and implementation of text-based information systems. Course topics include knowledge access systems, statistical characteristics of text, representation of information needs and documents, several important retrieval models (boolean, vector space, probabilistic, inference net, language modeling), search engines, development of network agents, Turkish search engines, semantic search, ontology, XML, RDF, OWL.

CMP682 Artificial Intelligence (0 2 0)

Basic knowledge representation, problem solving and learning methods of artificial intelligence. Problem-solving techniques such as state-space approach, problem-reduction approach, problem model, problem representation, exhaustive search algorithms, heuristic search algorithms (A*). Game-playing. Knowledge representation and reasoning: syntax, semantics and proof theory of propositional logic, first-order predicate logic, production systems, semantic nets and frames. Knowledgebase, expert systems, inference engine. Machine learning: inductive inference, analogical inference, learning by instruction, learning from examples, conceptual clustering, explanation-based learning.

CMP684 Neural Networks (3 0 3)

Basic components of Neural Networks, topologies, learning algorithms, classifiers. Single-layer perceptron classifiers, Advanced multi-layer information flow networks, Single-layer feedback networks, Associative memories, Supervised and unsupervised learning techniques. Neural network applications.

CMP691 Academic Skills and Practices (0 2 1)

Definitions: research, contribution, experimentation, literature, hypothesis, axioms, theorems, proofs; Experimentation: methodology, verification, analyzing results, presentation results (charts, graphs, curves, etc.); Presentation: abstract, related work, proposing an idea, verification by experimentation/proofs, evaluating results, conclusions and thesis writing; Seminar Presentation; Conferences, symposiums, workshops; Academic degrees : bachelor of science, master of science, doctorate of philosophy; Ethical issues: plagiarism, slicing, duplication, sufficiency of contribution.

CMP694 Graph Theory (3 0 3)

Graph description, "walk","path","circuit" etc. concepts. Various types of graph: directed graph, bipartite graph, complete bipartite graph, k. degree complete graph, connected graph, cycle graph, noncycle graph, isomorphic graph. Graph representations, Isomorphism, Sub-graphs, Graph complement, Euler cycle, Hamiltonian cycle. Graph applications: Minimum spanning tree, Maximum flow problem, Shortcut path problem, Chromatic graph. Graph theorems.

CMP701 Graduate Seminar (2 2 3)

Graduate students have to present prestudy of their thesis and prepare a paper about their literature research.

CMP710 Parallel and Distributed Simulation Systems (3 0 3)

Introduction to simulation systems. Basic concepts in discrete-event simulation. Time matching techniques in parallel and distributed discrete-event simulation systems. Computer network, data sharing, time management and event sequencing in distributed virtual environments.

CMP711 Natural Language Processing (3 0 3)

Course topics include brief history and overview of natural language processing, morphological processing, part of speech tagging, context-free grammars, top-down/bottom-up parsing, chart-parsing such as Earley parsing, unification based grammars, word-sense disambiguation, semantic analysis, and some natural language processing applications. Some of the covered natural language applications are information extraction, machine translation, dialogue systems, and text summarization.

CMP712 Machine Learning (3 0 3)

An overview of many concepts, techniques, and algorithms in machine learning, beginning with topics such as concept learning, decision tree learning, artificial neural networks, Bayesian learning, instance-based learning, genetic algorithms, reinforcement learning. The course gives the basic ideas and intuition behind modern machine learning methods as well as a bit more formal understanding of how, why, and when they work.

CMP713 Data Mining (3 0 3)

Introduction to data mining techniques, including data mining pipeline, data preprocessing and cleaning, data reduction, data mining primitives, cluster analysis, clustering, association rule mining, series analysis and sequence mining, graph mining, web mining, data visualization, and data warehousing. Detailed applications from a wide variety of domains.

CMP715 Advanced Computer Graphics (3 0 3)

Sampling, shading, and display aspects of computer graphics. Operating principles of graphic viewers and hardware, high-performance architectures for graphics, interactive graphics hardware and software. Point-drawing techniques, line-drawing techniques, two-dimensional transformations, window techniques, texture generation and rendering, volume rendering, strategies for anti-aliasing and photo-realism. Introduction to three-dimensional graphic and transformation techniques, human vision and color science as they relate to computer displays.

CMP716 Evolutionary Computation (3 0 3)

The main areas covered are the systems inspired by natural evolutionary systems and the principal algorithms and applications derived from those natural systems. Biological evolution, Search spaces, fitness landscapes, fitness functions, Encodings and representations, Genetic Algorithms: crossover, mutation, selection, Genetic Programming, Grammatical Evolution, Schema theorem and building block hypothesis, Convergence, Co-evolution, niching, Multi-objective EAs, Applications.

CMP717 Image Processing (3 0 3)

Aim is to cover topics such as image acquisition and display, properties of the human visual system, color representations, image modeling and representation, sampling and quantization, point operations, image enhancement and restoration, image denoising, image deblurring, image impainting, image segmentation. Linear image filtering and correlation, transforms and subband decompositions, nonlinear filtering, contrast and color enhancement, dithering.

CMP719 Computational Vision (3 0 3)

Image formation. Image processing. Lightness and Color. Feature detection and matching. Segmentation. Feature-based alignment. Structure from motion. Motion estimation. Computational photography. Stereo correspondence. Shape and appearance modeling. Visual recognition.

CMP720 Embedded System Design (3 0 3)

Topics include: microcontroller architecture, embedded software design, interrupt synchronization, timing generation and measurement, serial and parallel I/O interfacing, analog interfacing, digital and analog peripheral circuit design. Dedicated to system design based on the basic components such as: microprocessors, memory units, I/O interfaces, utility operators, I/O drivers as sensors, electromechanical guidance tools, microcontrollers.

CMP722 Advanced Computer Vision (3 0 3)

Advanced research topics in computer vision including low-level vision, object recognition, face detection and recognition, image and video retrieval, human detection, human motion analysis, camera geometry and calibration, geometrical and stereo vision, 3D scene reconstruction, visual tracking, human motion capturing and recognition, with the applications to advanced video processing and vision-based modeling and interaction.

CMP723 Geographic Data Processing (3 0 3)

Defining GIS and Introduction to Spatial Data File Formats, Projections and Coordinate Systems, Tabular Data Design and Functions, Data sources and data collection, The Raster Data File Format and Raster Analysis, Metadata, Georeferencing, Geocoding, Interpolation and Surface Modeling.

CMP724 Game Technologies (3 0 3)

Introduction to technologies used to develop the game and graphics applications, Examination of software development tools that develop 3D computer games and graphics applications, Computer game's drawing and simulation problems analysis.

CMP725 Semantic Web Programming (3 0 3)

Semantic web technologies, which will allow data to be shared and reused across application, enterprise, and community boundaries. Topics include modeling real world, discovering information, sharing semantics, rules, semantic web patterns. Examples demonstrate how to use the semantic web to solve practical, real-world problems.

CMP726 Information Filtering (3 0 3)

Conceptual framework for the design of information filtering systems. User modeling. Information filtering taxonomies and performance evaluation. Mathematical foundations. Linguistic Essentials. Corpus-based work. Text categorization. Topic detection and tracking. Probabilistic and information retrieval approaches to topic detection and tracking.

CMP727 Intelligent Systems and Soft Computing (3 0 3)

Introduction to Intelligent Systems, Rule-Based Expert Systems,Introduction to Expert Systems Programming, Uncertainty Management in Rule-Based Expert Systems, Fuzzy Expert Systems, Frame-Based Expert Systems, Artificial Neural Networks, Hybrid Intelligent Systems, Discussion on data set properties effecting methods, Introduction to Sampling strategies.

CMP729 Understanding Images and Text (3 0 3)

An Overview of Computer Vision, An Overview of Natural Language Processing, Basics of Machine Learning, Word Embeddings and its multi-modal extensions, Neural Language Models, Deep-learning based Visual Recognition, Visual attributes, Learning Knowledge from Data, Generating Image Descriptions, Video and Text, Visual Question Answering, Text to Image Generation, Referring Expressions

CMP730 Pattern Classification Methods (3 0 3)

General definitions and mathematical foundations of Bayes Decision Theory, Maximum Likelihood, Nearest Neighbor Classification, Linear Discrimination Functions, Multilayer Neural Networks, Unsupervised Learning and Clustering.

CMP735 Speech Recognition (3 0 3)

General definitions, speech recognition system architecture, language structure, statistics and probabilty, pattern recognition, digital signal processing, feature vectors, speech coding, Hidden Markov Models (HMM), acoustic models, language models, search methods in speech recognition, wide reportery speech recognition systems.

CMP741 Advanced Analysis of Algorithm I (3 0 3)

Basic mathematical and statistical concepts. Recursive relationships: homogeneous and non- homogeneous recursive relationships. Recursive relation solutions: substitution method, iteration method, master method, proof of master method. General algorithm design techniques (divide and conquer, trackback, dynamic programming). Some sort, graph, coputational geometri algorithm analysis: "bottom-up heap sort", "Dijkstra Algorithm", "Spanning Tree (Kruskal and Prim algorithms)", "tarjan algorithms)", "closest pair of points, "convex frame". Euclidean algorithm analysis, Unification-Discovery process analysis. What is NP?, Original NP problems.

CMP742 Advanced Analysis of Algorithm II (3 0 3)

Installment analysis. Advanced data structures: B trees, spanning trees, binomial heaps, fibonacci heaps . String matches: Knuth-Morris-Pratt, rabin-Karp and Boyer-Moore algorithms. Strassen's matrix multiply algorithm, Detailed analysis of binary search, optimal heap sort, longest increasing sub-series, probabilistic and approach algorithms. Maximum flow problem.

CMP744 Compiler Construction (3 0 3)

Description of compiler. Compilation stages. Compiler Creation Tools. Word Analyzer; specification of regular expressions and syntactic units, recognition of syntactic units, finite state automata, word parser generators. Syntactic Analysis; context-free grammars, top-down and bottom-up parsing, priority operator decomposition, LR parsers, parser generators. Conversion Syntax-Driven; S-attribute and L- attribute descriptions, top-down and bottom-up converters. Type controller. Run-Time Environments, Code generation. Code Improvement.

CMP751 Advanced UML Modeling (3 0 3)

Introduction to Information Systems modeling: Business process modeling, BPMN and BPEL, Conceptual modeling, Unifed Modeling Langauge (UML), Static diagrams, Dynamic diagrams, Recommended usage of UML diagrams in software development, Model-Driven Architecture (MDA), Meta Object Facility (MOF),Domain Specific Languages (DSLs), Model-Driven Software Development (MDSD), The concepts of model, meta-model and transformation, Object Constraint Language (OCL)

CMP755 Robotics (3 0 3)

The goal of robotics is to build machines with human-like dexterity and/or intelligence and which function with minimal human intervention. This course presents the principal robotics architecture and applications: introduction to robotics, theory of robotics control, kinematic and inverse kinematics, actuators, robot controls and environments, mobile robots, localizations, sweepline algorithms, voronoi diagrams, convex hulls and linear programming, duality, epsilon-nets, dynamics and model-based control.

CMP756 Swarm Systems (3 0 3)

CMP781 Software Quality Management (3 0 3)

Quality Management Basics, Total Quality and quality management, The scope of software quality management, Software quality assurance, verification, and validation, Quality management within software development life-cycle, Software Quality Assurance, Gözden geçirme ve türleri, Product and process audits, Software quality assurance process and its outputs, Verification and Validation, The concepts of verification and validation, Verification methods, Validation methods, V Model and test levels (unit, integration, functional, acceptance),Quality Management System, The principles of Quality Management System, Process management, ISO 9001:2008 standard and its application to software eng., Quality Management System infrastructure and features.

CMP782 Software Metrics (3 0 3)

Measurement Basics, The need for measurement, Measurement theory (scales, validation, and meaningfulness), Goal-question-metric method, Data collection and analysis principles, Software Measures, A classification of software measures, Product measures: Size, structure, quality, Process measures: Maturity, management, development, Resource measures: Personnel, software, hardware, Software Measurement Process, Measurement process models, ISO/IEC 15939: Software Measurement Process, Practical Software Measurement, Capability Maturity Model Integrated (CMMI) and measurement and analysis, Measurement Programs and Infrastructure, Measurement infrastructure requirements, Best practices for the success of measurement programs, Measurement for high maturity (statistical process control, 6-sigma)

CMP784 Deep Learning (3 0 3)

Multilayer Perceptron, Training Neural Networks, Convolutional Neural Networks, Recurrent Neural Networks, Regularization, Optimization, Autoencoders, Deep Belief Networks and Deep Boltzmann Machine, Variational Auto-Encoders (VAEs) and Generative Adversarial Networks (GANs)

CMP791 Research Methods in Computer Science (0 2 1)

Providing incoming graduate with basic research and working skills, facilitating a smooth transition to graduate studies and research, the course shows multiple elements including time management, writing and presentation skills, and general considerations for experiment design and planning. The students will find the answers of PhD related questions such as the following questions. What is expected from a PhD research? How to select a PhD topic? What kind of preliminary studies should be done for a PhD research? How to prepare a PhD proposal? How to perform a scientific test and how to perform the success of its results? In a specific research area of Computer Science, reading articles, discussing their contents, and preparing their summaries. Making a literature survey in a specific research area. Writing articles.

CMP793 Advanced Academic Skills and Practices (0 2 1)

The objective of this course is to introduce students to major concepts of a graduate study and the answers to the questions like "How a graduate research should be performed" and "What are the important issues that the students should be aware during a graduate study". The students will also learn the etchical issues that they should obey during their graduate studies, gradute thesis writing and writings of scientific articles.

Hacettepe University Department of Computer Engineering
06800 Beytepe Ankara