INTRODUZIONE ALLA PROGRAMMAZIONE

Anno accademico
2025/2026 Programmi anni precedenti
Titolo corso in inglese
INTRODUCTION TO PROGRAMMING
Codice insegnamento
CT0441 (AF:575995 AR:323104)
Lingua di insegnamento
Italiano
Modalità
In presenza
Crediti formativi universitari
6
Livello laurea
Laurea
Settore scientifico disciplinare
INF/01
Periodo
I 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à media.

Lo studente acquisirà conoscenza e comprensione dei principi fondanti dell'informatica, relativamente a linguaggi imperativi e algoritmi di base.
In particolare acquisirà la capacità di usare un linguaggio di programmazione come strumento metodologicamente rigoroso per modellare problemi e formalizzarne le soluzioni.
Al termine del corso lo studente dovrà essere in grado di progettare, sviluppare, compilare ed eseguire programmi in linguaggio C su piattaforma Unix-like. In particolare dovrà saper:
i) conoscere gli elementi del linguaggio di programmazione C; comprendere, saper simulare frammenti di codice e saperne verificare l'esecuzione con opportuni casi di test.
ii) saper formalizzare problemi di media complessità, individuandone le regole che lo caratterizzano; progettare e implementare uno o più algoritmi che risolvono il problema dato.
iii) saper strutturare soluzioni moderatamente complesse, individuandone i sotto problemi, relative interazioni, strutture dati comuni e soluzioni algoritmiche.
iv) saper utilizzare la terminologia dei linguaggi di programmazione imperativi; saper documentare il codice.
v) saper lavorare in autonomia con la documentazione di riferimento del linguaggio di programmazione C.
Non è richiesto alcun prerequisito
- Introduzione al linguaggio di programmazione C
- Variabili e tipi fondamentali.
- Flusso del controllo
- Funzioni
- Array, puntatori e stringhe
- Computazione Iterativa e Computazione Ricorsiva
- Memoria Dinamica
- Abstract Data Types
- Strategie di problem solving
Paul J. Deitel, Harvey M. Deitel. Il linguaggio C. Fondamenti e tecniche di programmazione. 8/Ed. Pearson. 2016.
L'esame consiste in una prova scritta ed un progetto finale. Per superare l'esame, lo studente dovrà ottenere un voto sufficiente in entrambe le modalità di valutazione.

Descrizione della prova scritta:

La prova scritta è composta da domande a risposta multipla e brevi esercizi, che valutano rispettivamente il raggiungimento dei risultati di apprendimento i) e ii). Gli esercizi richiedono la scrittura di brevi frammenti di codice.


Progetto finale:

Il progetto finale valuta il raggiungimento dei risultati di apprendimento iii) iv) e v).
La prova consiste nello sviluppo di una soluzione ad un problema moderatamente complesso che richiede l'implementazione completa di un programma, l'integrazione di diverse funzioni semplici e la definizione di opportune strutture dati.
Lo studente dovrà consegnare il codice e una breve relazione di accompagnamento e discutere il progetto con il docente.

La gradazione del voto è determinata da 70% prova scritta e 30% progetto finale.
scritto e orale

Il/la docente ha il dovere di vigilare affinché siano rispettate le regole di autenticità e originalità delle prove d'esame. Di conseguenza, nei casi in cui vi sia il sospetto di un comportamento irregolare, l'esame può prevedere un ulteriore approfondimento, contestuale alla prova d'esame, che potrà essere realizzato anche in modalità differente rispetto alle modalità sopra riportate.

La gradazione del voto è determinata da 70% prova scritta e 30% progetto finale.

28-30L: saper implementare/modificare strutture dati astratte quali liste, code, etc. saper progettare e implementare soluzioni ricorsive
22-27: conoscere la gestione della memoria dinamica, saper implementare/gestire la ricerca in array e liste, informazione con tipi struct, array di array, manipolazione delle stringhe, operazioni base su strutture dati astratte
18-21: conoscenza dello scoping delle variabili, saper iterare lungo uno o più array, gestire loop annidati, utilizzare i puntatori

Lezioni frontali ed esercitazioni.
L'alternanza di lezioni teoriche ed esercitazioni pratiche permette agli studenti di mettere in pratica le conoscenze acquisite e di auto-valutarsi.
Programma definitivo.
Data ultima modifica programma: 29/09/2025