mail unicampaniaunicampania webcerca

    Beniamino DI MARTINO

    Insegnamento di ADVANCED SOFTWARE ENGINEERING AND MACHINE LEARNING

    Corso di laurea magistrale in INGEGNERIA INFORMATICA

    SSD: ING-INF/05

    CFU: 12,00

    ORE PER UNITÀ DIDATTICA: 96,00

    Periodo di Erogazione: Secondo Semestre

    Italiano

    Lingua di insegnamento

    ITALIANO

    Contenuti

    Approfondimento su argomenti di Ingegneria del Software, in particolare metodologie Agili. Metodologie di sviluppo a Microservizi e uso dei Container.
    Introduzione al Machine Learning con approfondimenti sulle principali tecniche di Classificazione e Regressione. Reti neurali e cenni sul Deep Learning

    Testi di riferimento

    Hands-On Machine Learning with Scikit-Learn, Keras, and Tensorflow: Concepts, Tools, and Techniques to Build Intelligent Systems, Aurélien Géron

    Obiettivi formativi

    Conoscenza approfondita delle metodologie agili di Ingegneria del Software, capacità di sviluppare in maniera critica progetti software complessi.
    Applicare tecniche di Machine Learning allo studio di dataset di natura diversa, conoscenza dei principali algoritmi di classificazione e regressione. Capacità di applicazione di tecniche basate su reti neurali e Deep Learning.

    Prerequisiti

    Conoscenza di base del linguaggio Python
    Conoscenze di base di Ingegneria del Software

    Metodologie didattiche

    Didattica frontale con presentazione di argomenti teorici
    Esercitazioni pratiche al calcolatore

    Metodi di valutazione

    La verifica finale verte sulla discussione di un elaborato, prodotto dagli studenti sulla base di assignmet che coprono tutti gli argomenti del corso.

    Programma del corso

    Modelli di Processo per lo Sviluppo del Software.
    Modelli Agili (SCRUM, XP).
    Modello Unified Process.
    Modello Dev-Ops.
    Modello Test Driven Dev.
    Requirement Engineering
    OOAD - Object Oriented Analysis and Design with UML and UP.
    Design Patterns.
    Architetture Software.
    Service Oriented Architecture:
    Architettura SOA
    Web Services: WSDL UDDI, SOAP, REST.
    Api-gateway e Api-management: OpenAPI (Swagger) vs GraphQL
    Microservizi.
    Architetture a Microservizi
    Tecniche di Deployment di Applicazioni a Microservizi (intro a containers)
    Strategie di Migrazione - Soluzione lift & shift
    Microservizi per la realizzazione del modello DevOps
    Componenti a supporto delle architetture a microservizi: Logging,Transaction tracing, Monitoring (ELK Stack: Elastisearch, Logstash,Kibana)"
    Business Processes.
    Analisi del Software e Reverse Engineering.
    Machine Learning per la Software Engineering.

    Tipologie di Learning: Supervised, Unsupervised; Batch, Incrementale; Reinforcement Learning.
    Valutazione delle Prestazioni: Funzioni Obiettivo; Parametri ed IperParametri; Tuning; KPIs; Training, Validation e Test; Convergenza, Generalizzazione ed Overfitting.
    Classificazione: Classificatore Bayesiano, Support Vector Machines, K-Nearest Neighbor, Decision Tree.
    Tecniche di Ensemble: Random Forest
    Regressione lineare, polinomiale, Lasso e Ridge.
    Clustering: K-means, clustering gerarchico.
    Tecniche di Riduzione della Dimensionalità: Principal Component Analysis, Linear Discriminant Analysis
    Neural Networks: Hopfield, Multilayers con Backpropagation; Deep Learning: Reti Convolutive e Ricorrenti, le reti LSTM.
    Word Embedding.

    English

    Teaching language

    Italian

    facebook logoinstagram buttonyoutube logotypelinkedin logotype