MSE Master of Science in Engineering

The Swiss engineering master's degree


Ogni modulo equivale a 3 crediti ECTS. È possibile scegliere un totale di 10 moduli/30 ECTS nelle seguenti categorie: 

  • 12-15 crediti ECTS in moduli tecnico-scientifici (TSM)
    I moduli TSM trasmettono competenze tecniche specifiche del profilo e si integrano ai moduli di approfondimento decentralizzati.
  • 9-12 crediti ECTS in basi teoriche ampliate (FTP)
    I moduli FTP trattano principalmente basi teoriche come la matematica, la fisica, la teoria dell’informazione, la chimica ecc. I moduli ampliano la competenza scientifica dello studente e contribuiscono a creare un importante sinergia tra i concetti astratti e l’applicazione fondamentale per l’innovazione 
  • 6-9 crediti ECTS in moduli di contesto (CM)
    I moduli CM trasmettono competenze supplementari in settori quali gestione delle tecnologie, economia aziendale, comunicazione, gestione dei progetti, diritto dei brevetti, diritto contrattuale ecc.

La descrizione del modulo (scarica il pdf) riporta le informazioni linguistiche per ogni modulo, suddivise nelle seguenti categorie:

  • Insegnamento
  • Documentazione
  • Esame
Advanced Algorithms and Data Structures (FTP_AdvAlgDS)

Algorithms are at the heart of every computer program. Informally, an algorithm is a procedure to solve a (computational) problem within a finite number of elementary steps. The same problem can be addressed with different algorithms, hence it is important to compare the different options in order to choose the best one. Experimental analysis is one way to perform such comparison, but it has several limits. The main goal of this class is to learn how to analyze the performance of a given algorithm in a formal mathematical way. We will focus on some fundamental polynomial-time-solvable problems. Along the way, we will study some of the main techniques to design efficient algorithms, among which the use of efficient data structures.

Requisiti

Familiarity with basic discrete math, logic and probability theory. Familiarity with one programming language such as C++, Java, or similar languages.

Obiettivi di apprendimento

The main goal of this course is to learn basic techniques to design algorithms and data structures for fundamental polynomial-time-solvable problems, and mathematical tools to analyze their performance from a theoretical point of view.

Contenuti del modulo

A. Analytical tools: worst-case analysis and asymptotic notation; analysis of recursive algorithms; analysis of randomized algorithms; amortized analysis.

B. Algorithmic techniques: greedy; dynamic programming; divide et impera; randomization; fast data structures.

C. Data structures: search trees; priority queues; union-find; hash tables.

D. Polynomial-time problems: sorting and selection; shortest paths; minimum spanning tree; maximum flow; maximum matching.

Metodologie di insegnamento e apprendimento

Interactive lectures both for theory and exercises.

Bibliografia

- T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein. Introduction to Algorithms. MIT Press. Third edition.

- J. Kleinberg, E. Tardos. Algorithm Design. Addison-Wesley.

Scarica il descrittivo completo del modulo

Indietro