{"id":19133378,"url":"https://github.com/vasnake/principles-of-reactive-programming","last_synced_at":"2025-04-15T03:53:55.615Z","repository":{"id":68754670,"uuid":"63723421","full_name":"vasnake/Principles-of-Reactive-Programming","owner":"vasnake","description":"Principles of Reactive Programming, Scala: assignments and other code from Coursera https://class.coursera.org/reactive-002","archived":false,"fork":false,"pushed_at":"2019-02-27T10:46:51.000Z","size":2932,"stargazers_count":151,"open_issues_count":0,"forks_count":67,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-04-15T03:53:49.921Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vasnake.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-07-19T19:50:37.000Z","updated_at":"2025-02-21T23:31:04.000Z","dependencies_parsed_at":"2023-03-10T04:00:53.514Z","dependency_job_id":null,"html_url":"https://github.com/vasnake/Principles-of-Reactive-Programming","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vasnake%2FPrinciples-of-Reactive-Programming","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vasnake%2FPrinciples-of-Reactive-Programming/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vasnake%2FPrinciples-of-Reactive-Programming/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vasnake%2FPrinciples-of-Reactive-Programming/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vasnake","download_url":"https://codeload.github.com/vasnake/Principles-of-Reactive-Programming/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249003955,"owners_count":21196794,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T06:22:15.007Z","updated_at":"2025-04-15T03:53:55.600Z","avatar_url":"https://github.com/vasnake.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Principles of Reactive Programming (Scala)\nassignments and other code from Coursera class (now removed)\n* https://class.coursera.org/reactive-002\n* https://www.coursera.org/course/reactive\n\n2019: Updated course: [Programming Reactive Systems (Principles of Reactive Programming in Scala)](https://www.edx.org/course/programming-reactive-systems) \u003cbr/\u003e\nwith some materials moved to [Functional Programming in Scala Specialization](https://www.coursera.org/specializations/scala)\n\n### Video lectures:\nhttps://www.youtube.com/playlist?list=PLMhMDErmC1TdBMxd3KnRfYiBV2ELvLyxN\n\n### Assignments\n - Week 1: QuickCheck/ScalaCheck\n - Week 2: Calculator\n - Week 3: NodeScala\n - Week 4: Wikipedia Suggestions\n - Week 5: Actor Binary Tree\n - Week 6: Replicated KV Store\n\n### Sources\n - https://github.com/headinthebox/CourseraCodeSamplesReactiveProgramming\n - https://github.com/typesafehub/activator-akka-cluster-sharding-scala\n\nworksheets: code snippets from lectures\n\nRecap: Getting Started with Tools\n* Tools Setup for Linux (12:24)\n* Tools Setup for Mac OS X (12:17)\n* Tools Setup for Windows (10:37)\n* Tutorial: Working on the Programming Assignments (8:47)\n\nWeek 1\n* What is Reactive Programming? (11:42)\n* Recap: Functions and Pattern Matching (19:56)\n* Recap: Collections (12:54)\n* Functional Random Generators (19:42)\n* Monads (20:22)\n\nWeek 2\n* Functions and State (15:28)\n* Identity and Change (8:12)\n* Loops (8:25)\n* Extended Example: Discrete Event Simulation (Optional) (10:54)\n* Discrete Event Simulation: API and Usage (Optional) (10:57)\n* Discrete Event Simluation: Implementation and Test (Optional) (18:12)\n* Imperative Event Handling: The Observer Pattern (12:27)\n* Functional Reactive Programming (20:24)\n* A Simple FRP Implementation (19:32)\n\nWeek 3\n* Monads and Effects 1\n* Monads and Effects 2\n* Latency as an Effect 1\n* Latency as an Effect 2\n* Combinators on Futures 1\n* Combinators on Futures 2\n* Composing Futures 1\n* Composing Futures 2\n* Async Await\n* Promises, promises\n\nWeek 4\n* From Try to Future (5:22)\n* From Iterables to Observables 1 (8:06)\n* From Iterables to Observables 2 (9:44)\n* Hello World Observables (6:29)\n* RX Operators (11:39)\n* Subscriptions (10:34)\n* Promises and Subjects (8:55)\n* RX potpourri (11:30)\n* Observable Contract (14:19)\n\nWeek 5\n* Introduction: Why Actors? (14:46)\n* The Actor Model (13:43)\n* Message Processing Semantics (27:28)\n* Designing Actor Systems (38:10)\n* Testing Actor Systems (17:16)\n\nWeek 6\n* Failure Handling with Actors (22:38)\n* Lifecycle Monitoring and the Error Kernel (24:07)\n* Persistent Actor State (40:05)\n\nWeek 7\n* Actors are Distributed (36:30)\n* Actors are Distributed Part II (18:17 — optional)\n* Eventual Consistency (15:49)\n* Actor Composition (20:14)\n* Scalability (17:00)\n* Responsiveness (11:41)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvasnake%2Fprinciples-of-reactive-programming","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvasnake%2Fprinciples-of-reactive-programming","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvasnake%2Fprinciples-of-reactive-programming/lists"}