À propos de ce cours
4.5
2,387 notes
414 avis
Spécialisation
100 % en ligne

100 % en ligne

Commencez dès maintenant et apprenez aux horaires qui vous conviennent.
Dates limites flexibles

Dates limites flexibles

Réinitialisez les dates limites selon votre disponibilité.
Niveau intermédiaire

Niveau intermédiaire

Heures pour terminer

Approx. 13 heures pour terminer

Recommandé : 5 hours/week...
Langues disponibles

Anglais

Sous-titres : Anglais

Compétences que vous acquerrez

StreamsFunctional DesignReactive ProgrammingFunctional Programming
Spécialisation
100 % en ligne

100 % en ligne

Commencez dès maintenant et apprenez aux horaires qui vous conviennent.
Dates limites flexibles

Dates limites flexibles

Réinitialisez les dates limites selon votre disponibilité.
Niveau intermédiaire

Niveau intermédiaire

Heures pour terminer

Approx. 13 heures pour terminer

Recommandé : 5 hours/week...
Langues disponibles

Anglais

Sous-titres : Anglais

Programme du cours : ce que vous apprendrez dans ce cours

Semaine
1
Heures pour terminer
8 heures pour terminer

For Expressions and Monads

We'll start by revisiting some concepts that we have learned from Principles of Functional Programming in Scala; collections, pattern matching, and functions. We'll then touch on for-comprehensions, a powerful way in Scala to traverse a list, process it, and return a new list. We'll see how to do queries with for-comprehensions as well as how the for-comprehension is "desugared" into calls to higher-order functions by the Scala compiler. Finally, we'll discuss what monads are, and how to verify that the monad laws are satisfied for a number of examples....
Reading
10 vidéos (Total 164 min), 11 lectures, 1 quiz
Video10 vidéos
Tools Setup for Mac OS X21 min
Tools for Setup for Windows18 min
Tutorial: Working on the Programming Assignments8 min
Recap: Functions and Pattern Matching19 min
Recap: Collections12 min
Lecture 1.1 - Queries with For7 min
Lecture 1.2 - Translation of For11 min
Lecture 1.3 - Functional Random Generators19 min
Lecture 1.4 - Monads20 min
Reading11 lectures
Troubleshooting10 min
Grading Policy10 min
Tools Setup10 min
Sbt Tutorial10 min
Eclipse Tutorial10 min
Intellij IDEA Tutorial10 min
Scala Tutorial10 min
Cheat Sheet10 min
Reactive Cheat Sheet10 min
Scala Style Guide10 min
Learning Resources10 min
Semaine
2
Heures pour terminer
7 heures pour terminer

Lazy Evaluation

This week we'll revisit performance issues caused by combinatorial search, and we'll discover an important concept in functional programming that can these issues: laziness. We'll also learn a little bit about proofs on trees; in particular, we'll see how to extend structural induction to trees....
Reading
5 vidéos (Total 80 min), 2 quiz
Video5 vidéos
Lecture 2.2 - Streams12 min
Lecture 2.3 - Lazy Evaluation11 min
Lecture 2.4 - Computing with Infinite Sequences9 min
Lecture 2.5 - Case Study: the Water Pouring Problem31 min
Semaine
3
Heures pour terminer
7 heures pour terminer

Functions and State

This week, we'll learn about state and side-effects. Through a rich example, we'll learn programming patterns for managing state in larger programs. We'll also learn about for-loops and while-loops in Scala....
Reading
6 vidéos (Total 72 min), 2 quiz
Video6 vidéos
Lecture 3.2 - Identity and Change8 min
Lecture 3.3 - Loops8 min
Lecture 3.4 - Extended Example: Discrete Event Simulation10 min
Lecture 3.5 - Discrete Event Simulation: API and Usage10 min
Lecture 3.6 - Discrete Event Simulation: Implementation and Test18 min
Semaine
4
Heures pour terminer
8 heures pour terminer

Timely Effects

This week we'll learn a number of important programming patterns via examples, starting with the observer pattern, and then going on to functional reactive programming. We'll learn how latency can be modeled as an effect, and how latency can be handled with Scala's monadic futures. We'll learn the important combinators on futures as well as how they can be composed to build up rich and responsive services....
Reading
11 vidéos (Total 109 min), 2 quiz
Video11 vidéos
Lecture 4.2 - Functional Reactive Programming20 min
Lecture 4.3 - A Simple FRP Implementation19 min
Lecture 4.4 - Latency as an Effect 17 min
Lecture 4.5 - Latency as an Effect 212 min
Lecture 4.6 - Combinators on Futures 19 min
Lecture 4.7 - Combinators on Futures 27 min
Lecture 4.8 - Composing Futures 14 min
Lecture 4.9 - Implementation of flatMap on Future3 min
Lecture 4.10 - Composing Futures 28 min
Conclusion4 min
4.5
414 avisChevron Right
Orientation de carrière

41%

a commencé une nouvelle carrière après avoir terminé ces cours
Avantage de carrière

30%

a bénéficié d'un avantage concret dans sa carrière grâce à ce cours

Meilleurs avis

par RPSep 15th 2016

This is a university degree course which takes enormous effort to complete. But still its beond the programming course range giving you whats not possible to google or learn practical way. Thanks!

par ESMar 18th 2018

Thank you for this exciting course! I did the FP in Scala course a few years ago and decided to do the full certification now. I am looking forward to the next courses in the specialisation.

Enseignant

Avatar

Martin Odersky

Professor
Computer Science

À propos de École Polytechnique Fédérale de Lausanne

À propos de la Spécialisation Functional Programming in Scala

Discover how to write elegant code that works the first time it is run. This Specialization provides a hands-on introduction to functional programming using the widespread programming language, Scala. It begins from the basic building blocks of the functional paradigm, first showing how to use these blocks to solve small problems, before building up to combining these concepts to architect larger functional programs. You'll see how the functional paradigm facilitates parallel and distributed programming, and through a series of hands on examples and programming assignments, you'll learn how to analyze data sets small to large; from parallel programming on multicore architectures, to distributed programming on a cluster using Apache Spark. A final capstone project will allow you to apply the skills you learned by building a large data-intensive application using real-world data....
Functional Programming in Scala

Foire Aux Questions

  • Une fois que vous êtes inscrit(e) pour un Certificat, vous pouvez accéder à toutes les vidéos de cours, et à tous les quiz et exercices de programmation (le cas échéant). Vous pouvez soumettre des devoirs à examiner par vos pairs et en examiner vous-même uniquement après le début de votre session. Si vous préférez explorer le cours sans l'acheter, vous ne serez peut-être pas en mesure d'accéder à certains devoirs.

  • Lorsque vous vous inscrivez au cours, vous bénéficiez d'un accès à tous les cours de la Spécialisation, et vous obtenez un Certificat lorsque vous avez réussi. Votre Certificat électronique est alors ajouté à votre page Accomplissements. À partir de cette page, vous pouvez imprimer votre Certificat ou l'ajouter à votre profil LinkedIn. Si vous souhaitez seulement lire et visualiser le contenu du cours, vous pouvez accéder gratuitement au cours en tant qu'auditeur libre.

D'autres questions ? Visitez le Centre d'Aide pour les Etudiants.