IT
EN
FR
عربي
Information
Course Catalogue
Services for businesses
Training Projects
Search
Menu secondario
Engineering Area
No items selected
Algorithms and data structures
Prof. Massimo Poncino
(Politecnico di Torino (Torino - Italy))
Content language:
Italian
Course description
The purpose of this course is to introduce students to the topics of data structures and algorithm design along with their respective applications. The topics that will be covered are:
Algorithms Analysis
Sorting Algorithms
Algorithmic Paradigms
Graphs
Intractable problems
The use of data structures in programming languages and relevant aspects of data and file management will be illustrated by using a high level language.
Objectives
The primary goal of this course is to enhance the students’ knowledge and understanding of algorithms and data structures and the associated design and analysis techniques. This course aims at developing the students’ ability to design and implement data structures and algorithms, analyze them for correctness and efficiency, and choose the right data structure/algorithm for a particular job.
Program
Algorithms Analysis
Sorting Algorithms
Algorithmic Paradigms
Graphs
Intractable problems
Book
Introduction to Algorithms, Third Edition, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein, The MIT Press
Appointed teaching professor
Professor not available
Video Professor
Prof.
Massimo Poncino
- Politecnico di Torino (Torino - Italy)
List of video lessons
Lesson n. 1: Introduzione alla progettazione del software
Display lessons issues
Maurizio Lenzerini
Programma del corso
Il contesto organizzativo dello sviluppo del software
Esercizio 1
Classificazione
Esercizio 2
Classificazione (II)
Ciclo di vita del software
Lesson n. 2: Le qualita' del software
Display lessons issues
Maurizio Lenzerini
Introduzione ai fattori di qualita'
Esercizio 3
Qualità esterne
correttezza
Affidabilità
Robustezza
Usabilità
Estendibilità
Riusabilità
Interoperabilità
Qualità interne
Efficienza
Strutturazione e Modularita'
Comprensibilità
Verificabilità
Manutenibilità e Portabilità
Esercizio 4
Lesson n. 3: La modularizzazione
Display lessons issues
Maurizio Lenzerini
Modularizzazione del software
Modulo
Modularizzazione
Componenti di un modulo
Principi di modularizzazione
I 4 dogmi della modularizzazione
Esempi negativi
Esempi positivi
Esempio di cattiva modularizzazione
Esempio di buona modularizzazione
Effetti di una buona modularizzazione
Approccio orientato agli oggetti
Funzioni od Oggetti?
Principi di base
Fattori di qualita' influenzati dall'approccio OO
Lesson n. 4: Introduzione all'analisi e al linguaggio UML
Display lessons issues
Maurizio Lenzerini
Cosa e' l'analisi
Uso di UML nella nostra metodologia
Il diagramma delle classi e degli oggetti
Oggetti in UML
Classi UML
Rapporto tra classi e istanze
Attributi in UML
Importanza dell'identificatore di oggetto
Esercizio
Obiettivo
Schema concettuale
Modelli e metodi per l'analisi
Introduzione al linguaggio UML
Diagrammi
Lesson n. 5: Le associazioni in UML
Display lessons issues
Maurizio Lenzerini
Osservazioni sulle classi
Relazioni in matematica
Le associazioni
Definizione di associazione
Esempi
Istanze di associazioni: link
Piu' associazioni tra due classi
Esempio
Esercizio
Nomi di associazioni
Ruolo delle associazioni
Lesson n. 6: Proprieta' di associazioni
Display lessons issues
Maurizio Lenzerini
Attributi di associazioni
Esempio
Notazione
Esercizio 1
Associazioni n-arie
Esempio
Associazioni n-arie con attributi
Differenza tra classi e associazioni
Vincoli di molteplicità
Molteplicità delle associazioni
Esempio
Notazioni
Esempi di molteplicità
Esercizio 2
Esercizio 3
Molteplicità di attributi
Esempio
Attributi multivalore nelle istanze
Introduzione alla generalizzazione
Lesson n. 7: La generalizzazione
Display lessons issues
Maurizio Lenzerini
La generalizzazione in UML
Esempio di generalizzazione semplice in UML
Ereditarietà in UML
Esempio-Ereditarità in UML : istanze
Esempio - Ereditarieta' sulle associazioni
Ereditarieta' sulle molteplicita'
Esercizio: individuare gli errori
Generalizzazione in UML con piu' sottoclassi
Tipi di generalizzazione
Generalizzazioni disgiunte
Generalizzazioni complete
Ereditarieta' multipla
Differenza tra due is-a e una generalizzazione
Lesson n. 8: Metodologia di analisi
Display lessons issues
Maurizio Lenzerini
Specializzazione
Esempio
Le operazioni di classe
Esempio
Formato
Osservazioni sulle operazioni
Esercizio 1
Commenti in UML
Aspetti metodologici
Tabella riassuntiva
Passi metodologici
Controllo di qualita' sul diagramma delle classi
Dicotomia tra classe e attributi
Scelta tra attributi e classi
Esempio
Lesson n. 9: Altri diagrammi in UML
Display lessons issues
Maurizio Lenzerini
Aspetti metodologici (continuazione)
Dicotomia tra classi e associazioni
Scelta tra classi e associazione
Esempio
Verifiche sulla generalizzazione
Il diagramma degli use case
Use case
Use case: Attori
Componenti di un diagramma degli use case
Associazione
Incluzione
Estensione
Generalizzazione
Esempio
Lesson n. 10: Il diagramma degli stati e delle transizioni
Display lessons issues
Maurizio Lenzerini
Il diagramma degli stati e delle transizioni
Stati e transizioni
Esempio
Esempio 2
Attività
Esempio
Stato composto
Esempio
Esercizio
La specifica di classi e use case
Specifica di una classe
Specifica di un Use Case
Specifica di una operazione
Esempio
Esempio 2
Lesson n. 11: Introduzione a java come linguaggio orientato agli oggetti. Lezione 1
Display lessons issues
Giuseppe De Giacomo
Introduzione a Java
Paradigmi di programmazione
Java
Java virtuale Machine
Un programma Java
Compilazione ed esecuzione di programmi
Preparazione del Testo del Programma
Compilazione del Programma
Eseguire un programma
Anatomia di un (semplice) programma Java
Fattoriale .java
Elementi di sintassi
Tipi predefiniti
main
System.out.print
Operatore di concatenazione tra stringhe
Lesson n. 12: Introduzione a java come linguaggio orientato agli oggetti. Lezione 2
Display lessons issues
Giuseppe De Giacomo
Definizioni di classi Java
Elementi di una classe Java
Esempio
Osservazioni: campi
Osservazioni: modificatori d'accesso
Uso di Java
Uso della classe definita
Esempio di cliente della classe persona
Riferimenti e oggetti
Allocazione statica e dinamica
Esempio
Assegnazione tra riferimenti
Assegnazione tra tipi predefiniti
Deallocazione degli oggetti
Esempio
Lesson n. 13: Introduzione a java come linguaggio orientato agli oggetti. Lezione 3
Display lessons issues
Giuseppe De Giacomo
public e private
Esempio
Impatto metadologico
Overloading di funzioni
Esempio
Costruttori
Cos'è un costruttore
Esempio
Invocazione del costruttore
Esempio
Analizziamo la costruzione di un oggetto
Inizializzazioni implicite dei campi di una classe
Overloading di costruttori
Esempio di utilizzo
Costruttore standard
Lesson n. 14: Introduzione a java come linguaggio orientato agli oggetti. Lezione 4
Display lessons issues
Giuseppe De Giacomo
Esercizi di realizzazioni di classi e clienti
Esercizio (classe Automobile)
Funzioni static
Esercizio (cliente)
Riferimento implicito this
Lesson n. 15: Introduzione a java come linguaggio orientato agli oggetti. Lezione 5
Display lessons issues
Giuseppe De Giacomo
Package
Esempio
Import
Esempio
Sottopackage
Esempi
Package e direttori
Livelli di accesso: classi
File sorgente e classi
Livelli di accesso: campi
Regole di visibilità
Esempio
Osservazioni su informazioni hiding
Osservazioni sui package
Lesson n. 16: Introduzione a java come linguaggio orientato agli oggetti. Lezione 6
Giuseppe De Giacomo
Lesson n. 17: Introduzione a java come linguaggio orientato agli oggetti. Lezione 7
Giuseppe De Giacomo
Lesson n. 18: Introduzione a java come linguaggio orientato agli oggetti. Lezione 8
Giuseppe De Giacomo
Lesson n. 19: Introduzione a java come linguaggio orientato agli oggetti. Lezione 9
Giuseppe De Giacomo
Lesson n. 20: Introduzione a java come linguaggio orientato agli oggetti. Lezione 10
Giuseppe De Giacomo