К содержимому
learnspaceYOUR NEXT CHAPTER
ПРОСТРАНСТВО ОБУЧЕНИЯ
ГлавнаяКаталог курсовМоё обучениеCoursera

Знания без границ

Учитесь у лучших университетов и компаний мира.

Открыть Coursera
Интеграция
Пространство университета
Моё пространствоСтраница курса
↵
ЯЛичный кабинетСтудент
© 2026 LearnSpaceКаждый день — возможность узнать больше.Помощь
Functional Program Design in Scala (Scala 2 version) · LearnSpace
Назад в каталог
courseraПрограммирование

Functional Program Design in Scala (Scala 2 version)

Курс от École Polytechnique Fédérale de Lausanne
Средний≈ 33.7 чАнглийский
О курсеНавыкиПрограммаПреподаватели

О курсе

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/scala2-functional-programming.

Навыки, которые вы освоите

Scala ProgrammingFunctional DesignData StructuresProgramming PrinciplesSoftware Design PatternsEvent-Driven ProgrammingSimulations

Программа курса

5 модулей · 52 учебных материалов

01For Expressions and Monads23 материалов

Recap: Getting Started with Tools

Tools Setup for LinuxВидеоTools Setup (Please read)ЧтениеTools Setup for Mac OS XВидеоTools for Setup for WindowsВидео

Учитесь у экспертов

Martin Odersky

Professor

Functional Program Design in Scala (Scala 2 version)
В каталоге вашей программы

Инвестируйте в себя

Новые знания — в удобное для вас время.

Начать на Coursera

Обучение откроется на Coursera
в новой вкладке

Обучение на Coursera

≈ 33.7 ч

5 модулей

Язык: Английский

Субтитры: Арабский, Французский, Украинский, Европейский португальский, Китайский (Китай), Греческий, Итальянский, Бразильский португальский, Вьетнамский, Нидерландский, Корейский, Немецкий, Русский, Тайский, Индонезийский, Шведский, Турецкий, Испанский, Хинди, Японский, Казахский, Польский

Часть программы вашего университета
Tutorial: Working on the Programming AssignmentsВидео
TroubleshootingЧтение
Grading PolicyЧтение
Sbt TutorialЧтение
IntelliJ IDEA TutorialЧтение
Scala TutorialЧтение
Cheat SheetЧтение
Reactive Cheat SheetЧтение
Scala Style GuideЧтение
Learning ResourcesЧтение
Example AssignmentПрограммирование

Week 1: For Expressions and Monads

Recap: Functions and Pattern MatchingВидеоRecap: CollectionsВидеоLecture 1.1 - Queries with ForВидеоLecture 1.2 - Translation of ForВидеоLecture 1.3 - Functional Random GeneratorsВидеоLecture 1.4 - MonadsВидеоQuickcheckПрограммированиеQuickcheckПрограммирование
02Lazy Evaluation7 материалов

Week 2: Lazy Evaluation

Lecture 2.1 - Structural Induction on TreesВидеоLecture 2.2 - StreamsВидеоLecture 2.3 - Lazy EvaluationВидеоLecture 2.4 - Computing with Infinite SequencesВидеоLecture 2.5 - Case Study: the Water Pouring ProblemВидеоBloxorzПрограммированиеBloxorzПрограммирование
03Type-Directed Programming10 материалов

Week 3: Type-Directed Programming

Motivating ExampleЧтениеType-Directed ProgrammingЧтениеType-Directed ProgrammingЗаданиеType ClassesЧтениеConditional Implicit DefinitionsЧтениеConditional Implicit DefinitionsЗаданиеImplicit ConversionsЧтениеImplicit ConversionsЗаданиеJSON CodecsПрограммированиеJSON CodecsПрограммирование
04Functions and State6 материалов

Week 4: Functions and State

Lecture 4.1 - Functions and StateВидеоLecture 4.2 - Identity and ChangeВидеоLecture 4.3 - LoopsВидеоLecture 4.4 - Extended Example: Discrete Event SimulationВидеоLecture 4.5 - Discrete Event Simulation: API and UsageВидеоLecture 4.6 - Discrete Event Simulation: Implementation and TestВидео
05Timely Effects6 материалов

Week 5: Timely Effects

Lecture 5.1 - Imperative Event Handling: The Observer PatternВидеоLecture 5.2 - Functional Reactive ProgrammingВидеоLecture 5.3 - A Simple FRP ImplementationВидеоCalculatorПрограммированиеCalculatorПрограммированиеConclusionВидео