TESI e TIROCINI

Proposte per laureandi triennali e magistrali, delle facoltà legate al mondo dell'informatica.

Sei alla ricerca di una tesi o di un tirocinio e, al tempo stesso, vuoi iniziare a conoscere meglio il mondo del lavoro?

Ti proponiamo i seguenti ambiti sperimentali (non per tesi compilative) dove potrai metterti alla prova lavorando su casi reali utilizzando le tecnologie più innovative, ed avere il supporto dei nostri esperti.
Questa lista di proposte è in costante aggiornamento, qualora non riuscissi a trovare un titolo d'interesse, o la proposta non rispecchiasse a pieno la tua aspettativa, nessun problema, e cercheremo di trovare la soluzione più adeguata a te.


AI-Powered Code Generation: Pioneering the Future of Software Development

Sede: Torino/Padova/Silea e/o Smart Working | Durata 3-6 mesi | Scade il 31/12/2023

Contesto: L’introduzione di nuovi strumenti quali GitHub Copilot e Amazon CodeWhisperer che sfruttano le potenzialità offerte dall’Intelligenza Artificiale per la generazione automatizzata del codice sta aprendo nuovi scenari nella realizzazione di progetti software complessi.

L’esperienza di tesi proposta è volta ad esplorare questa nuova frontiera, valutando la reale efficacia nell’adozione di questo approccio.

Obiettivi: L’analisi dello stato dell’arte di questi nuovi strumenti (comparazione delle funzionalità offerte, identificazione dei punti di forza, dei margini di miglioramento etc.) costituirà lo spunto per avviare esperimenti basati su casi reali, con l’obiettivo di valutarne l’efficacia e permettendo un continuo raffronto rispetto all’approccio tradizionale alla scrittura del software. I criteri di valutazione adottati riguarderanno principalmente la velocità di sviluppo, la qualità del codice prodotto e la facilità di integrazione con le metodologie di produzione del software esistenti.

La sperimentazione sarà particolarmente focalizzata su architetture a microservizi (Java, Spring Boot) progettate per gestire processi di business complessi in ambito Insurtech: il banco di prova riguarderà l’automatizzazione di alcune fasi degli sviluppi e della quality assurance, in maniera da velocizzare il time-to-market garantendo comunque alti standard qualitativi del prodotto finale.

Sarà inoltre possibile esplorare altri aspetti riguardanti l’adozione di tali strumenti, quali le implicazioni relative alla sicurezza e alla proprietà intellettuale del codice, nonché i rischi dovuti alla possibile riduzione delle competenze tecniche e capacità creative nel processo di sviluppo del software da parte dei membri più giovani del team.

I risultati di questa ricerca potranno contribuire ad una maggiore comprensione dell’impatto dell’automazione nella generazione del codice, fornendo una solida base per l’adozione e l’integrazione di tali strumenti in contesti progettuali mission critical e caratterizzati da un alto grado di complessità ed ingegnerizzazione.

Tecnologie: GitHub Copilot, Amazon CodeWhisperer, Java, Spring Boot.

OTTIMIZZAZIONE DELLA SUPPLY CHAIN TRAMITE AI

Sede: Bari | Durata 6 mesi | Scade il 31/12/2023

Contesto: Con l’espressione Supply Chain, o catena di approvvigionamento, si indica il processo che parte dal recupero delle materie prime e termina con la consegna del prodotto finito al cliente seguendo i flussi e stoccaggio delle merci. Ottimizzare questo processo vuol dire ridurre i costi, i tempi di consegna e di trasferimento, aumentare le vendite, i profitti di ogni vendita e migliorare la brand image.

Obiettivi:

  • Realizzare un algoritmo di sourcing basato su AI
  • Studiare e apprendere le dinamiche e-commerce
  • Analizzare i risultati ottenuti dall’applicazione di questo algoritmo e indicare possibili evoluzioni future

Tecnologie:
  • Deep learning
  • Librerie per analisi dei dati e machine learning (es. SciPy per Python, Apache Spark per JAVA)

Cloud Modernization: Unleash the Power of Data with MongoDB

Sede: Torino/Silea/Padova e/o Smart Working | Durata 3-6 mesi | Scade il 31/12/2023

Contesto: L’approccio Agile è sempre più determinante nelle iniziative strategiche di innovazione digitale. In tali progetti non solo lo sviluppo del software, ma anche la modellazione e la gestione applicativa/sistemistica dei dati sono molto fluide, richiedendo velocità ed agilità nella loro continua evoluzione: il team di sviluppo ha spesso bisogno di essere quanto più indipendente e rapido nel processo di evoluzione del dato, riducendo per quanto possibile la dipendenza da team terzi non direttamente coinvolti nella progettazione e nello sviluppo applicativo, quali IT Operations, database administrator etc.
Partendo da queste premesse, l’adozione di un database non relazionale come MongoDB, specialmente in applicazioni cloud-native, costituisce un fattore determinante per migliorare le prestazioni, affidabilità e scalabilità del sistema, e per ridurre i tempi di interazione e la dipendenza da team terzi di IT operations.
In quest’ottica è spesso necessario dotarsi di un’architettura in grado di effettuare una migrazione dati da un database relazionale ad un database NoSQL come MongoDB, garantendone l’integrità.

Obiettivi: Nel corso di questa tesi si analizzerà lo stato dell’arte dei database relazionali e NoSQL (con focus particolare su MongoDB), degli strumenti e delle strategie di migrazione dati già esistenti.
Verrà inoltre progettata e realizzata un’applicazione cloud-native per gestire la migrazione dati da un database relazionale verso un database NoSQL basato su cloud come MongoDB (Database as a Service), garantendo l'integrità delle informazioni migrate. Il Front End dell'applicazione (GUI) sarà sviluppato con una tecnologia a scelta (React, Vue.js, Angular).

Tecnologie: AWS, Lambda, MongoDB, React/Vue.js/Angular

UI Test Automation: The Key to Success

Sede: Torino/Silea/Padova e/o Smart Working | Durata 3-6 mesi | Scade il 31/12/2023

Contesto: Quali sono le strategie da adottare per rilasciare un software di qualità? E quali le politiche per garantire robustezza ed affidabilità del codice? Come prevenire l’insorgere di regressioni?
Nell’ambito di un efficace Software Development Life Cycle, l’adozione di practice di Test Automation evolute, è un fattore fondamentale per rispondere a queste domande e, più in generale, è determinante per il successo di un progetto software complesso, permettendo di raggiungere elevati standard qualitativi e di accelerare, peraltro, il cosiddetto time-to-market.
In altre parole, a discapito di chi - superficialmente - sottovaluta l'importanza della Quality Assurance, il tempo dedicato alla progettazione di una solida strategia di Test Automation costituisce un preziosissimo investimento per il vostro progetto!

Obiettivi: Nel corso di questa esperienza di tesi, in prima istanza approfondirai i vantaggi della Test Automation analizzandone lo stato dell’arte. Successivamente realizzerai un progetto per testare in maniera automatica una serie di navigazioni di un Front-End su Cloud AWS. Questi test verranno integrati in una piattaforma Cloud di Continuous Integration, con possibilità di implementare strumenti di testing multi-piattaforma.

Tecnologie: AWS, Selenium, Puppeteer, UI Path

Serverless is the new Microservices: a DevOps perspective

Sede: Torino/Silea/Padova e/o Smart Working | Durata 3-6 mesi | Scade il 31/12/2023

Contesto: Ti sei mai chiesto il significato del termine Serverless? Qual è la vera accezione di questo modello e perché è il trend del momento? L’approccio Serverless consente, tra le varie cose, di ridurre i costi del business e aumentare la velocity di delivery, tuttavia richiede una gestione accorta del rilascio del codice e delle risorse fornite dal Cloud Provider. In questo scenario risulta fondamentale la realizzazione di una architettura per la gestione del Software Development Life Cycle.

Obiettivi: Lo scopo di questa tesi è di realizzare un progetto DevOps su Cloud AWS, in grado di gestire un applicativo Serverless integrato con le risorse del Cloud provider.

  • Progetterai, realizzerai e configurerai una infrastruttura Cloud adottando il paradigma Infrastructure as Code
  • Costruirai delle pipeline CI/CD per le differenti componenti dell’applicazione, integrando strumenti di Validation e Test Automation
  • Gestirai il rilascio dell’applicazione su diversi ambienti (sviluppo, test e produzione), i criteri di promozione, la strategia di rilascio (Blue Green, Canary, A/B Test, Rolling) ed eventuale rollback.

Poiché le componenti da gestire sono svariate e interconnesse tra di loro è necessario che questi singoli aspetti siano automatizzati il più possibile.
Sei curioso di approfondire gli aspetti più tecnici di un’applicazione enterprise, entrando nel dettaglio dei singoli componenti e capire come questi interagiscono fra di loro? Se sì, questa tesi è quello che stai cercando!

Tecnologie: AWS, Terraform, Jenkins

SVILUPPO AGILE DI APPLICAZIONI TRAMITE PIATTAFORME LOW-CODE

Sede: Torino/Silea/Padova e/o Smart Working | Durata 3-6 mesi | Scade il 31/12/2023

Contesto: Il cosiddetto time-to-market, ovvero il tempo che intercorre tra l’ideazione di un nuovo prodotto o servizio, la sua realizzazione e distribuzione sul mercato è un fattore di importanza vitale per le imprese. È inoltre strategico e ormai imprescindibile essere in grado di pensare e realizzare in tempi rapidi i sistemi IT in grado di veicolare e supportare queste innovazioni. La sfida è ancor più ardua per le grosse compagnie, che spesso gestiscono processi di business complicati ed hanno sistemi IT molto complessi e che, soprattutto se non hanno assimilato metodologie di lavoro di tipo agile, rischiano di essere drammaticamente frenate nella loro spinta all’innovazione.

Obiettivi: Le piattaforme low-code si pongono come risposta a questo problema, poiché offrono una visione semplificata dei sistemi e rappresentano un fattore chiave per gestire in maniera dinamica, veloce ed efficace nuovi requisiti di business. Per questo motivo tali piattaforme suscitano sempre maggior interesse e aprono nuove prospettive di innovazione in molti ambiti, in primis quello dei servizi finanziari (banche ed assicurazioni). Lo scopo di questa tesi è quello di analizzare lo stato dell’arte delle piattaforme low-code disponibili sul mercato e di sviluppare un progetto utilizzando la piattaforma PEGA (www.pega.com). Il candidato avrà l’opportunità di lavorare su alcuni casi reali provenienti dal mondo assicurativo e di acquisire esperienza con le piattaforme low-code, oltre che con i servizi RESTful, con il linguaggio di programmazione Java applicato in un contesto di tipo enterprise, con gli application server Tomcat e Wildfly.

Tecnologie: Java, Spring, PEGA, servizi RESTful, Tomcat, Wildfly

Sviluppo di un’architettura per l’integrazione di sistemi e servizi utilizzando la piattaforma Google Cloud

Sede: Torino | Durata 3-6 mesi | Scade il 30/06/2024

Contesto: Lo sviluppo di soluzioni in ambiente Cloud è diventato sempre più popolare tra le aziende negli ultimi anni. Il Cloud offre flessibilità, scalabilità, sicurezza e facilità di implementazione, fattori che lo rendono un’ottima scelta per lo sviluppo di sistemi. A tal proposito, la piattaforma Google Cloud permette di creare un’architettura di integrazione in grado di connettere diversi sistemi e servizi distribuiti, agevolando lo sviluppo di sistemi in modo rapido, efficiente, sicuro ed economico.

Obiettivi: Questa proposta di tirocinio ti permetterà di:

  • analizzare il concetto generale di API come strumento di integrazione di sistemi e servizi
  • studiare diversi prodotti presenti sulla piattaforma Google Cloud, fra cui APIGEE
  • sviluppare un caso d’uso (definizione dell’architettura ed implementazione della stessa) utilizzando le tecnologie di Google Cloud
  • analizzare le alternative Cloud di integrazione di sistemi disponibili sul mercato

Tecnologie: Tecnologie di Google Cloud

PROGRESSIVE WEB APPS

Sede: Smart Working e/o Torino | Durata 6 mesi | Scade il 31/12/2023

Contesto: Le innovazioni nella tecnologia e in particolare nella Web User Experience stanno portando alle seguenti esigenze: prestazioni, affidabilità e siti web accattivanti. Queste funzionalità sono il cuore delle soluzioni offerte dalle Progressive Web Apps (PWA). Una Progressive Web App può caricarsi istantaneamente e nascondere i problemi di rete, risponde rapidamente e senza ritardi, sembrare un’app naturale sul dispositivo ed focalizzarsi sull’esperienza dell’utente. Aiutaci a scoprire il perché le PWA sono state scelte da grandi aziende, da Instagram a Google, da Twitter a Pinterest!

Obiettivi: Lavorando con noi avrai l’occasione di:

  • Studiare un caso d’uso reale di uno dei nostri clienti in ambito assicurativo
  • Analizzare i vantaggi e gli svantaggi di questa tecnologia
  • Sviluppare un’agenda virtuale per un agente assicurativo per programmare e gestire i suoi appuntamenti. Ci aiuterai ad arricchirla di funzionalità orientate all’esperienza.

Tecnologie: Ionic, Angular, JavaScript, TypeScript

CLOUD FINANCIAL PLATFORM

Sede: Smart Working e/o Torino | Durata 6 mesi | Scade il 31/12/2023

Contesto: L’ascesa del cloud computing ha ridisegnato il modo in cui le persone pensano allo sviluppo, all’implementazione e alla manutenzione del software. Immagina di sviluppare un’applicazione software senza dover pensare a come distribuirla su una batteria di server, di quante risorse hardware hai bisogno e così via. Il cloud computing consente di implementare in maniera più veloce, flessibile e scalabile… ma non è sempre la scelta migliore!

Obiettivi: Lavorando con noi avrai l’occasione di:

  • Studiare un caso d’uso reale di uno dei nostri clienti in ambito assicurativo

  • Analizzare i vantaggi e gli svantaggi di questa tecnologia

  • Partendo da un caso reale di applicazione monolitica, reingegnerizzare l'architettura software, portandola in un ambiente cloud

Tecnologie: Microservizi, microfrontend, AWS

Scalability and Elasticity of Cloud-Based Distributed Systems

Sede: Silea/Padova | Durata 3-6 mesi | Scade il 31/12/2023

Contesto: I cloud provider moderni consentono di allocare e de allocare server nell’arco di pochi minuti. In un contesto dove il carico di lavoro nei sistemi aziendali è spesso dinamico, tale funzionalità dei cloud provider abilita un’ottimizzazione dei costi dove la quantità di risorse utilizzate si adatta al carico di lavoro rapidamente e senza causare disservizi: un sistema con questa proprietà è detto elastico.

Obiettivi: L’obiettivo è di sviluppare un sistema distribuito composto da FrontEnd, BackEnd, e database la cui capacità del sistema si adatta alla domanda ottimizzando i costi. La soluzione proposta comparerà Java nella sua versione più classica (e.g. OpenJDK) contro le versioni più moderne ottimizzate per lavorare in ambiente cloud (e.g. GraalVM), valutandone pro e contro in termini di latenze (start-up time, response time, build time) e usabilità. Il sistema verrà sviluppato in ambiente cloud AWS, ad esempio utilizzando un cluster Kubernetes e virtualizzazione Docker.

Tecnologie: Cloud AWS, Kubernetes, Docker, Spring (Native), Quarkus, GraalVM, Cloud Native Buildpacks, libera scelta sul frontend e sul database.

REALIZZAZIONE APP GESTIONALE FULL STACK IN AWS AMPLIFY

Sede: Smart Working e/o Torino/Silea/Padova | Durata 3-6 mesi | Scade il 31/12/2023

Contesto: L’adozione del cloud da parte di molte organizzazioni è ormai un dato di fatto. Molti sono i vantaggi che offre questa soluzione: dalla riduzione dei costi, alla sicurezza, alla scalabilità all’aumento di collaborazione tra i team. Sviluppare web-application in cloud è quindi un’abilità molto richiesta nel mondo lavorativo.

Obiettivi: L’obiettivo del lavoro di tesi è quello di realizzare un una web-application per la gestione interna dell’azienda e delle business-unit. L’app dovrà essere sviluppata in modalità full-stack mediante l’utilizzo di AWS Amplify e sarà composta da una base dati in cloud, un back-end con tecnologia serverless e un front-end web con tecnologia client oriented. La prima parte della tesi prevede uno studio delle tecnologie offerte da AWS e una progettazione dell’intera infrastruttura cloud. In particolare sarà necessario individuare il database più adatto (relazionale/NoSQL), individuare il framework di front-end più adatto (Vue, React, Angular etc.), progettare le API di back-end e definire lo stack tecnologico da usare per realizzarle. La seconda parte della tesi prevede la realizzazione dell’applicazione e il relativo rilascio su AWS. Il lavoro verrà organizzato in modalità agile e sarà possibile opzionalmente integrare il lavoro con adozione di Aplify Prediction per inserire funzionalità ML/AI, adozione di Amplify Analitics per il monitoraggio real time e realizzazione di App per Android/iOS.

Tecnologie: Cloud AWS. Libera scelta sul linguaggio/framework/db da utilizzare

Digital Worker per il Customer Care

DIGITAL WORKER, MACHINE LEARNING, ROBOTIC PROCESS AUTOMATION

Sede: Smart Working e/o Torino | Durata 6 mesi | Scade il 31/12/2023

Contesto: Il contesto attuale vede le organizzazioni sempre più impegnate nell’offrire un servizio di qualità ai propri clienti. Uno dei canali molto utilizzati e senza dubbio quello delle mail, dove le persone dell’ufficio del Customer Care si occupano di rispondere direttamente al cliente oppure di inoltrare la richiesta all’ufficio di competenza al fine di evaderla. Questa tesi si pone come obiettivo quello di realizzare un worker digitale che collabora con gli utenti umani nelle attività di supporto al cliente.

Obiettivi: L’obiettivo del lavoro di tesi è quello di realizzare  una soluzione in grado di:

  • leggere e classificare le mail e i relativi allegati attraverso algoritmi di machine learning
  • replicare/sostituire l’operatività dell’utente umano nella gestione delle email e dei feedback al cliente finale
  • interagire con gli utenti umani in un processo strutturato di Customer Care (Human in the loop). Si intende dare la capacità al robot di ricevere istruzioni da un operatore umano (informazioni integrative, correzioni, ...)

Oltre alla definizione degli algoritmi occorrerà implementare la parte di frontend per rendere visibile l’applicativo e dare evidenza dei modelli di ML utilizzati e di come possono nuovamente essere riaddestrati con nuove mail in ingresso.

Tecnologie: RPA, BPM, Automation Anywhere, IBM Cloud Pak for Automation, Kibana, Python

PROCESS MINING

ARTIFICIAL INTELLIGENCE, BUSINESS PROCESSES, DATA MINING & ANALYTICS

Sede: Smart Working e/o Torino, Bologna | Durata 6 mesi | Scade il 31/12/2023

Contesto: Oggi i principali processi aziendali sono implementati all’interno di applicativi digitali. Spesso però questi processi non sono efficienti e non vi è una visibilità chiara da parte degli utenti su come il processo venga effettivamente svolto e su quali siano i relativi punti critici. Gli strumenti di Process Mining elaborano i dati raccolti dalle applicazioni e, tramite l’ausilio di algoritmi intelligenti, permettono di estrapolare un prototipo di modello di processo che evidenzia i principali colli di bottiglia e spunti di automazione, da utilizzare per instaurare un ciclo virtuoso di miglioramento ed ottimizzazione dei processi stessi.

Obiettivi: L’obiettivo del lavoro di tesi è quello di:
estrapolare dai sistemi i modelli dei processi che sono eseguiti sui sistemi stessi, comprensivi di frequenza di svolgimento di ciascuna attività analizzata analizzare le performance dei processi, misurando la durata media, minima e massima di ciascuna attività e di completamento del processo end-to-end, abilitando in questo modo l’identificazione dei colli di bottiglia e delle attività critiche analizzare i costi associati ai processi tramite la definizione del modello di costo basato su durata delle attività e costo delle risorse che svolgono tali attività eseguire what-if analysis, creare simulazioni per verificare come cambiano i costi andando a modificare il processo identificare le attività candidate all’automazione.

Tecnologie: ARIS Process Mining, IBM Cloud, Blueworks Live, Automation Anywhere

DIVIDE ET IMPERA con le ARCHITETTURE A MICROSERVIZI

Sede: Smart Working e/o Torino/Silea/Padova | Durata 6 mesi | Scade il 31/12/2023

Contesto: Negli ultimi anni le architetture a microservizi si sono ampiamente affermate, tanto da essere adottate da alcuni giganti del mondo tecnologico (Netflix, Amazon, Apple etc.). Il vantaggio principale di questo tipo di architetture è quello di razionalizzare la complessità dei sistemi, organizzandoli in servizi specializzati per ambito e disaccoppiati tra loro. Ciò si traduce in una maggiore resilienza e flessibilità dell’intero sistema rispetto alle classiche architetture monolitiche. In fase di progettazione occorre affrontare alcune sfide quali la definizione della numerosità e del dimensionamento dei servizi, nonché della loro orchestrazione.

Obiettivi: I due obiettivi principali del tuo lavoro saranno:

  • Esplorare le tecniche di progettazione delle architetture a microservizi (best practises, tecnologie open source più utilizzate);
  • Progettare e sviluppare un’applicazione basata su un’architettura a microservizi da utilizzare come proof-of-technology utilizzando Docker e Spring Boot.
Nel tuo percorso sarai supportato da un team giovane che ha esperienza nell’ambito dei microservizi applicati all’Insurtech.

Tecnologie: Java, Spring Boot, Docker, Tomcat, Wildfly, servizi RESTful.

Distributed Transactions in Cloud Environments

Sede: Silea/Padova | Durata 3-6 mesi | Scade il 31/12/2023

Contesto: L’architettura a microservizi è attualmente estremamente popolare tra le aziende grazie alle sue proprietà di scalabilità e tolleranza ai guasti. Tuttavia, l’adozione di tale architettura presenta delle difficoltà. La suddivisione di un sistema monolite in più servizi, in cui ognuno incapsula i propri dati, non garantisce le proprietà A.C.I.D. di un singolo database quando una transazione coinvolge più componenti del sistema. In questo contesto, come possiamo ad esempio garantire che un particolare processo sia computato correttamente senza violazioni di integrità nei dati? Questo tipo di transazioni sono chiamate transazioni distribuite.

Obiettivi: Ricercare, implementare e comparare diversi approcci per l’esecuzione di transazioni distribuite nei moderni database (e.g. Postgres, MongoDB, DynamoDB), prestando attenzione agli impatti che tali approcci hanno su scalabilità, throughput, integrità dei dati e complessità. In particolare, si valuteranno due macro-approcci: 2-Phase Commit (2PC) e SAGA considerando i relativi pro e contro. L’implementazione avverrà in ambiente cloud AWS, ad esempio all'interno di un cluster Kubernetes con virtualizzazione Docker.

Tecnologie: Cloud AWS, database a scelta (relazionale o non), framework di backend a scelta (ad esempio Spring Boot).

Prima di candidarti prendi visione della nostra informativa sulla privacy.

Non c'è la tesi che fa per te?

Possiamo provare a costruire insieme un nuovo titolo di tesi. Avrai il supporto dei nostri esperti per scegliere le tecnologie più adeguate.