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

PDF
Pattern -A scoring engine
PDF
Functional programming in Scala
PDF
Scala Programming Introduction
PDF
Get Programming with Scala MEAP V05 Daniela Sfregola
PDF
Functional Programming in Scala 1st Edition Paul Chiusano
PDF
Functional Programming in Scala 1st Edition Paul Chiusano
PDF
Functional Programming In Scala Second Edition Meap V08 2nd All Chapters Avai...
PDF
Teach Yourself some Functional Programming with Scala
Pattern -A scoring engine
Functional programming in Scala
Scala Programming Introduction
Get Programming with Scala MEAP V05 Daniela Sfregola
Functional Programming in Scala 1st Edition Paul Chiusano
Functional Programming in Scala 1st Edition Paul Chiusano
Functional Programming In Scala Second Edition Meap V08 2nd All Chapters Avai...
Teach Yourself some Functional Programming with Scala

Similar to Functional programming in scala coursera (20)

PDF
Scala Quick Introduction
PDF
Functional Programming in Scala in a Nutshell: Review of Functional Programmi...
PDF
Becoming Functional Steps For Transforming Into A Functional Programmer Joshu...
PDF
Functional Programming in Scala in a Nutshell
PPTX
Functional Programming Concept
PPTX
Functional Programming and Big Data
PPTX
Scala meetup Kyiv slides 20171215
PDF
Functional programming in Scala
PDF
Beyond PITS, Functional Principles for Software Architecture
PDF
Ankara Jug - Practical Functional Programming with Scala
PDF
Lecture1
PDF
190030341 fcp lab 1
PDF
Functional programming is the most extreme programming
PDF
A Functional Approach to Java: Augmenting Object-Oriented Java Code with Func...
PDF
Functional programming in Python 1st Edition David Mertz
PDF
Functional programming in Python 1st Edition David Mertz
PPTX
Fp and scala
PPTX
Why Functional Programming Is Important in Big Data Era
KEY
Scala: functional programming for the imperative mind
PPTX
Functional Programming.pptx
Scala Quick Introduction
Functional Programming in Scala in a Nutshell: Review of Functional Programmi...
Becoming Functional Steps For Transforming Into A Functional Programmer Joshu...
Functional Programming in Scala in a Nutshell
Functional Programming Concept
Functional Programming and Big Data
Scala meetup Kyiv slides 20171215
Functional programming in Scala
Beyond PITS, Functional Principles for Software Architecture
Ankara Jug - Practical Functional Programming with Scala
Lecture1
190030341 fcp lab 1
Functional programming is the most extreme programming
A Functional Approach to Java: Augmenting Object-Oriented Java Code with Func...
Functional programming in Python 1st Edition David Mertz
Functional programming in Python 1st Edition David Mertz
Fp and scala
Why Functional Programming Is Important in Big Data Era
Scala: functional programming for the imperative mind
Functional Programming.pptx
Ad

More from Ketan Raval (8)

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

Recently uploaded (20)

PDF
Complications of Minimal Access-Surgery.pdf
PPTX
ELIAS-SEZIURE AND EPilepsy semmioan session.pptx
PDF
Climate and Adaptation MCQs class 7 from chatgpt
PDF
1.3 FINAL REVISED K-10 PE and Health CG 2023 Grades 4-10 (1).pdf
PDF
IP : I ; Unit I : Preformulation Studies
PPTX
A powerpoint presentation on the Revised K-10 Science Shaping Paper
PDF
Myanmar Dental Journal, The Journal of the Myanmar Dental Association (2013).pdf
PDF
BP 505 T. PHARMACEUTICAL JURISPRUDENCE (UNIT 1).pdf
PDF
AI-driven educational solutions for real-life interventions in the Philippine...
PPTX
Computer Architecture Input Output Memory.pptx
DOCX
Cambridge-Practice-Tests-for-IELTS-12.docx
PDF
Vision Prelims GS PYQ Analysis 2011-2022 www.upscpdf.com.pdf
PDF
BP 505 T. PHARMACEUTICAL JURISPRUDENCE (UNIT 2).pdf
PDF
FORM 1 BIOLOGY MIND MAPS and their schemes
PPTX
Education and Perspectives of Education.pptx
PPTX
What’s under the hood: Parsing standardized learning content for AI
PPTX
Unit 4 Computer Architecture Multicore Processor.pptx
PPTX
Share_Module_2_Power_conflict_and_negotiation.pptx
PPTX
Climate Change and Its Global Impact.pptx
PDF
LIFE & LIVING TRILOGY - PART (3) REALITY & MYSTERY.pdf
Complications of Minimal Access-Surgery.pdf
ELIAS-SEZIURE AND EPilepsy semmioan session.pptx
Climate and Adaptation MCQs class 7 from chatgpt
1.3 FINAL REVISED K-10 PE and Health CG 2023 Grades 4-10 (1).pdf
IP : I ; Unit I : Preformulation Studies
A powerpoint presentation on the Revised K-10 Science Shaping Paper
Myanmar Dental Journal, The Journal of the Myanmar Dental Association (2013).pdf
BP 505 T. PHARMACEUTICAL JURISPRUDENCE (UNIT 1).pdf
AI-driven educational solutions for real-life interventions in the Philippine...
Computer Architecture Input Output Memory.pptx
Cambridge-Practice-Tests-for-IELTS-12.docx
Vision Prelims GS PYQ Analysis 2011-2022 www.upscpdf.com.pdf
BP 505 T. PHARMACEUTICAL JURISPRUDENCE (UNIT 2).pdf
FORM 1 BIOLOGY MIND MAPS and their schemes
Education and Perspectives of Education.pptx
What’s under the hood: Parsing standardized learning content for AI
Unit 4 Computer Architecture Multicore Processor.pptx
Share_Module_2_Power_conflict_and_negotiation.pptx
Climate Change and Its Global Impact.pptx
LIFE & LIVING TRILOGY - PART (3) REALITY & MYSTERY.pdf

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