INFORMATICA GENERALE

Obiettivi formativi

Obiettivi generali Acquisire conoscenze di base relativamente al progetto di algoritmi di base, iterativi e ricorsivi, ed alla valutazione della loro efficienza computazionale. Obiettivi specifici Conoscenza e comprensione: Al termine del corso gli studenti conosceranno le metodologie di base per la progettazione e l'analisi di algoritmi iterativi e ricorsivi, le principali strutture dati, alcuni modi per scandire tali strutture, i principali algoritmi di ordinamento e le implementazioni più elementari dei dizionari. Avanno una buona conoscenza del linguaggio C, compresi aspetti avanzati come allocazione dinamica di memoria, aritmetica dei puntatori e compilazione separata dei programmi. Applicare conoscenza e comprensione: Al termine del corso gli studenti avranno acquisito familiarità con le principali strutture dati di base, in particolare quelle che implementano i dizionari. Sapranno spiegarne gli algoritmi e analizzarne la complessità, evidenziando come le prestazioni dipendano dalla struttura dati utilizzata. Saranno in grado di progettare nuove strutture dati e i relativi algoritmi, rielaborando quelli esistenti; sapranno spiegare i principali algoritmi di ordinamento, illustrando le strategie di progetto sottostanti e le relative analisi di complessità; saranno in grado di confrontare i comportamenti asintotici dei tempi di esecuzione degli algoritmi studiati; saranno in grado di progettare soluzioni ricorsive di problemi e di analizzare asintoticamente gli algoritmi risultanti. Sapranno infine implementare gli algoritmi e le strutture dati apprese in linguaggio C, con attenzione anche all’analisi di correttezza, alla chiarezza e all’efficienza concreta dei programmi. Capacità critiche e di giudizio: Lo studente avrà le basi per analizzare la qualità di un algoritmo e delle relative strutture dati, sia dal punto di vista della effettiva risoluzione del problema che da quello della efficienza computazionale con la quale il problema viene risolto. Capacità comunicative: Lo studente acquisirà la capacità di esporre in modo chiaro ed organizzato le proprie conoscenze, capacità che verrà verificata sia mediante i quesiti presentati nelle prove scritte che durante la prova orale. Lo studente sarà in grado di esprimere un’idea algoritmica in modo rigoroso sia ad alto livello, tramite l’uso dello pseudocodice, che in linguaggio C. Capacità di apprendimento: Le conoscenze acquisite permetteranno allo studente, una volta concluso il ciclo di studi, di affrontare lo studio, individuale o previsto nell’ambito di un corso di laurea magistrale, di tecniche algoritmiche, di strutture dati più avanzate e di metodologie avanzate di programmazione.

Canale 1
IVANO SALVO Scheda docente
ADOLFO PIPERNO Scheda docente

Programmi - Frequenza - Esami

Programma
Linguaggio C: Principi di buona strutturazione dei programmi (programmazione strutturata, sviluppo di programmi corretti seguendo una metodologia top-down strutturando i programmi con utilizzo di funzioni). [5 ore] Richiamo di nozioni elementari del linguaggio C: costrutti iterativi e funzioni, vettori e strutture. [12 ore] Ricorsione in C. [5 ore] Puntatori e allocazione dinamica di memoria. Liste e alberi binari.[8 ore]
Prerequisiti
Per il modulo relativo all'insegnamento del linguaggio C, nessuno
Testi di riferimento
Testo di riferimento: T. H. Cormen, Charles E. Leiserson, Ronald L. Rivest: Introduction to algorithms, The MIT Press Sarà cura dei docenti distribuire materiale didattico sotto forma di dispense e programmi di esempio scritti in linguaggio C.
Modalità insegnamento
Alla didattica frontale, articolata in lezioni per circa il 70% delle ore ed in esercitazioni per il restante 30%, si affianca una attività di tutoraggio in laboratorio, non obbligatoria, durante la quale gli studenti possono sviluppare programmi in autonomia usufruendo del supporto di un tutore.
Frequenza
Non obbligatoria
Modalità di esame
L’esame mira a valutare l’apprendimento tramite una prova scritta (consistente nella risoluzione di problemi dello stesso tipo di quelli svolti nelle esercitazioni), un progetto (consistente nella scrittura e nella esecuzione di programmi C di varia difficoltà) e una prova orale (a richiesta dello studente) di discussione della prova scritta. La prova scritta avrà una durata di circa due ore, e può essere sostituita da due prove intermedie, entrambe della durata di due ore, la prima delle quali si svolgerà a metà corso e la seconda immediatamente dopo la fine del corso.
Bibliografia
Nessuna
Modalità di erogazione
Lezioni frontali
Canale 2
ALESSANDRO PANCONESI Scheda docente
  • Codice insegnamento1032750
  • Anno accademico2025/2026
  • CorsoMatematica
  • CurriculumGenerale
  • Anno2º anno
  • Semestre1º semestre
  • SSDINF/01
  • CFU9
  • Ambito disciplinareAttività formative affini o integrative