Graduate-Level Subjects

**Note: Not all courses listed in the curriculum will be offered in a semester. Courses offered are subject to availability of instructors and resources.

This course provides an introduction to the current state of the art in data mining, covering the ideas and technologies from many different fields that are used in data-mining. It also introduces the software tools commonly available for solving data-mining problems.

Course Synopsis

Data Preparation: Transformations, Missing Data, Time-Series Data, Text. Frequent Patterns: frequent itemsets, generator, closed patterns, and maximal patterns. Comparative data mining: emerging patterns, odds ratio patterns, relative risk patterns. Graph mining: subgraph mining from a big graph, frequent subgraph mining from a graph database. Data Reduction and Feature Selection. Prediction Methods: Statistical, Neural, Trees, Rules. Special topics: Financial data mining, Text Mining, Biomedical data mining. Case Studies.

Total number of lecture hours: 39 hours

This course covers basic bioinformatics concepts, databases, tools and applications. Introduction: cell biology's central dogma, biological technologies for collecting and storing genomic sequence data; databases that store these data and strategies to extract information from them; Pairwise sequence alignment for assessment of similarity to infer homology; Fundamental of Scoring matrices to understand the assigned scores when performing alignment; The popular heuristic search tool - Basic Local Alignment Search Tool (BLAST) and advanced database searching; Multiple sequence alignment and phylogenetic trees to complete the coverage from genomic sequences.

In the coverage of functional genomics with the introduction to gene expression. Processes for microarray data analysis; Feature selection and classification for microarray data analysis. Protein families & proteomics; Protein structure and structural genomics; and Molecular evolution and phylogeny.

Total number of lecture hours: 39 hours

This course covers advanced concepts of computational techniques that are used to resolve problems in computational and systems biology. Students will be introduced in to challenges in computational biology, which can be handled by computational approaches. The course introduction includes fundamentals of molecular biology: genes, RNA, proteins, central dogma of molecular biology, and foundations of mathematics, which will prepare students coming from both engineering and biological background for the course.

Computational techniques covered in this course include maximum likelihood techniques, Bayesian techniques, Markov models, hidden Markov models, clustering, neural networks, support vector machines, hypothesis testing, and differential equations. This course covers several applications of computational and systems biology: models of bio-sequences such as die models and Markov models, gene structure prediction, protein secondary structure prediction, gene expression analysis, biological networks, identifying network motifs, transcription networks, and signal transduction networks.

Total number of lecture hours: 39 hours

Convex optimization is a topic that has infiltrated into various research fields in Computer Science and Engineering. This course aims at giving a general treatment of the topics that are mostly useful in our engineering discipline. We will cover basic theories related to convex optimization (e.g., optimality conditions and Lagrange multiplier theory), but we will also focus on the problem formulation techniques that transfer engineering problems into a convex optimization framework, as well as the various methods to solve convex optimization problems.

Course Synopsis

  • Foundations of convex analysis and convex optimization basics
  • Linear programming (LP) and network flow problems
  • General convex optimization theory: Lagrange multiplier theory, KKT and other optimality conditions
  • Quadratic programming (QP) and machine learning
  • Optimization under uncertainty: an introduction to robust optimization and stochastic programming
  • Use of commercial solver systems for LP/QP to process engineering problems.

Total number of lecture hours: 39 hours

This course considers neurological, psychological, and structural models of intelligence. It uses these models as a basis for discussion and development of new models that may exhibit potential for creating embodied intelligence. The emphasis in this course is on the development of the concept of self-organizing, learning neural systems with locally interconnected processing components (neurons and minicolumns)

Course Synopsis

  • Foundations of Embodied Intelligence
  • Autonomous Intelligent Systems
  • Neurons and How they Work
  • Cognitive Neuroscience
  • Structures and Learning Simulations
  • Hebbian Learning
  • Self-Organization
  • Universal Learning
  • Information Processing by Brain
  • Perception and Attention
  • Memory
  • Language
  • Cognition

Total number of lecture hours: 39 hours

This course provides the fundamental concepts, theory and techniques of Cryptography and Network Security. Various security issues in computer communications and applications will also be introduced.

Course Synopsis

Finite Fields; Number Theory; Classical Cryptography; Symmetric Cryptography; Asymmetric cryptography; Modern Cryptography; Key Exchange schemes; Hash Functions; Digital signatures and Authentications; Vulnerabilities and Counter Measures; Applications Security (System Security, PGP, SSL, IPsec, Kerberos, Firewalls etc).

Total number of lecture hours: 39 hours

Computational Intelligence (CI) is based on inspiration from statistical, pattern recognition, neural network, machine learning, fuzzy logic, evolutionary computing, scientific visualization and other sources. This course covers basic theory, the use of two software packages implementing many CI algorithms (WEKA and GhostMiner), and examples of practical applications of CI methods to data in technical, medical and bioinformatics domains.

Course Synopsis

CI overview, types of adaptive systems, learning and applications; Visualization and exploratory data analysis: few variables, Principal Component Analysis (PCA), Multidimensional Scaling (MDS), Self-Organized Mappings (SOM), parallel coordinates and other visualization algorithms; Theory: overview of statistical approaches to learning, bias-variance decomposition, expectation maximization algorithm, model selection, evaluation of results, ROC curves; Introduction to WEKA and GhostMiner software packages, presentation of algorithms available in these packages; Statistical algorithms: discriminant analysis - linear (LDA), Fisher (FDA), regularized (RDA), probabilistic data modelling, kernel methods; Similarity based methods, generation of prototypes, similarity functions, separability criteria, structural approaches in pattern recognition; Improving CI models: boosting, stacking, ensemble learning, meta-learning, information theory for selection of features.

Total number of lecture hours: 39 hours

This course aims to develop specific knowledge in modern embedded real-time computing systems Focus will be on both conceptual understanding of techniques to translate application non-functional requirements to middleware and hardware functionality, as well as on practical implementation of these techniques using state-of-the-art research infrastructure. Students will also gain experience in critically reviewing scientific literature relevant to the area. Course project will encourage students to solve team-based research problems, and also give them experience in written and oral scientific communication.

Overall, this course will provide good exposure to students who intend to conduct research & development in real-time systems. Upon successful completion of this course, students should:

1) Have conceptual understanding of techniques to translate application non-functional requirements to middleware and hardware functionality.

2) Gain practical experience in implementing some of these techniques.

3) Gain experience in critically reviewing scientific literature, and in written and oral scientific communication

4) Learn how to solve challenging research problems in a team-based environment.

Total number of lecture hours: 39 hours


This course is about the key numerical algorithms that one may want to know about. How do GPS and TrueType fonts work? How is a robot moved around? What is the secret of Google's success? Why is JPEG compression so efficient? The answers to these questions are clever numerical algorithms, based on least squares, Bézier curves, quadrature, eigenvalues, and the discrete cosine transformation, respectively. The students will be able to understand and discuss them once they have gone through some preliminary basics, including Newton's method for finding roots, direct and iterative methods for solving linear systems of equations, and polynomial interpolation. This course refreshes the students’ basic math skills in calculus and linear algebra and shows how to utilize them for solving several real-world problems, like the ones mentioned earlier. It also provides references to the history of these solutions, going back to Newton, Leibniz, Euler, Gauss, and others.

This course is designed to cover a number of numerical algorithms, which are used to solve timely problems that are close to everyday experience. The students will learn how to leverage basic mathematics into great payoff in technological design and function. They will not only understand the theoretical background of these methods, but also learn how to implement them and experience the practical aspects.

Total number of lecture hours: 39 hours

Deep learning has recently introduced a paradigm shift from human-design features to end-to-end systems, and has revolutionized several fields including computer vision, speech recognition, and natural language processing. Top IT companies like Google, Facebook, Microsoft, Apple, Amazon have been actively redesigned their products with deep learning techniques, and the impacts in the coming decades will go beyond self-driving cars, strategic games like Go, and MRI cancer detection.

The main objective of this course is to introduce the mathematical foundations, the state-of-the-art architectures, and the professional libraries of deep learning architectures. Students will learn how to design their own artificial neural network to solve their data analysis task. They will also learn how to code efficiently these new algorithms using TensorFlow and PyTorch.

Total number of lecture hours: 39 hours

In this course, students will learn state-of-the-art deep learning methods for NLP. Through lectures and practical assignments students will learn the necessary tricks for making their models work on practical problems. They will learn to implement, and possibly to invent their own deep learning models using available deep learning libraries like TensorFlow.

Natural language processing (NLP) is one of the most important fields in artificial intelligence (AI). It has become very crucial in the information age because most of the information is in the form of unstructured text. NLP technologies are applied everywhere as people communicate mostly in language: language translation, web search, customer support, emails, forums, advertisement, radiology reports, to name a few.

There are a number of core NLP tasks and machine learning models behind NLP applications. Deep learning has recently brought a paradigm shift from traditional task-specific feature engineering to end-to-end systems, and has obtained high performance across many different NLP tasks and downstream applications. Tech companies like Google, Baidu, Alibaba, Apple, Amazon, Facebook, Tencent, and Microsoft are now actively working on deep learning methods to improve their products. For example, Google replaced their traditional statistical machine translation and speech recognition systems with systems based on deep learning.

The course provides a thorough introduction to cutting-edge research in deep learning applied to NLP. On the model side, we will cover word representations, window-based neural networks for NLP, recurrent neural networks for NLP, long-short-term-memory models, recursive neural networks for parsing, convolutional neural networks, encoder-decoder models, attention mechanisms, as well as more advanced topics like deep reinforcement learning and variational methods for NLP.

This course introduces graduate students to the advanced topics in distributed computing models, algorithms, and software systems. It deals with design issues, implementation techniques, and software tools and environments to support the implementation of distributed systems, and aims to prepare graduate students to carry out research in distributed systems.

Course Synopsis

A selection of topics from the following list will be covered:
• Distributed computing models and algorithms
• Internet and Web technologies and applications
• Distributed collaboration systems
• Distributed simulation and virtual environments
• Grid computing and P2P systems
• Other distributed systems

Case studies on real distributed systems will be conducted, and the recent research literature in the subject area will be reviewed.

Total number of lecture hours: 39 hours

This course provides the fundamental concepts, theory and techniques of image processing. Both theoretical and practical aspects are covered and selected problems analysed in depth. The course is accompanied by a laboratory component based on Matlab.

Course Synopsis

Image formation; Enhancement; Edge detection; Interpolation; Colour processing; Frequency domain processing; Restoration and reconstruction; Wavelet processing; Image and video compression; Morphological operations; Image segmentation and representation; Object recognition

Total number of lecture hours: 39 hours​

This course provides an introduction to the current state-of-the-art in virtual reality, virtual reality technologies and applications. The course does not require using sophisticated software tools and hardware devices which are only available in special labs. Instead, it teaches how to make content with raw mathematics using common personal computers and freeware software. Students will learn how to see geometry beyond mathematical formulas and how to represent geometric shapes, motions and interactions by digital sampling mathematical functions.

  • Lectures cover topics of
    • Introduction to virtual reality and human factors;
    • VR systems;
    • VR environments and devices;
    • Virtual reality on the Web;
    • Programming virtual reality;
    • Virtual objects;
    • Visual appearance;
    • Transformations;
    • Motions;
    • Collision detection;
    • Viewing virtual environments;
    • Physics simulation in VR.

This course covers user-centered research, interaction design, and more recent user interaction methods and techniques, such as multi-touch, gesture recognition, brain-computer interface, Siri & Tellme, just name a few. It introduces students to tools, techniques, and sources of information about HCI and provides a systematic approach to design. In addition, a new edition of textbook was available two years ago and the lecture materials were updated accordingly. Students are required to design and develop a novel interface for viewing and manipulating 3D models.

This course focuses on the concepts and techniques related to artificial intelligence in game design. It will highlight design, mathematical and programming issues related to the creation of computer games, character modeling, physics, animation and navigation. All these are brought together in the course assignment where students work in groups to design and develop a game for showcasing AI algorithms.

This course provides an introduction to the recent segmentation techniques on different types of visual data including images, videos and 3D point clouds. Segmentation is a type of dense prediction technique and it generally aims to make prediction for every spatial location of the visual data. It is a fundamental tool for many computer vision tasks such as scene understanding, object recognition, robotic vision, aerial image analysis and medical image analysis. The segmentation techniques have been widely deployed in various modern AI applications including autonomous driving, AI based medical diagnosis, smart shopping and so on. The topics covered in this course include the basic concepts, applications, traditional segmentation methods and recent deep learning based methods.

Course Synopsis

1. Introduction to segmentation tasks
2. Super-pixel methods
3. Interactive image segmentation
4. Semantic image segmentation
5. Deep learning basics
6. Dense prediction networks for semantic segmentation
7. Object detection and instance segmentation
9. Weakly supervised segmentation
10. Few-shot segmentation
11. Segmentation on videos
12. Segmentation on 3D point cloud data