---
# System prepended metadata

title: FSA Lesson Plan 2020

---

# FSA Lesson Plan 2020

## Day 05 - Intro to Node

### Daily Objectives
* Understand Node as an alternative JS environment (to browsers)
* Apply I/O design patterns to read and write to a filesystem in JS
* Leverage NPM to install and manage project dependencies
* Recall the definition of 'asynchronous programming' and demonstrate use cases
* Apply the `process` modules in node

### Key Topics

* Node, `npm`, the module system
* Concurrency, async programming, callbacks
* Bash, CLI
* Interpreters and runtime environments
* `fs`

### Pre-reading
* [What Exactly Is Node.js](https://medium.freecodecamp.org/what-exactly-is-node-js-ae36e97449f5)

### Lessons

<hr>

#### 01 - Node Part 1 (Modules)

#### Objectives

* Students will apply the `require` and `module.exports` node modules.

#### Assets

|   | Assets | Time |
| - | ------ | ---- |
| **KEYNOTE** | [node-intro.key](https://drive.google.com/drive/u/0/folders/174hf067VltJkos8adgarQL6rBu-bAMBy) | |
| **LECTURE** | [Sample Lecture (Orlando)](https://www.youtube.com/watch?v=sZX3heAch-k&feature=youtu.be) | 60 min |
| **LAB** </br> LMS </br> Start </br> Solution | </br> [Lab: Node Basics](https://learn.fullstackacademy.com/workshop/5a3940d8dc3d510004d72bc5/landing) </br> None </br> [Solution.NodeBasics/main](https://github.com/FullstackAcademy/Solution.NodeBasics) | 30 min |

<hr>

#### 02 - Node Part 2 (Asynchronicity and Callbacks)

#### Objectives

* Students will apply `process` to access STDIN, STDOUT, and STDERR streams in node
* Students will understand the uses of `require` and `module.exports` in a node app
* Students will apply callbacks to deal with asynchronicity in node.


#### Assets

|   | Assets | Time |
| - | ------ | ---- |
| **KEYNOTE** | [asynchronicity-intro.key](https://drive.google.com/drive/u/0/folders/174hf067VltJkos8adgarQL6rBu-bAMBy) | |
| **LECTURE** | [Sample Lecture (Orlando)](https://www.youtube.com/watch?v=fh3f6UB6mv8&feature=youtu.be) | 30 min |
| **WORKSHOP** </br> LMS </br> Start </br> Solution | </br> [Pair Exercise: Node Shell](https://learn.fullstackacademy.com/workshop/5a391504cb229b00046e7c1b/landing) </br> None </br> [Solution.NodeShell/main](https://github.com/FullstackAcademy/Solution.NodeShell) | 3.5 hr |
| **Captioned Lecture** | [Node (Eric)](https://www.youtube.com/watch?v=_zag2sF8814&feature=youtu.be)| 1 hr |

<hr>

### Exit Ticket

| Template | Solution |
| -------- | -------- |
| [🎟](https://docs.google.com/forms/d/1xcyqyby0tGe8KCLLsLY8AdXEGRUsTnAFIoFxzjD6-7A/edit) | [👾](exit-ticket-solutions/05-node.md) |

### Additional Resources

- **Node Modules:**
  - [Livecode](https://github.com/FullstackAcademy/node-modules-demo/)
  - [Livecode Recording](https://www.youtube.com/watch?v=zvtn9rLvJDU&feature=youtu.be)
- **Asynchronicity**
  - [Livecode](https://github.com/FullstackAcademy/node-async/)
  - [Livecode Recording](https://www.youtube.com/watch?v=ZtuyDv4255k&feature=youtu.be)

### Notes

None.
