From dfd5c1d7347cb38684216fcce8dd09af7fb2cb00 Mon Sep 17 00:00:00 2001
From: Caleb Sander <caleb.sander@gmail.com>
Date: Sat, 19 Sep 2020 12:45:50 -0400
Subject: [PATCH] Update README for 2020 FA

---
 README.md                        | 45 ++++++++++++++++----------------
 notes/async-await/async-await.md |  2 +-
 2 files changed, 23 insertions(+), 24 deletions(-)

diff --git a/README.md b/README.md
index fa36e20..c75943c 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
 
 ## Course description
 
-This CS 11 track introduces asynchronous programming, an increasingly widespread paradigm for I/O-heavy applications.
+This CS 11 track introduces asynchronous programming, an increasingly common paradigm for I/O-heavy applications.
 Learn how highly concurrent servers and responsive webpages can be built without multithreading.
 We will cover techniques including callback functions, promises, and streams, and apply them to file I/O, networking, user interfaces, and more.
 Examples and projects will be in *modern* JavaScript, running both in the browser and as server-side programs in Node.js.
@@ -16,32 +16,31 @@ No JavaScript experience is needed; the necessary language features will be intr
 Hi, I'm Caleb!
 
 I'm a Computer Science/Economics major and I really enjoy low-level software design and abstractions.
-I've TAed for CS 2, 3, 21, and 24 and will be a TA for CS 124 this term.
-I designed this course in a several-term CS 81 project because asynchronous programming is a powerful tool being used more and more in industry, but isn't part of the Caltech CS curriculum.
-
-I'm living in the Boston area this term, so I generally won't be available after ~10 PM PDT.
+I've TAed for CS 2, 3, 21, 24, and 124.
+I designed this course as a year-long CS 81 project.
+I chose to teach about asynchronous programming because it is a powerful tool leveraged in industry for its unique approach to I/O, yet the Caltech CS curriculum doesn't cover it in depth.
+This course was taught for the first time in 2020 SP.
 
 You can contact me via:
 - Email: csander@caltech.edu
 - DM on Campuswire (see [Resources](#campuswire))
-- Zoom during office hours (W 17:00-20:00; R 19:00-22:00): (see [Resources](#zoom-office-hours))
+- Zoom during office hours (W 16:00-18:00; R 20:00-22:00): (see [Resources](#zoom-office-hours))
 
 ## Schedule
 
-| Weeks | Topic and notes | Project | Due (at 10 PM PDT) |
-| ----- |---------------- | ------- | ------------------ |
-| 1-2 | [Callbacks](notes/callbacks/callbacks.md) | [Minesweeper](specs/minesweeper/minesweeper.md) | 2020-04-17 |
-| 3-4 | [Promises](notes/promises/promises.md) | [`make`](specs/make/make.md) | ~~2020-04-24~~ 2020-05-01 |
-| 5-6 | [Streams](notes/streams/streams.md) | [`grep`](specs/grep/grep.md) | ~~2020-05-08~~ 2020-05-15 |
-| 7 | [HTTP](notes/http/http.md) | [Wiki Game](specs/wiki-game/wiki-game.md) | ~~2020-05-15~~ 2020-05-22 |
-| ~~7~~ | ~~[WebSockets](notes/websockets/websockets.md)~~ | ~~[Chat client](specs/chat/client.md) **OR** [Chat server](specs/chat/server.md)~~ | ~~2020-05-22~~ |
-| 8-9 | [`async`-`await`](notes/async-await/async-await.md) | [MiniVC](specs/mini-vc/mini-vc.md) | 2020-06-05 |
+| Weeks | Topic and notes | Project | Due on Friday at 11 PM PDT/PST |
+| ----- |---------------- | ------- | ------------------------------ |
+| 1-2 | [Callbacks](notes/callbacks/callbacks.md) | [Minesweeper](specs/minesweeper/minesweeper.md) | 2020-10-09 |
+| 3-4 | [Promises](notes/promises/promises.md) | [`make`](specs/make/make.md) | 2020-10-23 |
+| 5-6 | [Streams](notes/streams/streams.md) | [`grep`](specs/grep/grep.md) | 2020-11-06 |
+| 7-8 | [HTTP](notes/http/http.md) | [Wiki Game](specs/wiki-game/wiki-game.md) | 2020-11-20 |
+| 9-10 | [`async`-`await`](notes/async-await/async-await.md) | [MiniVC](specs/mini-vc/mini-vc.md) | 2020-12-04 |
 
 ## JavaScript reference
 
 There is a description of the important parts of the JavaScript language in [`notes/js/js.md`](notes/js/js.md).
 It also has information specific to running JS in the browser and through Node.js.
-You're welcome to read as much of it as you want, but it's quite long.
+Feel free to read as much of it as you want, but it's quite long.
 I will point out sections that may be useful on each project.
 
 ## Resources
@@ -49,7 +48,7 @@ I will point out sections that may be useful on each project.
 ### Campuswire
 
 We will be using Campuswire as a class forum.
-You can join the class [here](https://campuswire.com/p/G110E6357).
+You can join the class [here](https://campuswire.com/p/G73AA8801).
 If you haven't used it before, Campuswire is similar to Piazza, but the interface is much better and you can also use it for chat.
 If you have a question about a project or the course in general, please post there first!
 I will answer questions as soon as I can, but other students are also welcome to respond.
@@ -64,9 +63,9 @@ You can DM me if you have an individual concern (e.g. asking about an extension
 
 This online-only term is new for me too, so I'm not sure what formats are the most convenient for helping you.
 I think Campuswire will be the easiest for most questions, but I'd like to be available to answer questions or discuss confusing concepts face-to-face as well.
-To that end, I'll be available for Zoom office hours during the following times (PDT) each week:
-- Wednesday 5-8 PM
-- Thursday 7-10 PM
+To that end, I'll be available for Zoom office hours during the following times (PDT/PST) each week:
+- Wednesday 4-6 PM
+- Thursday 8-10 PM
 
 My personal meeting ID is [586-773-0238](https://caltech.zoom.us/j/5867730238).
 
@@ -74,7 +73,7 @@ My personal meeting ID is [586-773-0238](https://caltech.zoom.us/j/5867730238).
 
 ### Student wellbeing
 
-Asynchronous programming requires a different way of thinking about programs, so I hope the course challenges you a bit.
+Asynchronous programming is an unusal way to write programs, so I hope the course challenges you a bit.
 However, please remember that it is P/F and only 3 units.
 I do not want the course to take up too much of your time or cause you stress.
 If there is anything I can do to make the course more manageable for you, please let me know!
@@ -92,7 +91,7 @@ I also don't really care when projects are submitted, but I want to make sure th
 
 If you have an extenuating circumstance, e.g. a family emergency, please email me; I am happy to grant an extension.
 
-Aside from extensions, I am also giving you **6 total late days** to apply to any of the projects.
+Aside from extensions, I am also giving you **5 total late days** to apply to any of the projects.
 You may use at most 3 late days on a single project.
 If you are taking late days, please email/DM me to let me know before the project is due so that I can hold off on grading your submission.
 
@@ -130,7 +129,7 @@ I suggest you always check GitLab to ensure your commits were pushed and include
 ### Grading
 
 Your grade will be the unweighted average of your grades on all the projects.
-The passing threshold is 65%.
+The passing threshold is 70%.
 
 For the projects with tests, your grade will be primarily determined from whether you are passing the tests.
 However, I will deduct points for not writing code in an asynchronous style, e.g. using Node.js's synchronous I/O functions or performing I/O tasks in sequence when they can be done in parallel.
@@ -142,7 +141,7 @@ The specs are intended to be specific about what they expect, but please ask que
 
 ### Feedback
 
-This is the first time this CS 11 track is being taught, and I hope it will stick around!
+This is the second time this CS 11 track is being taught, and I hope it will stick around!
 I really value your constructive feedback on the course so I can improve it for the future.
 Please let me know:
 - If my notes on any topic are helpful or unhelpful
diff --git a/notes/async-await/async-await.md b/notes/async-await/async-await.md
index dec682f..b994c03 100644
--- a/notes/async-await/async-await.md
+++ b/notes/async-await/async-await.md
@@ -3,7 +3,7 @@
 ## Recap of `Promise`s
 
 JavaScript's `Promise` abstraction was discussed in the [notes](../promises/promises.md) near the start of the course and you had a chance to use it on the Make project.
-I'l give a quick refresher since `Promise`s are essential to the `async`-`await` syntax.
+I'll give a quick refresher since `Promise`s are essential to the `async`-`await` syntax.
 
 A `Promise` represents an asynchronous task or computation.
 When the task or computation finishes, the `Promise` "resolves" to a value.
-- 
GitLab