Home Graduate Programs Master Program Course Descriptions
PDF Print E-mail

CMP5101 Data Mining

Data mining is the process of secondary analysis to search for unsuspected relationships that are of interest or value for decision making. It aims at discovering association rules, episode rules, sequential rules and other knowledge embedded in data, and is concerned with efficient data structures and algorithms that have good scaling properties. The course presents essential aspects of data mining, includes a data mining project and prepares students to program applications that use data mining techniques.

CMP5103 Artificial Intelligence

This course is a broad introduction to artificial intelligence. Topics include problem solving by searching, uninformed and heuristic search strategies, adversarial search, knowledge representation, propositional logic, predicate logic, inference, learning, supervised learning, unsupervised learning, probabilistic models, and natural language processing.

CMP5121 Network Security and Cryptography

This course gives a comprehensive introduction to the field of network security and cryptography. The course begins with the security fundamentals and basic principles. It introduces private key cryptographic algorithms, and gives an overview of stream and block ciphers used for data encryption and decryption. Standard algorithms used in practice for encryption with stream and block ciphers are covered. Hash functions, message authentication codes are discussed. An introduction is given on public key cryptography. The discrete logarithm and integer factorization problems are introduced and, based on these problems, public key algorithms such as the Diffie-Hellman key exchange, RSA and ElGamal are developed. Also discussed are the applications of these algorithms in digital signatures and network security protocols for authentication and key distribution.

CMP5123 Computer Networks and Mobile Communications

This course provides a comprehensive overview of computer networks and mobile communications technologies. The topics include computer networks, Internet, TCP/IP, transport layer protocols, routing layer protocols, medium access control protocols, wireless channel models, packet scheduling, multimedia networks, cellular networks (GSM, GPRS, CDMA, 3G, 4G, etc.), and wireless local area networks.

CMP5125 Multimedia Communications and Networking

This course focuses on advanced topics in the fields of multimedia communication systems and networks protocols. The main toics will cover overview of network protocols, client-server,P2P models, important Internet applications, multimedia compression standards, MPEG-2 transport layer, video streaming, error resilience in video communications.

CMP5126 Image and Video Processing

A top-down analysis of video processing applications, algorithms, tools, and fundamentals. Applications include digital TV, computer games, cinema special effects, 3D TV, medical imaging, and forensics. Algorithms include motion estimation, filtering and restoration, deinterlacing and enhancement, interpolation and super resolution, stereo and 3D video processing, coding, and compression standards.

CMP5127 Wireless Sensor and Ad Hoc Networks

This course provides a comprehensive overview of wireless sensor networks and their real-world applications. The topics include wireless sensor network protocols, network architectures and management, error control techniques, optimal packet size design, cross-layer communication protocol solutions, localization algorithms, ZigBee, IEEE 802.15.4, 6LowPAN, underwater and underground sensor networks, wireless sensor and actor networks, and wireless multimedia sensor networks.

CMP5128 3-D Computer Graphics

Introduction to computer graphics, where computer generated pictures are used, graphics display devices, overview of graphics systems; getting started: drawing figures, device independent programming and OpenGL, anatomy of an OpenGL application, use of OpenGL in C++, basic 2-D shapes, representation of objects on the computer screen; computer graphics elements: drawing shapes, graphics output primitives, attributes of graphics primitives, geometric transformations, 2D viewing, clipping, three-dimensional viewing, OpenGL 3D viewing and projections, introduction to illumination models and shading in OpenGL, GUI design for graphics applications, introduction to computer animation and game programming.

CMP5130 Machine Learning and Pattern Recognition

A broad technical introduction to the techniques that enable computers to behave intelligently: problem solving and game playing, knowledge representation and reasoning, planning and decision making, learning, perception and interpretation. Pattern Recognition techniques, and evaluation of such techniques will be covered in depth. The application of these techniques to real-world systems, with some programming in Java.

CMP5131 Bioinformatics and Computational Genomics

This course aims to present some of the most basic and useful algorithms for sequence analysis, together with the minimal biological background necessary for a computer engineering student to appreciate their application to current genomics research. Topics to be covered include sequence alignments, multiple alignment algorithms, the probabilistic interpretation of alignments, hidden Markov models, heuristics such as Gibbs sampling, genome databases, comparative genomics, gene discovery, gene expression analyses, transcription factor binding site discovery, pathway discovery, functional genomics, and medical diagnostics using Single Nucleotide Polymorphisms.

CMP5133 Artficial Neural Networks

This course gives an introduction to fundamental neural network architectures and algorithms. Topics include: linear and logistic regression, least-mean-square algorithm, multilayer perceptrons, backpropagation algorithm, radial basis function networks, support vector machines, self-organizing maps, and recurrent networks.

CMP5135 Formal Languages and Automata Theory

After giving the fundamentals this course gives an introduction to theories of computability and complexity. Topics include: regular languages, finite automata, regular expressions, context free grammars, pushdown automata, Turing machines, computability, halting problem, complexity theory, NP-completeness, and polynomial time reducibility.

CMP5136 Expert and Knowledge Based Systems

This course introduces the basic concepts in expert and knowledge-based systems. The topics include: knowledge representation and reasoning, knowledge acquisition and machine learning, models of reasoning and decision making under uncertainty, software for developing expert systems, and expert system shells.

CMP5138 Analysis of Algorithms

Rigorous analysis of the time and space requirements of important algorithms, including worst case, average case, and amortized analysis will be done. Techniques include order-notation, recurrence relations, etc. Analysis of the key data structures: trees, hash tables, balanced tree schemes, priority queues, Fibonacci and binomial heaps will be presented. Algorithmic paradigms such as divide and conquer, dynamic programming will be introduced. Selected advanced algorithms will be explored.

CMP5150 Graph Theory and Applications

Fundamental theory of graphs and its example real world applications will be studied. Initially basic definitions, graph structure and representation will be introduced. Later both basic trees and various advanced extensions will be discussed. Other classical graph theory techniques such as: Eulerian and Hamiltonian graphs, shortest path problems, connectivity, planarity, matchings etc. will be studied. Real world examples from various sciences will also be given.

CMP5151 Software Design Patterns

This course introduces the use of design patterns in the context of software engineering. The main topics are classical design patterns, including creational, structural, behavioral patterns and also some popular patterns from distributed programming, user interface and enterprise development. Anti-patterns will also be described. This class introduces advanced object oriented (OO) programming techniques hence a basic knowledge of OO paradigm is prerequisite.

CMP5152 Intelligent Interactive Multimedia

This course aims at teaching fundamentals of real-time multimedia applications and various methods for different types of user interaction for multimedia systems. Related technologies such as touchpad devices, interactive Screens, digital Signage, natural user interfaces, augmented reality, virtual reality, haptics technologies, projector-camera systems will be covered with both fundamental mathematical theories and practical concepts. System structure of each technology will be overviewed, state-of-the-art methods will be introduced. Software implementation and hardware understanding are also necessary to build these systems. Objected oriented programming language(c++/Java) will be used for homeworks and projects. Basic physical and hardware concepts will be presented shortly during the class.

CMP5204 Embedded Systems

This course is a hands-on course that requires writing software as well as board-level work. It sits at the intersection of fields such as microprocessors, digital design, operating systems, software design, and industrial automation. The students are exposed to topics such as meeting real-time constraints in embedded systems, generating delays and interrupts, using the serial interface, etc. They get theoretical as well as hands-on experience on embedded system design by using embedded software development environments and hardware emulators, as well as by working on actual hardware where they physically connect multiple building blocks.

CMP5301 Context-Aware Computing

Increased usage and availability of mobile devices, wireless networks and embedded systems resulted in the new exiting field of "context aware computing" where the applications take into account the "context" information. The student will be introduced main concepts and developments in this field. Main topics include: ubiquitous computing in general, wireless sensor networks, infrastructure, design concepts in context aware applications, related middleware and privacy. The concepts will be made more tangible through real world applications.

CMP5550 Computer Vision

This class introduces the fundamental techniques in computer vision. Initially basic concepts of image formation, representation and camera projection geometries will be given. Later some classical image processing techniques will be introduced such as edge detection, segmentation, thresholding etc. Image matching, optical flow, local image features will be described in the context of multiple image processing. Basic image recognition techniques are also to be introduced. 3D inference will be another focus where stereo imaging, 3D reconstruction and various shape from X techniques are to be discussed.

CMP5551 3D Computer Vision

This course introduces various three dimensional inference techniques that are used in computer vision. It will introduce geometric transformations and their estimations, image matching techniques, stereo and multiple camera setups, popular shape from X techniques and 3D displays. It will also review basic image processing and statistical estimation techniques.

CMP5931 Special Topics I

This is a research-oriented course and designed to teach the state-of-art knowledge in various topics in computer engineering domain. There will be extensive reviews of seminal research papers in various selected topics.

CMP5932 Special Topics II

This is a research-oriented course and designed to teach the state-of-art knowledge in various topics in computer engineering domain. There will be extensive reviews of seminal research papers in various selected topics.

CMP5888 Master Thesis

CMP5999 Project

CMP5887 Seminar