SlideShare a Scribd company logo
1/5
Functional Programming in Scala | Coursera
coursera.org/specializations/scala
Functional Programming in Scala Specialization
Program on a Higher Level. Write elegant functional code to analyze data that's big or
small
WHAT YOU WILL LEARN
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
SKILLS YOU WILL GAIN
Scala ProgrammingParallel ComputingApache SparkFunctional
ProgrammingRecursionImmutable Data TypesHigher-Order FunctionLazinessType
ClassReferential TransparencyReactive ProgrammingData Structure
About this Specialization
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
click to go to course
2/5
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.
Applied Learning Project
Learners will build small to medium size Scala applications by applying knowledge and
skills including: functional programming, parallel programming, manipulation of large
data sets, higher-order functions, property-based testing, functional reactive
programming.
How the Specialization Works
Take Courses
A Coursera Specialization is a series of courses that helps you master a skill. To begin,
enroll in the Specialization directly, or review its courses and choose the one you'd like to
start with. When you subscribe to a course that is part of a Specialization, you’re
automatically subscribed to the full Specialization. It’s okay to complete just one course —
you can pause your learning or end your subscription at any time. Visit your learner
dashboard to track your course enrollments and your progress.
Hands-on Project
Every Specialization includes a hands-on project. You'll need to successfully finish the
project(s) to complete the Specialization and earn your certificate. If the Specialization
includes a separate course for the hands-on project, you'll need to finish each of the other
courses before you can start it.
Earn a Certificate
When you finish every course and complete the hands-on project, you'll earn a Certificate
that you can share with prospective employers and your professional network.
There are 5 Courses in this Specialization
COURSE
1
Functional Programming Principles in Scala
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
3/5
language of many important frameworks, including Apache Spark, Kafka, and Akka. It
provides the core infrastructure for sites such as Twitter, Netflix, Zalando, and also
Coursera.
In this course, you will discover the elements of the functional programming style and
learn how to apply them usefully in your daily programming tasks, such as modeling
business domains or implementing business logic. You will also develop a solid
foundation for reasoning about functional programs, by touching upon proofs of
invariants and the tracing of execution symbolically. The course is hands-on; most units
introduce short programs that serve as illustrations of important concepts and invite you
to play with them, modifying and improving them. The course is complemented by a
series of programming projects as homework assignments. Recommended background:
You should have at least one year of programming experience. Proficiency with Java or C#
is ideal, but experience with other languages such as C/C++, Python, Javascript, or Ruby
is also sufficient. You should have some familiarity using the command line.
SHOW ALL ABOUT FUNCTIONAL PROGRAMMING PRINCIPLES IN SCALASHOW
ALL
COURSE
2
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. We'll work on
larger and more involved examples, from state space exploration to random testing to
discrete circuit simulators. You’ll also learn some best practices on how to write good
Scala code in the real world. Finally, you will learn how to leverage the ability of the
compiler to infer values from types.
Several parts of this course deal with the question how functional programming interacts
with mutable state. We will explore the consequences of combining functions and state.
We will also look at purely functional alternatives to mutable state, using infinite data
structures or functional reactive programming. Recommended background: You should
have at least one year programming experience. Proficiency with Java or C# is ideal, but
experience with other languages such as C/C++, Python, Javascript or Ruby is also
sufficient. You should have some familiarity with using the command line. This course is
intended to be taken after Functional Programming Principles in Scala:
https://www.coursera.org/learn/progfun1.
SHOW ALL ABOUT FUNCTIONAL PROGRAM DESIGN IN SCALASHOW ALL
COURSE
3
4/5
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. In particular, you'll see how many familiar ideas from
functional programming map perfectly to to the data parallel paradigm. We'll start the
nuts and bolts how to effectively parallelize familiar collections operations, and we'll build
up to parallel collections, a production-ready data parallel collections library available in
the Scala standard library. Throughout, we'll apply these concepts through several hands-
on examples that analyze real-world data, such as popular algorithms like k-means
clustering.
Learning Outcomes. By the end of this course you will be able to: - reason about task and
data parallel programs, - express common algorithms in a functional style and solve them
in parallel, - competently microbenchmark parallel code, - write programs that effectively
use parallel collections to achieve performance Recommended background: You should
have at least one year programming experience. Proficiency with Java or C# is ideal, but
experience with other languages such as C/C++, Python, Javascript or Ruby is also
sufficient. You should have some familiarity using the command line. This course is
intended to be taken after Functional Program Design in Scala:
https://www.coursera.org/learn/progfun2.
SHOW ALL ABOUT PARALLEL PROGRAMMINGSHOW ALL
COURSE
4
Big Data Analysis with Scala and Spark
Manipulating big data distributed over a cluster using functional concepts is rampant in
industry, and is arguably one of the first widespread industrial uses of functional ideas.
This is evidenced by the popularity of MapReduce and Hadoop, and most recently Apache
Spark, a fast, in-memory distributed collections framework written in Scala. In this
course, we'll see how the data parallel paradigm can be extended to the distributed case,
using Spark throughout. We'll cover Spark's programming model in detail, being careful
to understand how and when it differs from familiar programming models, like shared-
memory parallel collections or sequential Scala collections. 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.
Learning Outcomes. By the end of this course you will be able to: - read data from
persistent storage and load it into Apache Spark, - manipulate data with Spark and Scala,
- express algorithms for data analysis in a functional style, - recognize how to avoid
shuffles and recomputation in Spark, Recommended background: You should have at
least one year programming experience. Proficiency with Java or C# is ideal, but
5/5
experience with other languages such as C/C++, Python, Javascript or Ruby is also
sufficient. You should have some familiarity using the command line. This course is
intended to be taken after Parallel Programming:
https://www.coursera.org/learn/parprog1.
Offered by
Start Learning Today
Shareable Specialization and Course Certificates
Self-Paced Learning Option
Course Videos & Readings
Practice Quizzes
Graded Assignments with Peer Feedback
Graded Quizzes with Feedback
Graded Programming Assignments
Shareable on
You can share your Course Certificates in the Certifications section of
your LinkedIn profile, on printed resumes, CVs, or other documents.
.
go to course

More Related Content

Similar to Functional programming in scala coursera (20)

PPTX
Sviluppare applicazioni nell'era dei "Big Data" con Scala e Spark - Mario Car...
Codemotion
 
PDF
Core Java Vol 1 2 For The Impatient And Effective Pack 12th Ed Cay S Horstmann
makozoleva
 
PPTX
Introduction to Apache Spark Developer Training
Cloudera, Inc.
 
PDF
Apache spark-the-definitive-guide-excerpts-r1
AjayRawat971036
 
PPTX
Turbo Studio Crack + Activation Key Free Download {2025}
haiderrana2x1
 
PPTX
GerbView Crack With License Number Latest (2025)
haiderrana2x1
 
PPTX
PicPick Professional Crack With Full Latest Version (2025)
haiderrana2x1
 
PPTX
Abelssoft BankingBrowser Crack + Keygen (2025)
haiderrana2x1
 
PPTX
PassFab for RAR Crack + Serial Number (Latest Version)
haiderrana2x1
 
PPTX
OneCommander Pro With Activation Code Free Download
haiderrana2x1
 
PPTX
Overloud TH-U Premium Crack + Serial Code Free Download 2025
haiderrana2x1
 
PPTX
Xara Designer Pro Plus Keygen Latest Version Free Download
haiderrana2x1
 
PPTX
Pyspark vs Spark Let's Unravel the Bond!
ankitbhandari32
 
PPTX
Lessons Learned: Scala and its Ecosystem
Petr Hošek
 
PDF
Why scala for data science
Guglielmo Iozzia
 
PPT
Why scala - executive overview
Razvan Cojocaru
 
PPTX
Scala and spark
Janu Jahnavi
 
PDF
Functional Programming In Scala Second Edition Meap V08 2nd All Chapters Avai...
cawulineriku
 
PPTX
Java programming - solving problems with software
Son Nguyen
 
PPTX
Ten Compelling Reasons to Go the Scala Development Way - Metadesign Solutions
MetaDesign Solutions
 
Sviluppare applicazioni nell'era dei "Big Data" con Scala e Spark - Mario Car...
Codemotion
 
Core Java Vol 1 2 For The Impatient And Effective Pack 12th Ed Cay S Horstmann
makozoleva
 
Introduction to Apache Spark Developer Training
Cloudera, Inc.
 
Apache spark-the-definitive-guide-excerpts-r1
AjayRawat971036
 
Turbo Studio Crack + Activation Key Free Download {2025}
haiderrana2x1
 
GerbView Crack With License Number Latest (2025)
haiderrana2x1
 
PicPick Professional Crack With Full Latest Version (2025)
haiderrana2x1
 
Abelssoft BankingBrowser Crack + Keygen (2025)
haiderrana2x1
 
PassFab for RAR Crack + Serial Number (Latest Version)
haiderrana2x1
 
OneCommander Pro With Activation Code Free Download
haiderrana2x1
 
Overloud TH-U Premium Crack + Serial Code Free Download 2025
haiderrana2x1
 
Xara Designer Pro Plus Keygen Latest Version Free Download
haiderrana2x1
 
Pyspark vs Spark Let's Unravel the Bond!
ankitbhandari32
 
Lessons Learned: Scala and its Ecosystem
Petr Hošek
 
Why scala for data science
Guglielmo Iozzia
 
Why scala - executive overview
Razvan Cojocaru
 
Scala and spark
Janu Jahnavi
 
Functional Programming In Scala Second Edition Meap V08 2nd All Chapters Avai...
cawulineriku
 
Java programming - solving problems with software
Son Nguyen
 
Ten Compelling Reasons to Go the Scala Development Way - Metadesign Solutions
MetaDesign Solutions
 

More from Ketan Raval (8)

PDF
Enigmatic Depths Monty Halls Explores The Curse of The Blue Hole.pdf
Ketan Raval
 
PDF
Working in the Cloud
Ketan Raval
 
PDF
Diploma in web design
Ketan Raval
 
PDF
Computer programming and networking diploma
Ketan Raval
 
PDF
Ilovethis · diabetes care
Ketan Raval
 
PDF
Become an ai product manager
Ketan Raval
 
PDF
Java script basics for beginners
Ketan Raval
 
PDF
Get AWS scholarship AWS machine learning engineer
Ketan Raval
 
Enigmatic Depths Monty Halls Explores The Curse of The Blue Hole.pdf
Ketan Raval
 
Working in the Cloud
Ketan Raval
 
Diploma in web design
Ketan Raval
 
Computer programming and networking diploma
Ketan Raval
 
Ilovethis · diabetes care
Ketan Raval
 
Become an ai product manager
Ketan Raval
 
Java script basics for beginners
Ketan Raval
 
Get AWS scholarship AWS machine learning engineer
Ketan Raval
 
Ad

Recently uploaded (20)

PPTX
Post Dated Cheque(PDC) Management in Odoo 18
Celine George
 
PPTX
CATEGORIES OF NURSING PERSONNEL: HOSPITAL & COLLEGE
PRADEEP ABOTHU
 
PPTX
care of patient with elimination needs.pptx
Rekhanjali Gupta
 
PDF
Geographical diversity of India short notes by sandeep swamy
Sandeep Swamy
 
PDF
Aprendendo Arquitetura Framework Salesforce - Dia 03
Mauricio Alexandre Silva
 
PDF
DIGESTION OF CARBOHYDRATES,PROTEINS,LIPIDS
raviralanaresh2
 
PPTX
How to Create Odoo JS Dialog_Popup in Odoo 18
Celine George
 
PDF
Exploring the Different Types of Experimental Research
Thelma Villaflores
 
PDF
Reconstruct, Restore, Reimagine: New Perspectives on Stoke Newington’s Histor...
History of Stoke Newington
 
PPTX
How to Set Up Tags in Odoo 18 - Odoo Slides
Celine George
 
PPTX
QUARTER 1 WEEK 2 PLOT, POV AND CONFLICTS
KynaParas
 
PDF
Dimensions of Societal Planning in Commonism
StefanMz
 
PDF
The Different Types of Non-Experimental Research
Thelma Villaflores
 
PPT
Talk on Critical Theory, Part One, Philosophy of Social Sciences
Soraj Hongladarom
 
PDF
Stokey: A Jewish Village by Rachel Kolsky
History of Stoke Newington
 
PDF
Characteristics, Strengths and Weaknesses of Quantitative Research.pdf
Thelma Villaflores
 
PDF
Horarios de distribución de agua en julio
pegazohn1978
 
PPTX
grade 5 lesson matatag ENGLISH 5_Q1_PPT_WEEK4.pptx
SireQuinn
 
PPTX
Universal immunization Programme (UIP).pptx
Vishal Chanalia
 
PDF
0725.WHITEPAPER-UNIQUEWAYSOFPROTOTYPINGANDUXNOW.pdf
Thomas GIRARD, MA, CDP
 
Post Dated Cheque(PDC) Management in Odoo 18
Celine George
 
CATEGORIES OF NURSING PERSONNEL: HOSPITAL & COLLEGE
PRADEEP ABOTHU
 
care of patient with elimination needs.pptx
Rekhanjali Gupta
 
Geographical diversity of India short notes by sandeep swamy
Sandeep Swamy
 
Aprendendo Arquitetura Framework Salesforce - Dia 03
Mauricio Alexandre Silva
 
DIGESTION OF CARBOHYDRATES,PROTEINS,LIPIDS
raviralanaresh2
 
How to Create Odoo JS Dialog_Popup in Odoo 18
Celine George
 
Exploring the Different Types of Experimental Research
Thelma Villaflores
 
Reconstruct, Restore, Reimagine: New Perspectives on Stoke Newington’s Histor...
History of Stoke Newington
 
How to Set Up Tags in Odoo 18 - Odoo Slides
Celine George
 
QUARTER 1 WEEK 2 PLOT, POV AND CONFLICTS
KynaParas
 
Dimensions of Societal Planning in Commonism
StefanMz
 
The Different Types of Non-Experimental Research
Thelma Villaflores
 
Talk on Critical Theory, Part One, Philosophy of Social Sciences
Soraj Hongladarom
 
Stokey: A Jewish Village by Rachel Kolsky
History of Stoke Newington
 
Characteristics, Strengths and Weaknesses of Quantitative Research.pdf
Thelma Villaflores
 
Horarios de distribución de agua en julio
pegazohn1978
 
grade 5 lesson matatag ENGLISH 5_Q1_PPT_WEEK4.pptx
SireQuinn
 
Universal immunization Programme (UIP).pptx
Vishal Chanalia
 
0725.WHITEPAPER-UNIQUEWAYSOFPROTOTYPINGANDUXNOW.pdf
Thomas GIRARD, MA, CDP
 
Ad

Functional programming in scala coursera

  • 1. 1/5 Functional Programming in Scala | Coursera coursera.org/specializations/scala Functional Programming in Scala Specialization Program on a Higher Level. Write elegant functional code to analyze data that's big or small WHAT YOU WILL LEARN 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 SKILLS YOU WILL GAIN Scala ProgrammingParallel ComputingApache SparkFunctional ProgrammingRecursionImmutable Data TypesHigher-Order FunctionLazinessType ClassReferential TransparencyReactive ProgrammingData Structure About this Specialization 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 click to go to course
  • 2. 2/5 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. Applied Learning Project Learners will build small to medium size Scala applications by applying knowledge and skills including: functional programming, parallel programming, manipulation of large data sets, higher-order functions, property-based testing, functional reactive programming. How the Specialization Works Take Courses A Coursera Specialization is a series of courses that helps you master a skill. To begin, enroll in the Specialization directly, or review its courses and choose the one you'd like to start with. When you subscribe to a course that is part of a Specialization, you’re automatically subscribed to the full Specialization. It’s okay to complete just one course — you can pause your learning or end your subscription at any time. Visit your learner dashboard to track your course enrollments and your progress. Hands-on Project Every Specialization includes a hands-on project. You'll need to successfully finish the project(s) to complete the Specialization and earn your certificate. If the Specialization includes a separate course for the hands-on project, you'll need to finish each of the other courses before you can start it. Earn a Certificate When you finish every course and complete the hands-on project, you'll earn a Certificate that you can share with prospective employers and your professional network. There are 5 Courses in this Specialization COURSE 1 Functional Programming Principles in Scala 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
  • 3. 3/5 language of many important frameworks, including Apache Spark, Kafka, and Akka. It provides the core infrastructure for sites such as Twitter, Netflix, Zalando, and also Coursera. In this course, you will discover the elements of the functional programming style and learn how to apply them usefully in your daily programming tasks, such as modeling business domains or implementing business logic. You will also develop a solid foundation for reasoning about functional programs, by touching upon proofs of invariants and the tracing of execution symbolically. The course is hands-on; most units introduce short programs that serve as illustrations of important concepts and invite you to play with them, modifying and improving them. The course is complemented by a series of programming projects as homework assignments. Recommended background: You should have at least one year of programming experience. Proficiency with Java or C# is ideal, but experience with other languages such as C/C++, Python, Javascript, or Ruby is also sufficient. You should have some familiarity using the command line. SHOW ALL ABOUT FUNCTIONAL PROGRAMMING PRINCIPLES IN SCALASHOW ALL COURSE 2 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. We'll work on larger and more involved examples, from state space exploration to random testing to discrete circuit simulators. You’ll also learn some best practices on how to write good Scala code in the real world. Finally, you will learn how to leverage the ability of the compiler to infer values from types. Several parts of this course deal with the question how functional programming interacts with mutable state. We will explore the consequences of combining functions and state. We will also look at purely functional alternatives to mutable state, using infinite data structures or functional reactive programming. Recommended background: You should have at least one year programming experience. Proficiency with Java or C# is ideal, but experience with other languages such as C/C++, Python, Javascript or Ruby is also sufficient. You should have some familiarity with using the command line. This course is intended to be taken after Functional Programming Principles in Scala: https://www.coursera.org/learn/progfun1. SHOW ALL ABOUT FUNCTIONAL PROGRAM DESIGN IN SCALASHOW ALL COURSE 3
  • 4. 4/5 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. In particular, you'll see how many familiar ideas from functional programming map perfectly to to the data parallel paradigm. We'll start the nuts and bolts how to effectively parallelize familiar collections operations, and we'll build up to parallel collections, a production-ready data parallel collections library available in the Scala standard library. Throughout, we'll apply these concepts through several hands- on examples that analyze real-world data, such as popular algorithms like k-means clustering. Learning Outcomes. By the end of this course you will be able to: - reason about task and data parallel programs, - express common algorithms in a functional style and solve them in parallel, - competently microbenchmark parallel code, - write programs that effectively use parallel collections to achieve performance Recommended background: You should have at least one year programming experience. Proficiency with Java or C# is ideal, but experience with other languages such as C/C++, Python, Javascript or Ruby is also sufficient. You should have some familiarity using the command line. This course is intended to be taken after Functional Program Design in Scala: https://www.coursera.org/learn/progfun2. SHOW ALL ABOUT PARALLEL PROGRAMMINGSHOW ALL COURSE 4 Big Data Analysis with Scala and Spark Manipulating big data distributed over a cluster using functional concepts is rampant in industry, and is arguably one of the first widespread industrial uses of functional ideas. This is evidenced by the popularity of MapReduce and Hadoop, and most recently Apache Spark, a fast, in-memory distributed collections framework written in Scala. In this course, we'll see how the data parallel paradigm can be extended to the distributed case, using Spark throughout. We'll cover Spark's programming model in detail, being careful to understand how and when it differs from familiar programming models, like shared- memory parallel collections or sequential Scala collections. 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. Learning Outcomes. By the end of this course you will be able to: - read data from persistent storage and load it into Apache Spark, - manipulate data with Spark and Scala, - express algorithms for data analysis in a functional style, - recognize how to avoid shuffles and recomputation in Spark, Recommended background: You should have at least one year programming experience. Proficiency with Java or C# is ideal, but
  • 5. 5/5 experience with other languages such as C/C++, Python, Javascript or Ruby is also sufficient. You should have some familiarity using the command line. This course is intended to be taken after Parallel Programming: https://www.coursera.org/learn/parprog1. Offered by Start Learning Today Shareable Specialization and Course Certificates Self-Paced Learning Option Course Videos & Readings Practice Quizzes Graded Assignments with Peer Feedback Graded Quizzes with Feedback Graded Programming Assignments Shareable on You can share your Course Certificates in the Certifications section of your LinkedIn profile, on printed resumes, CVs, or other documents. . go to course