INTRODUZIONE ALLA PROGRAMMAZIONE
- Anno accademico
- 2025/2026 Programmi anni precedenti
- Titolo corso in inglese
- INTRODUCTION TO PROGRAMMING
- Codice insegnamento
- CT0441 (AF:575996 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
Inquadramento dell'insegnamento nel percorso del corso di studio
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.
Risultati di apprendimento attesi
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.
Prerequisiti
Contenuti
- 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
Testi di riferimento
Modalità di verifica dell'apprendimento
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.
Modalità di esame
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.
Graduazione dei voti
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
Metodi didattici
L'alternanza di lezioni teoriche ed esercitazioni pratiche permette agli studenti di mettere in pratica le conoscenze acquisite e di auto-valutarsi.