Dettaglio insegnamento

PROGRAMMAZIONE 2

MF0164

Insegnamento
PROGRAMMAZIONE 2
Codice
MF0164
Anno Accademico
2023/2024
Anno regolamento
2023/2024
Corso di studio
INFORMATICA
Curriculum
000 - CORSO GENERICO
Responsabile didattico
CFU
9
Ore di lezione
72
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB - Obbligatoria
Anno
1
Periodo
Secondo Semestre
Sede
ALESSANDRIA
Lingua insegnamento
Italiano
Contenuti
Gestione di stutture dati dinamiche. Iterazione. Ricorsione. Algoritmi classici di ordinamento
Testi di riferimento
Paul Deitel, Harvey Deitel “Il linguaggio C. Fondamenti e tecniche di programmazione”. Pearson Italia, 2013 Brian W. Kernighan, Dennis M. Ritchie "Il linguaggio C. Principi di programmazione e manuale di riferimento" Pearson Italia
Obiettivi formativi
Al termine del corso, lo studente deve essere in grado, dato un problema di programmazione (per gestire la struttua dinamica lista), di individuarne un algoritmo risolutivo sia iterazione sia in ricorsione, implementarlo in linguaggio C, eseguirlo al calcolatore. Conoscenza e comprensione: programmazione in iterazione, programmazione in ricorsione, la struttura dinamica lista. Capacità di applicare conoscenza e comprensione: dato un problema inerente alla struttura dinamica lista, - definire un algoritmo iterativo che trasforma i dati di input nei dati di output, seguendo i costrutti della programmazione; - definire un algoritmo ricorsivo che trasforma i dati di input nei dati di output, seguendo i costrutti della programmazione; - scrivere al calcolatore il programma sorgente che implementa l'algoritmo, utilizzando un linguaggio di programmazione (C); - compilare, eseguire e testare tale programma al calcolatore. Autonomia di giudizio: in modo autonomo lo studente deve riuscire definire ed implementare un'algoritmo per risolvere un problema inerenti alla gestione di strutture dinamiche nel linguaggio di programmazione (C), a valutarne la complessità, e compilare ed eseguire il programma. Abilità comunicative: lo studente deve riuscire a definire un algoritmo sia in iterazione sia in ricorsione, e deve sapere presentare il suo costo espresso come complessità in tempo e spazio. Capacità di apprendimento: lo studente deve essere capace di apprendere come si definiscae un algoritmo a partire dal problema sia in iterazione sia in ricorsione, valutarne i costi (complessità in tempo e spazio) e come si implementa tale algoritmo in C.
Prerequisiti
Lo studente deve aver superato Programmazione 1
Metodi didattici
Lezioni frontali, esercitazioni in aula e in laboratorio
Altre informazioni
L'attività in laboratorio richiede una partecipazione attiva e individuale degli studenti, che in tal modo sviluppano abilità pratiche (le capacità di realizzare un programma). La partecipazione attiva permette una verifica del modo in cui gli argomenti vengono recepiti.
Modalità di verifica dell'apprendimento
- Esame scritto: Esercizi orientati a testare le capacità e le conoscenze inerenti alla programmazione iterativa e ricorsiva; - esame in laboratorio: sviluppo in laboratorio di funzioni iterative e ricorsive in linguaggio C. A discrezione del docente, l'esame può anche essere in forma di orale.
Programma esteso
- puntatori in C e loro uso per la realizzazione di liste - funzioni interattive sulla liste: - gestione di una singola lista - gestione di più liste - ricorsione: - definizione e concetti di base - simulazione di funzione ricorsive mediante record di attivazione - un esempio complesso: le torri di Hanoi - funzioni ricorsive su liste: - gestione di una singola lista - gestione di più liste - funzioni ricorsive di ordinamento: - QuickSort - MergeSort
Risultati di apprendimento attesi
Conoscenza della ricorsione, delle struct, degli algoritmi di ordinamento (ricorsivi/iterativi), del caricamento di liste e strutture dati da file, di analisi della complessità spazio/tempo su algoritmi su liste ricorsivi/iterativi
Ultimo aggiornamento:09-09-2026 00:14:31