CODICE 101810 ANNO ACCADEMICO 2025/2026 CFU 9 cfu anno 2 COMPUTER SCIENCE 10852 (LM-18) - GENOVA SETTORE SCIENTIFICO DISCIPLINARE INF/01 LINGUA Inglese SEDE GENOVA PERIODO 1° Semestre MATERIALE DIDATTICO AULAWEB PRESENTAZIONE Questo insegnamento mira a far applicare studenti/studentesse le tecnologie e i concetti acquisiti in altri corsi, attraverso lo sviluppo di un progetto software realistico, seguendo un modello di processo di sviluppo specifico. Per questa ragione se ne consiglia la partecipazione solo a chi che ha già completato almeno gli esami degli insegnamenti obbligatori del primo anno. La partecipazione attiva al progetto favorirà lo sviluppo del pensiero critico, l'autonomia nell'apprendimento continuo, la capacità di problem solving e l'acquisizione di competenze trasversali essenziali, quali il lavoro di gruppo, la comunicazione efficace e la gestione del tempo. OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI Acquiring experience of a realistic team development effort that follows a given methodology and harnesses different technologies for the implementation of a specific product. OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO Alla fine dell'insegnamento, gli studenti/le studentesse, avendo lavorato diligentemente, saranno in grado di: Conoscenza e Comprensione: Comprendere le sinergie tra le competenze e conoscenze nello sviluppo di sistemi software acquisite nei precedenti corsi di laurea e negli altri insegnamenti della laurea magistrale in Computer Science. Comprendere i vari passi di uno sviluppo completo di un progetto software, seguendo un processo specifico. Comprendere l'importanza dell'esperienza dell'utente e delle metodologie per testare la qualità di un sistema dal punto di vista degli utenti finali. Capacità di Applicare Conoscenza e Comprensione: Applicare un metodo di sviluppo agile (es. Scrum) e utilizzare diverse pratiche agili per adattare il processo al progetto specifico. Partecipare come membri efficaci di un team di sviluppo software, mettendo in pratica esperienze concrete. Progettare e sviluppare un prodotto software specifico utilizzando le tecnologie pertinenti. Autonomia di Giudizio: Valutare criticamente i problemi e proporre soluzioni in contesti di innovazione e processi creativi in evoluzione. Dimostrare autonomia decisionale e attitudine collaborativa nella gestione di risorse umane e materiali e nel coordinamento delle attività. Gestire l'incertezza e la complessità, negoziare e risolvere i conflitti all'interno del team. Capacità di Apprendimento: Organizzare e valutare il proprio apprendimento continuo, identificando le proprie necessità e modalità di sviluppo delle competenze. Utilizzare fonti e ausili di varia natura per l'apprendimento autonomo, elaborare e valutare criticamente le informazioni. Individuare e perseguire obiettivi di apprendimento personali, ricercando supporto se necessario. PREREQUISITI Per una proficua partecipazione al corso, è necessario possedere conoscenze di base relative a: Programmazione orientata agli oggetti. Database relazionali e loro progettazione. Sviluppo web e sviluppo mobile. Tecnologie IoT Problemi di sicurezza di base. Progettazione di interfacce utente. Ingegneria del software (terminologia e principali attività di sviluppo). Testing. Sistemi distribuiti. Oltre alle conoscenze teoriche, sono richieste anche comprovate competenze pratiche. MODALITA' DIDATTICHE L'insegnamento sarà erogato prevalentemente attraverso la modalità laboratoriale, centrata sullo sviluppo del progetto. Lezioni frontali introdurranno i concetti chiave della metodologia Scrum e dell'User Experience. La maggior parte dell'impegno degli studenti/studentesse sarà dedicata al lavoro di progetto, che rappresenta il contesto principale per la comprensione approfondita e l'applicazione pratica della metodologia di sviluppo. L'attività progettuale sarà costantemente seguita e supervisionata dai docenti. Gli studenti/Le studentesse sono incoraggiati all'apprendimento autonomo delle tecnologie necessarie per il progetto, basandosi sulla familiarità con ambienti di programmazione orientata agli oggetti, gestione di database e sviluppo web. Saranno inoltre fornite indicazioni e supporto per la condivisione delle conoscenze all'interno del team. PROGRAMMA/CONTENUTO L'insegnamento tratterà i seguenti contenuti: Metodologie Agili: Introduzione ai principi e alle pratiche di Scrum (uno dei metodi di sviluppo agili più diffusi), e integrazione con altre pratiche agili per l'adattamento del processo al progetto specifico. User Experience (UX): Principi, pratiche e modelli di progettazione e valutazione UX. Tecnologie Specifiche del Progetto: A seconda dell'argomento del progetto, gli studenti saranno guidati nell'apprendimento autonomo di tecnologie pertinenti e nella successiva condivisione delle conoscenze acquisite all'interno del team di sviluppo. TESTI/BIBLIOGRAFIA La bibliografia consigliata, composta prevalentemente da risorse liberamente accessibili in rete, sarà indicata e discussa durante le lezioni e resa disponibile sulla pagina AulaWeb dell'insegnamento. DOCENTI E COMMISSIONI MAURA CERIOLI Ricevimento: Su appuntamento o via mail. MARINA RIBAUDO Ricevimento: Gli studenti/le studentesse possono contattare la docente via e-mail. LEZIONI INIZIO LEZIONI In accordo con il calendario didattico approvato dal Consiglio dei Corsi di Studio in Informatica: https://corsi.unige.it/corsi/10852/studenti-orario Orari delle lezioni L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy ESAMI MODALITA' D'ESAME La valutazione finale terrà conto in modo sostanziale delle attività svolte durante il semestre, includendo i risultati di alcuni quiz, la partecipazione allo sviluppo del progetto, il lavoro di gruppo e i contributi tecnici individuali. Una breve prova orale concluderà il processo di valutazione al termine dell'insegnamento. MODALITA' DI ACCERTAMENTO L'accertamento dei risultati di apprendimento avverrà attraverso le seguenti modalità: Osservazione in itinere: La valutazione delle conoscenze avverrà mediante quiz dedicati ai singoli argomenti del programma, organizzati prima che gli studenti debbano metterle in atto per le attività laboratoriali, in modo da aiutare gli studenti ad acquisire consapevolezza di eventuali carenze La valutazione delle competenze trasversali (es. problem solving, autonomia, collaborazione) e della comprensione del processo di sviluppo avverrà tramite l'osservazione dell'insegnante durante il lavoro di progetto. Valutazione del progetto finale: La qualità complessiva del prodotto software e l'aderenza al processo di sviluppo adottato indicheranno le capacità tecniche e metodologiche del team. Prova orale finale: L'esame orale integrerà la valutazione in itinere, consentendo di approfondire sia le competenze acquisite non pienamente emerse durante lo sviluppo del progetto che la misura dei contributi individuali allo sforzo del team. ALTRE INFORMAZIONI Per ulteriori informazioni, consultare il modulo Aulaweb dell'insegnamento o contattare il docente. OpenBadge PRO3 - Soft skills - Sociale avanzato 1 - A PRO3 - Soft skills - Personale avanzato 1 - A PRO3 - Soft skills - Alfabetica avanzato 1 - A PRO3 - Soft skills - Creazione progettuale avanzato 1 - A PRO3 - Soft skills - Gestione progettuale base 1 - A PRO3 - Soft skills - Imparare a imparare avanzato 1 - A