CdSINFORMATICA
Codice735AA
CFU15
PeriodoAnnuale
LinguaItaliano
Lo studente acquisirà conoscenze della teoria degli algoritmi e la teoria della programmazione.
The student will learn algorithm and programming theory.
Esercitazioni di autovalutazione.
Self-evaluation exercises.
Lo studente saprà scegliere i costrutti dei linguaggi di programmazione in modo corretto e coerente con gli algoritmi da codificare.
Lo studente saprà disegnare algoritmi efficienti per la soluzione di problemi complessi.
The student will be able to correctly and coherently chose programming primitives for the algorithms to be coded.
The student will be able to design efficient algorithms for complex problems.
Esercitazioni di autovalutazione.
Self-evaluation exercises.
Lo studente acquisirà la capacità di analizzare problemi complessi, riuscire a definire soluzioni algoritmiche con tecniche di codifica di programmazione correte e coerenti con la complessità del problema.
Lo studente acquisirà la capacità di formalizzare concetti e tecniche di programmazione così come gli algoritmi e la loro complessità.
The student will be able to anlyze complex problems, define algorithmic solutions with coding methods coherent with the complexity of the problem at hand.
The student will be able to formalize concepts and programming methods as well as algorithms and their complexity.
Esercitazioni di autovalutazione.
Self-evaluation exercises.
Nessuno
None
Lezioni frontali con numerosi esercizi di chiarimento, esercitazioni periodiche sui concetti introdotti, esercitazioni di autovalutazione.
Lectures with many exercises, periodic practical lectures and self-evaluation exercises
- Struttura di un calcolatore e ambienti di sviluppo. Analisi asintotica del costo computazionale. Rappresentazione delle informazioni. Problemi computazionali e algoritmi di risoluzione.
- Controllo delle operazioni e del flusso all’interno di un programma. Problem solving su array.
- Blocco e struttura dei programmi. Funzioni, passaggio dei parametri. Ricorsione,
- Algoritmi per ordinamento e ricerca.
- Strutture di dati dinamiche. Liste. Code e pile. Tabelle hash e dizionari.
- Divide et impera, programmazione dinamica, algoritmi greedy.
- Algoritmi per alberi e grafi.
- Cenni di calcolabilità e di classi di complessità.
- Computer architecture and development environment. Asimptotic analysis of computational cost. Information representation. Computational problems and solving algorithms.
- Program flux control. Problem solving with arrays.
- Blocks and program structurei. Functions, parameter passing mechanisms. Recursion,
- Search and sorting algorithms.
- Dynamic data structure. Lists. Queues and stack. Hash tables, dictionaries.
- Divide et impera, dynamic programming, greedy algorithms.
- Tree and graph algorithms.
- Brief notes on complexity and computability.
Slides presentate a lezione, registrazioni delle lezioni, articoli scientifici e note fornite dal docente.
Slides, lecture recording, scientific papers and teacher notes.
Esame scritto.
Written exam.