Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
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()`
23 changes: 23 additions & 0 deletions courses/backend/advanced-javascript/data/teas.js
Copy link
Contributor

Choose a reason for hiding this comment

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

This data should live in hyf-assignment-repo so trainees have it available on their local machines already. I will move it there after this PR is merged, no worries :)

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading