Obiettivi formativi: Fornire conoscenze sui metodi di rappresentazione delle principali strutture di dati (pile, code, liste, alberi, grafi) e sugli algoritmi fondamentali per la loro gestione. Esporre glli strumenti formali per la valutazione rigorosa della complessità computazionale degli algoritmi e dei problemi. E' un obiettivo del corso anche lìacquisizione di familiarità con i principali approcci algoritmici (divide-et-impera, greedy, incrementale) e con i paradigmi di programmazione ricorsivo ed iterativo. Per le esercitazioni e le prove d'esame del corso viene utilizzato il linguaggio C.

Aims of this course: Provide knowledge on basic data structures (stacks, queues, lists, trees, graphs) and fundamental algorithms for their management. Acquire the formal tools for a rigorous evaluation of the computational complexity of algorithms and problems. a further objective of the course is the acquisition of familiarity with the main algorithmic approaches (divide and conquer, greedy, incremental) and the recursive and iterative programming paradigms. The course adopts the C language for laboratories and for final evaluation.

Benvenuti al corso di Analisi e progettazione del software (2019-2020). 

Queste pagine verranno usate per:

  • consegnare gli homework assegnati agli studenti del corso di Analisi e progettazione del software durante lo svolgimento delle lezioni
  • pubblicare alcune videolezioni, per sostituire temporaneamente le lezioni frontali 

Programma, materiale e tutte le altre informazioni sono disponibili sul sito Web del corso. 

Il corso fornisce le conoscenze di base relativamente a:

  • Modellistica matematica dei sistemi
  • Analisi della dinamica dei sistemi (Stabilità, Risposta in frequenza, ecc.)
  • Progettazione di leggi di controllo per semplici sistemi
  • Realizzazione delle leggi di controllo con calcolatori

Al termine del corso lo studente sarà in grado di caratterizzare il comportamento dinamico di un sistema e di realizzare il relativo dispositivo di controllo.