Il corso di Algoritmi e Strutture Dati ha come scopo l'ampliamento delle conoscenze e delle capacità inerenti la programmazione in piccolo mediante linguaggi imperativi; esso fornisce le basi per progettare algoritmi efficienti e per sviluppare strutture dati che permettano un’organizzazione efficace delle informazioni.

  • Obiettivi e contenuti
    • OBIETTIVI FORMATIVI
      Ampliare le conoscenze e le capacità inerenti la programmazione in piccolo mediante linguaggi imperativi, fornendo le basi per progettare algoritmi corretti ed efficienti,  e sviluppare strutture dati che permettano un’organizzazione efficace ed efficiente delle informazioni.
      PROGRAMMA/CONTENUTO

      Modelli di calcolo e metodologie di analisi degli algoritmi: criteri di costo, notazione asintotica, metodi di analisi, analisi di complessità  degli algoritmi ricorsivi. Esempi di sviluppo ed analisi di algoritmi.
      Algoritmi di ordinamento: insertion sort, selection sort, bubble sort, mergesort, quicksort (con analisi di complessità)
      Strutture dati elementari: array e liste, tipo di dato pila e coda, tipo di dato dizionario ed implementazione mediante liste, alberi, alberi binari, rappresentazioni indicizzate e collegate per alberi binari e non, alberi quasi completi, visite di alberi in profondità ed in ampiezza.
      Alberi  di ricerca: Alberi binari di ricerca, alberi di ricerca come implementazione del tipo di dato dizionario, cenni ad alberi bilanciati.
      Code con priorità: tipo di dato, implementazione mediante liste, heap, implementazione di code con priorità mediante heap binari.
      Tabelle di hash: implementazione con liste di collisione e con indirizzamento aperto.
      Grafi: definizioni, strutture dati, primitive per l'interrogazione e l'aggiornamento di grafi visite di grafi in profondità ed in ampiezza, esempi di applicazione degli algoritmi di visita di un grafo.
      Laboratorio: esercitazioni in C++ relative agli argomenti del corso

      TESTI/BIBLIOGRAFIA

      Tutti gli argomenti previsti dal programma vengono trattati approfonditamente a lezione. Per la comprensione degli argomenti e la preparazione dell'esame è quindi indispensabile disporre delle slide preparate dai docenti e rese disponibili con ampio anticipo, e degli appunti presi durante le lezioni in aula.

      Il codice C++ reso disponibile dai docenti è parte integrante del materiale didattico a disposizione degli studenti.

      URL Aula web
      ALGORITMI E STRUTTURE DATI
      https://dibris.aulaweb.unige.it/
      URL Orario lezioni
      ALGORITMI E STRUTTURE DATI
      http://informatica.dibris.unige.it/docenti-corsi-orari-esami/orario-delle-lezioni.html
  • Chi
  • Come
    • MODALITA' DIDATTICHE

      Tradizionale: Corso organizzato in lezioni frontali ed esercitazioni pratiche che si iniziano in laboratorio e si completano come compito per casa.

      MODALITA' D'ESAME

      Modalità d'esame

      L'esame consiste in una prova scritta (3 ore, 14 punti al massimo, sufficienza 8) e in una prova di laboratorio (3 ore, 14 punti al massimo, sufficienza 8). Le due prove sono indipendenti tra loro: è possibile prenotarsi e svolgere solo la prova scritta in un appello e prenotarsi e svolgere la prova di laboratorio in un appello successivo, e viceversa. Non è necessario superare una delle due prove per poter sostenere l'altra.

      Alcune delle esercitazioni svolte durante l'anno vengono valutate. Gli studenti vengono informati con ampio anticipo su quali sono le esercitazioni verificate/valutate e delle modalità di valutazione. Le valutazioni delle esercitazioni accreditano 5 punti al massimo.

      Dopo aver svolto una prova d'esame e averla consegnata è possibile confermarne la consegna. E' possibile confermare solo tre prove di laboratorio e tre prove scritte in tutto l'anno accademico.

      I voti parziali conseguiti durante un anno accademico "scadono" allo scadere dell'anno: in altre parole, dopo le cinque sessioni d'appello relative all'insegnamento, tutti i voti vengono riazzerati.


      Modalità di valutazione

      Il voto finale si ottiene come somma del voto dello scritto + voto del laboratorio + voto delle esercitazioni valutate svolte durante l'anno. Tale somma viene arrotondata all'intero più vicino. Ad esempio 24.45 diventa 24 e 24.5 diventa 25. Si attribuisce la lode a chi abbia ottenuto un voto >= 30.5.

      MODALITA' DI ACCERTAMENTO

      I dettagli sulle modalità di preparazione per l’esame e sul grado di approfondimento di ogni argomento verranno dati nel corso delle lezioni. 

  • Dove e quando
    • URL Aula web
      ALGORITMI E STRUTTURE DATI
      https://dibris.aulaweb.unige.it/
      URL Orario lezioni
      ALGORITMI E STRUTTURE DATI
      http://informatica.dibris.unige.it/docenti-corsi-orari-esami/orario-delle-lezioni.html
      RICEVIMENTO STUDENTI
      Viviana Mascardi

      Appointment by email

      Filippo Ricca

      Su appuntamento (mandare una mail)

      Appelli
      Data Ora Tipo Luogo Note
      8 gennaio 2018 9:00 Scritto Genova Aule 506 e 505
      9 gennaio 2018 9:00 Laboratorio Genova Laboratori SW1+SW2
      6 giugno 2018 9:00 Scritto Genova Aule 506 e 505
      7 giugno 2018 9:00 Laboratorio Genova Laboratori SW1+SW2
      28 giugno 2018 9:00 Scritto Genova Aule 506 e 505
      29 giugno 2018 9:00 Laboratorio Genova Laboratori SW1+SW2
      17 luglio 2018 9:00 Scritto Genova Aule 506 e 505
      18 luglio 2018 9:00 Laboratorio Genova Laboratori SW1+SW2
      10 settembre 2018 9:00 Scritto Genova Aule 506 e 505
      12 settembre 2018 9:00 Laboratorio Genova Laboratori SW1+SW2
      7 gennaio 2019 9:00 Scritto Genova Aule 506 e 505
      8 gennaio 2019 9:00 Laboratorio Genova Laboratori SW1+SW2
  • Contatti