Reactive programming tutorial: Introduction