À propos de ce cours
4.8
5,645 notes
1,144 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

At least one year of programming (in any language)

Heures pour terminer

Approx. 23 heures pour terminer

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

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

At least one year of programming (in any language)

Heures pour terminer

Approx. 23 heures pour terminer

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

Anglais

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

Programme du cours : ce que vous apprendrez dans ce cours

Semaine
1
Heures pour terminer
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...
Reading
11 videos (Total 139 min), 8 lectures, 4 quiz
Video11 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
Reading8 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
Quiz1 exercice pour s'entraîner
Learning check-in2 min
Semaine
2
Heures pour terminer
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....
Reading
7 videos (Total 84 min), 2 quiz
Video7 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
Heures pour terminer
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....
Reading
3 videos (Total 66 min), 2 quiz
Video3 vidéos
Lecture 3.2 - How Classes Are Organized20 min
Lecture 3.3 - Polymorphism21 min
Semaine
4
Heures pour terminer
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....
Reading
7 videos (Total 117 min), 2 quiz
Video7 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
4.8
1,144 avisChevron Right
Orientation de carrière

27%

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

83%

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

11%

a obtenu une augmentation de salaire ou une promotion

Meilleurs avis

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 VPSep 14th 2018

It took me much longer than expected to finish the course and sometimes it made me feel stupid and helpless. Diving into functional programming was a mind bending experience, totally worth time spent!

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.