logo-polimi
Loading...
Risorse bibliografiche
Risorsa bibliografica obbligatoria
Risorsa bibliografica facoltativa
Scheda Riassuntiva
Anno Accademico 2019/2020
Scuola Scuola di Ingegneria Industriale e dell'Informazione
Insegnamento 088926 - ALGORITMI E PRINCIPI DELL'INFORMATICA
Docente Rossi Matteo Giovanni
Cfu 10.00 Tipo insegnamento Monodisciplinare

Corso di Studi Codice Piano di Studio preventivamente approvato Da (compreso) A (escluso) Insegnamento
Ing Ind - Inf (1 liv.)(ord. 270) - MI (358) INGEGNERIA INFORMATICAI1CAZZZZ088926 - ALGORITMI E PRINCIPI DELL'INFORMATICA
ICRAZZZZ088926 - ALGORITMI E PRINCIPI DELL'INFORMATICA

Obiettivi dell'insegnamento

L'informatica ha subito un’evoluzione estremamente rapida dai suoi albori ai giorni d’oggi. Ciò ha prodotto notevoli benefici alla qualità della vita ma ha anche creato problemi legati all’affidabilità dei sistemi informatici. Spesso infatti le tecniche di progetto adottate si sono rivelate inadeguate alla complessità dei problemi affrontati.

Da più parti si è individuata, tra le cause principali della scarsa affidabilità dei sistemi informatici, la mancanza di solidi principi teorici su cui basare le tecniche di progettazione.

Il corso di algoritmi e principi dell'informatica ha lo scopo di colmare questa lacuna affrontando in maniera sistematica i problemi fondamentali dell’informatica e mettendo in evidenza come un approccio rigoroso e basato sui fondamenti teorici della disciplina abbia grande rilevanza nelle applicazioni pratiche. Soprattutto, il corso intende sviluppare l'attitudine ad affrontare problemi nuovi e non ben precisati e ricavarne un modello preciso e adatto all'individuazione della miglior (o adeguata) soluzione.

 


Risultati di apprendimento attesi

 

Descrittori di Dublino

Risultati di apprendimento attesi

Conoscenza e comprensione

A seguito del superamento dell’esame lo studente conosce:

  • I principi e i modelli fondamentali del calcolo automatico.
  • I principi di base della progettazione e dell’analisi degli algoritmi e delle strutture dati.

Capacità di applicare conoscenza e comprensione

Attraverso le esercitazioni su problemi specifici, e a seguito del superamento dell’esame, lo studente acquisisce:

  • Capacità critica relativa all’uso, alla creazione e all’adattamento di modelli per il calcolo.
  • Capacità di applicare, adattare e valutare in situazioni pratiche algoritmi e strutture dati.

Autonomia di giudizio

A seguito del superamento dell’esame lo studente è in grado di:

  • Scegliere ed eventualmente adattare i modelli di calcolo al problema che sta considerando.
  • Scegliere ed eventualmente ideare opportune strutture dati e algoritmi per il problema che sta considerando.

Capacità di apprendimento

  • Gli studenti saranno in grado di valutare in maniera critica modelli computazionali, algoritmi e strutture dati.
  • Gli studenti saranno in grado di creare nuovi modelli computazionali, nuovi algoritmi e nuove strutture dati.

 

 


Argomenti trattati

 

Programma delle lezioni e delle esercitazioni

1. I modelli dell'informatica 

  • Automi (a stati finiti, a pila, Macchine di Turing)
  • Modelli nondeterministici
  • Grammatiche
  • Uso della logica matematica per modellare sistemi e descriverne proprietà.

2. Teoria della computazione

  • Potenza dei modelli di calcolo
  • Tesi di Church
  • Problemi indecidibili
  • Tecniche di dimostrazione di indecidibilità

3. Teoria della complessità

  • Nozioni e notazioni fondamentali per l’analisi di complessità
  • I modelli di calcolo e le relazioni tra le loro complessità computazionali
  • Accelerazione lineare. Gerarchie di complessità.

4. La complessità degli algoritmi e delle strutture dati

  • Concetti di base. Lo pseudocodice come linguaggio per descrivere algoritmi.
  • Algoritmi di ordinamento
  • Strutture dati elementari (pile, code, liste): rappresentazione, algoritmi di ricerca e gestione.
  • Tabelle hash: funzioni di hash, indirizzamento aperto.
  • Alberi: alberi binari ed alberi rosso-neri: : rappresentazione, algoritmi di ricerca e gestione.
  • Grafi: rappresentazione, algoritmi di visita dei grafi.

5. Argomenti avanzati (cenni)

  • Gerarchie di complessità, la complessità delle computazioni nondeterministiche.
  • Problemi NP-completi. 

 


Prerequisiti

Il programma del corso assume la conoscenza degli argomenti trattati nel corso di Fondamenti di Informatica.

Inoltre, costituiscono prerequisito anche parte dei contenuti del corso di Logica e Algebra.


Modalità di valutazione

Verranno svolte due prove in itinere, non obbligatorie, durante il corso. Verranno poi svolti appelli d'esame secondo le regole di facoltà. L'esame si basa essenzialmente su prove scritte, eventualmente integrate, a discrezione del docente, da ulteriori domande orali. Durante lo scritto è permessa la consultazione dei testi.

Modalità di verifica

Descrizione

Risultato di apprendimento perseguito (descrittore di Dublino)

Esame scritto

  • Risoluzione di problemi numerici: calcolo della complessità
  • Risoluzione di esercizi di tipo progettuale: progettazione di modelli astratti, di algoritmi e strutture dati
  • Domande di carattere teorico a risposta aperta sugli argomenti del corso

1, 2

1, 2, 3, 5

1, 2, 5

 


Bibliografia
Risorsa bibliografica obbligatoriaD. Mandrioli, P. Spoletini, Informatica teorica (II edizione), Editore: De Agostini, Anno edizione: 2011
Risorsa bibliografica facoltativaT. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein, Introduzione agli algoritmi e alle strutture dati, 3/ed, Editore: McGraw-Hill, Anno edizione: 2010
Risorsa bibliografica facoltativaA. Bertossi, A. Montresor, Algoritmi e strutture dati, Editore: Ed. Città Studi
Risorsa bibliografica facoltativaD. Mandrioli, L. Lavazza, A. Morzenti, P. San Pietro, P. Spoletini, Esercizi di Informatica Teorica, 3/ed, Editore: Esculapio

Software utilizzato
Nessun software richiesto

Forme didattiche
Tipo Forma Didattica Ore di attività svolte in aula
(hh:mm)
Ore di studio autonome
(hh:mm)
Lezione
60:00
90:00
Esercitazione
40:00
60:00
Laboratorio Informatico
0:00
0:00
Laboratorio Sperimentale
0:00
0:00
Laboratorio Di Progetto
0:00
0:00
Totale 100:00 150:00

Informazioni in lingua inglese a supporto dell'internazionalizzazione
Insegnamento erogato in lingua Italiano
Disponibilità di libri di testo/bibliografia in lingua inglese
Possibilità di sostenere l'esame in lingua inglese
Disponibilità di supporto didattico in lingua inglese
schedaincarico v. 1.8.0 / 1.8.0
Area Servizi ICT
03/12/2022