Online Course – Certified Professional Internship in Functional Programming at the École Polytechnique Fédérale de Lausanne

High-level programming. Write elegant functional code to analyze data, large or small.

Suggested by: Coursera (What is Coursera?)

Professional Certificate

Intermediate level

No prior knowledge required

Time to complete the course

7-day free trial

No unnecessary risks

Skills you will acquire in the course

  • Scala programming language
  • Parallel computing
  • Apache Spark
  • Functional programming

What you will learn in the course

Courses for which the course is suitable

  • Software developer
  • Software Engineer
  • Scala Application Developer
  • Data Systems Analyst
  • Functional software developer
  • Parallel software developer
  • Apache Spark-based solutions developer
  • Data Engineer
  • Distributed systems developer

Internship – 5-lesson course series

  • Discover how to write elegant code that works the first time you run it.

Course Description

This specialization provides a practical introduction to functional programming using the popular programming language, Scala. The course starts with the basic elements of the functional model, showing how to use them to solve small problems, before moving on to the stage of integrating these concepts to design larger functional programs.

Main topics
  • The functional model facilitates parallel and distributed programming.
  • A series of practical examples and programming assignments.
  • Analysis of data systems of various sizes.
  • Parallel programming on multi-core architectures.
  • Distributed programming on a cluster using Apache Spark.

Final project

The final capstone project will allow you to apply the skills you have learned by building a large, data-intensive application using real-world data.

Applied Learning Project

Learners will build small to medium scale applications by using knowledge and skills including:

  • Functional programming
  • Parallel programming
  • Manipulation of big data systems
  • High-order functions
  • Feature-based testing
  • Functional Physical Programming

Details of the courses that make up the specialization

Principles of functional programming in Scala

  • Course 1
    • 56 hours
    • 4.8 (8,242 ratings)
  • Course Details
    • What you’ll learn
      • Understand the principles of functional programming
      • Write pure functional programs, using recursion, pattern matching, and high-level functions
      • Design immutable data structures
      • Combine functional programming with objects and classes
    • Skills you will acquire
      • Category: Recursion
      • Category: Scala Programming
      • Category: High-order functions
      • Category: Immutable tapes
      • Category: Functional Programming

Design of functional programs in Scala

  • Course 2
    • 35 hours
    • 4.5 (3,132 ratings)
  • Course Details
    • What you’ll learn
      • Recognize and apply design principles of functional programs
      • Design functional libraries and their APIs
      • Write simple reactive functional apps
      • Understand logic techniques for programs that combine functions and condition
    • Skills you will acquire
      • Category: Data Structures
      • Category: Parallel Computing
      • Category: Data-driven parallelism
      • Category: Parallel algorithms

Parallel programming

  • Course 3
    • 32 hours
    • 4.4 (1,839 ratings)
  • Course Details
    • What you’ll learn
      • With every smartphone and computer today having multiple processors, the use of functional ideas to facilitate parallel programming is becoming increasingly common.
      • In this course, you will learn the basics of parallel programming, from parallel recursion to data-driven parallelism.
      • See how well-known ideas from functional programming fit the data-driven parallelism paradigm.
      • We will start with the practical aspects of how to plan operations for known collections, and move on to managing parallel collections.
      • We will apply these concepts through several practical examples that analyze real-world data.
    • Learning outcomes
      • At the end of the course you will be able to:
        • Explain about parallel programs of tasks and data
        • Express common algorithms in functional style and solve them in parallel
        • Perform micro-benchmarking for parallel software
        • Write programs that effectively use parallel collections to achieve performance
    • Recommended background characterization
      • You must have at least one year of programming experience.
      • Skills with Java or C# are ideal, but experience with other languages ​​such as C/C++, Python, Javascript or Ruby is also satisfactory.
      • You should be familiar with using the command line.
      • The course is intended to be taken after designing functional programs in Scala.

Functional Programming and Big Data with Scala and Spark

  • Course 4
    • 27 hours
    • 4.6 (2,586 ratings)
  • Course Details
    • What you’ll learn
      • Manipulating big data distributed across a cluster using functional ideas is common in the industry.
      • This is reflected in the popularity of MapReduce and Hadoop, and more recently, Apache Spark.
      • We will see how the data-based parallelism paradigm can be extended to the case of distribution.
      • We will cover the Spark programming model in detail.
      • We will learn when to consider important distribution-related issues such as latency and network communication.
    • Learning outcomes
      • At the end of the course you will be able to:
        • Read data from persistent storage and load it into Apache Spark
        • For data manipulation with Spark and Scala
        • Express data analysis algorithms in a functional style
        • Identify how to avoid duplication and relaunches in Spark
    • Recommended background characterization
      • You must have at least one year of programming experience.
      • Skills with Java or C# are ideal, but experience with other languages ​​such as C/C++, Python, Javascript or Ruby is also satisfactory.
      • You should be familiar with using the command line.
      • The course is intended to be taken after parallel programming.

Functional programming in a final project in Scala

  • Course 5
    • 32 hours
    • 4.4 (544 ratings)
  • Course Details
    • What you’ll learn
      • In the final project, you will apply the skills you have learned by building a large, data-heavy application.
      • This app will display interactive visualizations of temperature trends over time all over the world.
    • The development of such an application will include:
      • Converting data provided by weather stations into meaningful information.
      • Creating images from this information using spatial and linear interpolation techniques.
      • Implementing how the user interface will respond to user actions.

Skills you will acquire

  • Category: Scala Software
  • Category: Big Data
  • Category: SQL
  • Category: Apache Spark