logo-polimi
Loading...
Risorse bibliografiche
Risorsa bibliografica obbligatoria
Risorsa bibliografica facoltativa
Scheda Riassuntiva
Anno Accademico 2017/2018
Scuola Scuola di Ingegneria Industriale e dell'Informazione
Insegnamento 086067 - ALGORITMI E PRINCIPI DELL'INFORMATICA
Docente Barenghi Alessandro , Comai Sara
Cfu 10.00 Tipo insegnamento Corso Integrato

Corso di Studi Codice Piano di Studio preventivamente approvato Da (compreso) A (escluso) Insegnamento
Ing Ind - Inf (1 liv.)(ord. 270) - CO (360) INGEGNERIA INFORMATICAIOLAZZZZ086067 - ALGORITMI E PRINCIPI DELL'INFORMATICA
IORAZZZZ086067 - ALGORITMI E PRINCIPI DELL'INFORMATICA

Programma dettagliato e risultati di apprendimento attesi

Obiettivi

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.

Il corso è articolato in due moduli: Informatica Teorica e Algoritmi e strutture dati. 

 

 

Programma delle lezioni e delle esercitazioni

1. I modelli dell'informatica 

  • Automi (a stati finiti, a pila, Macchine di Turing)
  • Modelli nondeterministici (automi, cenni di Reti di Petri)
  • Grammatiche
  • Introduzione alla logica matematica 
  • Uso della logica matematica per modellare sistemi 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

4. Algoritmi e strutture dati

  • Introduzione agli algoritmi e strutture dati. Analisi di complessità di algoritmi e strutture dati. 
  • Strutture dati e algoritmi fondamentali: Liste, Code e Pile, Alberi binari e generici
  • Algoritmi di ordinamento
  • Algoritmi di ricerca. Hashing e Indicizzazione
  • Grafi, loro rappresentazione e gestione

5. Argomenti avanzati

  • Tecniche di progettazione di algoritmi
  • Problemi NP-completi

  

Prerequisiti

Il programma del corso assume la conoscenza degli argomenti trattati negli insegnamenti di Fondamenti di Informatica e di Logica e Algebra.

 

Per ulteriori dettagli si veda la scheda dei singoli moduli. 


Note Sulla Modalità di valutazione

L'esame consiste in un'unica prova scritta sull'intero programma del corso (su entrambi i moduli). 


Bibliografia

Mix Forme Didattiche
Tipo Forma Didattica Ore didattiche
lezione
60.0
esercitazione
40.0
laboratorio informatico
0.0
laboratorio sperimentale
0.0
progetto
0.0
laboratorio di progetto
0.0

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.6.5 / 1.6.5
Area Servizi ICT
27/09/2020