For Expressions and Monads-Recap: Getting Started with Tools
Tools Setup for Linux
()
Tools Setup (Please read)
Tools Setup for Mac OS X
()
Tools for Setup for Windows
()
Tutorial: Working on the Programming Assignments
()
Troubleshooting
Grading Policy
Sbt Tutorial
IntelliJ IDEA Tutorial
Scala Tutorial
Cheat Sheet
Reactive Cheat Sheet
Scala Style Guide
Learning Resources
For Expressions and Monads-Week 1: For Expressions and Monads
Recap: Functions and Pattern Matching
()
Recap: Collections
()
Lecture 1.1 - Queries with For
()
Lecture 1.2 - Translation of For
()
Lecture 1.3 - Functional Random Generators
()
Lecture 1.4 - Monads
()
Lazy Evaluation-Week 2: Lazy Evaluation
Lecture 2.1 - Structural Induction on Trees
()
Lecture 2.2 - Streams
()
Lecture 2.3 - Lazy Evaluation
()
Lecture 2.4 - Computing with Infinite Sequences
()
Lecture 2.5 - Case Study: the Water Pouring Problem
()
Type-Directed Programming-Week 3: Type-Directed Programming
Motivating Example
Type-Directed Programming
Type Classes
Conditional Implicit Definitions
Implicit Conversions
Functions and State-Week 4: Functions and State
Lecture 4.1 - Functions and State
()
Lecture 4.2 - Identity and Change
()
Lecture 4.3 - Loops
()
Lecture 4.4 - Extended Example: Discrete Event Simulation
()
Lecture 4.5 - Discrete Event Simulation: API and Usage
()
Lecture 4.6 - Discrete Event Simulation: Implementation and Test
()
Timely Effects-Week 5: Timely Effects
Lecture 5.1 - Imperative Event Handling: The Observer Pattern
()
Lecture 5.2 - Functional Reactive Programming
()
Lecture 5.3 - A Simple FRP Implementation
()
Conclusion
()