Functional Programming in Scala Specialization

开始时间: 06/21/2022 持续时间: Approximately 7 months to complete Suggested pace of 7 hours/week

所在平台: Coursera专项课程

课程类别: 计算机科学

大学或机构: CourseraNew



第一个写评论        关注课程


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.

Scala专业化中的函数式编程:发现如何编写优雅的代码,使其在首次运行时就可以工作。 该专业知识提供了使用广泛的编程语言Scala进行功能编程的动手入门。它从功能范式的基本构建模块开始,首先展示了如何使用这些模块来解决小问题,然后再构建以将这些概念组合起来以构建更大的功能程序。您将看到功能范式如何促进并行和分布式编程,并通过一系列动手操作示例和编程分配,将学习如何分析从小到大的数据集。从多核体系结构上的并行编程到使用Apache Spark在集群上的分布式编程。最终的顶点项目将使您能够运用通过使用实际数据构建大型数据密集型应用程序而学到的技能。


Course: 1

Course Link:

Title:Functional Programming Principles in Scala

Description: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. It provides the core infrastructure for sites such as Twitter, Netflix, Zalando, and also Coursera.

Course: 2

Course Link:

Title:Functional Program Design in Scala

Description: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.

Course: 3

Course Link:

Title:Parallel programming

Description: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.

Course: 4

Course Link:

Title:Big Data Analysis with Scala and Spark

Description: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.



洛桑联邦理工学院的Scala函数式编程专项课程系列(Functional Programming in Scala Specialization) ,这个系列包含5门子课程,涵盖函数式编程入门,并行编程,Scala和Spark。这是Coursera上的一门明星课程,由Scala的创始人亲自传授,入门函数式编程的最佳途径之一,感兴趣的同学也可以关注:Program on a Higher Level-Write elegant functional code to analyze data that's big or small


Scala Scala入门 函数式编程 函数式语言 函数式编程入门 函数式 EPFL Martin Programming functional Odersky Scala公开课 洛桑联邦理工学院