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.

CURRICULUM TIPO:

2° Anno   Sarà attivato nell'A.A. 2026/2027

InsegnamentiCreditiTAFSSD
6
A
MAT/02
6
B
MAT/03
6
C
SECS-P/01
6
C
SECS-P/01
Lingua inglese competenza linguistica - liv. B2
6
E
-

3° Anno   Sarà attivato nell'A.A. 2027/2028

InsegnamentiCreditiTAFSSD
6
C
SECS-P/05
Prova finale
6
E
-
Sarà attivato nell'A.A. 2026/2027
InsegnamentiCreditiTAFSSD
6
A
MAT/02
6
B
MAT/03
6
C
SECS-P/01
6
C
SECS-P/01
Lingua inglese competenza linguistica - liv. B2
6
E
-
Sarà attivato nell'A.A. 2027/2028
InsegnamentiCreditiTAFSSD
6
C
SECS-P/05
Prova finale
6
E
-
Insegnamenti Crediti TAF SSD
Tra gli anni: 1°- 2°- 3°
Altre attivita' formative
6
F
-
Tra gli anni: 1°- 2°- 3°

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.




S Stage e tirocini presso imprese, enti pubblici o privati, ordini professionali

Codice insegnamento

4S02751

Crediti

12

Coordinatore

Ugo Solitro

Lingua di erogazione

Italiano

Settore Scientifico Disciplinare (SSD)

INF/01 - INFORMATICA

Corsi Singoli

Autorizzato

L'insegnamento è organizzato come segue:

Teoria

Crediti

9

Periodo

I semestre, II semestre

Docenti

Ugo Solitro

Laboratorio

Crediti

3

Periodo

I semestre, II semestre

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

Visualizza la bibliografia con Leganto, strumento che il Sistema Bibliotecario mette a disposizione per recuperare i testi in programma d'esame in modo semplice e innovativo.

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.

Le/gli studentesse/studenti con disabilità o disturbi specifici di apprendimento (DSA), che intendano richiedere l'adattamento della prova d'esame, devono seguire le indicazioni riportate QUI

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