Courses

Fundamentals of AI (FAI)

This course introduces to the students what is--and what is not--AI. It provides a condensed history of the field, introducing the various methods and open challenges, in order to set the stage for the different approaches that will be covered throughout the MSc. Students will be introduced to cognitive systems by focusing on agents inhabiting--navigating and altering-- virtual environments. In laboratory sessions, students will investigate fundamental concepts of cognition: sensing, decision making, and acting. Finally, core concepts of knowledge representation and reasoning will be introduced, including first-order and description logics. Syllabus

Cryptography (CR)

After finishing this course, the student will be able to understand: - M.5.1 (K) Describe the basic principles of encryption as a basis for security and identify various encryption methods. - M.5.2 (K) Define the concepts of confidentiality, integrity and availability of data. - M.5.4 (K) Recognize the attacks and risks faced by computer systems, networks and the Web. - M.5.6 (S) Design classical encryption and block cipher techniques.

Machine Learning (ML)

This course focuses on data preparation, supervised and unsupervised learning. The preparation and use of datasets for learning tasks will be presented, with a focus on pre-processing for efficiency. This includes de-noising, sampling, feature extraction and normalization.The course covers basic supervised and unsupervised learning algorithms, identifying their uses and limitations and learning how to implement and evaluate them. The supervised learning models introduced include k-NN, Naïve Bayes, random forest and ensemble methods. In terms of unsupervised methods, different clustering techniques will be introduced. The theory focuses on the required notions to understand optimisation, measures and dimensionality reduction.

Cloud Computing and Distributed Systems (CCDS)

The course objective is to enumerate the advantages of virtualization when managing decentralized software with a microservices architecture and orchestration techniques. Second, prepare Internet connected systems for high availability, load balancing, scalability, disaster recovery, and other cloud software engineering strategic dimensions. Third, practice using DevOps cloud computing technologies; such as docker, swarm and kubernetes clusters, or cloud providers.

Neural Networks (NN)

The course covers the fundamental principles of neural network architecture, including perceptrons, activation functions, and layers. Students explore common neural network architectures such as feedforward, convolutional, and recurrent networks, understanding their applications and advantages. Through hands-on exercises and projects, participants gain practical experience in implementing neural networks using popular frameworks like TensorFlow or PyTorch, learning techniques for training, optimizing, and evaluating model performance.

Ethical Hacking (EH)

Ethical hacking refers to programming techniques that intend to reveal system insecurity by reusing or devising attack patterns. In this course, we will explore what the difference between ethical and unethical hacking is, why ethical hacking is a necessity in an ever connected world, and how the act of hacking can even be a bit of fun.

System Development Life Cycle: Cont. D & I (SDLC)

The course objective is to, first, list the problems that appear during the development, maintenance and operation of systems. Second, observe how continuous measures can be incorporated to avoid or control errors, but at the same time maintaining agile development mechanisms. Third, practice using DevOps productive development and continuous integration tools; such as version control systems, Agile methodologies, or automation testing and deploying tools.

Malware Analysis (MA)

Malware is payload software that violates confidentiality, integrity, and availability of an operating system. Malware analysis is the study of this type of software attempting to elucidate on attribution (who made the software), delivery (how the software reached its host), and function (what the software does to a particular host). In this course, we will taxonomize the different subtypes of malware, understand the analysis techniques and their limitations, and dissect a malware virus, always within the principles of ethical hacking.

Sequences and Recurrent Networks (SRN)

The course provides a comprehensive overview of sequential data processing and the foundational principles of recurrent neural networks (RNNs). The course explores the unique challenges posed by sequential data, including time series, natural language, and audio. Participants learn the architecture and mechanisms of RNNs, including long short-term memory (LSTM) and gated recurrent units (GRUs), understanding how these structures enable capturing dependencies over time. Through hands-on exercises and projects, students gain proficiency in implementing and training recurrent networks, addressing issues like vanishing gradients and exploding gradients. Additionally, the course delves into advanced topics such as sequence generation, attention mechanisms, and sequence-to-sequence models.

Advanced Deep Learning Models (ADLM)

A hands-on advanced deep learning course focused on computer vision and generative AI. Covers object detection architectures (R-CNN, SSD, YOLO), semantic segmentation, Generative Adversarial Networks (GANs), and Transformer-based models including self-attention mechanisms. Students apply concepts through a practical project implementing one technique — object detection, semantic segmentation, or GANs — using PyTorch or TensorFlow on a real-world problem of their choice.

Wireless System Security (WSS)

Wireless system security is a collection of protocols, standards, and prophylactic firmware software that protect wireless networks. In this course, we will define different types of wireless transfer protocols (for example UDP and TCP) and architectures (for example mesh, star, and tree networking), investigate the types of attack patterns on wireless networking (for example spoofing, adversary in the middle, sniffing attacks), and propose potential defenses (for example https and ssl).

Cyber-Phisical Systems (CPS)

Design of complex and reliable cyber-physical systems (CPS) requires the creation of mathematical models, both of the environment and of the system itself. Such models allow us to analyze, control, verify, and optimize a system’s performance. The modeling choice is largely dictated by the intended use of the model plus the intricacies of the underlying physical domain. This course will provide a solid foundation for understanding different modeling paradigms, and explore them through a hands on examination on a cyber-physical domain.

IoT Connectivity (IoT)

This subject serves as a foundational introduction to the Internet of Things (IoT), focusing on essential protocols, networks, and design principles. Students will explore key IoT communication protocols like MQTT and network technologies including Wi-Fi, Bluetooth, LoRaWAN, and Zigbee. The course empowers students to design IoT networks using tools like IIRA (IoT Infrastructure Reference Architecture), enabling them to create robust and efficient IoT systems.

Advanced Cryptography (AC)

This course bridges the gap between Machine Learning (ML)and cybersecurity, focusing on how ML algorithms can be utilized to fortify cybersecurity measures and applications. We will cover the application of ML models to detect anomalies, predict attacks, and automate threat intelligence. Students will learn about the challenges and opportunities of applying ML in a cybersecurity context, including ethical considerations and the need for robust, secure ML models as there are many security applications which have large amount of data related to the system as well as adversarial actions. In the course, students will learn the theoretical concepts during the lectures as exploring different problem domains, gain hands-on experience to build up their skills by practicing on assignments, and finally demonstrate their knowledge and skills by participating in a final project to identify the type of machine learning algorithms that are useful for specific security applications and how to improve the defence against attacks to ultimately anticipate the potential attack variants that may rise in the future.

System Development Lifer Cycle: An. & Des. (SDLC)

The system development lifecycle requires planning, constructing, testing, and deploying a system. Within this course we will take a particular look at the steps necessary to synthesize systems and analyze them from a systems engineering perspective. In particular, we will concern ourselves not with the particularities of individual parts of system development but rather with the concepts required to architect a holistic system by soliciting requirements from stakeholders, modeling desired behaviors that adhere to such requirements, and connecting these analysis methods with the synthesis of a realizable system to deploy.

Network Security Monitoring (NSM)

Network security monitoring detects and prevents attacks by examining network traffic data via intrusion detection systems (IDS), log management, and threat analysis. Students can expect to learn about: (1) network architecture & data collection, (2) intrusion detection systems (IDS), and (3) threat intelligence.

Introduction to High Performance Computing (IHPC)

This course explores parallel computing architectures, including shared memory, distributed memory, and hybrid systems, learning strategies for efficient parallelization of algorithms. Through hands-on exercises and projects, students gain practical experience in developing and deploying high-performance applications, tackling computationally intensive problems across various domains such as scientific simulations, data analytics, and machine learning.

Natural Language Processing (NLP)

The course covers foundational concepts such as tokenization, part-of-speech tagging, syntactic parsing, and semantic analysis, providing students with a solid understanding of how computers process and interpret text. Participants also delve into practical applications of NLP, including sentiment analysis, named entity recognition, machine translation, and text summarization, learning to leverage state-of-the-art tools and libraries such as NLTK, spaCy, and Transformers. Through hands-on projects and exercises, students gain experience in preprocessing text data, building NLP models, and evaluating their performance, ultimately preparing them to tackle real-world challenges in areas like information retrieval, question answering, and conversational AI.

Optimization for ML (OML)

This course introduces key fundamental concepts and techniques of optimization applied to machine learning problems. It covers a range of optimization methods, from classical approaches to recent advancements, emphasizing their applications in designing and training machine learning models. The curriculum bridges theoretical concepts with practical implementation, providing students with the tools to solve complex optimization problems encountered in real-world machine learning tasks. The student will learn when to use which method, which tooling is appropriate in which situation, and the connections between the different methods. We will also show how these methods fit within the broader framework of the mathematical foundations of optimization methods and their importance in machine learning and apply various optimization techniques to train machine learning models effectively to analyse the importance of convergence properties of optimization algorithms and their impact on model performance. Finally, in the tutorials and labs, students will gain hands-on experience through several coding assignments and by participating in a project.