Database systems are used for storing and maintaining any sort of data, providing convenient access to them through efficient query processing.
This course aims to give fundamental knowledge about databases, with particular attention to relational models. Students will learn how to design a relational database, using established methods such as E/R diagrams, and implement them. In addition, this course will offer an extensive presentation of SQL query languages.
Teaching and Learning Methods:
Lectures (with in-class exercises) and individual practical labs.
Since 1948, the year of publication of Shannon’s landmark paper “A mathematical theory of communications”, Information theory has paved the ground for the most important developments of today’s information/communication world making it perhaps the most important theoretical tool to understand the fundamentals of information technologies. The main objective of this course is to provide an introductory-level coverage of Information Theory. Information theory studies the ultimate theoretical limits of source coding and data compression, channel coding, and reliable communications via channels, and provides the guidelines for the development of practical signal-processing and coding algorithms. The course is meant to provide an intuitive point of view and foundation for both research and practice.
Teaching & Learning Methods: Lectures and homework.
Course policies:
Attendance Policy: Attendance is expected and required in every class period, unless previously discussed with the instructor. We will cover a lot of ground in this course to build a strong foundation for Information Theory, so attendance is important. To encourage learning, preparation, and participation, the lectures will be complemented by additional reading or review materials, e.g., slides, papers, MATLAB codes, and online course materials to cover some of the basic concepts prior to the lectures.
Other Course Policies: All mobile devices (e.g., smartphones, tablets, computers) should be stored securely away during lecture and are not be used unless specifically directed otherwise by the instructor. Use of a mobile device during an exam without the explicit permission of the instructor will be interpreted as the illicit transfer of exam data, will be considered an act of cheating and will be treated as such.
You are expected to approach the instructor with any issue that may affect your performance in class ahead of time. This includes absence from important class meetings, late assignments, inability to perform an assigned task, the need for extra time on assignments, etc. You should be prepared to provide sufficient proof of any circumstances based on which you are making a special request.
Academic Integrity: Student-teacher relationships are built on trust. For example, students must trust that teachers have made appropriate decisions about the structure and content of the courses they teach, and teachers must trust that the assignments that students turn in are their own. Acts that violate this trust undermine the educational process. In this class, all assignments that are turned in for a grade must represent the student’s own work. Submission of any assignment that is in violation of this policy may result in a penalty of an F in the class and may be subject to further disciplinary action.
If you have any questions concerning this policy before submitting an assignment, please ask for clarification.
- This course provides a broad overview of computer networking, covering the application layer, transport layer, network layer, and link layers.
- It covers basic concepts in computer networking as well as the prominent Internet protocols.
Teaching and learning methods:
Lectures and Lab sessions (group of 2-3 students)
Course Policies: attendance to labs is mandatory
The objective of this course is to raise awareness of the threats and challenges and to introduce the main concepts of cybersecurity. The aim is to present a guide of good practices applicable to all IT professionals, whether they are in training or in activity.
Statistics is a foundation of many areas of science and engineering that involve `` data.’’ This course focuses on fundamental concepts in statistical inference that are necessary for applying statistical methods in practice and that form the basis of other fields such as machine learning.
Teaching and Learning Methods: Students learn by lectures, exercises, and computer experiments.
Course Policies: The valid usage of statistical methods requires a mathematical understanding of the underlying mechanism. As such, the course covers both mathematical and algorithmic aspects of statistics.
Deep Learning is a new approach in Machine Learning which allows to build models that have shown superior performance fora wide range of applications, in particular Computer Vision and Natural Language Processing. Thanks to the joint availability of large data corpus and affordable processing power, Deep Learning has revived the old field of Artificial Neural Networks and provoked the "Renaissance" of AI (Artificial Intelligence). The objective of this course is to provide an overview of the field of Deep Learning, starting from simple Neural Network architectures and pursuing with contemporary and state of the art practices and models. The course is organized as lectures where the theory is exposed and discussed, whereas hands-on sessions (labs) are provided in the form of online tutorials.
Teaching and Learning Methods : The course is composed of a combination of lectures and online tutorials.
Course Policies : Attendance to all sessions is mandatory.
This course introduces fundamental concepts in machine learning with applications to networked systems and the Internet of Intelligent Things (IoIT). Students will gain foundational knowledge of cutting-edge methods, including autoencoders, deep generative models, and reinforcement learning. They will also get familiar with fundamental information-theoretic frameworks (e.g., information bottleneck) and theoretical principles. We will also introduce large-scale distributed and decentralized learning over wireless networks, in particular under constraints (completion time, radio resources, computational efficiency, etc.).
Teaching and Learning Methods: Lectures, exercise sessions, and lab sessions. Each lecture starts summarizing key concepts from the previous lecture. Part of each lecture is often dedicated to illustrative examples and exercises.
Course Policies: Attendance to lab session is mandatory. Attendance to lectures and exercise sessions is highly recommended..
This course treats the subject of modern radio engineering and includes typical RF architectures and their characterizations, modeling, prediction and simulation of radio-wave propagation, cellular planning, systems-level aspects of modern radio network design.
Teaching and Learning Methods : Lectures and Lab sessions (group of 2 students)
Course Policies : Attendance to Lab session is mandatory.
The subtitle of this course could be “Multi-Antenna Interference Handling for Multi-User Multi-Cell Systems”. Indeed the main focus is on the exploitation of multiple antennas to (more easily) handle inter-symbol and inter-user interference. Key concepts here are beamforming, MIMO (Multi-Input Multi-Output), Multi-User MIMO, Massive MIMO.
After a basic course in digital communications, a wide range of issues arise in the treatment of physical layer procedures in a wide variety of transmission technologies such as xDSL, gigabit Ethernet, powerline systems, DAB/DVB broadcasting and optical communication systems to name a few. These issues involve e.g. multi-rate echo cancellation for full duplex operation on twisted pair telephone lines, synchronization and equalization techniques in a variety of single and multi-carrier systems, impulsive noise in powerline and automotive systems etc. Even just wireless communications encompass a wide range of systems such as satellite, underwater, near-field communications, fixed wireless access, private systems, sensors, IoT, etc. and a wide range of aspects such as relaying, full duplex radio, cognitive radio, location estimation etc.
Whereas these systems will be briefly mentioned, the main focus will be on cellular wireless and the use of multiple antennas at receivers and transmitters. Spatial filtering, spatiotemporal filtering, and multiuser detection for CDMA are all treated in a unified fashion.
Teaching and Learning Methods: Lectures, Exercise and Lab session (groups of 1-2 students depending on size of class).
Course Policies: Attendance of Lab session is mandatory (25% of final grade).
The aims of the course are to provide students with tools that can help to design error-free software/hardware systems. The course gives both the theoretical foundations and the pratical use of formal methods.
Teaching and Learning Methods : Lectures and Lab sessions.
Course Policies : Attendance to Lab session is mandatory.
Computational methods in digital communications provides a selection of hands-on experiments in programming and implementation techniques for high-performance computing applied to telecommunications. Students will learn architecture concepts and how to optimize software to implement different types of algorithms efficiently on software-based systems.
Teaching methods: The course is primarily given in a lab setting leveraging guided personal work. The instructor gives some lecture material progressively during the course of the lab-sessions in an on-demand fashion. The mini-project teamwork includes regular 45 minutes review meetings with the instructor and teaching assistants to overview progress on the subject.
Grading: 50% final mini-project work and presentation, 50% grading of lab sessions.
Teaching and Learning Methods: Lectures, Homework (2-3), and a case study (study and present a research paper in a group of 2-3 students).
Course Policies: Mandatory participation, Case study optional, but recommended.
This module addresses the access methods in Wireless Local Access Networks (WLAN). The basic contention and management mechanisms are detailed. Current and emerging standards of WLAN toward 5G are also presented.
Teaching and Learning Methods : Lectures and Lab sessions (group of 2 students)
Course Policies : Attendance to Lab session is mandatory.
This course provides an introduction to the automatic processing of speech and audio signals. It starts with a treatment of the human speech production and perception mechanisms and looks at how our understanding of them has influenced attempts to process speech and audio signals automatically. The course then considers the analysis, coding and parameterisation of signals in the case of different speech and audio processing tasks. After an introduction to essential pattern recognition techniques, the course considers specific applications including speech recognition, speaker recognition and speaker diarization. The course also includes a treatment of speech and audio coding, noise compensation and speech enhancement.
Teaching and Learning Methods:
The course is comprised of lectures and exercises and laboratory sessions.
Course policies: Attendance of laboratory sessions is mandatory.
The course is roughly divided in two separate parts. The first covers the topics of computer forensics and incident response. In particular, we discuss a number of techniques and open source tools to acquire and analyze network traces, hard disk images, Windows and Linux operating system artifacts, log files, and memory images.
The second part of the course deals with the analysis of malware and unknown binaries. Here the goal is to introduce students to the main classes of techniques used in malware analysis and reverse engineering. We cover both static techniques (ELF and PE file structures, dissasseblers and decompilers, data and control flow analysis, abstract interpretation, ...) and dynamic techniques (sandboxing, library and syscall traces, dynamic instrumentation, debugging, taint analysis, unpacking,...). We will use mostly open source tools, with the exception of IDA Pro.
Teaching and Learning Methods : Lectures and Homework Assignment
This course aims at providing a solid and practical foundation to the design and execution of machine learning projects. Students will get familiar with a wide range of topics, through the application of theoretic ideas on problems of practical interest. This is a reverse class, in which students are required to study (or revise) a particular topic at home, and apply what they have learned in numerous laboratory sessions.
To define a machine learning projects, students will use cloud-based GPU resources, such as Google Colab, Kaggle and many more. Typically, projects are developed using Python Notebooks, or a legacy IDE, and can rely on standard machine learning libraries, and available pre-trained models, such as the ones provided by HuggingFace.
Project outcomes take the form of short research-style reports, which include methodological choices, results and a critical discussion on the performance achieved for a particular task.
This course covers the application-level protocols dedicated to IOT. Knowing the limited capacity, in terms of battery and CPU, of the things, the classical application protocols used in the Internet like HTTP are not adequate. This course presents the recent application protocols specially developed for IOT. These protocols are organized into two categories: (i) Client/server (like COAP) and (ii) Publish/Subscribe (like MQTT, XMPP). In addition to these protocols, this course introduces two types of architecture, specifically dedicated to host IOT services, like 3GPP MTC and oneM2M.
Teaching and Learning Methods: The course is organised in lectures and labs.
Course Policies: Labs are Mandatory (reports)