COMPUTER PROGRAMMING AND LABORATORY-2

Anno accademico
2025/2026 Programmi anni precedenti
Titolo corso in inglese
COMPUTER PROGRAMMING AND LABORATORY-2
Codice insegnamento
CT0664 (AF:573124 AR:323187)
Lingua di insegnamento
Inglese
Modalità
In presenza
Crediti formativi universitari
6 su 12 di COMPUTER PROGRAMMING AND LABORATORY
Livello laurea
Laurea
Settore scientifico disciplinare
INF/01
Periodo
II Semestre
Anno corso
1
Sede
VENEZIA
Spazio Moodle
Link allo spazio del corso
Il corso si propone di introdurre gli elementi base della programmazione imperativa per formulare soluzioni algoritmiche a problemi di complessità limitata.

Lo studente acquisirà conoscenza e comprensione dei principi fondanti dell'informatica, relativamente a linguaggi imperativi e algoritmi di base.
Acquisirà altresì comprensione della risolubilità dei problemi informatici e capacità di selezionare metodi adeguati per analisi e modellazione di base.
Conoscenza e comprensione

Il laureato o la laureata acquisisce:

- principi fondazionali dell'informatica: algoritmo, linguaggi e loro classificazione, sistema dei tipi, strutture di controllo, templates C++, containers C++;
- comprensione della fattibilità e complessità dei problemi informatici e capacità di selezionare metodi adeguati all’analisi e la modellazione;


Capacità di applicare conoscenza e comprensione

Il laureato o la laureata:
- sa usare gli strumenti fondamentali per lo sviluppo e l’adozione di semplici algoritmi e strutture dati (implementate come container C++);

- sviluppa analisi di fattibilità e complessità dei problemi informatici e sa selezionare metodi adeguati all’analisi e alla modellazione;
- sa sviluppare il software, sa eseguire debugging e sa progettare test per la verifica di correttezza del software;
- sa programmare seguendo i principi della programmazione imperativa in C++ e seguendo progetti espressi tramite formalismi definiti per la loro descrizione e progettazione.

Capacità di apprendimento
- Lo studente/studentessa deve essere in grado di consultare documentazione tecnica relativamente alle librerie utilizzate.




Elementi di base di logica. Nozioni elementari della programmazione C (assegnamento, iterazioni, sottoprogrammi). Puntatori in C.
Variabili e tipi elementari del linguaggio C++.
Puntatori e Reference in C++.
Operatori new e delete per l'allocazione e deallocazione della memoria dinamica.
Passaggio dei parametri per riferimento.
Array in C e in C++.
Stringhe in C e in C++.
Ricorsione.
Liste ed algoritmi sulle liste.
Astrazione dei tipi di dato con l'introduzione delle classi
Code, Pile
templates
Iteratori
Move/copy semantics
D.S. Malik: C++ Programming: From Problem Analysis to Program Design. Eight Ed. Cengage Learning. 2018
L'esame consiste in una prova al calcolatore seguita da una prova orale e in un progetto finale.

Descrizione della prova scritta e orale per gli studenti FULL TIME e PART TIME:
La prova scritta mira a valutare le capacità di problem solving dello studente, la conoscenza del linguaggio C++ e la capacità di codificare l’algoritmo risolutivo ideato nel linguaggio di programmazione.
Le prove scritte conterranno degli esercizi da svolgere al calcolatore in classe.
La prova orale prevede una discussione degli scritti, la verifica delle capacità di problem solving e l'accertamento delle conoscenze teoriche e delle competenze espressive. Sarà unica e svolta quando lo scritto risulterà sufficiente. Se la prova orale risulta insufficiente, lo scritto andrà ripetuto.

Il primo appello della prova scritta può essere sostituito (in modo facoltativo) da quattro test intermedi di programmazione svolti in modo individuale in classe durante le ore di esercitazione. I test si considerano superati se lo studente ha superato almeno il 60% degli esercizi contenuti in essi. Questi test (se passati) rimpiazzano esclusivamente il primo appello della prova scritta; la prova orale rimane obbligatoria per tutti.

Descrizione del progetto: il progetto mira a verificare l'abilità dello studente di applicare le conoscenze acquisite nell'ambito di un problema complesso.

Lo svolgimento del progetto è richiesto anche agli studenti part-time.
scritto e orale
La valutazione dell'esame è formulata secondo quanto segue:
- valutazione del progetto 30%: l'accuratezza dello svolgimento della traccia indicherà la valutazione
- prova orale 40%: le competenze espressive, le conoscenze teoriche, la correttezza del linguaggio e le competenze di problem solving, raggiunte secondo diverse gradazioni, concorreranno a determinare la valutazione
- prova scritta 30%: la correttezza del codice nei vari esercizi va a determinare la valutazione finale
Il materiale del corso verrà presentato attraverso lezioni frontali ed esercitazioni di laboratorio.
Il Modulo 1 del corso affronterà le tematiche da un punto di vista teorico, mentre il Modulo 2 anche da un punto di vista laboratoriale (oltre ad introdurre nuovi elementi del linguaggio). Il materiale di entrambi i moduli è oggetto dell'esame scritto e orale.
Programma definitivo.
Data ultima modifica programma: 03/03/2026