Attività Formative

Descrizione del progetto formativo

Il Dottorato in Computational Intelligence implementa un piano formativo dedicato all'apprendimento delle metodologie di intelligenza computazionale e alla loro applicazione alla ricerca e allo sviluppo della futura generazione di sistemi intelligenti.

Il piano formativo prevede tre tipologie di attività, ciascuna delle quali deve essere compresa nei piani di studio individuali:

• Corsi/Scuole di Dottorato;

• Seminari/Tutorial;

• Ricerca.

I corsi sono classificati in tre diverse tipologie: A, B, e C:

A. Corsi avanzati/interdisciplinari: o A.1 Corsi specifici per il dottorato; o A.2 Corsi condivisi con i programmi di studio delle lauree magistrali; [più in basso, in questa stessa pagina, viene proposto l'elenco dei corsi della tipologia A.1]

B. Corsi di lingua inglese, scrittura scientifica e informatica di base;

C. Corsi di dottorato ad hoc su valorizzazione e disseminazione della ricerca, e proprietà intellettuale.

I corsi di tipo A1 devono essere frequentati da tutti i dottorandi la cui area di ricerca o i cui interessi sono correlati all'argomento del corso. I corsi di tipo A2 possono essere scelti liberamente dagli studenti, sulla base dei propri studi pregressi e dei propri interessi di studio e ricerca, previo accordo con il proprio supervisore di dottorato, con l'obiettivo di ampliare e approfondire le proprie conoscenze e competenze. Gli studenti possono scegliere di frequentare altri corsi di tipo A2 offerti nei curricula di laurea magistrale dell'Università Federico II o di altre università, previa approvazione del Collegio dei Docenti del Dottorato.

La partecipazione ai corsi di tipo B e C è fortemente consigliata.

Ogni dottorando è tenuto a trascorrere un periodo di studio e ricerca presso un'istituzione accademica o di ricerca all'estero riconosciuta a livello internazionale. Le attività all'estero devono essere preventivamente approvate dal Coordinatore e/o dal Collegio dei Docenti del Dottorato.

Tutte le attività di cui sopra daranno diritto agli studenti di ottenere i crediti formativi corrispondenti. Il numero di crediti per i corsi e le scuole di dottorato è definito dal Collegio dei Docenti del Dottorato, a seconda della durata, del livello e della valutazione finale.

Il numero di crediti per i seminari è in genere di 0,2 crediti per ora.

L'organizzazione delle attività didattiche nei piani di studio individuali deve attenersi ai criteri e al numero di crediti annuali stabilito dal Collegio dei Docenti del Dottorato. Nel primo anno, o nella prima metà della durata del programma di dottorato, si prevede di privilegiare la frequenza di corsi avanzati o interdisciplinari, con l'obiettivo per lo studente di ampliare le proprie conoscenze in aree non coperte nella propria precedente carriera di studente magistrale. Nel secondo anno, il piano di attività individuale dovrebbe favorire l'approfondimento delle conoscenze nelle discipline legate agli interessi di ricerca personali; le attività di ricerca nel secondo anno iniziano a diventare prevalenti. Lo studente è inoltre invitato a frequentare - soprattutto nei primi due anni - corsi ad hoc per il potenziamento delle competenze linguistiche e informatiche utili all'attività di ricerca, nonché corsi sulla gestione della ricerca e dell'innovazione e sull'imprenditorialità; nel terzo anno, lo studente dovrà favorire attività di ricerca nell'area scientifica di interesse, che sfoceranno nella preparazione della tesi di dottorato.

Durante l'intero programma del Dottorato in Computational Intelligence, gli studenti possono anche ottenere da 0 a 4,8 crediti (entro il limite di 40 ore per anno accademico) per attività di tutoraggio o di insegnamento integrativo di studenti triennali e magistrali. I compiti di tutoraggio sono assegnati dai coordinatori dei corsi di laurea o di laurea magistrale, su autorizzazione del Collegio dei Docenti del Dottorato e con il consenso dello studente.

 

A. Corsi avanzati/interdisciplinari

 

 

Corso

nr. ore

anno di frequenza

1

Fuzzy Logic and Systems

14

I anno

2

Evolutionary Computation

14

I anno

3

Neural Networks

14

I anno

4

Machine and Deep Learning

12

I anno

5

Engineering of Machine Learning

12

I anno

6

Computational Intelligence for Big Data

12

I anno

7

Computational Inference and Statistical Validation

10

II anno

8

Data Theory and Computational Statistics

10

II anno

9

Quantum Computational Intelligence

12

II anno

10

High-Performance Computing: Algorithms

10

II anno

11

High-Performance Computing: Hardware Architectures

10

II anno

12

High-Performance Computing: Software Architectures

10

II anno

13

Simulation and Twin Systems for Industrial Applications

12

II anno

14

Theoretical Computer Science for Computational Intelligence

12

II anno

15

Optimization

10

I anno

16

Mathematical Logic

10

I anno

17

Numerical Analysis

10

I anno

18

Natural Language Processing

10

II anno

19

Computational Intelligence for Medical Imaging

12

II anno

20

Computer Vision and Image Processing

12

II anno

21

Bioinformatics

12

II anno

22

Computational Neuroscience

10

II anno

23

Physics for Computation

10

II anno

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1. Fuzzy Logic and Systems

The course on fuzzy logic and systems introduces the concept of fuzzy sets, fuzzy logic, and fuzzy reasoning. It covers the theoretical foundations of fuzzy sets, including the extension principle, fuzzy operations, and fuzzy relations. The course also explores the applications of fuzzy logic in control systems, decision-making, and pattern recognition. Students will learn how to use fuzzy logic to model and solve problems that involve uncertainty, imprecision, and vagueness. The course covers the basics of fuzzy control systems, including fuzzy rules, fuzzy inference systems, and fuzzy control actions. It also delves into fuzzy decision-making, including methods for aggregating and ranking fuzzy sets. Overall, this course provides students with the tools to design, analyze, and implement fuzzy logic systems in a variety of domains. By the end of the course, students will have gained a solid understanding of the principles of fuzzy logic and systems and be able to apply them to real-world problems.

 

2. Evolutionary Computation

The course on evolutionary computation introduces the principles and applications of evolutionary algorithms, which are computational methods inspired by natural evolution and genetics. It covers the fundamental concepts of genetic algorithms, genetic programming, evolution strategies, and swarm intelligence. Students will learn how to use evolutionary algorithms to solve optimization, search, and machine learning problems. The course covers the basics of population-based algorithms,including selection, reproduction, and variation operators. It also delves into the adaptation of parameters and strategies, such as metaheuristics and hybrid algorithms. The course emphasizes the practical aspects of evolutionary computation, including the design and implementation of algorithms, the analysis of their behavior and performance, and their application to real-world problems. Students will learn how to apply evolutionary algorithms to a variety of domains, such as engineering, finance, and biology. Overall, this course provides students with a solid understanding of evolutionary computation and its applications. By the end of the course, students will have gained practical experience in designing, analyzing, and implementing evolutionary algorithms to solve complex problems.

 

3. Neural Networks

The course on neural networks introduces the principles and applications of artificial neural networks, which are computational models inspired by the structure and function of biological neurons. It covers the fundamental concepts of feedforward and recurrent neural networks, including architectures, learning algorithms, and optimization techniques. Students will learn how to design, train, and evaluate neural networks for a variety of tasks, such as classification, regression, and sequence modeling. The course covers the basics of neural network models, including perceptrons, multilayer perceptrons, and recurrent neural networks. It also delves into deep learning, including convolutional neural networks and autoencoders. The course emphasizes the practical aspects of neural networks, including the design and implementation of networks, the analysis of their behavior and performance, and their application to real-world problems. Students will learn how to apply neural networks to a variety of domains, such as image and speech recognition, natural language processing, and robotics. Overall, this course provides students with a solid understanding of neural networks and their applications. By the end of the course, students will have gained practical experience in designing, training, and evaluating neural networks to solve complex problems

 

4.  Machine and Deep Learning

The course on machine and deep learning introduces the principles and applications of machine learning and deep learning, which are subfields of artificial intelligence that involve building models that can learn from data. It covers the fundamental concepts of supervised and unsupervised learning, including data preprocessing, feature extraction, model selection, and performance evaluation. Students will learn how to use machine learning and deep learning algorithms to solve a variety of problems, such as image and speech recognition, natural language processing, and autonomous decision-making. The course covers the basics of popular algorithms, including linear regression, logistic regression, support vector machines, decision trees, k-nearest neighbors, and neural networks. The course emphasizes the practical aspects of machine and deep learning, including the design and implementation of models, the analysis of their behavior and performance, and their application to real-world problems. Students will learn how to apply machine and deep learning to a variety of domains, such as healthcare, finance, and transportation. Overall, this course provides students with a solid understanding of machine and deep learning and their applications. By the end of the course, students will have gained practical experience in designing, training, and evaluating machine and deep learning models to solve complex problems.

 

5. Engineering of Machine Learning

The course on the engineering of machine learning focuses on the practical aspects of building, deploying, and maintaining machine learning systems. It covers the entire machine learning pipeline, from data preparation and feature engineering to model selection and evaluation, to deployment and monitoring. Students will learn how to design and implement machine learning systems that are scalable, efficient, and maintainable. The course covers the basics of software engineering for machine learning, including version control, testing, debugging, and documentation. It also delves into the challenges of productionizing machine learning, such as model serving, infrastructure management, and data privacy. The course emphasizes the importance of collaboration and communication in machine learning engineering, including best practices for working in teams, sharing code and data, and communicating results to stakeholders. Students will learn how to work with common machine learning frameworks and tools, such as TensorFlow, PyTorch, and Scikit-learn. Overall, this course provides students with a solid understanding of the engineering of machine learning systems and their applications. By the end of the course, students will have gained practical experience in building, deploying, and maintaining machine learning systems that meet real-world requirements.

 

6. Computational Intelligence for Big Data

The course on computational intelligence for big data introduces the principles and techniques of computational intelligence that can be used to process and analyze large-scale datasets. It covers the fundamental concepts of big data processing, including data preprocessing, feature selection, dimensionality reduction, and distributed computing. Students will learn how to apply computational intelligence algorithms to big data problems, such as clustering, classification, regression, and anomaly detection. The course covers the basics of popular algorithms, including fuzzy logic, evolutionary computation, artificial neural networks, and deep learning. The course emphasizes the practical aspects of computational intelligence for big data, including the design and implementation of algorithms, the analysis of their behavior and performance, and their application to real-world problems. Students will learn how to work with big data tools and technologies, such as Hadoop, Spark, and NoSQL databases. Overall, this course provides students with a solid understanding of computational intelligence for big data and its applications. By the end of the course, students will have gained practical experience in designing, implementing, and evaluating computational intelligence algorithms for big data problems.

 

7.  Computational Inference and Statistical Validation

The course on computational inference and statistical validation introduces the principles and techniques of statistical inference and validation for computational models. It covers the fundamental concepts of probability theory, hypothesis testing, and statistical modeling. Students will learn how to apply statistical inference techniques to validate computational models and analyze their performance. The course covers the basics of popular statistical inference methods, including maximum likelihood estimation, Bayesian inference, and hypothesis testing. The course emphasizes the practical aspects of statistical inference and validation, including the design and implementation of statistical models, the analysis of their behavior and performance, and their application to real-world problems. Students will learn how to use statistical software tools, such as R and Python, to analyze and validate computational models. Overall, this course provides students with a solid understanding of computational inference and statistical validation and their applications. By the end of the course, students will have gained practical experience in designing, implementing, and evaluating statistical models for various problems.

 

8. Data Theory and Computational Statistics

The course on data theory and computational statistics introduces the principles and techniques of data theory and computational statistics, which are critical for understanding and analyzing data. It covers the fundamental concepts of statistical inference, estimation, hypothesis testing, and probability theory. Students will learn how to apply computational statistics algorithms to data theory problems, such as data cleaning, data transformation, and data normalization. The course covers the basics of popular algorithms, including linear regression, logistic regression, clustering, and principal component analysis. The course emphasizes the practical aspects of data theory and computational statistics, including the design and implementation of algorithms, the analysis of their behavior and performance, and their application to real-world problems. Students will learn how to use data theory and computational statistics tools and technologies, such as R, Python, and MATLAB. Overall, this course provides students with a solid understanding of data theory and computational statistics and their applications. By the end of the course, students will have gained practical experience in designing, implementing, and evaluating computational statistics algorithms for data theory problems.

 

9.  Quantum Computational Intelligence

The course on quantum computational intelligence introduces the principles and techniques of quantum computing and how they can be used in computational intelligence applications. It covers the fundamental concepts of quantum mechanics, quantum algorithms, quantum gates, and quantum circuits. Students will learn how to apply quantum computational intelligence algorithms to various problems in areas such as optimization, cryptography, and machine learning. The course covers the basics of popular quantum computational intelligence algorithms, including quantum annealing, quantum-inspired algorithms, and quantum neural networks. The course emphasizes the practical aspects of quantum computational intelligence, including the design and implementation of algorithms, the analysis of their behavior and performance, and their application to real-world problems. Students will learn how to use quantum computing platforms and technologies, such as IBM Qiskit and Microsoft Quantum Development Kit. Overall, this course provides students with a solid understanding of quantum computational intelligence and its applications. By the end of the course, students will have gained practical experience in designing, implementing, and evaluating quantum computational intelligence algorithms for various problems.

 

10.  High-Performance Computing: Algorithms

The course on high-performance computing algorithms introduces the principles and techniques of developing and optimizing algorithms for high-performance computing systems. It covers the fundamental concepts of parallel computing, including distributed memory and shared memory architectures, as well as the different levels of parallelism, from instruction-level parallelism to task-level parallelism. Students will learn how to design, implement, and analyze high-performance computing algorithms using different parallel programming models, such as OpenMP, MPI, and CUDA. The course covers the basics of popular high-performance computing algorithms, including numerical methods, graph algorithms, and optimization algorithms. The course emphasizes the practical aspects of high-performance computing algorithms, including the design and implementation of algorithms, the analysis of their behavior and performance, and their application to real-world problems. Students will learn how to use high-performance computing platforms and technologies, such as HPC clusters and GPUs. Overall, this course provides students with a solid understanding of high-performance computing algorithms and their applications. By the end of the course, students will have gained practical experience in designing, implementing, and evaluating high-performance computing algorithms for various problems.

 

11. High-Performance Computing: Hardware Architectures

The course on high-performance computing hardware architectures introduces the principles and techniques of developing and optimizing hardware architectures for high-performance computing systems. It covers the fundamental concepts of computer architecture, including processor design, memory hierarchy, and interconnects. Students will learn how to design, evaluate, and optimize high-performance computing hardware architectures for different computing systems, such as multi-core processors, accelerators, and clusters. The course covers the basics of popular high-performance computing hardware architectures, including SIMD, MIMD, and message-passing architectures. The course emphasizes the practical aspects of high-performance computing hardware architectures, including the design and implementation of architectures, the analysis of their behavior and performance, and their application to real-world problems. Students will learn how to use high-performance computing platforms and technologies, such as HPC clusters and GPUs. Overall, this course provides students with a solid understanding of high-performance computing hardware architectures and their applications. By the end of the course, students will have gained practical experience in designing, implementing, and evaluating high-performance computing hardware architectures for various problems.

 

12. High-Performance computing Software Architectures

The course on high-performance computing software architectures introduces the principles and techniques of developing and optimizing software architectures for high-performance computing systems. It covers the fundamental concepts of software design and optimization, including parallel programming models, software libraries, and compiler optimizations. Students will learn how to design, implement, and evaluate high-performance computing software architectures for different computing systems, such as multi-core processors, accelerators, and clusters. The course covers the basics of popular high-performance computing software architectures, including message-passing interface (MPI), OpenMP, and CUDA. The course emphasizes the practical aspects of high-performance computing software architectures, including the design and implementation of architectures, the analysis of their behavior and performance, and their application to real-world problems. Students will learn how to use high-performance computing platforms and technologies, such as HPC clusters and GPUs. Overall, this course provides students with a solid understanding of high-performance computing software architectures and their applications. By the end of the course, students will have gained practical experience in designing, implementing, and evaluating high-performance computing software architectures for various problems.

 

13. Simulation and Twin Systems for Industrial Applications

This course focuses on the application of simulation and twin systems to improve the design and operation of industrial systems. The course covers topics such as modeling and simulation of physical systems, digital twin technology, and so on. The course will also cover the use of simulation and twin systems in various industrial sectors, for example manufacturing, energy, transportation, and healthcare. Students will learn how to develop and use simulation models and twin systems to analyze and optimize complex industrial systems. Upon completion of the course, students will have gained skills and knowledge that are highly valued by employers in a range of industries.

 

14. Theoretical Computer Science for Computational Intelligence

This course focuses on the fundamental concepts and principles of theoretical computer science as they apply to computational intelligence. The course covers topics such as algorithms, complexity theory, automata theory, formal languages, and computational models. The course aims to provide students with a solid understanding of the mathematical and theoretical foundations of computational intelligence. Students will learn about different computational models, such as Turing machines, and the theoretical limits of computation, such as the halting problem. The course will also cover various algorithms and data structures used in computational intelligence, such as search algorithms, neural networks, and genetic algorithms. Students will learn how to analyze the time and space complexity of algorithms and evaluate their performance. Upon completion of the course, students will have gained the knowledge and skills necessary to solve complex computational problems, and they will be well-equipped for further study or employment in fields such as artificial intelligence, machine learning, and data science.

 

15. Optimization

This course focuses on mathematical optimization techniques for solving problems in various fields such as engineering, finance, logistics, and so on. The course covers topics such as linear programming, nonlinear programming, integer programming, dynamic programming, and convex optimization. The course aims to provide students with a deep understanding of the principles and methods of optimization so that they will be able to formulate optimization problems mathematically, apply optimization algorithms to solve them, and interpret and communicate the results effectively. Upon completion of the course, students will have gained the knowledge and skills necessary to model and solve optimization problems, and they will be well-equipped for further study or employment in real-world applications.

 

16. Mathematical Logic

This course focuses on the mathematical study of logic, which is the formal study of reasoning and inference. The course covers topics such as propositional logic, predicate logic, proof theory, set theory, and model theory. The course aims to provide students with a solid understanding of the foundational principles and techniques of mathematical logic so that they will be able to reason rigorously and systematically, and apply logic to solve problems in mathematics and computer science. Upon completion of the course, students will have gained the knowledge and skills necessary to analyze and construct rigorous arguments, and they will be well-equipped for further study or employment in fields such as mathematics and computer science.

 

17.  Numerical Analyis

This course focuses on the development and analysis of numerical methods for solving mathematical problems that cannot be solved analytically. The course covers topics such as numerical differentiation and integration, solution of linear and nonlinear equations, approximation theory, numerical optimization, and numerical solutions of differential equations. The course aims to provide students with a deep understanding of numerical methods and their applications in various fields, so that they will be able to choose appropriate numerical methods for different types of problems, implement them effectively, and analyze their accuracy and stability. Upon completion of the course, students will have gained the knowledge and skills necessary to analyze and implement numerical algorithms, and they will be well-equipped for further study or employment in fields such as applied mathematics, scientific computing, and computational science.

 

18. Natural Language Processing

This course focuses on the study of computational methods for processing and understanding human language. The course covers topics such as text preprocessing, lexical analysis, syntax and parsing, semantic analysis, discourse analysis, machine learning for NLP, and applications of NLP such as sentiment analysis and machine translation. The course aims to provide students with a deep understanding of the principles and techniques of NLP, and their applications in various fields such as machine learning. In this way, students will be able to use tools and techniques such as tokenization, part-of-speech tagging, parsing, and machine learning to process and analyze human language. Upon completion of the course, students will have gained the knowledge and skills necessary to work in fields such as natural language processing, machine learning, computational linguistics, and data science.

 

19. Computational Intelligence for Medical Imaging

This course focuses on the application of computational intelligence techniques to medical imaging, including image analysis, processing, and interpretation. The course covers topics such as image acquisition and processing, image segmentation, feature extraction and selection, classification, and computer-aided diagnosis. The course aims to provide students with a deep understanding of the principles and techniques of computational intelligence for medical imaging, and their applications in medical diagnosis and treatment. In this way, students will be able to use tools and techniques such as neural networks, fuzzy logic, genetic algorithms, and swarm intelligence to analyze and interpret medical images. Upon completion of the course, students will have gained the knowledge and skills necessary to work in fields such as medical imaging, diagnostic imaging, medical informatics, and biomedical engineering.

 

20. Computer Vision and Image Processing

This course focuses on the study of techniques for analyzing and processing images and videos. Topics include image acquisition and representation, image enhancement and restoration, feature extraction and matching, object detection and recognition, and 3D vision. The course aims to provide students with a deep understanding of computer vision and image processing techniques, and their applications in various fields such as robotics, autonomous vehicles, augmented reality, and medical imaging. In this way, students will be able to use tools and techniques such as filtering, edge detection, segmentation, feature extraction, and machine learning to process and analyze images and videos. Upon completion of the course, students will have gained the knowledge and skills necessary to work in fields such as computer vision, robotics, and image processing.

 

21. Bioinformatics

This course focuses on the application of computational methods and techniques to biological data analysis. The course covers topics such as DNA and protein sequence analysis, gene expression analysis, biological network analysis, and functional genomics. The course aims to provide students with a deep understanding of the principles and techniques of bioinformatics, and their applications in various fields such as genomics, proteomics, and drug discovery. In this way, students will be able to use tools and techniques such as sequence alignment, phylogenetic analysis, gene expression analysis, and machine learning to analyze and interpret biological data. Upon completion of the course, students will have gained the knowledge and skills necessary to work in fields such as bioinformatics, genomics, computational biology, and data science.

 

22. Computational Neuroscience

This course focuses on the study of the brain and the use of computational models to understand its function and behavior. Topics include neural coding and information processing, sensory and motor systems, learning and memory, and computational modeling of neurons and neural networks. The course aims to provide students with a deep understanding of the principles and techniques of computational neuroscience, so that they will be able to use tools and techniques such as mathematical models, simulation software, and machine learning to model and analyze neural data. Upon completion of the course, students will have gained the knowledge and skills necessary to work in fields such as neuroscience, cognitive science, artificial intelligence, and robotics.

 

23. Physics for Computation

This course focuses on the study of physics concepts and their application to computational systems. Topics include quantum mechanics, statistical mechanics, thermodynamics, and information theory. The course aims to provide students with a deep understanding of the fundamental physical principles that underpin modern computing, and their applications in various fields such as quantum computing, information processing, and cryptography. In this way, students will be able to use physics-based tools and techniques to analyze and design computational systems. Upon completion of the course, students will have gained the knowledge and skills necessary to work in fields such as quantum computing, information processing, and cryptography.