MSE Master of Science in Engineering

The Swiss engineering master's degree


Chaque module vaut 3 ECTS. Vous sélectionnez 10 modules/30 ECTS parmi les catégories suivantes:

  • 12-15 crédits ECTS en Modules technico-scientifiques (TSM)
    Les modules TSM vous transmettent une compétence technique spécifique à votre orientation et complètent les modules de spécialisation décentralisés.
  • 9-12 crédits ECTS en Bases théoriques élargies (FTP)
    Les modules FTP traitent de bases théoriques telles que les mathématiques élevées, la physique, la théorie de l’information, la chimie, etc., vous permettant d’étendre votre profondeur scientifique abstraite et de contribuer à créer le lien important entre l’abstraction et l’application dans le domaine de l’innovation.
  • 6-9 crédits ECTS en Modules contextuels (CM)
    Les modules CM vous transmettent des compétences supplémentaires dans des domaines tels que la gestion des technologies, la gestion d’entreprise, la communication, la gestion de projets, le droit des brevets et des contrats, etc.

Le descriptif de module (download pdf) contient le détail des langues pour chaque module selon les catégories suivantes:

  • leçons
  • documentation
  • examen 
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.

Compétences préalables

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

Objectifs d'apprentissage

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.

Contenu des modules

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.

Méthodes d'enseignement et d'apprentissage

Interactive lectures both for theory and exercises.

Bibliographie

- 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.

Télécharger le descriptif complet

Retour