YoVDO

COSC250 - Functional and Reactive Programming

Offered By: Independent

Tags

Scala Courses Programming Languages Courses Functional Programming Courses Higher-Order Functions Courses Type System Courses Recursion Courses Asynchronous Programming Courses Reactive Programming Courses Imperative Programming Courses Category Theory Courses

Course Description

Overview

This is an experimental attempt to put up a public site around one of my teaching courses. The course teaches Scala, functional programming, and some asynchronous and reactive programming. It's designed for second year undergraduate students, who mostly have experience of imperative languages (Python and Java).

Right now, I'm altering the course for Scala 3 and altering the site to use Doctacular, so this site may appear a litle bare.


Syllabus

1. Imperative programming

  • Intro
  • Intro to Scala syntax
  • OO in Scala
  • Practical: Set up
  • Practical: First Steps in Scala

2. Functional programming

  • Intro
  • Recursion and the Stack
  • Patterns and Case Classes
  • Immutable Lists
  • Practical: Recursion

3. Funcitons as values

  • Intro
  • Higher Order Functions
  • Solving Einstein's Puzzle
  • Practical: Sudoku Sensei

4. Types

  • Intro
  • Type Systems
  • Type Relationships

5. Category theory

  • Intro
  • Typeclasses and Monoids
  • Categories and Monads

6. Futures and effects

  • Intro
  • Futures and Promises
  • Tasks

7. Laziness

  • Intro
  • Lazy, Strict, and By-Name

8. Actors

  • Intro
  • Classic Actors
  • Typed Actors

9. Asynchronous streams

  • Intro
  • Reactive Streams
  • Cats Effect

10. Fast data

11. Scala.js and Veautiful


Related Courses

程序设计实习 / Practice on Programming
Peking University via Coursera
程序设计基础
Peking University via edX
算法基础
Peking University via Coursera
Principles of Computing (Part 2)
Rice University via Coursera
算法设计与分析 Design and Analysis of Algorithms
Peking University via Coursera