PORTALE DELLA DIDATTICA

PORTALE DELLA DIDATTICA

PORTALE DELLA DIDATTICA

Elenco notifiche



Algoritmi e programmazione avanzata

09EIPDC

A.A. 2025/26

Lingua dell'insegnamento

Italiano

Corsi di studio

Corso di Laurea in Ingegneria Informatica - Torino

Organizzazione dell'insegnamento
Didattica Ore
Docenti
Docente Qualifica Settore h.Lez h.Es h.Lab h.Tut Anni incarico
Collaboratori
Espandi

Didattica
SSD CFU Attivita' formative Ambiti disciplinari
ING-INF/05 5 B - Caratterizzanti Ingegneria informatica

Scopi

Il modulo completa l' avvio alla programmazione quale strumento per la soluzione di problemi. Si accentua il passaggio dalle capacità analitiche a quelle progettuali.
Il modulo presenta le soluzioni algoritmiche "classiche" dei problemi, e la teoria che sta alla loro base, con particolare riferimento a realizzazioni in C e affronta casi di studio di maggiori dimensioni risolti mediante strategie algoritmiche implementate in C.

Scopi

Il modulo completa l' avvio alla programmazione quale strumento per la soluzione di problemi. Si accentua il passaggio dalle capacità analitiche a quelle progettuali.
Il modulo presenta le soluzioni algoritmiche "classiche" dei problemi, e la teoria che sta alla loro base, con particolare riferimento a realizzazioni in C e affronta casi di studio di maggiori dimensioni risolti mediante strategie algoritmiche implementate in C.

Precedenza di acquisto:
Informatica II

Ulteriore propedeuticità concettuale: è prerequisito fondamentale per il corso la conoscenza della programmazione in linguaggio C.

Precedenza di acquisto:
Informatica II

Ulteriore propedeuticità concettuale: è prerequisito fondamentale per il corso la conoscenza della programmazione in linguaggio C.

  • Analisi di algoritmi: analisi asintotica e complessità di caso peggiore; notazione Ο, Θ, Ω;
  • Algoritmi elementari: ordinamento quadratico (selection sort, insertion sort), lineare (counting sort) e logaritmico (quicksort, heapsort, mergesort); attraversamenti di alberi e grafi
  • Strutture dati: rappresentazione dei dati in memoria; puntatori; allocazione di memoria statica, e dinamica; strutture linkate; gestione della memoria in runtime; strategie per scegliere la struttura dati
  • Ricorsione: il concetto di ricorsione; funzioni matematiche ricorsive; procedure ricorsive semplici; backtrack e implementazione della ricorsione
  • Paradigmi algoritmici: divide-and-conquer; greedy
  • Algoritmi classici: tabelle di hash; alberi binari di ricerca e varianti; B-alberi
  • Algoritmi sui grafi: cammini minimi; alberi ricoperti minimi

Il tutorato in aula privilegia la parte di programma più applicativa relativa alla programmazione in linguaggio C: Si procederà all'analisi e implementazione degli algoritmi e delle strutture dati oggetto di studio. Tali componenti verranno utilizzate per lo sviluppo di programmi avanzati in linguaggio C.

  • Analisi di algoritmi: analisi asintotica e complessità di caso peggiore; notazione Ο, Θ, Ω;
  • Algoritmi elementari: ordinamento quadratico (selection sort, insertion sort), lineare (counting sort) e logaritmico (quicksort, heapsort, mergesort); attraversamenti di alberi e grafi
  • Strutture dati: rappresentazione dei dati in memoria; puntatori; allocazione di memoria statica, e dinamica; strutture linkate; gestione della memoria in runtime; strategie per scegliere la struttura dati
  • Ricorsione: il concetto di ricorsione; funzioni matematiche ricorsive; procedure ricorsive semplici; backtrack e implementazione della ricorsione
  • Paradigmi algoritmici: divide-and-conquer; greedy
  • Algoritmi classici: tabelle di hash; alberi binari di ricerca e varianti; B-alberi
  • Algoritmi sui grafi: cammini minimi; alberi ricoperti minimi

Il tutorato in aula privilegia la parte di programma più applicativa relativa alla programmazione in linguaggio C: Si procederà all'analisi e implementazione degli algoritmi e delle strutture dati oggetto di studio. Tali componenti verranno utilizzate per lo sviluppo di programmi avanzati in linguaggio C.

Testi consigliati dal docente responsabile del corso:

Testi di riferimento tradotti in italiano

  • T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein, Introduzione agli algoritmi e strutture dati, seconda edizione, McGraw Hill.
  • R. Sedgewick, Algoritmi in C, Pearson Ed. Italia.
  • Brian W. Kernighan, Dennis M. Ritchie, Linguaggio C, Addison Wesley / Pearson Education, Italia.
  • Brian W. Kernighan, Dennis M. Ritchie, Linguaggio C, Jackson Libri (non più in stampa).

Testi di riferimento in lingua inglese

  • T.H. Cormen, C.E. Leiserson, R.L. Rivest, Introduction to Algorithms, The MIT Press and McGraw-Hill.
  • Brian W. Kernighan, Dennis M. Ritchie, The C Programming Language, Prentice Hall.

Guida alla lettura per [Cormen, 2a edizione, McGraw-Hill, 2005]

  • Cap. 1: Ruolo degli algoritmi nell'elaborazione dei dati
    sez. 1-2
  • Cap. 2: Per incominciare
    sez. 1-3
  • Cap. 6: Heapsort
    sez. 1-5
  • Cap. 7: Quicksort
    sez. 1-2
  • Cap. 8: Ordinamento in tempo lineare
    sez. 2
  • Cap.10: Strutture dati elementari
    sez. 1-2
  • Cap.11: Hashing
    sez. 1-4
  • Cap.12: Alberi binari di ricerca
    sez. 1-3
  • Cap.15: Programmazione dinamica
    sez. 1-5 (accenni)
  • Cap.22: Algoritmi elementari per grafi
    sez. 1-5
  • Cap.23: Alberi di connessione minimi
    sez. 1-2
  • Cap.24: Cammini minimi da sorgente unica
    sez. 1-4

Questa raccolta di materiale, prodotta ad uso interno, è stata realizzata per i moduli del Politecnico di Torino ed è disponibile in formato .pdf.
Ne è vietata la riproduzione e qualsiasi forma di commercializzazione.

Gli argomenti del corso sono trattati nel CD-ROM omonimo.
Per maggiori ragguagli circa le specifiche relative ai CD-ROM prodotti consultare l'Area CD-ROM multimediali.

Ulteriore materiale e aggiornamenti sono disponibili nelle pagine personali del tutore relative alla didattica:

All'indirizzo http://www.cad.polito.it/staff/squillero/dida/09eip/ sono archiviate le risorse (non più aggiornate) degli anni precedenti.

Questa raccolta di materiale, prodotta ad uso interno, è stata realizzata per i moduli del Politecnico di Torino ed è in formato .pdf. Ne è vietata la riproduzione e qualsiasi forma di commercializzazione.

Testi consigliati dal docente responsabile del corso:

Testi di riferimento tradotti in italiano

  • T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein, Introduzione agli algoritmi e strutture dati, seconda edizione, McGraw Hill.
  • R. Sedgewick, Algoritmi in C, Pearson Ed. Italia.
  • Brian W. Kernighan, Dennis M. Ritchie, Linguaggio C, Addison Wesley / Pearson Education, Italia.
  • Brian W. Kernighan, Dennis M. Ritchie, Linguaggio C, Jackson Libri (non più in stampa).

Testi di riferimento in lingua inglese

  • T.H. Cormen, C.E. Leiserson, R.L. Rivest, Introduction to Algorithms, The MIT Press and McGraw-Hill.
  • Brian W. Kernighan, Dennis M. Ritchie, The C Programming Language, Prentice Hall.

Guida alla lettura per [Cormen, 2a edizione, McGraw-Hill, 2005]

  • Cap. 1: Ruolo degli algoritmi nell'elaborazione dei dati
    sez. 1-2
  • Cap. 2: Per incominciare
    sez. 1-3
  • Cap. 6: Heapsort
    sez. 1-5
  • Cap. 7: Quicksort
    sez. 1-2
  • Cap. 8: Ordinamento in tempo lineare
    sez. 2
  • Cap.10: Strutture dati elementari
    sez. 1-2
  • Cap.11: Hashing
    sez. 1-4
  • Cap.12: Alberi binari di ricerca
    sez. 1-3
  • Cap.15: Programmazione dinamica
    sez. 1-5 (accenni)
  • Cap.22: Algoritmi elementari per grafi
    sez. 1-5
  • Cap.23: Alberi di connessione minimi
    sez. 1-2
  • Cap.24: Cammini minimi da sorgente unica
    sez. 1-4

Questa raccolta di materiale, prodotta ad uso interno, è stata realizzata per i moduli del Politecnico di Torino ed è disponibile in formato .pdf.
Ne è vietata la riproduzione e qualsiasi forma di commercializzazione.

Gli argomenti del corso sono trattati nel CD-ROM omonimo.
Per maggiori ragguagli circa le specifiche relative ai CD-ROM prodotti consultare l'Area CD-ROM multimediali.

Ulteriore materiale e aggiornamenti sono disponibili nelle pagine personali del tutore relative alla didattica:

All'indirizzo http://www.cad.polito.it/staff/squillero/dida/09eip/ sono archiviate le risorse (non più aggiornate) degli anni precedenti.

Questa raccolta di materiale, prodotta ad uso interno, è stata realizzata per i moduli del Politecnico di Torino ed è in formato .pdf. Ne è vietata la riproduzione e qualsiasi forma di commercializzazione.

...
  • L'esame ¿ composto da due scritti.
    Il primo serve a valutare la conoscenza teorica degli algoritmi e delle strutture dati.
    Il secondo la capacità di impostare un programma complesso e la capacità di analizzare un problema (la sintassi del C è un prerequisito).
  • Per superare l'esame ¿ necessario (ma non sufficiente) raggiungere un punteggio ≥ (simbolo del superiore/uguale) 10/15 nel primo scritto (teoria) e ≥ (idem) 4/15 nel secondo (programmazione).
  • I due scritti possono essere svolti in appelli differenti durante l'anno accademico.
  • Dopo lo scritto di programmazione, gli studenti sono tenuti a correggere e completare autonomamente il programma consegnato ed inviare una versione funzionante al tutore. La prova svolta in aula sarà valutata solo dopo aver verificato il funzionamento di tale programma. (Si suggerisce di utilizzare carta carbone per conservare una copia di quanto consegnato in aula).
Gli studenti e le studentesse con disabilità o con Disturbi Specifici di Apprendimento (DSA), oltre alla segnalazione tramite procedura informatizzata, sono invitati a comunicare anche direttamente al/la docente titolare dell'insegnamento, con un preavviso non inferiore ad una settimana dall'avvio della sessione d'esame, gli strumenti compensativi concordati con l'Unità Special Needs, al fine di permettere al/la docente la declinazione più idonea in riferimento alla specifica tipologia di esame.
  • L'esame ¿ composto da due scritti.
    Il primo serve a valutare la conoscenza teorica degli algoritmi e delle strutture dati.
    Il secondo la capacità di impostare un programma complesso e la capacità di analizzare un problema (la sintassi del C è un prerequisito).
  • Per superare l'esame ¿ necessario (ma non sufficiente) raggiungere un punteggio ≥ (simbolo del superiore/uguale) 10/15 nel primo scritto (teoria) e ≥ (idem) 4/15 nel secondo (programmazione).
  • I due scritti possono essere svolti in appelli differenti durante l'anno accademico.
  • Dopo lo scritto di programmazione, gli studenti sono tenuti a correggere e completare autonomamente il programma consegnato ed inviare una versione funzionante al tutore. La prova svolta in aula sarà valutata solo dopo aver verificato il funzionamento di tale programma. (Si suggerisce di utilizzare carta carbone per conservare una copia di quanto consegnato in aula).
In addition to the message sent by the online system, students with disabilities or Specific Learning Disorders (SLD) are invited to directly inform the professor in charge of the course about the special arrangements for the exam that have been agreed with the Special Needs Unit. The professor has to be informed at least one week before the beginning of the examination session in order to provide students with the most suitable arrangements for each specific type of exam.
Esporta Word