À propos de ce cours
200,100 consultations récentes

100 % en ligne

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

Dates limites flexibles

Réinitialisez les dates limites selon votre disponibilité.

Niveau intermédiaire

At least one year of programming (in any language)

Approx. 23 heures pour terminer

Recommandé : 5 hours / week...

Anglais

Sous-titres : Anglais, Coréen, Serbe, Français

Ce que vous allez apprendre

  • Check

    Understand the principles of functional programming

  • Check

    Write purely functional programs, using recursion, pattern matching, and higher-order functions

  • Check

    Design immutable data structures

  • Check

    Combine functional programming with objects and classes

Compétences que vous acquerrez

RecursionScala ProgrammingArray ProgrammingFunctional Programming

100 % en ligne

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

Dates limites flexibles

Réinitialisez les dates limites selon votre disponibilité.

Niveau intermédiaire

At least one year of programming (in any language)

Approx. 23 heures pour terminer

Recommandé : 5 hours / week...

Anglais

Sous-titres : Anglais, Coréen, Serbe, Français

Programme du cours : ce que vous apprendrez dans ce cours

Semaine
1
13 heures pour terminer

Getting Started + Functions & Evaluation

Get up and running with Scala on your computer. Complete an example assignment to familiarize yourself with our unique way of submitting assignments. In this week, we'll learn the difference between functional imperative programming. We step through the basics of Scala; covering expressions, evaluation, conditionals, functions, and recursion

...
11 vidéos (Total 139 min), 8 lectures, 4 quiz
11 vidéos
Tools Setup for Linux22 min
Tools Setup for Mac OS X21 min
Tools Setup for Windows18 min
Lecture 1.1 - Programming Paradigms14 min
Lecture 1.2 - Elements of Programming14 min
Lecture 1.3 - Evaluation Strategies and Termination4 min
Lecture 1.4 - Conditionals and Value Definitions8 min
Lecture 1.5 - Example: square roots with Newton's method11 min
Lecture 1.6 - Blocks and Lexical Scope8 min
Lecture 1.7 - Tail Recursion12 min
8 lectures
Tools Setup (Please read)10 min
Cheat Sheet10 min
IntelliJ IDEA Tutorial10 min
Eclipse Tutorial10 min
SBT tutorial and Submission of Assignments (Please read)10 min
Learning Resources10 min
Scala Tutorial10 min
Scala Style Guide10 min
1 exercice pour s'entraîner
Learning check-in2 min
Semaine
2
7 heures pour terminer

Higher Order Functions

This week, we'll learn about functions as first-class values, and higher order functions. We'll also learn about Scala's syntax and how it's formally defined. Finally, we'll learn about methods, classes, and data abstraction through the design of a data structure for rational numbers.

...
7 vidéos (Total 84 min), 2 quiz
7 vidéos
Lecture 2.2 - Currying14 min
Lecture 2.3 - Example: Finding Fixed Points10 min
Lecture 2.4 - Scala Syntax Summary4 min
Lecture 2.5 - Functions and Data11 min
Lecture 2.6 - More Fun With Rationals15 min
Lecture 2.7 - Evaluation and Operators16 min
Semaine
3
7 heures pour terminer

Data and Abstraction

This week, we'll cover traits, and we'll learn how to organize classes into hierarchies. We'll cover the hierarchy of standard Scala types, and see how to organize classes and traits into packages. Finally, we'll touch upon the different sorts of polymorphism in Scala.

...
3 vidéos (Total 66 min), 2 quiz
3 vidéos
Lecture 3.2 - How Classes Are Organized20 min
Lecture 3.3 - Polymorphism21 min
Semaine
4
8 heures pour terminer

Types and Pattern Matching

This week we'll learn about the relationship between functions and objects in Scala; functions *are* objects! We'll zoom in on Scala's type system, covering subtyping and generics, and moving on to more advanced aspects of Scala's type system like variance. Finally, we'll cover Scala's most widely used data structure, Lists, and one of Scala's most powerful tools, pattern matching.

...
7 vidéos (Total 117 min), 2 quiz
7 vidéos
Lecture 4.2 - Functions as Objects8 min
Lecture 4.3 - Subtyping and Generics15 min
Lecture 4.4 - Variance (Optional)21 min
Lecture 4.5 - Decomposition16 min
Lecture 4.6 - Pattern Matching19 min
Lecture 4.7 - Lists16 min
Semaine
5
1 heure pour terminer

Lists

This week we dive into Lists, the most commonly-used data structure in Scala.

...
7 vidéos (Total 88 min)
7 vidéos
Lecture 5.2 - Pairs and Tuples10 min
Lecture 5.3 - Implicit Parameters11 min
Lecture 5.4 - Higher-Order List Functions14 min
Lecture 5.5 - Reduction of Lists15 min
Lecture 5.6 - Reasoning About Concat13 min
Lecture 5.7 - A Larger Equational Proof on Lists9 min
Semaine
6
8 heures pour terminer

Collections

After a deep-dive into Lists, this week we'll explore other data structures; vectors, maps, ranges, arrays, and more. We'll dive into Scala's powerful and flexible for-comprehensions for querying data.

...
6 vidéos (Total 99 min), 2 quiz
6 vidéos
Lecture 6.2 - Combinatorial Search and For-Expressions13 min
Lecture 6.3 - Combinatorial Search Example16 min
Lecture 6.4 - Maps22 min
Lecture 6.5 - Putting the Pieces Together20 min
Conclusion4 min
4.8
1,241 avisChevron Right

29%

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

26%

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

11%

a obtenu une augmentation de salaire ou une promotion

Principaux examens pour Principes de la programmation fonctionnelle dans Scala

par RSOct 9th 2016

Really good explanation by the instructor. Good assignments. The assignments gave a good insights into functional programming. I loved the way the problems were decomposed into neat smaller functions.

par GBAug 13th 2017

An excellent introduction to the concepts of functional programming that had the "side-effect" of getting me hooked on the language! (Even though the hipster in me really wanted to prefer Clojure.)

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.