Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
b4c739a
Redesign Advanced JavaScript course with tea shop example
Jan 11, 2026
7d40b96
fix — -> -
Jan 11, 2026
80dcb90
advanced javascript backend
Jan 20, 2026
e61dbe1
replace jargon with glossary, .gitignore
Jan 26, 2026
17bdb56
Add optional exercises for reduce and enhance README with array metho…
Jan 26, 2026
c482fbe
Enhance assignment and exercises with optional stretch goals and visu…
Jan 26, 2026
9abf0fb
Add Week 2 materials: assignment, preparation, exercises, session pla…
Jan 26, 2026
04efac1
Add Week 3 materials on Promises and async/await
Jan 26, 2026
efdfe70
Standardize structure across weeks 1-3 for consistency
Feb 8, 2026
bcf88f6
Add Week 4 materials on Classes and OOP
Feb 8, 2026
bb03b8a
Add foxes & rabbits simulation as Week 4 extra example
Feb 8, 2026
45d6033
adjustments and fixes
Feb 9, 2026
5a56269
linting fixes
adamblanchard Feb 17, 2026
752267f
more linting
adamblanchard Feb 17, 2026
5523180
add prettier ignore for jsonl blocks
adamblanchard Feb 17, 2026
dc4f577
prettier fixes
adamblanchard Feb 17, 2026
f923695
merge main
adamblanchard Feb 17, 2026
4d1ad76
address PR feedback: restructure README, move slides, add code headers
Feb 18, 2026
fc80b51
added to gitbook sidebar
adamblanchard Feb 19, 2026
063b7eb
replace school like language
adamblanchard Feb 19, 2026
476c9eb
remove and replace links for teas data
adamblanchard Feb 19, 2026
834ffb4
fixed indentation for gitbook
adamblanchard Feb 19, 2026
0614a7e
more indentation fixes
adamblanchard Feb 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,22 @@

- [Backend](courses/backend/README.md)
- [Advanced JavaScript](courses/backend/advanced-javascript/README.md)
- [Week 1](courses/backend/advanced-javascript/week1/README.md)
- [Preparation](courses/backend/advanced-javascript/week1/preparation.md)
- [Session Plan](courses/backend/advanced-javascript/week1/session-plan.md)
- [Assignment](courses/backend/advanced-javascript/week1/assignment.md)
- [Week 2](courses/backend/advanced-javascript/week2/README.md)
- [Preparation](courses/backend/advanced-javascript/week2/preparation.md)
- [Session Plan](courses/backend/advanced-javascript/week2/session-plan.md)
- [Assignment](courses/backend/advanced-javascript/week2/assignment.md)
- [Week 3](courses/backend/advanced-javascript/week3/README.md)
- [Preparation](courses/backend/advanced-javascript/week3/preparation.md)
- [Session Plan](courses/backend/advanced-javascript/week3/session-plan.md)
- [Assignment](courses/backend/advanced-javascript/week3/assignment.md)
- [Week 4](courses/backend/advanced-javascript/week4/README.md)
- [Preparation](courses/backend/advanced-javascript/week4/preparation.md)
- [Session Plan](courses/backend/advanced-javascript/week4/session-plan.md)
- [Assignment](courses/backend/advanced-javascript/week4/assignment.md)
- [Databases](courses/backend/databases/README.md)
- [Week 1](courses/backend/databases/week1/README.md)
- [Preparation](courses/backend/databases/week1/preparation.md)
Expand Down
3 changes: 3 additions & 0 deletions courses/backend/advanced-javascript/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
week*/session-materials/solutions.js
week*/assignment-solutions.js
_teaching-notes.md
25 changes: 22 additions & 3 deletions courses/backend/advanced-javascript/README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,28 @@
# Advanced JavaScript (Backend)
# Advanced JavaScript
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this file is missing the "contents" and "module learning goals" sections. These are required. They can be seen in the template here

The module learnings goals are a higher level summary of the learning goals of each session, if that helps (AI can probs summarise that nicely :D)

I can see you have a kind of similar "course overview" section, but that needs renaming and reformatting, and moving to the top of the page.

(required because, for example, we pull the learning goals here into the course summary page for an overview of everything trainees learn on the course).


Coming soon
This module is about the JavaScript patterns that power backend systems: transforming data with array methods, handling asynchronous operations with callbacks and Promises, consuming APIs, and modeling domains with classes.

## Contents

| Week | Topic | Preparation | Session Plan | Assignment |
| ---- | ---------------------------------------------------------- | ------------------------------------- | ----------------------------------------------------- | ----------------------------------- |
| 1. | [Array Methods](./week1/README.md) | [Preparation](./week1/preparation.md) | [Session Plan](./week1/session-plan.md) (for mentors) | [Assignment](./week1/assignment.md) |
| 2. | [Callbacks & Delayed Execution](./week2/README.md) | [Preparation](./week2/preparation.md) | [Session Plan](./week2/session-plan.md) (for mentors) | [Assignment](./week2/assignment.md) |
| 3. | [Promises & async/await](./week3/README.md) | [Preparation](./week3/preparation.md) | [Session Plan](./week3/session-plan.md) (for mentors) | [Assignment](./week3/assignment.md) |
| 4. | [Classes & Object-Oriented Programming](./week4/README.md) | [Preparation](./week4/preparation.md) | [Session Plan](./week4/session-plan.md) (for mentors) | [Assignment](./week4/assignment.md) |

## Module Learning Goals

By the end of this module, you will be able to:

TODO
- [ ] Use array methods (`forEach`, `map`, `filter`, `reduce`) to transform, query, and aggregate data
- [ ] Chain array methods into data transformation pipelines
- [ ] Write concise arrow functions with implicit and explicit returns
- [ ] Pass functions as arguments and return functions from functions (higher-order functions)
- [ ] Use callbacks for synchronous and asynchronous operations, including error-first callbacks
- [ ] Explain the difference between synchronous and asynchronous code execution in JavaScript
- [ ] Consume and create Promises using `.then()`, `.catch()`, and `new Promise()`
- [ ] Use `async`/`await` with `try`/`catch` for clean asynchronous code
- [ ] Fetch data from APIs and run parallel requests with `Promise.all()`
- [ ] Declare classes with constructors, methods, and static methods
- [ ] Use inheritance with `extends` and `super()`
Loading