Functional Programming in Scala 특화 과정
Program on a Higher Level. Write elegant functional code to analyze data that's big or small
제공자:

배울 내용
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
귀하가 습득할 기술
이 전문 분야 정보
응용 학습 프로젝트
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.
At least one year of programming experience, in any language.
At least one year of programming experience, in any language.
특화 과정 이용 방법
강좌 수강
Coursera 특화 과정은 한 가지 기술을 완벽하게 습득하는 데 도움이 되는 일련의 강좌입니다. 시작하려면 특화 과정에 직접 등록하거나 강좌를 둘러보고 원하는 강좌를 선택하세요. 특화 과정에 속하는 강좌에 등록하면 해당 특화 과정 전체에 자동으로 등록됩니다. 단 하나의 강좌만 수료할 수도 있으며, 학습을 일시 중지하거나 언제든 구독을 종료할 수 있습니다. 학습자 대시보드를 방문하여 강좌 등록 상태와 진도를 추적해 보세요.
실습 프로젝트
모든 특화 과정에는 실습 프로젝트가 포함되어 있습니다. 특화 과정을 완료하고 수료증을 받으려면 프로젝트를 성공적으로 마쳐야 합니다. 특화 과정에 별도의 실습 프로젝트 강좌가 포함되어 있는 경우, 다른 모든 강좌를 완료해야 프로젝트 강좌를 시작할 수 있습니다.
수료증 취득
모든 강좌를 마치고 실습 프로젝트를 완료하면 취업할 때나 전문가 네트워크에 진입할 때 제시할 수 있는 수료증을 취득할 수 있습니다.

이 전문 분야에는 5개의 강좌가 있습니다.
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 language of many important frameworks, including Apache Spark, Kafka, and Akka. It provides the core infrastructure for sites such as Twitter, Tumblr and also Coursera.
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.
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.
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.
제공자:

로잔연방공과대학교
자주 묻는 질문
환불 규정은 어떻게 되나요?
하나의 강좌에만 등록할 수 있나요?
재정 지원을 받을 수 있나요?
해당 강좌를 무료로 수강할 수 있나요?
이 강좌는 100% 온라인으로 진행되나요? 직접 참석해야 하는 수업이 있나요?
전문 분야를 완료하면 대학 학점을 받을 수 있나요?
전문 분야를 완료하면 대학 학점을 받을 수 있나요?
How often is each course in the Specialization offered?
얼마나 자주 전문 분야의 강좌가 제공되나요?
Do I have to take the courses in this Specialization in a specific order?
Will I earn university credit for completing the Functional Programming in Scala Specialization?
Are there any recommended readings for this specialization?
궁금한 점이 더 있으신가요? 학습자 도움말 센터를 방문해 보세요.