- Level Professional
- المدة 74 ساعات hours
- الطبع بواسطة École Polytechnique Fédérale de Lausanne
-
Offered by
عن
Scala is an expressive, versatile, and safe programming language. In this course, you will learn how to get the most out of Scala to solve common programming tasks such as modeling business domains, breaking down complex problems into simpler problems, manipulating data, or running parallel tasks. Along the journey, you will also learn the best practices for writing high-quality code that scales to large applications, how to handle errors, how to write tests, and how to leverage a productive development environment. This comprehensive, hands-on, course aims at leveling up your programming skills by embracing both functional programming and object-oriented programming. You will become familiar with the standard library and the common patterns of code used in the real world. Each week contains about 1h30 of video lectures. Each lecture is a ~10 min video focused on a specific skill or concept. We always start by looking at concrete problems, and then explain how language features or libraries make you more productive to solve these problems in general. Lectures are generally followed by a quiz to assess your progress. At the end of each week, a graded assignment inspired by real-world applications will give you an opportunity to put things in practice. The course covers Scala 3, and it mentions the differences with Scala 2.الوحدات
Getting Started
1
Videos
- Introduction
3
Readings
- Working on Assignments
- Tools Setup (Please Read)
- Scala 3 REPL and Worksheets
Basics
3
Assignment
- Types
- Methods and Parameters
- Conditions
5
Videos
- Elements of Programs
- Types
- Methods and Parameters
- Conditions
- Evaluating Definitions
1
Readings
- When Evaluation Fails
Domain Modeling
3
Assignment
- Case Classes
- Sealed Traits
- Domain Modeling
5
Videos
- Domain Modeling
- Case Classes
- Sealed Traits
- Enumerations
- Business Logic
Assessment
- Fireworks (audit version)
- Fireworks
Collections
7
Assignment
- Functions
- More Operations on Lists
- Constructing Collections
- Querying Collections
- Transforming Collections
- Option
- Collections
10
Videos
- First Steps With Lists
- Functions
- More Operations on Lists
- Introducing Collections
- Constructing Collections
- Querying Collections
- Transforming Collections
- Sequences and Maps
- Option
- Collections Extra
1
Readings
- Short Syntax for Functions
Loops
2
Assignment
- Loops
- “for” Syntax
4
Videos
- Introducing Loops
- More Loop Examples
- Tail Recursion
- “for” Syntax
Assessment
- Democracy (audit version)
- Democracy
Tooling
2
Assignment
- Organize Code
- Program Entry Point
5
Videos
- Organize Code
- Build Tools
- Introduction to the sbt Build Tool
- sbt, Keys, and Scopes
- Program Entry Point
Modules
5
Assignment
- Encapsulation
- Extending and Refining Classes
- Case Classes vs Simple Classes
- Opaque Types
- Extension Methods
5
Videos
- Encapsulation
- Extending and Refining Classes
- Case Classes vs Simple Classes
- Opaque Types
- Extension Methods
Assessment
- Todo List (audit version)
- Todo List
Reasoning About Code
1
Assignment
- Refactoring-Proof Programs
4
Videos
- Reasoning About Code
- Refactoring-Proof Programs
- A Case for Side-Effects
- Mutable Objects
Interlude: Phone Mnemonics
1
Readings
- Interlude: Phone Mnemonics
Testing
3
Assignment
- Unit Testing
- Property-Based Testing
- Testing
6
Videos
- Unit Testing
- Property-Based Testing
- Mocking
- Integration Testing
- Testing the Tests
- Debugging Programs
Assessment
- Quickcheck (audit version)
- Quickcheck
Type-Directed Programming
4
Assignment
- Context Parameters
- Given Definitions
- Priorities Between Given Definitions
- Conditional Given Definitions
6
Videos
- Motivation
- Context Parameters
- Given Definitions
- Priorities Between Given Definitions
- Type Classes
- Conditional Given Definitions
1
Readings
- Type-Directed Programming in Scala 2
Extension Methods and Implicit Conversions
1
Assignment
- Implicit Conversions
2
Videos
- Type Classes and Extension Methods
- Implicit Conversions
Assessment
- Codecs (audit version)
- Codecs
Error Handling
2
Assignment
- Exceptions
- Try and Either
6
Videos
- Error Handling
- Error Handling with Try
- Manipulating Try Values
- Validating Data
- Manipulating Validated Values
- Combining Try and Either
1
Readings
- Follow the Types
Asynchronous Programming
1
Assignment
- Futures
4
Videos
- Concurrent Programming
- Operations on Type Future
- Examples with Future
- Execution Context
Assessment
- Wikigraph (audit version)
- Wikigraph
Auto Summary
"Effective Programming in Scala" is an in-depth course designed for IT and Computer Science professionals. Taught by industry experts, it covers the versatile Scala language, focusing on practical skills like business domain modeling, data manipulation, and parallel task execution. Combining functional and object-oriented programming, the course includes 1.5-hour weekly video lectures, quizzes, and real-world assignments. Available on Coursera, it offers both Starter and Professional subscription options, making it ideal for those looking to enhance their programming prowess.

Julien Richard-Foy

Noel Welsh