Synchronous and Asynchronous Programming

There are basically three core learning outcomes today, and with any luck, a bunch of interesting bonus stuff.

Core Learning Outcomes

  • Callbacks - What are those again?
  • How's setTimeout work?
  • How do basic file reads and writes work?

Bonus Learning Outcomes

  • What's the difference between "synchronous" and "asynchronous?"
  • What is Javascript for? (What was it created for?)
  • Why do we care about how setTimeout and file reads/writes work?
  • Terminology breakdown: Asynchronous, concurrent, parallel
  • Buttons: A case study in asynchrony
  • Simulating concurrent processes
  • How do we use what we learned about setTimeout to understand other asynchronous programming? (e.g. network requests)