PROGRAMMAZIONE & STRUTTURE DATI

Maurizio TUCCI PROGRAMMAZIONE & STRUTTURE DATI

0512100052
DIPARTIMENTO DI INFORMATICA
CORSO DI LAUREA
INFORMATICA
2022/2023

OBBLIGATORIO
ANNO CORSO 1
ANNO ORDINAMENTO 2017
SECONDO SEMESTRE
CFUOREATTIVITÀ
648LEZIONE
324LABORATORIO


Obiettivi
CONOSCENZA E CAPACITÀ DI COMPRENSIONE
CONOSCENZA DEGLI ALGORITMI E STRUTTURE DATI FONDAMENTALI. CONOSCENZA DELLE TECNICHE DI PROGRAMMAZIONE ITERATIVA E RICORSIVA E DELLE STRUTTURE DATI STATICHE E DINAMICHE.
CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE
- ANALIZZARE PROBLEMI TIPICI E REALIZZARE APPLICAZIONI CHE LI RISOLVANO PROGETTANDO E REALIZZANDO ALGORITMI E STRUTTURE DATI IN LINGUAGGIO C. REALIZZAZIONE DI PROGETTI SOFTWARE IN C DI PICCOLE DIMENSIONI
- SELEZIONARE GLI ALGORITMI E LE STRUTTURE DATI ADEGUATE A SUPPORTARE UN’APPLICAZIONE, SULLA BASE DELLE SPECIFICHE ESIGENZE APPLICATIVE
- INDIVIDUARE APPROPRIATE SOLUZIONI ITERATIVE O RICORSIVE PER GESTIRE UNO SPECIFICO PROBLEMA DI PROGRAMMAZIONE
- COMUNICARE INFORMAZIONI, IDEE, PROBLEMI, SPIEGAZIONI RIGUARDO SEMPLICI PROBLEMI DI PROGRAMMAZIONE CON L’UTILIZZO DI ALGORITMI E STRUTTURE DATI STANDARD
Prerequisiti
PER IL PROFICUO RAGGIUNGIMENTO DEGLI OBIETTIVI PREFISSATI SONO RICHIESTE LE CONOSCENZE SULLA PROGRAMMAZIONE IN LINGUAGGIO C FORNITE DALL’INSEGNAMENTO DI PROGRAMMAZIONE I.
Contenuti
1. COMPLEMENTI DI PROGRAMMAZIONE IN C: STRUTTURE AUTO-REFERENZIATE, STRUTTURE DINAMICHE (LISTE, ALBERI) - (LEZIONI: 3H, ESERCITAZIONI: 1H);

2. NOZIONI GENERALI SUI MODELLI DI MEMORIA, MEMORIA STATICA E MEMORIA DINAMICA, STACK E RECORD DI ATTIVAZIONE, NOMI ED AMBIENTE, REGOLE DI SCOPE STATICO E DINAMICO (LEZIONI: 3H);

3. PUNTATORI E ALLOCAZIONE DINAMICA DELLA MEMORIA (LEZIONI: 2H, ESERCITAZIONI: 2H);

4. ASTRAZIONI E MODULI: TIPI DI ASTRAZIONE, INTERFACCIA E IMPLEMENTAZIONE DI UN MODULO, REALIZZAZIONE DI MODULI IN C (LEZIONI: 3H, ESERCITAZIONI: 2H);

5. RICORSIONE: ASPETTI E DEFINIZIONI GENERALI, RICORSIONE E ITERAZIONE, GESTIONE DELL’ESECUZIONE DI PROGRAMMI RICORSIVI (LEZIONI: 3H, ESERCITAZIONI: 2H);

6. ALGORITMI ITERATIVI E RICORSIVI SU ARRAY, ALGORITMI DI ORDINAMENTO (LEZIONI: 6H, ESERCITAZIONI: 3H);

7. CENNI SU COMPLESSITÀ COMPUTAZIONALE (LEZIONI: 2H, ESERCITAZIONI: 1H);

8. TIPI DI DATI ASTRATTI (ADT): SPECIFICA SINTATTICA E SEMANTICA, PROGETTO E REALIZZAZIONE (LEZIONI: 2H, ESERCITAZIONI: 2H);

9. LISTE: ASPETTI GENERALI, VARIANTI E SPECIFICA DEGLI ADT, DEFINIZIONE DELLA STRUTTURA DATI E IMPLEMENTAZIONI ALTERNATIVE BASATE SU ARRAY E STRUTTURE A PUNTATORI, SPECIFICA E REALIZZAZIONE DEGLI OPERATORI (VERSIONI ITERATIVE E RICORSIVE), ALGORITMI SU LISTE ED APPLICAZIONI (LEZIONI: 8H, ESERCITAZIONI: 4H);

10. PILE E CODE: SPECIFICA DEGLI ADT, OPERATORI DI PILA E CODA, IMPLEMENTAZIONI ALTERNATIVE DELLE STRUTTURE DATI, APPLICAZIONI DI PILE E CODE (LEZIONI: 4H, ESERCITAZIONI: 2H);

11. ALBERI E ALBERI BINARI: ASPETTI GENERALI, SPECIFICA DEGLI ADT, DEFINIZIONE DELLA STRUTTURA DATI E OPERATORI DI BASE, ALGORITMI DI VISITA E ALTRI ALGORITMI SUGLI ALBERI (IN VERSIONE ITERATIVA E RICORSIVA), APPLICAZIONI DI ALBERI E ALBERI BINARI (LEZIONI: 4H, ESERCITAZIONI: 2H);

12. INSIEMI ORDINATI E ALBERI DI RICERCA BINARIA: SPECIFICA E IMPLEMENTAZIONE DELL’ADT, OPERATORI DI CREAZIONE, INSERIMENTO, CANCELLAZIONE E RICERCA, ALGORITMI DI VISITA, CENNI SUL BILANCIAMENTO DEGLI ALBERI DI RICERCA BINARIA, APPLICAZIONI DI ALBERI DI RICERCA BINARIA (LEZIONI: 4H, ESERCITAZIONI: 2H);

13. CENNI SU CODE A PRIORITÀ E HEAP (LEZIONI: 2H);

14. INSIEMI, TABELLE E TABELLE HASH: ASPETTI GENERALI, SPECIFICA E IMPLEMENTAZIONE DELL’ADT, FUNZIONI DI HASHING, OPERATORI DI CREAZIONE, INSERIMENTO, CANCELLAZIONE E RICERCA, GESTIONE DELLE COLLISIONI CON LISTA CONCATENATA ED INDIRIZZAMENTO APERTO, APPLICAZIONI DI TABELLE HASH (LEZIONI: 2H, ESERCITAZIONI: 1H)
Metodi Didattici
L’INSEGNAMENTO PREVEDE SIA LEZIONI FRONTALI (6 CFU / 48 ORE) CHE LEZIONI IN LABORATORIO (3 CFU/24 ORE). LE LEZIONI DI LABORATORIO SARANNO ARRICCHITE DA CASI DI STUDIO CON PROGRAMMI SVILUPPATI IN CLASSE CON L'AUSILIO DEL DOCENTE.
Verifica dell'apprendimento
IL RAGGIUNGIMENTO DEGLI OBIETTIVI DELL’INSEGNAMENTO È CERTIFICATO MEDIANTE IL SUPERAMENTO DI UN ESAME CON VALUTAZIONE IN TRENTESIMI. L'ESAME PREVEDE UN EVENTUALE TEST PRESELETTIVO, UNA PROVA SCRITTA O PRATICA DI LABORATORIO E UNA PROVA ORALE. SE PREVISTO, IL TEST PRESELETTIVO HA UNA DURATA DI CIRCA 15 MINUTI E SERVE A VALUTARE I REQUISITI MINIMI DI CONOSCENZA PER POTER AFFRONTARE LA PROVA SCRITTA O PRATICA.
LA PROVA SCRITTA O PRATICA DI LABORATORIO È PROPEDEUTICA ALLA PROVA ORALE ED HA A DI NORMA UNA DURATA NON INFERIORE A 120 MINUTI. LA PROVA SERVE A VALUTARE LA CAPACITÀ DELLO STUDENTE DI METTERE IN PRATICA LE NOZIONI DEL CORSO ATTRAVERSO LA RISOLUZIONE DI ESERCIZI SPECIFICI, CHE CONSISTONO NELLA SPECIFICA E REALIZZAZIONE DI PROGRAMMI CHE USANO ALGORITMI E STRUTTURE DATI (PILE, CODE, LISTE, ALBERI, TABELLE HASH). LA PROVA SCRITTA O PRATICA SI CONSIDERA SUPERATA CON IL RAGGIUNGIMENTO DEL PUNTEGGIO MINIMO DI 18/30, CORRISPONDENTE AL DIMOSTRARE DI AVERE CAPACITÀ DI INDIVIDUARE LE OPPORTUNE STRUTTURE DATI PER LA RISOLUZIONE DEL PROBLEMA E AL SAPERE ALMENO IMPOSTARE ADEGUATAMENTE LA LORO RELATIVA CODIFICA IN LINGUAGGIO C. IL RAGGIUNGIMENTO DEL PUNTEGGIO MASSIMO DI 30/30 SI OTTIENE CON LO SVILUPPO CORRETTO E COMPLETO DI UNA SOLUZIONE EFFICACE ED EFFICIENTE.
SONO PREVISTE 2 PROVE IN ITINERE, RISPETTIVAMENTE ALLA METÀ E AL TERMINE DEL PERIODO DI INSEGNAMENTO, SVOLTE CON LE MEDESIME MODALITÀ, OBIETTIVI E VALUTAZIONE DELLA PROVA PRATICA. IL SUPERAMENTO DELLE PROVE IN ITINERE DÀ ACCESSO DIRETTO ALLA SUCCESSIVA PROVA ORALE, CON UNA VALUTAZIONE IN TRENTESIMI OTTENUTA COME MEDIA PESATA DELLE 2 PROVE IN ITINERE. SE IL PUNTEGGIO FINALE E SUPERIORE A 18/30 LO STUDENTE PUÒ CONSIDERARSI ESONERATO DALLA PROVA SCRITTA. L'ESONERO VARRÀ ESCLUSIVAMENTE PER LA SOLA SESSIONE DI ESAME SUCCESSIVA A QUELLA DI SVOLGIMENTO DELL’INSEGNAMENTO.
LA PROVA ORALE CONSISTE IN UN COLLOQUIO CON DOMANDE E DISCUSSIONE SUI CONTENUTI TEORICI E METODOLOGICI INDICATI NEL PROGRAMMA DELL’INSEGNAMENTO ED È FINALIZZATA AD ACCERTARE IL LIVELLO DI CONOSCENZA E CAPACITÀ DI COMPRENSIONE RAGGIUNTO DALLO STUDENTE, NONCHÉ A VERIFICARE LA CAPACITÀ DI ESPOSIZIONE RICORRENDO ALLA TERMINOLOGIA APPROPRIATA E LA CAPACITÀ DI ORGANIZZAZIONE AUTONOMA DELL'ESPOSIZIONE SUGLI STESSI ARGOMENTI A CONTENUTO TEORICO.
DI NORMA IL VOTO FINALE VERRA’ DETERMINATO SULLA BASE DELLA MEDIA ARITMETICA DEI PUNTEGGI DELLA PROVA SCRITTA/PRATICA E DELL’ESAME ORALE.
Testi
IL MATERIALE DIDATTICO, DISPENSE DEL DOCENTE, ESEMPI DI ESERCIZI SVOLTI E ULTERIORE MATERIALE DIDATTICO INTEGRATIVO, SONO DISPONIBILI ONLINE PER GLI STUDENTI SUL SITO DELL’INSEGNAMENTO.

TESTO DI RIFERIMENTO:
ROBERT SEDGEWICK, “ALGORITMI IN C” 4/ED, ADDISON - WESLEY
Altre Informazioni
LO SVOLGIMENTO PUNTUALE DEGLI ESERCIZI SUGGERITI DAL DOCENTE È, DI SOLITO, IL MODO MIGLIORE PER LO STUDENTE DI PREPARARSI AL SUPERAMENTO DELL'ESAME.

SULLA PIATTAFORMA DI DIPARTIMENTO SONO DISPONIBILI INFORMAZIONI PER OGNI LEZIONE, I CODICI DEGLI ESEMPI DISCUSSI NELLE LEZIONI DI LABORATORIO, TRACCE DI ESAMI E ALTRO MATERIALE DI SUPPORTO (MANUALI DI PROGRAMMAZIONE, TUTORIAL, ARTICOLI A SUPPORTO) HTTP://ELEARNING.INFORMATICA.UNISA.IT/EL-PLATFORM
  BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2024-08-21]