PROGRAMMAZIONE & STRUTTURE DATI

Informatica PROGRAMMAZIONE & STRUTTURE DATI

0512100052
DIPARTIMENTO DI INFORMATICA
CORSO DI LAUREA
INFORMATICA
2018/2019

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
LA PARTE TEORICA DELL'INSEGNAMENTO VIENE SVILUPPATA CON LEZIONI FRONTALI IN AULA (6 CFU, 48 ORE). GLI ARGOMENTI IN PROGRAMMA VENGONO PRESENTATI CON L'AUSILIO DI PRESENTAZIONI POWERPOINT O ANALOGO, E SU OGNI CONCETTO VIENE AVVIATA UNA DISCUSSIONE CRITICA CON LA CLASSE E OVE APPROPRIATO SI EFFETTUANO CONFRONTI CON SOLUZIONI ALTERNATIVE. LA PARTE PRATICA VIENE SVOLTA IN LABORATORIO CON SPERIMENTAZIONE DIRETTA SU PC DELLE TECNICHE E DEI CONCETTI PRESENTATI NELLA PARTE TEORICA (3 CFU, 24 ORE). LA FORMULA SEGUITA CONSISTE NELL'ASSEGNARE UN ESERCIZIO, ANALIZZARE LA TRACCIA INSIEME, LASCIARE UN LASSO DI TEMPO BREVE PER PENSARE AD UNA SOLUZIONE INDIVIDUALMENTE, DISCUTERE LE SOLUZIONI INDIVIDUATE COLLEGIALMENTE E QUINDI PASSARE ALL'IMPLEMENTAZIONE IN JAVA INDIVIDUALMENTE ALLA PROPRIA POSTAZIONE. DURANTE L'INSEGNAMENTO POSSONO ESSERE ASSEGNATI DEI PROGETTI DI SVILUPPO SOFTWARE DA SVOLGERE IN LABORATORIO.
Verifica dell'apprendimento
IL RAGGIUNGIMENTO DEGLI OBIETTIVI DELL’INSEGNAMENTO È CERTIFICATO MEDIANTE IL SUPERAMENTO DI UN ESAME CON VALUTAZIONE IN TRENTESIMI. L'ESAME PREVEDE UNA PROVA SCRITTA O PRATICA DI LABORATORIO E UNA PROVA ORALE.
LA PROVA SCRITTA O PRATICA DI LABORATORIO È PROPEDEUTICA ALLA PROVA ORALE ED HA 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.

ROBERT SEDGEWICK, “ALGORITMI IN C” 3/ED, ADDISON - WESLEY.
Altre Informazioni
PIATTAFORMA DI E-LEARNING: HTTP://ELEARNING.INFORMATICA.UNISA.IT/EL-PLATFORM/

CONTATTI DOCENTI:
VITTORIO FUCCELLA
VFUCCELLA@UNISA.IT
MAURIZIO TUCCI
MTUCCI@UNISA.IT
VINCENZO DEUFEMIA
DEUFEMIA@UNISA.IT
  BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2019-10-21]