Course Summary
This course teaches Scala programming language and reactive programming principles. Students will learn how to build scalable and resilient distributed systems using the Akka framework.Key Learning Points
- Learn Scala programming language and Akka framework
- Understand reactive programming principles
- Build scalable and resilient distributed systems
Job Positions & Salaries of people who have taken this course might have
- USA: $110,000
- India: ₹1,000,000
- Spain: €45,000
- USA: $110,000
- India: ₹1,000,000
- Spain: €45,000
- USA: $120,000
- India: ₹1,200,000
- Spain: €50,000
Related Topics for further study
Learning Outcomes
- Understand the core concepts of Scala programming language
- Apply reactive programming principles to build distributed systems using Akka framework
- Develop scalable and resilient systems
Prerequisites or good to have knowledge before taking this course
- Basic programming experience in any language
- Familiarity with functional programming concepts
Course Difficulty Level
IntermediateCourse Format
- Online
- Self-paced
- Video lectures
Similar Courses
- Functional Programming Principles in Scala
- Advanced Scala
Related Education Paths
Notable People in This Field
- Jonas Bonér
- James Ward
Related Books
Description
Reactive programming is a set of techniques for implementing scalable, resilient and responsive systems. The basic building-block of such systems is event handlers. This course teaches how to implement reactive systems in Scala by using high-level abstractions based on event-handlers.
Knowledge
- Understand how back-pressure controls flows of data
- Transform and consume infinite and intermittent streams of data with Akka Stream
- implement systems that can scale out according to a varying workload
- Design systems resilient to failures
Outline
- Introduction, Recap and Asynchronous Programming
- Course Introduction
- Tools Setup for Linux
- Tools Setup for Mac OS X
- Tools Setup for Windows
- Lecture 1.2-Functions and Pattern Matching
- Lecture 1.3-Collections
- Lecture 1.4-Asynchronous Programming
- Lecture 1.5-Futures
- Course structure
- Evaluation
- Tools Setup (Please read)
- Cheat Sheet
- IntelliJ IDEA Tutorial
- SBT tutorial and Submission of Assignments (Please read)
- Learning Resources
- Scala Tutorial
- Scala Style Guide
- The Actor Model
- Lecture 2.1-Introduction: why actors?
- Lecture 2.2-The Actor Model
- Lecture 2.3-Message Processing Semantics
- Lecture 2.4-Designing Actor Systems
- Lecture 2.5-Testing Actor Systems
- Handling Failure and State
- Lecture 3.1-Failure Handling With Actors
- Lecture 3.2-Lifecycle Monitoring and The Error Kernel
- Lecture 3.3-Persistent Actor State
- Distributed Computing
- Lecture 4.1-Actors Are Distributed (part 1)
- Lecture 4.2-Actors Are Distributed (part 2)
- Lecture 4.3-Eventual Consistency
- Lecture 4.4-Actor Composition
- Lecture 4.5-Scalability
- Lecture 4.6-Responsiveness
- Typed Actors
- Lecture 5.1-Introduction to Protocols
- Lecture 5.2-Protocols in Akka Typed
- Lecture 5.3-Testing Akka Typed Behaviors
- Lecture 5.4-Akka Typed Facilities
- Lecture 5.5-Akka Typed Persistence
- Lecture 5.6-Supervision revisited
- Stream Processing
- Lecture 6.1-Stream Processing
- Lecture 6.2-Introducing Reactive Streams Semantics
- Lecture 6.3-Akka Streams
- Lecture 6.4-Failure handling and processing rate
- Advanced Stream Processing
- Lecture 7.1-Streaming Protocols & Stream Composition
- Lecture 7.2-Stateful operations and materialized values
- Lecture 7.3-Fan-in and Fan-out operations
- Lecture 7.4-Integrating Streams with (Typed) Actors
Summary of User Reviews
Coursera's Scala Reactive course has received positive reviews from students who found it to be a valuable and insightful learning experience. Many users praised the course for its comprehensive curriculum and engaging teaching style.Key Aspect Users Liked About This Course
The course's emphasis on practical applications of Scala was appreciated by many users.Pros from User Reviews
- Comprehensive curriculum covering all aspects of Scala programming
- Engaging and interactive teaching style
- Hands-on assignments and projects help reinforce learning
- Excellent support from instructors and course community
- Useful insights into the practical applications of Scala
Cons from User Reviews
- Some users found the pace of the course to be too fast
- Occasional technical issues with the Coursera platform
- Not ideal for beginners with no prior programming experience
- Some users felt that the course could have been more challenging
- The course can be time-consuming and require a significant time commitment