Dettaglio insegnamento

PARADIGMI DI PROGRAMMAZIONE

MF0364

Insegnamento
PARADIGMI DI PROGRAMMAZIONE
Codice
MF0364
Anno Accademico
2026/2027
Anno regolamento
2025/2026
Corso di studio
INFORMATICA
Curriculum
000 - CORSO GENERICO
Responsabile didattico
CFU
9
Ore di lezione
72
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB - Obbligatoria
Anno
2
Periodo
Primo Semestre
Sede
VERCELLI
Lingua insegnamento
Italiano
Contenuti
L'insegnamento si compone di due parti. Nella prima viene introdotta la programmazione ad oggetti e la metodologia di sviluppo di programmi basata su Test. Nella seconda parte viene introdotta la programmazione funzionale. I linguaggi usati a livello sperimentale per illustrare i due principali paradigmi di programmazione introdotti in queste lezioni sono rispettivamente Java e e Python.
Testi di riferimento
Paul J. Deitel - Harvey M. Deitel Programmare in Java, 11° edizione, Pearson.Luciano Ramalho, Fluent Python, 2nd Edition, O'ReillyMateriale fornito dai docentiTesto alternativo parte OO:Programmazione Java Claudio De Sio Cesari, Nuove Tecniche e Paradigmi, Hoepli
Obiettivi formativi
Scopo dell’insegnamento è quello di fornire alla classe, attraverso lezioni che combinano metodi di didattica erogativa e interattiva, fondamenti teorici della programmazione a oggetti e di quella funzionale. Ci si aspetta che la classe, una volta superato l'esame, sia in grado di:modellare un applicativo individuandone le componenti e il paradigma migliore per la loro descrizione;progettare ed implementare la soluzione scelta usando sia Java che Python;realizzare test;avere padronanza del Collections framework di Java;saper riconoscere e gestire i casi non standard tramite eccezioni.
Prerequisiti
Prerequisiti formali: superamento dei corsi di Programmazione 1 e 2. Prerequisiti sostanziali: padronanza dei principi della programmazione imperativa.
Metodi didattici
Lezioni che introducono i concetti teorici ed esercitazioni in laboratorio che li applicano. Nelle lezioni si affrontano gli argomenti di teoria tramite presentazioni, con esempi e alcune domande per verificare l’apprendimento della classe. Nelle esercitazioni in laboratorio la classe viene guidata nella realizzazione di semplici esercizi volti a mettere in pratica le conoscenze teoriche acquisite.
Altre informazioni
Alla classe vengono proposti esercizi settimanali (facoltativi), il cui svolgimento, iniziato in laboratorio, deve essere completato indipendentemente. Gli esercizi vengono commentati e corretti sia singolarmente che in classe. Le prove finali sono descritte nelle "modalità di verifica" e si basano su modelli di esercizi comunque visti a lezione.

Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti- disabili-e-dsa Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare i docenti titolari dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
Modalità di verifica dell'apprendimento
L'esame valuta le competenze attraverso una prova scritta obbligatoria della durata massima di due ore e una discussione di progetto orale e facoltativa della durata massima di un'ora.
La prova scritta si svolge il giorno dell'appello e si articola in un quiz con domande di difficoltà variabile corrispondenti a diversi livelli di punteggio per un totale di 28. Il massimo dei voti lo si può raggiungere se, superato lo scritto con almeno 26, si comunica al docente l'intenzione di svolgere anche un progetto in Java.

Il raggiungimento di 18-20 garantisce la sufficienza e attesta la comprensione minima della teoria dei paradigmi di programmazione funzionale e orientata agli oggetti.
Il raggiungimento di 21-23 attesta una competenza intermedia dei paradigmi di programmazione funzionale e orientata agli oggetti.
Il raggiungimento di 24-26 dimostra la capacità di applicare i paradigmi di programmazione funzionale e orientata agli oggetti
Il raggiungimento di 27-28 dimostra la capacità di applicare in modo ottimizzato i paradigmi di programmazione funzionale e orientata agli oggetti.
Il raggiungimento di 29-30 è riservato a coloro che, superata la prova scritta con un voto minimo di 26, desiderano sviluppare un progetto completo in Java da concordare con il docente.
L'eccellenza (30 e Lode) è riservata a chi, oltre al massimo dei voti nello scritto e nel progetto, discuta in sede orale in modo impeccabile dimostrando totale autonomia nella modifica e discussione critica del codice.

Per la preparazione all'esame, è indicato lo studio sistematico dei libri di testo e dei materiali didattici pubblicati sulla piattaforma DIR, svolgendo gli esercizi ed i compiti proposti in modo autonomo e consapevole. Inoltre, sulla medesima piattaforma, verranno resi disponibili esempi di prove d'esame.
Programma esteso
Paradigma OOIntroduzione alla Programmazione Orientata agli Oggetti e a Java Oggetti, classi, metodi Tipi fondamentali, strutture sintattiche per controllo di flusso, array. Tipi involucro (per tipi primitivi) e auto-boxing/unboxing Interfacce, polimorfismo, ereditarietà Programmazione parametrica Gestione di eccezioni Panoramica delle librerie di base Caratteristiche funzionali di Java 8 e 9 e nuove librerie di collezioni Sviluppo guidato dai Test Pattern di programmazione Model-View-Controller.Paradigma FunzionaleIntroduzione alla programmazione funzionale e a Python. Funzioni come valori Funzioni di ordine superiore Dati immutabili Valutazione lazy Lavorare con le Collezioni: ricorsione e riduzione
Risultati di apprendimento attesi
Conoscenza e comprensione: familiarità con i principi della programmazione ad oggetti e funzionale, le architetture modello/vista/controllore, le metodologie di testing del software. Capacità di applicare conoscenza e comprensione: abilità di progettare e realizzare un progetto usando gli strumenti della programmazione ad oggetti con il linguaggio Java e funzionale con il linguaggio Python, derivando il codice dai test. Capacità critiche e di giudizio: abilità di riconoscere 1) buone e cattive pratiche di programmazione, 2) quando un paradigma è più o meno appropriato e 3) valutare la qualità architetturale di un progetto. Capacità di comunicare quanto si è appreso: padronanza della terminologia specifica della programmazione ad oggetti e funzionale e miglioramento nell’abilità di lavoro in gruppo. Capacità di proseguire lo studio in modo autonomo: maggior facilità ad apprendere autonomamente l’utilizzo di altri linguaggi e altre librerie con strutturazione oggetti e/o funzionale.
Al fine di raggiungere le conoscenze e le competenze corrispondenti al livello minimo di sufficienza, alla classe è richiesto di conoscere e comprendere le basi della teoria dei paradigmi di programmazione funzionale e orientata agli oggetti. Per il conseguimento di un livello avanzato, è richiesto di saper applicare in modo ottimizzato i paradigmi di programmazione funzionale e orientata agli oggetti e saper sviluppare un progetto in Java.
Ultimo aggiornamento:09-09-2026 00:14:31