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

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

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

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

Functional Programming Principles in Scala

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

О курсе

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. 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 background in mathematics (e.g., algebra, logic, proof by induction). Last, you should have some familiarity with using the command line.

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

Scala ProgrammingFunctional DesignComputer ProgrammingData StructuresObject Oriented Programming (OOP)Other Programming LanguagesProgramming PrinciplesCode ReusabilityObject Oriented DesignComputational Logic

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

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

01Getting Started + Functions & Evaluation25 материалов

Getting Started

Course IntroductionВидеоWorking on AssignmentsЧтениеTools Setup (Please read)ЧтениеScala 3 REPL and WorksheetsЧтение

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

Martin Odersky

Professor

Functional Programming Principles in Scala
В каталоге вашей программы

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

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

Начать на Coursera

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

Обучение на Coursera

≈ 56 ч

6 модулей

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

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

Часть программы вашего университета
Cheat SheetЧтение
SBT tutorial and Submission of Assignments (Please read)Чтение
Learning ResourcesЧтение
Scala Style GuideЧтение
ExampleПрограммирование

Functions & Evaluation

Lecture 1.1 - Programming ParadigmsВидеоProgramming ParadigmsЗаданиеLecture 1.2 - Elements of ProgrammingВидеоElements of ProgrammingЗаданиеLecture 1.3 - Evaluation Strategies and TerminationВидеоEvaluation Strategies and TerminationЗаданиеLecture 1.4 - Conditionals and Value DefinitionsВидеоLecture 1.5 - Example: square roots with Newton's methodВидеоSquare roots with Newton's methodЗаданиеLecture 1.6 - Blocks and Lexical ScopeВидеоBlocks and Lexical ScopeЗаданиеLecture 1.7 - Tail recursionВидеоTail recursionЗаданиеLearning check-inЗаданиеRecursionПрограммированиеRecursionПрограммирование
02Higher Order Functions15 материалов

Higher Order Functions

Week 2: IntroductionВидеоLecture 2.1 - Higher-order functionsВидеоHigher-order functionsЗаданиеLecture 2.2 - CurryingВидеоCurryingЗаданиеLecture 2.3 - Example: Finding Fixed PointsВидеоLecture 2.4 - Scala Syntax SummaryВидеоLecture 2.5 - Functions and DataВидеоFunctions and dataЗаданиеLecture 2.6 - More Fun With RationalsВидеоMore Fun With RationalsЗадание2.7 - Evaluations and OperatorsВидеоEvaluations and OperatorsЗаданиеFunctional SetsПрограммированиеFunctional SetsПрограммирование
03Data and Abstraction12 материалов

Data and Abstraction

Week 3: IntroductionВидеоLecture 3.1 - Class hierarchiesВидеоClass hierarchiesЗаданиеLecture 3.2 - How classes are organizedВидеоHow classes are organizedЗаданиеLecture 3.3 - PolymorphismВидеоPolymorphismЗаданиеLecture 3.4-Objects EverywhereВидеоLecture 3.5-Functions as ObjectsВидеоScala is functional and objected-orientedЗаданиеObject-Oriented SetsПрограммированиеObject-Oriented SetsПрограммирование
04Types and Pattern Matching15 материалов

Types and Pattern Matching

Week 4: IntroductionВидеоLecture 4.1 - DecompositionВидеоDecompositionЗаданиеLecture 4.2 - Pattern MatchingВидеоPattern MatchingЗаданиеLecture 4.3 - ListsВидеоListsЗаданиеLecture 4.4 - EnumsВидеоEnumsЗаданиеLecture 4.5 - Subtyping and GenericsВидеоSubtyping and GenericsЗаданиеLecture 4.6 - VarianceВидеоVarianceЗаданиеHuffman CodingПрограммированиеHuffman CodingПрограммирование
05Lists11 материалов

Lists

Week 5: IntroductionВидеоLecture 5.1 - A Closer Look at ListsВидеоA Closer Look at ListsЗаданиеLecture 5.2 - Tuples and Generic MethodsВидеоTuples and Generic MethodsЗаданиеLecture 5.3 - Higher-order list functionsВидеоHigher-order list functionsЗаданиеLecture 5.4 - Reduction of ListsВидеоReduction of ListsЗаданиеLecture 5.5 - Reasoning about listsВидеоReasoning about listsЗадание
06Collections13 материалов

Collections

Week 6: IntroductionВидеоLecture 6.1 - Other CollectionsВидеоOther CollectionsЗаданиеLecture 6.2 - Combinatorial Search and For-ExpressionsВидеоCombinatorial Search and For-ExpressionsЗаданиеLecture 6.3 - Combinatorial Search ExampleВидеоCombinatorial Search ExampleЗаданиеLecture 6.4 - MapsВидеоMapsЗаданиеLecture 6.5 - Putting the Pieces TogetherВидеоAnagramsПрограммированиеAnagramsПрограммированиеConclusionВидео