ALGORITMI E STRUTTURE DATI

GIUSEPPE D'ANIELLO ALGORITMI E STRUTTURE DATI

0612800008
DIPARTIMENTO DI INGEGNERIA DELL'INFORMAZIONE ED ELETTRICA E MATEMATICA APPLICATA
CORSO DI LAUREA
INGEGNERIA DELL'INFORMAZIONE PER LA MEDICINA DIGITALE
2024/2025

OBBLIGATORIO
ANNO CORSO 2
ANNO ORDINAMENTO 2022
PRIMO SEMESTRE
CFUOREATTIVITÀ
1ALGORITMI E STRUTTURE DATI
324LEZIONE
2ALGORITMI E STRUTTURE DATI
216ESERCITAZIONE
18LABORATORIO
Obiettivi
L’INSEGNAMENTO APPROFONDISCE GLI ASPETTI RELATIVI ALLA PROGETTAZIONE E REALIZZAZIONE DI ALGORITMI, UTILIZZANDO TECNICHE ITERATIVE E RICORSIVE E VALUTANDO L’EFFICIENZA DEI PROGRAMMI OTTENUTI E LE STRUTTURE DATI FONDAMENTALI CURANDONE LA REALIZZAZIONE IN LINGUAGGIO C.

CONOSCENZE E CAPACITÀ DI COMPRENSIONE
ALGORITMI E STRUTTURE DATI FONDAMENTALI: ALGORITMI DI ORDINAMENTO E SELEZIONE, ARRAY DINAMICI, LISTE, PILE E CODE. PARADIGMI DI PROGRAMMAZIONE ITERATIVA E RICORSIVA. CONFRONTO DI ALGORITMI SULLA BASE DELL’EFFICIENZA DI MEMORIA E DI ESECUZIONE.

CONOSCENZA E CAPACITÀ DI COMPRENSIONE APPLICATE
ANALIZZARE PROBLEMI TIPICI E REALIZZARE APPLICAZIONI CHE LI RISOLVANO UTILIZZANDO ALGORITMI E STRUTTURE DATI STANDARD IN LINGUAGGIO C, VALUTANDONE L’EFFICIENZA. REALIZZARE PROGETTI SOFTWARE IN C DI PICCOLE DIMENSIONI IMPIEGANDO LA COMPILAZIONE SEPARATA.
Prerequisiti
PER IL PROFICUO RAGGIUNGIMENTO DEGLI OBIETTIVI PREFISSATI SONO RICHIESTE CONOSCENZE SULLA PROGRAMMAZIONE IN LINGUAGGIO C.
Contenuti
UNITÀ DIDATTICA 1: PUNTATORI, ALLOCAZIONE DINAMICA E STRUTTURE
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 6/4/2)
- 1 (2 ORE LEZIONE): INTRODUZIONE AL CORSO. SEMANTICA OPERAZIONALE. PUNTATORI.
- 2 (2 ORE LEZIONE): ARITMETICA DEI PUNTATORI
- 3 (2 ORE LEZIONE): ALLOCAZIONE DI MEMORIA. STRUCT
- 4 (2 ORE ESERCITAZIONE): PUNTATORI, ALLOCAZIONE DINAMICA.
- 5 (2 ORE ESERCITAZIONE): STRUCT.
- 6 (2 ORE LABORATORIO): PUNTATORI, ALLOCAZIONE DINAMICA E STRUCT
CONOSCENZE E CAPACITÀ DI COMPRENSIONE: COMPRENSIONE DEL CONCETTO DI PUNTATORE
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: SAPER UTILIZZARE I PUNTATORI, EFFETTUARE IL PASSAGGIO DEI PARAMETRI AD UNA FUNZIONE PER RIFERIMENTO, SAPER DEFINIRE E UTILIZZARE LE STRUTTURE, SAPER ALLOCARE DINAMICAMENTE LE STRUTTURE

UNITÀ DIDATTICA 2: RICORSIONE
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 4/4/0)
- 7 (2 ORE LEZIONE): INTRODUZIONE ALLA RICORSIONE
- 8 (2 ORE LEZIONE): USO DEGLI ALGORITMI DI RICORSIONE
- 9 (2 ORE ESERCITAZIONE): RICORSIONE, ESERCIZI DI BASE
- 10 (2 ORE ESERCITAZIONE): RICORSIONE, ESERCIZI AVANZATI.
CONOSCENZE E CAPACITÀ DI COMPRENSIONE: CONOSCERE LA RICORSIONE
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: SAPER PROGETTARE E REALIZZARE UNA FUNZIONE RICORSIVA

UNITÀ DIDATTICA 3: ALGORITMI E STRUTTURE DATI DI BASE
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 4/4/2)
- 11 (2 ORE LEZIONE): ALGORITMI DI BASE. ALGORITMI DI RICERCA - RICERCA LINEARE, BINARY SEARCH - MINIMO E MASSIMO
- 12 (2 ORE LEZIONE): STRUTTURE DATI DI BASE: ARRAY DINAMICO, PILA, CODA
- 13 (2 ORE ESERCITAZIONE): ALGORITMI DI BASE
- 14 (2 ORE ESERCITAZIONE): STRUTTURE DATI DI BASE
- 15 (2 ORE LABORATORIO): ALGORITMI E STRUTTURE DATI DI BASE
CONOSCENZE E CAPACITÀ DI COMPRENSIONE: CONOSCERE GLI ALGORITMI DI BASE PER LA RICERCA E LE STRUTTURE DATI DI BASE (ARRAY DINAMICO, PILA, CODA)
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: SAPER UTILIZZARE LE STRUTTURE DATI DI BASE DI CUI SOPRA; SAPER APPLICARE GLI ALGORITMI DI RICERCA E DI RICERCA MINIMO E MASSIMO ALLE STRUTTURE DATI NOTE; ESSERE IN GRADO DI SCEGLIERE LA STRUTTURA DATI DA UTILIZZARE DATO UNO SPECIFICO PROBLEMA

UNITÀ DIDATTICA 4: ALGORITMI E STRUTTURE DATI DI BASE (PARTE 2)
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 4/2/0)
- 16 (2 ORE LEZIONE): COMPLESSITÀ COMPUTAZIONALE
- 17 (2 ORE LEZIONE): ALGORITMI DI ORDINAMENTO - SELECTION SORT, INSERTION SORT, BUBBLE SORT, MERGE SORT
- 18 (2 ORE ESERCITAZIONE): ALGORITMI DI ORDINAMENTO; TEMPO DI ESECUZIONE DEGLI ALGORITMI
CONOSCENZE E CAPACITÀ DI COMPRENSIONE: CONOSCERE IL CONCETTO DI COMPLESSITÀ COMPUTAZIONALE E GLI ALGORITMI DI ORDINAMENTO
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: ESSERE IN GRADO DI CALCOLARE LA COMPLESSITÀ COMPUTAZIONALE DI UN ALGORITMO, SIA NELLA VERSIONE ITERATIVA CHE RICORSIVA; ESSERE IN GRADO DI UTILIZZARE GLI ALGORITMI DI ORDINAMENTO SULLE VARIE STRUTTURE DATI

UNITÀ DIDATTICA 5: LISTE, ALBERI E TABELLE HASH
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 6/2/4)
- 19 (2 ORE LEZIONE): LISTE. IMPLEMENTAZIONE ITERATIVA
- 20 (2 ORE LEZIONE): LISTE. IMPLEMENTAZIONE RICORSIVA
- 21 (2 ORE ESERCITAZIONE): LISTE
- 22 (2 ORE LABORATORIO): LISTE
- 23 (2 ORE LEZIONE): INTRODUZIONE AGLI ALBERI E ALLE TABELLE HASH
- 24 (2 ORE LABORATORIO): ALBERI E TABELLE HASH
CONOSCENZE E CAPACITÀ DI COMPRENSIONE: CONOSCERE LA STRUTTURA DATI LISTA E LE FUNZIONI PER LA SUA GESTIONE; CONOSCERE LE CARATTERISTICHE FONDAMENTALI DELLE STRUTTURE DATI ALBERO E TABELLA HASH.
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: ESSERE IN GRADO DI PROGETTARE E IMPLEMENTARE LE FUNZIONI, IN VERSIONE SIA ITERATIVA CHE RICORSIVA, PER LA GESTIONE DI UNA LISTA


TOTALE ORE LEZIONE/ESERCITAZIONE/LABORATORIO 24/16/8
Metodi Didattici
L’INSEGNAMENTO CONTEMPLA LEZIONI TEORICHE, ESERCITAZIONI IN AULA ED ESERCITAZIONI PRATICHE DI LABORATORIO. NELLE ESERCITAZIONI IN AULA VENGONO PROPOSTI E COMMENTATI ALGORITMI E LA RELATIVA CODIFICA IN LINGUAGGIO C, UTILIZZANDO OPPORTUNI STRUMENTI CASE. NELLE ESERCITAZIONI IN LABORATORIO GLI STUDENTI SVOLGONO LE PRECEDENTI ATTIVITÀ IN AUTONOMIA SULLA BASE DELLE SPECIFICHE FORNITE DAL DOCENTE. PER POTER SOSTENERE LA VERIFICA FINALE DEL PROFITTO E CONSEGUIRE I CFU RELATIVI ALL’ATTIVITÀ FORMATIVA, LO STUDENTE DOVRÀ AVERE FREQUENTATO ALMENO IL 70% DELLE ORE PREVISTE DI ATTIVITÀ DIDATTICA ASSISTITA.
Verifica dell'apprendimento
LA PROVA DI ESAME È FINALIZZATA A VALUTARE NEL SUO COMPLESSO: LA CONOSCENZA E LA CAPACITÀ DI COMPRENSIONE DEI CONCETTI PRESENTATI AL CORSO; LA CAPACITÀ DI APPLICARE TALI CONOSCENZE PER LA RISOLUZIONE DI PROBLEMI CHE RICHIEDONO L’UTILIZZO DI ALGORITMI E STRUTTURE DATI FONDAMENTALI, VALUTANDONE L’EFFICIENZA DI ELABORAZIONE; L’AUTONOMIA DI GIUDIZIO, LE ABILITÀ COMUNICATIVE E LA CAPACITÀ DI APPRENDERE. ESSA CONSISTE DI UNA PROVA PRATICA E DI UNA PROVA TEORICA.
LA PROVA PRATICA È TESA AD ACCERTARE LE COMPETENZE NEL REALIZZARE PROGRAMMI IN LINGUAGGIO C CHE USANO ALGORITMI (ORDINAMENTO E SELEZIONE) E STRUTTURE DATI DI BASE (PILE, CODE, LISTE), ED È REALIZZATA DIRETTAMENTE SUL SISTEMA DI ELABORAZIONE PERSONALE. SONO CONSIDERATE CAPACITÀ MINIME QUELLE DI RISOLVERE IL PROBLEMA PROPOSTO, SENZA ERRORI SINTATTICI RILEVANTI; SONO RITENUTE CAPACITÀ MASSIME QUELLA DI PERVENIRE A SOLUZIONI ALGORITMICHE CHE SIANO EFFICIENTI E CHE FACCIANO USO DELLE STRUTTURE DATI E DEGLI ALGORITMI PIÙ ADEGUATI, SIA IN VERSIONE ITERATIVA CHE RICORSIVA.
IL SUPERAMENTO DELLA PROVA PRATICA È CONDIZIONE PER ACCEDERE ALLA PROVA TEORICA CHE VERTERÀ SU TUTTI GLI ARGOMENTI DEL CORSO E LA VALUTAZIONE TERRÀ CONTO DELLE CONOSCENZE DIMOSTRATE DALLO STUDENTE E DEL GRADO DEL LORO APPROFONDIMENTO, DELLA CAPACITÀ DI APPRENDERE DIMOSTRATA, DELLA QUALITÀ DELL’ESPOSIZIONE.
AI FINI DEL VOTO FINALE, ESPRESSO IN TRENTESIMI, LA PROVA PRATICA CONTRIBUISCE PER IL 60% E LA PROVA TEORICA PER IL 40%. LA LODE PUÒ ESSERE ATTRIBUITA AGLI STUDENTI CHE DIMOSTRINO UNA OTTIMA CAPACITÀ DI ANALISI E DI PROGETTO DI ALGORITMI E STRUTTURE DATI.
Testi
P. FOGGIA, M. VENTO, “ALGORITMI E STRUTTURE DATI: ASTRAZIONE, PROGETTO E REALIZZAZIONE”, MCGRAW-HILL.
Altre Informazioni
L'INSEGNAMENTO E' EROGATO IN ITALIANO
Orari Lezioni

  BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2024-11-18]