Специализация: общие сведения
Только онлайн-курсы

Только онлайн-курсы

Начните сейчас и учитесь по собственному графику.
Гибкий график

Гибкий график

Установите гибкие сроки сдачи заданий.
Промежуточный уровень

Промежуточный уровень

At least one year of programming experience, in any language.

Часов на завершение

Прибл. 5 месяца на выполнение

Около 5 ч/неделю
Доступные языки

Английский

Субтитры: Английский, Корейский, Сербский, Французский...

Чему вы научитесь

  • Check

    Write purely functional programs using recursion, pattern matching, and higher-order functions

  • Check

    Design immutable data structures

  • Check

    Write programs that effectively use parallel collections to achieve performance

  • Check

    Manipulate data with Spark and Scala

Приобретаемые навыки

Scala ProgrammingParallel ComputingApache SparkFunctional Programming
Только онлайн-курсы

Только онлайн-курсы

Начните сейчас и учитесь по собственному графику.
Гибкий график

Гибкий график

Установите гибкие сроки сдачи заданий.
Промежуточный уровень

Промежуточный уровень

At least one year of programming experience, in any language.

Часов на завершение

Прибл. 5 месяца на выполнение

Около 5 ч/неделю
Доступные языки

Английский

Субтитры: Английский, Корейский, Сербский, Французский...

Специализация: принцип работы

Пройти курсы

Специализация Coursera — это серия курсов, помогающих в совершенстве овладеть определенным навыком. Можно сразу записаться на специализацию или просмотреть курсы, из которых она состоит и выбрать тот, с которого вы хотите начать. Подписываясь на курс, который входит в специализацию, вы автоматически подписываетесь на всю специализацию. Можно завершить всего один курс, а потом сделать паузу в обучении или в любой момент отменить подписку. Отслеживайте свои курсы и прогресс на панели управления учащегося.

Практический проект

В каждой специализации есть практический проект, который нужно успешно выполнить, чтобы завершить специализацию и получить сертификат. Если для практического проекта в специализации предусмотрен отдельный курс, прежде чем начать его, необходимо завершить все остальные курсы.

Получите сертификат

Когда вы пройдете все курсы и завершите практический проект, вы получите сертификат, которым можно поделиться с потенциальными работодателями и коллегами.

how it works

Специализация включает несколько курсов: 5

Курс1

Functional Programming Principles in Scala

4.8
Оценки: 5,664
Рецензии: 1,146
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. 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. 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 programming projects as homework assignments. 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....
Курс2

Functional Program Design in Scala

4.5
Оценки: 2,386
Рецензии: 414
In this course you will learn how to apply the functional programming style in the design of larger 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. 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. Learning Outcomes. By the end of this course you will be able to: - recognize and apply design principles of functional programs, - design functional libraries and their APIs, - competently combine functions and state in one program, - understand reasoning techniques for programs that combine functions and state, - write simple functional reactive applications. 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 Programming Principles in Scala: https://www.coursera.org/learn/progfun1....
Курс3

Parallel programming

4.4
Оценки: 1,410
Рецензии: 226
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....
Курс4

Big Data Analysis with Scala and Spark

4.7
Оценки: 1,684
Рецензии: 355
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 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....

Преподавателя

Avatar

Martin Odersky

Professor
Computer Science
Avatar

Prof. Viktor Kuncak

Associate Professor
School of Computer and Communication Sciences
Avatar

Dr. Julien Richard-Foy

Computer Scientist
Scala Center
Avatar

Dr. Aleksandar Prokopec

Principal Researcher
Oracle Labs
Avatar

Dr. Heather Miller

Research Scientist
EPFL

О École Polytechnique Fédérale de Lausanne

Часто задаваемые вопросы

  • Да! Чтобы начать, нажмите карточку интересующего вас курса и зарегистрируйтесь. Зарегистрировавшись, вы можете пройти курс и получить сертификат, ссылкой на который можно делиться с другими людьми. Просто ознакомиться с содержанием курса можно бесплатно. При подписке на курс, входящий в специализацию, вы автоматически подписываетесь на всю специализацию. Ход учебы можно отслеживать в панели управления учащегося.

  • Это полностью дистанционный курс, потому вам не нужно ничего посещать. Все лекции, материалы для самостоятельного изучения и задания доступны всегда и везде по Интернету и с мобильных устройств.

  • Эта специализация не приравнивается к зачету в университетах, однако некоторые вузы принимают сертификаты на свое усмотрение. Дополнительную информацию уточняйте в своем деканате.

  • Time to completion can vary based on your schedule, but most learners are able to complete the Specialization in 4-5 months.

  • Each course in the Specialization is offered on demand, and may be taken at any time.

  • At least one year of programming experience is recommended. Proficiency with Java or C# is ideal, but experience with other languages such as C/C++, Python, JavaScript, or Ruby is also sufficient.

  • We recommend taking the courses in the order presented, as each subsequent course will build on material from previous courses.

  • Coursera courses and certificates don't carry university credit, though some universities may choose to accept Specialization Certificates for credit. Check with your institution to learn more.

  • These courses are designed to be self-contained, however for further reading we recommend:(1) for a more thorough treatment of some of the ideas presented in the course: Structure and Interpretation of Computer Programs, 2nd Edition, by Harold Abelson,Gerald Jay Sussman //http://www.amazon.com/gp/product/0262011530?*Version*=1&*entries*=0...(2)for learning more about Scala: Programming in Scala: A Comprehensive Step-by-Step Guide, 2nd Edition, by Martin Odersky, Lex Spoon, Bill Venners // http://www.amazon.com/Programming-Scala-Comprehensive-Step-Step/dp/0981531644...(3)for learning more about Scala: Scala for the Impatient by Cay Horstmann // http://www.horstmann.com/scala/index.html...(4)for learning more about parallel and concurrent programming in Scala: Learning Concurrent Programming in Scala by Aleksandar Prokopec // http://www.amazon.com/Learning-Concurrent-Programming-Aleksandar-Prokopec/dp/1783281413...(5)for learning more about Spark: Learning Spark by Holden Karau, Andy Konwinski, Patrick Wendell, Matei Zaharia //http://shop.oreilly.com/product/0636920028512.do

Остались вопросы? Посетите Центр поддержки учащихся.