Studiare
In questa sezione è possibile reperire le informazioni riguardanti l'organizzazione pratica del corso, lo svolgimento delle attività didattiche, le opportunità formative e i contatti utili durante tutto il percorso di studi, fino al conseguimento del titolo finale.
Piano Didattico
Il piano didattico è l'elenco degli insegnamenti e delle altre attività formative che devono essere sostenute nel corso della propria carriera universitaria.
Selezionare il piano didattico in base all'anno accademico di iscrizione.
1° Anno
| Insegnamenti | Crediti | TAF | SSD |
|---|
2° Anno Sarà attivato nell'A.A. 2026/2027
| Insegnamenti | Crediti | TAF | SSD |
|---|
3° Anno Sarà attivato nell'A.A. 2027/2028
| Insegnamenti | Crediti | TAF | SSD |
|---|
| Insegnamenti | Crediti | TAF | SSD |
|---|
| Insegnamenti | Crediti | TAF | SSD |
|---|
| Insegnamenti | Crediti | TAF | SSD |
|---|
| Insegnamenti | Crediti | TAF | SSD |
|---|
Legenda | Tipo Attività Formativa (TAF)
TAF (Tipologia Attività Formativa) Tutti gli insegnamenti e le attività sono classificate in diversi tipi di attività formativa, indicati da una lettera.
Programmazione con laboratorio (2025/2026)
Codice insegnamento
4S02751
Crediti
12
Lingua di erogazione
Italiano
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Corsi Singoli
Autorizzato
L'insegnamento è organizzato come segue:
Teoria
Laboratorio
Obiettivi di apprendimento
L'insegnamento si propone fornire gli strumenti fondamentali per analizzare e risolvere problemi attraverso l'utilizzo di strumenti computazionali e, in particolare, lo sviluppo di programmi. Scopo del corso è l'apprendimento dei principi fondamentali della programmazione imperativa e ad oggetti, dei linguaggi di programmazione e l'acquisizione delle seguenti competenze: - comprensione e analisi dei problemi, la loro descrizione rigorosa per mezzo del linguaggio matematico e la definizione delle specifiche delle eventuali soluzioni; - progettazione delle soluzioni e confronto di possibili soluzioni secondo diverse metodologie; - codifica delle soluzioni per mezzo di linguaggi di programmazione sia imperativi che orientati agli oggetti; - sviluppo di soluzioni articolate per problemi di piccole e medie dimensioni per mezzo di opportuni ambienti software; - valutazione degli algoritmi, sia in termini di efficienza che di correttezza.
Prerequisiti e nozioni di base
Le conoscenze e competenze matematiche e scientifiche usualmente di norma acquisite scuola secondaria superiore.
In particolare: insiemi, funzioni, relazioni e grafici; insiemi numerici e loro proprietà fondamentali; geometria piana e rappresentazione cartesiana di elementi geometrici; rappresentazione di dati, relazioni e funzioni.
Programma
Parte I - Programmazione
Programmazione Imperativa.
- Problemi, algoritmi e programmi.
- Principi di programmazione strutturata: costanti, variabili, espressioni; istruzioni fondamentali: assegnamento, composizione sequenziale, condizionale e iterazione, raggruppamento; struttura di un semplice programma.
- I tipi di dati. Nozione generale di tipo; rappresentazione dei dati; caratterizzazione dei tipi di dati; tipi di dati astratti.
- I tipi di dati primitivi: caratteristiche, uso e problemi; tipi di dati numerici e non; tipi enumerativi.
- I tipi di dati strutturati: array e record, file, puntatori, stringhe; definizione astratta e concreta di un tipo.
- I sotto-programmi: funzioni, procedure e metodi; struttura di un sottoprogramma; passaggio dei parametri; regole di località e di visibilità; ricorsione.
Introduzione alla Programmazione Orientata agli Oggetti.
- Oggetti e classi; componenti di classe e di istanza; costruttori, campi e metodi.
- Strutture dati avanzate: rappresentazione di sequenze, vettori, matrici. caratterizzazione induttiva di tipi; definizione ricorsiva di strutture dati; realizzazione concreta in Java.
- Introduzione alla programmazione ad oggetti avanzata: estensione di classi; ereditarietà e polimorfismo; interfacce e classi astratte: introduzione.
Parte II - Algoritmi e Strutture di Dati
Introduzione all’Analisi degli algoritmi.
- Correttezza degli algoritmi: terminazione; proprietà logiche; correttezza parziale e totale rispetto alle specifiche.
- Efficienza degli algoritmi. Introduzione alla valutazione dell'efficienza degli algoritmi: prestazioni e complessità.
- Misure di tempo e spazio; costo computazionale in tempo e spazio; stime asintotiche del costo computazionale; caso peggiore e caso medio; costo ammortizzato.
- Casi di studio rilevanti.
- Algoritmi di ricerca e di ordinamento.
Tipi di Dati Astratti e Concreti.
- Sequenze statiche e dinamiche: definizione astratta; implementazione; operazioni di base.
- Sequenze, Vettori, Matrici, Insiemi: implementazione, operazioni e algoritmi.
- Strutture dinamiche e ricorsive.
- Liste: definizione astratta e implementazione; operazioni fondamentali.
- Cenni introduttivi a altre strutture dinamiche: Pile, Code, Alberi, Grafi.
Bibliografia
Modalità didattiche
L’insegnamento consiste in lezioni ed esercitazioni in aula e in laboratorio con l’utilizzo, quando necessario, di un calcolatore.
Saranno inoltre assegnate attività da svolgere autonomamente fuori dell’orario delle lezioni.
È prevista la disponibilità del tutorato.
Modalità di verifica dell'apprendimento
L’esame è suddiviso in tre parti:
- prova scritta: domande ed esercizi;
- prova pratica: sviluppo di un progetto di laboratorio;
- colloquio finale: discussione degli elaborati e domande sul programma svolto durante le lezioni.
Le prove scritta e pratica possono essere sostituite in tutto o in parte dal superamento delle prove in itinere.
Criteri di valutazione
Le prove d’esame hanno lo scopo di verificare:
- la conoscenza generale dei costrutti fondamentali della programmazione imperativa e orientata agli oggetti;
- la capacità di utilizzare efficacemente e correttamente un linguaggio di programmazione;
- la capacità di gestire il processo di risoluzione di problemi: descrizione e caratterizzazione rigorosa di problemi, progettazione della rappresentazione dei dati, progettazione e sviluppo del codice risolutivo, analisi dell’efficienza e della correttezza della soluzione.
Criteri di composizione del voto finale
Il voto finale è ottenuto come media delle valutazioni delle tre prove previste: scritta, pratica e orale.
Nota: per superare l’esame finale è necessario ottenere una valutazione positiva in ognuna delle tre prove indicate.
Lingua dell'esame
Italiano
Sustainable Development Goals - SDGs
Questa iniziativa contribuisce al perseguimento degli Obiettivi di Sviluppo Sostenibile dell'Agenda 2030 dell'ONU.Maggiori informazioni su www.univr.it/sostenibilita
