Naviga nel sito della Scuola di Scienze Matematiche Fisiche e Naturali

Brief description of the courses

This pages provides a brief description (in English) of all courses of the M.Sc. More information is available in the syllabus page. 

 

DP - Distributed Programming for Web, IoT and Mobile Systems

The course aims at providing general knowledge about distributed programming, methodologies and tools. The course starts by reviewing the basic concepts relevant to the course, then presents how distributed systems are organized and basic communication mechanisms. The course then presents the basic techniques for developing modern distributed systems using the web, IoT, and mobile technologies. The course has a hands-on approach.

 

AMA-CPS - Architecture, Model and Analysis of Cyber Physical Systems

The course aims at providing solid knowledge and competences to conceive, define, design, evaluate and analyze complex cyber-physical systems (of systems) which are at the basis of emerging fields as Internet of Things, Smart Factories and Critical Infrastructures. In particular, focus is put on the distribution and coordination aspects of the constituent systems of an SoS and on approaches for the quantitative evaluation of system properties as for example reliability, availability, security and performance.

 

AST - Automated Software Testing

The course aims at teaching advanced techniques based on automatic testing of software, in particular, Test-Driven Development (TDD). The course will deal with several aspects of testing: Unit Testing (testing a single component), Integration Testing (testing several components together) and Functional Testing (testing the user interface, both of desktop applications and web applications). These techniques permit to implement quickly and safely even complex programs. Tests will also represent specifications of our software. Moreover, tests will drive the development of clean and modular components. 
The course shows the use of tools for code versioning (git, both locally and socially, using Github) and for Build Automation, that is, the automatic compilation and testing of the entire application. Tools for Continuous Integration, using dedicated open source servers also on the cloud (e.g., GitHub Actions), will be used as well. All these tools will be connected together to continuously monitor software even when developed by several members of a team. In this process, tools for analyzing the code quality will be exploited, as well as tools to virtualize the development and testing environment to make the whole process easily reproducible (e.g., Docker). Throughout the lessons, tools to increment the productivity, most of all the Eclipse IDE, will be exploited

 

SAM - Software Architectures and Methodologies

TBA

 

SPE - Software Performance Engineering

TBA

 

CNS - Computer and Network Security

The course aims to provide an up-to-date survey of computer and network security developments and practice. It covers the central problems confronting security designers and administrators: defining the threats to computer systems and networks, evaluating the relative risks of these threats, and developing cost-effective and user-friendly countermeasures and security policies. The course consists of two modules: COMPUTER SECURITY and NETWORK SECURITY. Upon completing this course, the student should acquire knowledge and understanding of computer and network security basics and some related skills.

 

Bootcamp

Il Corso di Laurea Magistrale in Software: Science and Technology prevede 3 CFU per attività di apprfondimento denominate Bootcamp, realizzate sotto forma di corsi intensivi presso le strutture della Scuola IMT Alti Studi Lucca con il coinvolgimento di aziende di varie dimensioni.

 

RRTC - Resiliency, Real Time and Certification

The course aims to introduce the problems related to the design, validation and certification of systems with critical requirements and time. The students will learn the basic concepts of the discipline and the main techniques, both at the system architecture level and at the increasingly important software level. At the end of the course, abilities will be acquired to (i) think about the implications of non-functional requirements regarding dependability especially on architectural choices for the system under development; (ii) distinguish and chose fault tolerant solutions according to major schemes and techniques already established; (iii) understand the implications of the certification of critical systems according to international standards.

 

DCML - Data Collection and Machine Learning for Critical Cyber-Physical Systems

The course is divided into two parts, which deal respectively with: (i) monitoring, testing, fault injection, anomaly detection, and (ii) approaches and solutions for critical systems based on deep learning. At the end of the course, the students should be able to craft a montoring system and install it into a target machine, planning and implementing fault injection/robustness testing experiments, analyze collected data for anomaly detection.

 

PT - Penetration Testing

The course aims at providing a general knowledge about the penetration testing process, methodologies and tools. The course starts by reviewing the basic concepts relevant to the course, and covers the common phases of the penetration testing process. At the end of the course, the students should able to apply penetration testing techniques via Kali linux tools to execute a basic penetration testing activity on a system. They should be also able to judge the severity of a detected vulnerability and identify the most adequate solution to exploit it. The course has a hands-on approach.

 

MLSA - Machine Learning for Software Analysis

TBA

 

SD - Software Dependability

The current ubiquity of software, particularly inside objects that can have an impact on economy or on safety of people, prompts the need that software is bug-free. This course wants to show a series of techniques that help avoiding the introduction of design errors in software production: mainly, formal development and verification techniques, but also fault forecasting and fault tolerance techniques. The introduction of such techniques in a production context will be studied, and the relationships with guidelines of specific industrial production domains will be discussed. 

 

QESM - Quantitative Evaluation of Stochastic Models

TBA

 

SPM - Software Project Management

The course aims at providing a general knowledge about the methodologies and tools for the management of software projects and IT developments. The course reviews the basic concepts about project management, and covers the lifecycle phases of the traditional software project management and Agile methodologies. Special attention is paid to the modelling of software, and the evaluation and improvement of software and process quality.

 

GD - Game Development

TBA

 

SMCS - Statistical Methods for Computer Science

The course introduces the main concepts of inferential statistics and regression. The students will acquire knowledge on the main tools and methods proper of inferential statistics and regression: the concept of statistical model, the tools of point estimation, interval estimation, and statistical hypothesis testing. The students will be also able to practically solve inferential problems by means of the R software. The students will also acquire the ability to identify the most appropriate inferential procedure to use based on the specific goals of the analysis. They will be able to critically understand features and limits of models and methods presented during the course, as well as to properly interpreter and describe the results of the analyses.

 

ENC - Elements of Numerical Calculus

The course aims at providing the students the basic notions to theoretically understand and apply numerical methods for the solution of linear systems, ordinary differential equations and for the approximation of data. At the end of the course, the students will be able to understand and present the mathematical formulation of the proposed problems and the relation with the corresponding numerical solution; understand and present the mathematical aspects guaranteeing the efficiency and accuracy of the numerical methods; solve some test problems by writing in Matlab programs implementing the studied methods.

 

ORO - Operations Research and Optimization

The course aims at providing the students with the basic notions on mathematical modeling and focuses on linear programming, network flows optimization and mixed-integer linear programming. At the end of the course, students will be able to classify different mathematical programming problems, knowing the main results related to the characterization of their solutions.  The students will also be able to formulate mixed-integer and network optimization problems and to use standard algorithms to deal with specific application contexts.

 

OML - Optimization and Machine Learning for Dynamical Systems

This course aims at introducing classical problems in systems-and-control theory, such as the analysis of dynamical systems and the associated controller synthesis, estimation and state reconstruction problems. Once discussed how to tackle the underlying problems with standard mathematical tools, they will hence be addressed and solved using data-driven and machine learning techniques, emphasizing their pros and cons. Frontal lectures will be alternated with hands-on sessions involving programming in MATLAB, Python, or Julia.

ULTIMO AGGIORNAMENTO

23.02.2024

Cookie

I cookie di questo sito servono al suo corretto funzionamento e non raccolgono alcuna tua informazione personale. Se navighi su di esso accetti la loro presenza.  Maggiori informazioni