• Non ci sono risultati.

Ingegneria del Software e Programmazione ad Oggetti

Nel documento Descrizione degli insegnamenti (pagine 41-45)

CFU: 9 - SSD. ING-INF/05 Descrizione

Il corso si articola in due moduli:

Programmazione ad Oggetti: illustra i fondamenti della programmazione ad oggetti e le principali caratteristiche del linguaggio Java (Il linguaggio Java, Classi astratte, interfacce, visibilità e package, Introduzione a UML, Classi java fondamentali: input/output, eccezioni, Java Collection Framework, Alcune librerie standard: Applet, GUI, JDBC)

Ingegneria del software: illustra i principi, le tecniche, e le pratiche di un processo di sviluppo di software (Il processo di sviluppo del software, Il ciclo di vita del software, Qualità del software, Versionamento e configurazioni, Analisi e specifica dei requisiti, Progettazione: Design Pattern, Verifica e Validazione del software: test, ispezioni)

Didattica Erogativa

La didattica è organizzata in modo tale che ogni corso di studio venga erogato tre volte l’anno e ciascuna erogazione dura due mesi e mezzo. Il sistema consente sempre agli studenti di avere accesso ai contenuti ma, durante il periodo di erogazione, lo studente viene inserito in una classe in cui sono presenti al massimo 20 studenti, in cui svolgere le attività organizzate nel tempo con la guida di un tutor esperto della materia che segue i processi di apprendimento.

Questo modello di erogazione è stato adottato per consentire agli studenti di iscriversi durante tutto l’anno all’Università e di avere la possibilità di entrare nelle classi a seconda del periodo in cui si iscrivono.

Il presente corso, che fornisce 9 crediti formativi, è composto da 46 videolezioni, da vedere due volte, per un totale minimo di 92 ore di attività dello studente.

Le videolezioni trattano i seguenti argomenti:

• Lezione n. 1: Introduzione al corso • Lezione n. 2: Gli strumenti di Java

• Lezione n. 3: Programmazione ad oggetti. Scheda introduttiva • Lezione n. 4: Oggetti, classi e messaggi

• Lezione n. 5: Ereditarietà e suo uso • Lezione n. 6: Introduzione a UML

• Lezione n. 7: Un piccolo progetto software • Lezione n. 8: Usare gli oggetti

• Lezione n. 9: Oggetti in profondità

• Lezione n. 10: Oggetti in profondità (II parte) • Lezione n. 11: Ereditarietà

• Lezione n. 12: Eccezioni

• Lezione n. 13: Classi Java fondamentali • Lezione n. 14: Input/Output

• Lezione n. 15: Collezioni di dati • Lezione n. 16: Gestione del testo

• Lezione n. 17: Interfacce grafiche. Scheda introduttiva • Lezione n. 18: Contenitori e contenuto

• Lezione n. 19: Rispondere agli eventi • Lezione n. 20: Gestire la disposizione • Lezione n. 21: Applet

• Lezione n. 22: Integrazione con le basi di dati. Scheda introduttiva

• Lezione n. 23: SQL e Java

• Lezione n. 24: Accedere alle tabelle • Lezione n. 25: Il ruolo del driver • Lezione n. 26: Le transazioni

• Lezione n. 27: Il processo di sviluppo del software • Lezione n. 28: Versioni e configurazioni

• Lezione n. 29: Strumenti per controllo versioni • Lezione n. 30: Analisi e specifica dei requisiti • Lezione n. 31: Diagrammi di flusso dei dati • Lezione n. 32: Specifiche a stati finiti • Lezione n. 33: I design pattern

• Lezione n. 34: Alcuni pattern elementari • Lezione n. 35: Pattern creazionali • Lezione n. 36: Pattern strutturali I • Lezione n. 37: Pattern strutturali II • Lezione n. 38: Pattern comportamentali I • Lezione n. 39: Pattern comportamentali II • Lezione n. 40: Controllo qualità

• Lezione n. 41: Processo di test • Lezione n. 42: Test funzionale • Lezione n. 43: Test combinatorio • Lezione n. 44: Test basato su modelli • Lezione n. 45: Test strutturale • Lezione n. 46: Ispezione

Per ognuno dei macroargomenti del corso saranno disponibili esercizi di autovalutazione che prevedono lo sviluppo tecniche di calcolo e di risoluzione di problemi che consentiranno agli studenti di esercitarsi e di mettere in pratica le conoscenze erogate attraverso le videolezioni e le aule virtuali. Si stima che gli esercizi, corredati di soluzione o provvisti di sistema di correzione automatica del risultato, richiederanno circa 5 ore di impegno dello studente.

Didattica Interattiva

La didattica interattiva avviene sia in modo sincronico che diacronico.

Il Docente/Tutor proporrà ogni settimana argomenti di discussione su forum e wiki, riguardanti approfondimenti sui contenuti del corso trattati in quella settimana, collegati ai macroargomenti delle videolezioni. Si stima che tali attività richiederanno circa 4 ore di impegno dello studente.

Inoltre suddivise per gruppi di 20 studenti ciascuno, saranno svolte aule virtuali interattive (appuntamenti sincroni, in audio-video streaming su piattaforma Web, con gli studenti collegati che possono interagire via chat testuale). Per la valutazione degli esercizi e la relativa correzione, saranno svolte aule virtuali specifiche con gruppi di studenti collegate ai macroargomenti di cui è composto il corso. Si stima che l’impegno dello studente sarà di circa 3 ore.

Per quanto concerne la didattica in situazione, durante l’erogazione il tutor pone nuovi problemi, non discussi nelle videolezioni e non risolvibili direttamente con i metodi esposti nelle esercitazioni, affidando agli studenti il compito di risolverli (singolarmente o in modo collaborativo) in autonomia, pur sotto la guida del tutor. I problemi possono essere posti a singoli studenti o condivisi con l'intera classe attraverso diversi strumenti e/o ambienti di apprendimento della piattaforma: laboratori virtuali, discussione negli incontri di chat con l'intera classe, invio per email al singolo studente o ad un gruppo, analisi e attività

collaborative nel forum con la comunità di studenti. Queste attività stimolano sia il Learning-by-doing sia il Problem Based Learning nel quale lo studente sviluppa e sperimenta in autonomia l'apprendimento su casi pratici di studio e/o in situazioni esperienziali. Ogni settimana, infine, il Docente/Tutor pianifica un'ora di chat in cui fornirà spiegazione aggiuntive sugli argomenti del corso, raccoglierà e risponderà in tempo reale alle domande degli studenti, commenterà gli esercizi proposti e la struttura delle prove di verifica. Le chat saranno pianificate ad inizio erogazione e la loro calendarizzazione sarà disponibile nell'Agenda del Corso. Nel complesso queste attività richiedono circa 8 ore di impegno dello studente.

Autoapprendimento

Sono inoltre presenti materiali didattici collegati agli argomenti delle video lezioni, che si compongono di testi di approfondimento teorico, datasheets e dispense; tali materiali didattici compongono lo studio individuale dello studente di circa 101 ore.

In dettaglio, i materiali didattici collegati:

- Slide del corso, le slide utilizzate dai docenti autori delle videolezioni, che gli studenti potranno scaricare e stampare per crearsi il proprio "quaderno del corso"

- Libri&Articoli: testi, saggi, schede descrittive, approfondimenti,

- Bibliografia: riferimenti ragionati a fonti bibliografiche associati ai singoli argomenti di ogni videolezione

- Sitografia: selezioni ragionate di Siti web collegate agli argomenti della videolezione Testi d'esame:

I testi d'esame per il corso di Ingegneria del Software e Programmazione ad Oggetti sono:

Concetti di informatica e fondamenti di Java. Cay Horstmann. Quinta ed., 2010, Apogeo Editore.

Design Patterns: elementi per il riuso di software a oggetti. Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Prima ed. italiana, 2002, Pearson Education Italia.

Fundamentals of Software Engineering. Carlo Ghezzi, Mehdi Jazayeri, Dino Mandrioli. Second Edition, 2002, Paerson Education.

Software Testing and Analysis: Process, Principles, and Techniques. Mauro Pezzè and Michal Young, 2008, John Wiley & Sons.

Materiali di supporto e pianificazione dell’apprendimento

In dettaglio, i materiali di supporto e di pianificazione dell’apprendimento collegati sono:

- il Programma del Corso, che contiene informazioni sulla descrizione, gli obiettivi ed i contenuti dell’insegnamento, l’individuazione dei prerequisiti necessari, il riferimento agli esercizi relativi alle videolezioni, l’indicazione dei libri di testo, le indicazioni metodologiche ed i suggerimenti per lo studio della materia

- una Mappa Concettuale dell'insegnamento, che, in formato grafico e navigabile su Web, per ognuno dei macro argomenti riporterà:

o lezioni che affrontano il macroargomento o argomenti trattati in ognuna delle lezioni

o materiali di approfondimento associati agli argomenti o cadenza e temi degli appuntamenti di tutoring online

- la Pianificazione didattica, che illustra tempi e modalità di erogazione dell'insegnamento, corrispondenza tra argomenti delle videolezioni e capitoli dei testi d'esame, argomenti principali del corso

- la Guida all'esame, che illustrerà criteri di ammissione e modalità di svolgimento dell'esame - l’Agenda, che contiene le date e gli orari di svolgimento delle attività di didattica erogativa ed

interattiva (chat, aule virtuali, ricevimenti), nonché degli esami.

Modalità di valutazione in itinere e finale

Le modalità di valutazione del corso prevedono 2 prove di verifica intermedie e un esame finale scritto. Le due prove intermedie, verranno svolte dallo studente durante l’erogazione del corso e consegnate attraverso la piattaforma UNINETTUNO. Queste saranno valutate dal Docente/Tutor e costituiscono un requisito indispensabile per l’ammissione dello studente alla prova di valutazione finale. Le prove di verifica in itinere, di respiro più ampio rispetto agli esercizi di autovalutazione, verteranno sugli argomenti del corso e saranno composte da domande a risposta aperta ed esercizi. La data limite di consegna delle prove sarà inserita nell'agenda del corso ad inizio di ogni erogazione. Lo studente è chiamato ad assegnarsi un voto al momento della consegna, voto che è "cieco" al Docente/Tutor, finché questi non completi la correzione e a sua volta assegni un voto alla prova dello studente. Questi due dati andranno quindi a popolare il grafico di valutazione dello studente presente nella schermata "Valutazioni e statistiche" del Corso. Si stima che queste prove richiederanno circa 12 ore di lavoro dello studente.

La prova di valutazione finale consiste nel rispondere a domande sugli argomenti teorici del corso e/o nella soluzione di esercizi numerici riguardanti gli aspetti più applicativi studiati. Lo studente dovrà pertanto dimostrare di aver appreso gli argomenti richiesti all’esame senza poter consultare libri o appunti.

Nel documento Descrizione degli insegnamenti (pagine 41-45)