We may earn an affiliate commission when you visit our partners.
Course image
Prof. Viktor Kuncak, Dr. Aleksandar Prokopec, Martin Odersky, Dr. Heather Miller, Dr. Julien Richard-Foy, Julien Richard-Foy, and Prof. Heather Miller

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

Read more

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.

Enroll now

Share

Help others find Specialization from Coursera by sharing it with your friends and followers:

What's inside

Five courses

Functional Programming Principles in Scala

(5 hours)
Functional programming is becoming increasingly widespread in industry. This trend is driven by the adoption of Scala as the main programming language for many applications. Scala fuses functional and object-oriented programming in a practical package. It interoperates seamlessly with both Java and Javascript. Scala is the implementation language of many important frameworks, including Apache Spark, Kafka, and Akka.

Functional Program Design in Scala

In this course, you will learn how to apply the functional programming style in the design of larger Scala applications. You'll get to know important new functional programming concepts, from lazy evaluation to structuring your libraries using monads.

Parallel programming

With every smartphone and computer now boasting multiple processors, the use of functional ideas to facilitate parallel programming is becoming increasingly widespread. In this course, you'll learn the fundamentals of parallel programming, from task parallelism to data parallelism.

Big Data Analysis with Scala and Spark

(5 hours)
Manipulating big data distributed over a cluster using functional concepts is rampant in industry. This course covers Spark's programming model in detail, being careful to understand how and when it differs from familiar programming models. Through hands-on examples in Spark and Scala, we'll learn when important issues related to distribution like latency and network communication should be considered and how they can be addressed effectively for improved performance.

Functional Programming in Scala Capstone

(0 hours)
In the capstone project, you will build a data-intensive application using real-world data. You will implement an application that processes gigabytes of data and shows interactive visualizations of temperature evolution worldwide.

Learning objectives

  • Write purely functional programs using recursion, pattern matching, and higher-order functions
  • Design immutable data structures
  • Write programs that effectively use parallel collections to achieve performance
  • Manipulate data with spark and scala

Save this collection

Save Functional Programming in Scala to your list so you can find it easily later:
Save
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser