This online course provides the students with the competences and skills to perform advanced Data Analysis using the Python programming language.
- Dozent/in: Andreas Fischer
- Dozent/in: Marcus Haag
- Dozent/in: Michael Jungo
Computer science is described as a branch of knowledge where abstraction (dealing with ideas rather than events) is of concern. In this course, students will learn about fundamen- tal topics related to computer science and their applications within the Master in Digital Neuroscience at the University of Fribourg. This course offers students an introduction to computer science with or without prior programming experience. The course covers topics ranging from basic computing principles to the mathematical foundations required for com- puter science. Students will learn fundamental computer concepts, which can be applied to any software or computer system. Topics include computer and network architectures, algorithm design, data management and structures, and modern applications (e.g., databases, recommender systems, and digital ethics). The course brings knowledge from experts in the field, from academia, and also from business practice.
- Dozent/in: Marcus Haag
- Dozent/in: Esther Mauron
- Dozent/in: Luis Fernando Teran Tamayo
- Dozent/in: Samuel Aggeler
- Dozent/in: Hans-Joachim Böckenhauer
- Dozent/in: Johanni Michael Brea
- Dozent/in: Lucia Di Caro
- Dozent/in: Pascal FELBER
- Dozent/in: Fabian Frei
- Dozent/in: Thomas Fritz
- Dozent/in: Andrea Gallidabino
- Dozent/in: Walter Gander
- Dozent/in: Linus Gasser
- Dozent/in: Thomas Graf
- Dozent/in: Dominik Gruntz
- Dozent/in: Matthias Hauswirth
- Dozent/in: Sven Helmer
- Dozent/in: Heinz Hofer
- Dozent/in: Andreas Humm
- Dozent/in: Dennis Komm
- Dozent/in: Andreas Kreuzmann
- Dozent/in: Marc Langheinrich
- Dozent/in: Marco Lehmann
- Dozent/in: Martin Lehmann
- Dozent/in: David Benjamin Lehnherr
- Dozent/in: Olivier Lévêque
- Dozent/in: Joel Lindegger
- Dozent/in: Marcel Lüthi
- Dozent/in: Sandro Marchon
- Dozent/in: Bernhard Matter
- Dozent/in: Andreas Morel
- Dozent/in: Igor Moreno Santos
- Dozent/in: Michael Multerer
- Dozent/in: Luka Obser
- Dozent/in: Gabriele Röger
- Dozent/in: Oliver Rohrer
- Dozent/in: Giovanni Serafini
- Dozent/in: Ronny Standtke
- Dozent/in: Matthias Emmanuel Stürmer
- Dozent/in: Ulrich Ultes-Nitsche
- Dozent/in: Andreas Woitzik
- Dozent/in: Johanni Michael Brea
- Dozent/in: Didier Buchs
- Dozent/in: Iulian CIORASCU
- Dozent/in: Romain Edelmann
- Dozent/in: Pascal FELBER
- Dozent/in: Benoît Garbinato
- Dozent/in: Linus Gasser
- Dozent/in: Adrian HOLZER
- Dozent/in: Andreas Humm
- Dozent/in: Georges Klein
- Dozent/in: Lorenzo LEONINI
- Dozent/in: Olivier Lévêque
- Dozent/in: Jean-Philippe Pellet
- Dozent/in: Biljana Petreska von Ritter-Zahony
- Dozent/in: Solal Vincenzo Pirelli
- Dozent/in: Alain SANDOZ
- Dozent/in: Ulrich Ultes-Nitsche
Nous aborderons dans ce cours quelques-uns des problèmes principaux en programmation répartie (élection d'un leader, exclusion mutuelle, temps logique et synchronisation, algorithmes de graphe, communication de groupe, consensus, etc.) en version répartie.
Les paradigmes de programmation concurrente et répartie seront abordés et illustrés par la mise en œuvre d’algorithmes, principalement dans le langage Erlang/Elixir.
Le cours se compose d'une partie théorique (cours et exercices), ainsi que d’une partie pratique (exercices et mini projet, réalisés dans un environnement réparti).
Pré-requis : bonne connaissance d’un langage de programmation, tel que Python, C ou Java. Une introduction à Erlang/Elixir (un langage de programmation concurrent et fonctionnel) sera donnée.
- Dozent/in: Pascal FELBER
- Dozent/in: Loris Witschard
- Dozent/in ohne Bearbeitungsrecht: Nathan Damien Felber
L’objectif de ce cours est d'acquérir des compétences solides en programmation impérative, en utilisant le langage Java. Le cours aborde les concepts fondamentaux comme les variables, les expressions, les instructions, ainsi que les structures de contrôle et de données.
Il vise également à développer la pensée algorithmique, en mettant l'accent sur la récursivité. Les étudiants seront amenés à comprendre comment résoudre des problèmes à travers des algorithmes efficaces.
Une attention particulière est portée à la pratique de la programmation, afin de renforcer les compétences techniques et assurer une maîtrise concrète des concepts étudiés.
- Dozent/in: Jean-Luc Bloechle
- Dozent/in: Nathan Wegmann
Description
In this course, we teach the main principles of algorithmic design, study classic algorithmic problems and introduce the most important algorithms for solving them.
Algorithmic design principles are general approaches for developing algorithms. In particular, we consider recursive and inductive methods, divide-and-conquer, backtracking and dynamic programming.
Over the years, a number of algorithmic problems have established themselves as classical problems of computer science, and elegant data structures and algorithms have been developed to solve these problems. In this course, we consider the following problems, data structures and algorithms:
- Sort: merge sort and quicksort
- Search: symbol tables, binary search trees, balanced search trees, hash tables
- Graphs: spanning trees, shortest paths, maximum flows
- Strings: String search, tries, regular expressions, data compression
Applications from practice illustrate the concepts.
Preconditions
Basic programming skills in some programming language. We will be primarily using Python, but other languages are permitted and welcome.
Learning objectives
The students gain a basic understanding of the design and analysis of data structures and algorithms.
Comments
In general, the course consists of two hours of lecture followed by two hours of classroom exercises, which are overseen by the teachers and their assistants.
Textbooks
- Algorithms, Robert Sedgewick und Kevin Wayne, Addison-Wesley, 4th edition, 2011
- Introduction to Algorithms, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, The MIT Press, 3rd edition, 2009
- Dozent/in: Bastian Alexander Grossenbacher