diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index ed46fd0b..91b0b99d 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -9,9 +9,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - - run: npm install + - name: Install dependencies + uses: actions/setup-node@v4 + with: + node-version: '20.11.1' # Install the latest LTS (Long-Term Support) version - run: npm run format:check diff --git a/.vscode/settings.json b/.vscode/settings.json index 5a90e202..7a25dcd7 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -109,7 +109,7 @@ // Defines a default markdown formatter which takes precedence over all other formatter settings. Must be the identifier of an extension contributing a formatter "[markdown]": { - "editor.defaultFormatter": "DavidAnson.vscode-markdownlint" + "editor.defaultFormatter": "esbenp.prettier-vscode" }, // Enable/disable update table of contents on save diff --git a/1-what-is-programming/0-javascript/README.md b/1-what-is-programming/0-javascript/README.md index 61b0381a..2fbc0d5a 100644 --- a/1-what-is-programming/0-javascript/README.md +++ b/1-what-is-programming/0-javascript/README.md @@ -62,7 +62,7 @@ alert('hello user (alert)'); You can also write your code in a script tag of an HTML file then open the HTML file in your browser. The JavaScript will run automatically when the page is -loaded. See this in action with `./inline.html`. +loaded. See this in action with `./1-inline-script-tag.html`. You will learn about this later in the course for examples and exercises that introduce how JavaScript interacts with the DOM. It's easier to understand "the @@ -74,8 +74,9 @@ big picture" when you can see everything in one document. You can also write your code in a separate `.js` file, then load the file into your HTML to execute the code. There are two different ways you can load a `.js` -file into your HTML, you can see them in action with `./separate-script` and -`./separate-modules` (you'll learn more about scripts vs. modules later on). +file into your HTML, you can see them in action with `./2-separate-script-file` +and `./3-separate-module-files` (you'll learn more about scripts vs. modules +later on). You will use this for larger projects and for collaboration. Separating code into smaller files each with a clear purpose makes your code base easier to @@ -113,8 +114,7 @@ in a browser, each one has a specific use case: [code.org](https://code.org/) (develop and play games with JS), [editor.p5js.org](https://editor.p5js.org/) (create interactive artwork), [PencilCode](https://pencilcode.net/edit/myprogram) (write your code as blocks - or text), [Ocelot](https://code.ocelot-ide.org/) (disallows "bad" language - features and has helpful error messages). + or text). --- @@ -135,11 +135,9 @@ secure and developer-friendly alternative to Node.js. - [javascript.info/intro](https://javascript.info/intro) - [The Net Ninja](https://www.youtube.com/watch?v=VB7y0yxZjro) -- [MDN](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/What_is_JavaScript) - [Andrew Mosh](https://www.youtube.com/watch?v=W6NZfCO5SIk) \(first 5 minutes\) - [Code School](https://www.youtube.com/watch?v=nItSSTwBvSU) - [MDN: First Steps](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/What_is_JavaScript) -- [javascript.info](https://javascript.info/intro) - [Danielle ThΓ©](https://www.youtube.com/watch?v=gT0Lh1eYk78) --- @@ -148,4 +146,4 @@ secure and developer-friendly alternative to Node.js. JavaScript is the language used to write the Source Code in this diagram: -[![program diagram](../../assets/a-program.svg)](https://excalidraw.com/#json=_cj6JYwuO38PPGKxXN_cQ,3910Z7e2jGLZu4vjueG-Bg) +[![program diagram](../../assets/a-program.png)](https://excalidraw.com/#json=_cj6JYwuO38PPGKxXN_cQ,3910Z7e2jGLZu4vjueG-Bg) diff --git a/1-what-is-programming/0-javascript/some-history.md b/1-what-is-programming/0-javascript/some-history.md index 1cd44700..5b2f7b54 100644 --- a/1-what-is-programming/0-javascript/some-history.md +++ b/1-what-is-programming/0-javascript/some-history.md @@ -40,7 +40,6 @@ grow, but this is the case for JavaScript. - [You Don't Know JS](https://github.com/getify/You-Dont-Know-JS/blob/2nd-ed/get-started/ch1.md#backwards--forwards) - [Why is JavaScript backwards compatible to a fault?](https://stackoverflow.com/questions/4937245/why-is-javascript-backwards-compatible-to-a-fault) -- [edytawrobel](https://www.edytawrobel.com/js-compatibility/) - [tonsky.me](https://tonsky.me/blog/compatibility/) - [rohitdhatrak](https://www.rohitdhatrak.com/backwards-forwards-compatibility/) - [Chrome Breaks the Web](https://www.theregister.com/2021/10/04/chrome_breaks_web/) diff --git a/1-what-is-programming/1-the-developers/README.md b/1-what-is-programming/1-the-developers/README.md index b0493320..e1105e32 100644 --- a/1-what-is-programming/1-the-developers/README.md +++ b/1-what-is-programming/1-the-developers/README.md @@ -23,4 +23,4 @@ Users and on the left in this diagram, developers are on the right. - **Dynamic**: Logs and error messages help developers understand what is happening inside the computer as it follows the code's instructions. -[![program diagram](../../assets/a-program.svg)](https://excalidraw.com/#json=40qMI89WByj9Yhhh94Ghg,4zpL-AmDgpnbyFJWJfNQhg) +[![program diagram](../../assets/a-program.png)](https://excalidraw.com/#json=40qMI89WByj9Yhhh94Ghg,4zpL-AmDgpnbyFJWJfNQhg) diff --git a/1-what-is-programming/2-the-computer/README.md b/1-what-is-programming/2-the-computer/README.md index 73550ef4..a89f2f3d 100644 --- a/1-what-is-programming/2-the-computer/README.md +++ b/1-what-is-programming/2-the-computer/README.md @@ -53,4 +53,4 @@ developer. Tracing code is a very good way to begin understanding how the computer follows your instructions one step at a time: -[![program diagram](../../assets/a-program.svg)](https://excalidraw.com/#json=_cj6JYwuO38PPGKxXN_cQ,3910Z7e2jGLZu4vjueG-Bg) +[![program diagram](../../assets/a-program.png)](https://excalidraw.com/#json=_cj6JYwuO38PPGKxXN_cQ,3910Z7e2jGLZu4vjueG-Bg) diff --git a/1-what-is-programming/2-the-computer/guide-tracing.mp4 b/1-what-is-programming/2-the-computer/guide-tracing.mp4 index cb604b2a..2c47a63a 100644 Binary files a/1-what-is-programming/2-the-computer/guide-tracing.mp4 and b/1-what-is-programming/2-the-computer/guide-tracing.mp4 differ diff --git a/1-what-is-programming/3-the-users/README.md b/1-what-is-programming/3-the-users/README.md index 86c4f101..d077fc15 100644 --- a/1-what-is-programming/3-the-users/README.md +++ b/1-what-is-programming/3-the-users/README.md @@ -27,4 +27,4 @@ Users and on the left in this diagram, developers are on the right. - **Outputting Data**: `alert` is a simple way for the computer to display data to a user. -[![program diagram](../../assets/a-program.svg)](https://excalidraw.com/#json=40qMI89WByj9Yhhh94Ghg,4zpL-AmDgpnbyFJWJfNQhg) +[![program diagram](../../assets/a-program.png)](https://excalidraw.com/#json=40qMI89WByj9Yhhh94Ghg,4zpL-AmDgpnbyFJWJfNQhg) diff --git a/1-what-is-programming/4-data-in-data-out/README.md b/1-what-is-programming/4-data-in-data-out/README.md index f30de5ef..118c8251 100644 --- a/1-what-is-programming/4-data-in-data-out/README.md +++ b/1-what-is-programming/4-data-in-data-out/README.md @@ -2,7 +2,7 @@ So what is a program? It's something like this: -![program diagram](../../assets/a-program.svg) +![program diagram](../../assets/a-program.png) The basic job of a computer program is to process data. Even the most beautiful and interactive programs are just processing data behind the scenes. One of the @@ -90,7 +90,7 @@ Practice explaining what is happening in each program using these terms: out. In the `/examples` folder you will find a few programs with a comment describing -the **behavior**, **data in** and **data out**. Your challenge in `/exericses` +the **behavior**, **data in** and **data out**. Your challenge in `/exercises` is to fill in the same information for new programs. Be _very careful_ about your formatting! Study the example comments closely and diff --git a/1-what-is-programming/README.md b/1-what-is-programming/README.md index 7b9b56ff..9a69bad3 100644 --- a/1-what-is-programming/README.md +++ b/1-what-is-programming/README.md @@ -24,7 +24,7 @@ then communicating with everyone involved to deliver quality software within your project's constraints. This diagram shows the different channels of communication in a software project: -![rhetorical situation](../assets/the-big-picture.svg) +![rhetorical situation](../assets/the-big-picture.png) --- @@ -42,7 +42,7 @@ perfectly structured and do exactly what we want. The computer just _parses_ (interprets) our code and follows the instructions without any understanding or thinking. -You can think of a programing language as the developer's UI for the computer. +You can think of a programming language as the developer's UI for the computer. Because this UI isn't very intuitive you will need to spend a lot of time studying syntax and other details before you can program with ease. This is why you will be focusing on _understanding_ programs before writing them. diff --git a/2-just-enough-javascript/02-primitive-values/README.md b/2-just-enough-javascript/02-primitive-values/README.md index 84825887..6a943d5d 100644 --- a/2-just-enough-javascript/02-primitive-values/README.md +++ b/2-just-enough-javascript/02-primitive-values/README.md @@ -45,6 +45,8 @@ console.log(null); 'use strict'; console.log('--- numbers: numbers that are not wrapped in quotation marks ---'); console.log(12); +console.log(3.14); console.log(0); console.log(-12); +console.log(10_000_000_000); ``` diff --git a/2-just-enough-javascript/07-variables/README.md b/2-just-enough-javascript/07-variables/README.md index cb12d328..f5246650 100644 --- a/2-just-enough-javascript/07-variables/README.md +++ b/2-just-enough-javascript/07-variables/README.md @@ -304,7 +304,7 @@ many rules and the rules aren't very complicated, you just need to learn them: - [javascript.info](https://javascript.info/variables#variable-naming) - [nexTRIE](https://www.youtube.com/watch?v=O5WlRR-lEDE) -- [launchcode](ntro-to-professional-web-dev/chapters/data-and-variables/more-on-variables.html#naming-variables) +- [launchcode](https://education.launchcode.org/intro-to-web-dev-curriculum/data-and-variables/reading/more-on-variables/index.html#naming-variables)
πŸ₯š variable names can use numbers, letters, $, or _ diff --git a/2-just-enough-javascript/11-block-scope/3-quiz/predicting-logs.md b/2-just-enough-javascript/11-block-scope/3-quiz/predicting-logs.md index 58dee415..bc9addc4 100644 --- a/2-just-enough-javascript/11-block-scope/3-quiz/predicting-logs.md +++ b/2-just-enough-javascript/11-block-scope/3-quiz/predicting-logs.md @@ -60,7 +60,7 @@ The assignment on line 7 is inside a block scope, but is accessing a variable declared in the outer scope. This means that the new value will still be available after the scope has closed. -Line 8 and line 11 will both log `"cat"` because a new value was never assigned +Line 8 and line 11 will both log `"dog"` because a new value was never assigned between those lines.
diff --git a/2-just-enough-javascript/13-while-loops/08-parsons/enter-something-2.js b/2-just-enough-javascript/13-while-loops/08-parsons/enter-something-2.js index ce7d42c8..08a57934 100644 --- a/2-just-enough-javascript/13-while-loops/08-parsons/enter-something-2.js +++ b/2-just-enough-javascript/13-while-loops/08-parsons/enter-something-2.js @@ -28,4 +28,4 @@ if (input === '') { while input === null { // distractor if (input === '') // distractor -LET input = null; +LET input = null; // distractor diff --git a/2-just-enough-javascript/13-while-loops/09-infinite-loops/guide.mp4 b/2-just-enough-javascript/13-while-loops/09-infinite-loops/guide.mp4 index 8fffd898..05b50b73 100644 Binary files a/2-just-enough-javascript/13-while-loops/09-infinite-loops/guide.mp4 and b/2-just-enough-javascript/13-while-loops/09-infinite-loops/guide.mp4 differ diff --git a/2-just-enough-javascript/README.md b/2-just-enough-javascript/README.md index dc796bfe..e0936998 100644 --- a/2-just-enough-javascript/README.md +++ b/2-just-enough-javascript/README.md @@ -9,9 +9,8 @@ and interact with users. Why just enough, and not a little more? Because reading and understanding program logic is more important than JavaScript, so why let the code get in the way? -In this directory is is all the JavaScript you will find in this module's -examples and exercises. Don't be mistaken, there's a lot you can do with only -this! +In this directory is all the JavaScript you will find in this module's examples +and exercises. Don't be mistaken, there's a lot you can do with only this! --- @@ -59,8 +58,8 @@ rest go a lot smoother. #### `// prettier-ignore` The marking exercises will have an extra block around the code and a comment -written before the block. You can ignore that. It's there Prettier doesn't -remove the extra spacing when it formats the code. +written before the block. You can ignore that. It's there so that Prettier +doesn't remove the extra spacing when it formats the code. --- diff --git a/2-just-enough-javascript/guide-parsons.mp4 b/2-just-enough-javascript/guide-parsons.mp4 index 4b94d929..eb7d947f 100644 Binary files a/2-just-enough-javascript/guide-parsons.mp4 and b/2-just-enough-javascript/guide-parsons.mp4 differ diff --git a/3-understanding-programs/2-reading-programs/code-reading-sessions/README.md b/3-understanding-programs/2-reading-programs/code-reading-sessions/README.md index 39091e97..53d9f89b 100644 --- a/3-understanding-programs/2-reading-programs/code-reading-sessions/README.md +++ b/3-understanding-programs/2-reading-programs/code-reading-sessions/README.md @@ -7,10 +7,7 @@ divided them into basic and advanced. Advanced exercises can be used in clubs that have been running for a while, and especially work well when doing a second code club using the same code snippet. -- [runner](https://runner.code-reading.org/): a slide show to help pace your - code reading session -- [annotate](https://annotate.code-reading.org/#/): a site for loading and - annotating code on the web +- [code reading resources](https://codereading.club/resources) --- diff --git a/3-understanding-programs/6-logging-state/README.md b/3-understanding-programs/5-logging-state/README.md similarity index 100% rename from 3-understanding-programs/6-logging-state/README.md rename to 3-understanding-programs/5-logging-state/README.md diff --git a/3-understanding-programs/6-logging-state/examples/getting-an-orange.js b/3-understanding-programs/5-logging-state/examples/getting-an-orange.js similarity index 100% rename from 3-understanding-programs/6-logging-state/examples/getting-an-orange.js rename to 3-understanding-programs/5-logging-state/examples/getting-an-orange.js diff --git a/3-understanding-programs/6-logging-state/exercises/guessing-game/1.js b/3-understanding-programs/5-logging-state/exercises/guessing-game/1.js similarity index 100% rename from 3-understanding-programs/6-logging-state/exercises/guessing-game/1.js rename to 3-understanding-programs/5-logging-state/exercises/guessing-game/1.js diff --git a/3-understanding-programs/6-logging-state/exercises/guessing-game/2.js b/3-understanding-programs/5-logging-state/exercises/guessing-game/2.js similarity index 100% rename from 3-understanding-programs/6-logging-state/exercises/guessing-game/2.js rename to 3-understanding-programs/5-logging-state/exercises/guessing-game/2.js diff --git a/3-understanding-programs/6-logging-state/exercises/remove-duplicates/1.js b/3-understanding-programs/5-logging-state/exercises/remove-duplicates/1.js similarity index 100% rename from 3-understanding-programs/6-logging-state/exercises/remove-duplicates/1.js rename to 3-understanding-programs/5-logging-state/exercises/remove-duplicates/1.js diff --git a/3-understanding-programs/6-logging-state/exercises/remove-duplicates/2.js b/3-understanding-programs/5-logging-state/exercises/remove-duplicates/2.js similarity index 100% rename from 3-understanding-programs/6-logging-state/exercises/remove-duplicates/2.js rename to 3-understanding-programs/5-logging-state/exercises/remove-duplicates/2.js diff --git a/3-understanding-programs/6-logging-state/exercises/remove-duplicates/3.js b/3-understanding-programs/5-logging-state/exercises/remove-duplicates/3.js similarity index 100% rename from 3-understanding-programs/6-logging-state/exercises/remove-duplicates/3.js rename to 3-understanding-programs/5-logging-state/exercises/remove-duplicates/3.js diff --git a/3-understanding-programs/6-logging-state/exercises/repeat-or-remove/1.js b/3-understanding-programs/5-logging-state/exercises/repeat-or-remove/1.js similarity index 100% rename from 3-understanding-programs/6-logging-state/exercises/repeat-or-remove/1.js rename to 3-understanding-programs/5-logging-state/exercises/repeat-or-remove/1.js diff --git a/3-understanding-programs/6-logging-state/exercises/repeat-or-remove/2.js b/3-understanding-programs/5-logging-state/exercises/repeat-or-remove/2.js similarity index 100% rename from 3-understanding-programs/6-logging-state/exercises/repeat-or-remove/2.js rename to 3-understanding-programs/5-logging-state/exercises/repeat-or-remove/2.js diff --git a/3-understanding-programs/6-logging-state/exercises/repeat-or-remove/3.js b/3-understanding-programs/5-logging-state/exercises/repeat-or-remove/3.js similarity index 100% rename from 3-understanding-programs/6-logging-state/exercises/repeat-or-remove/3.js rename to 3-understanding-programs/5-logging-state/exercises/repeat-or-remove/3.js diff --git a/3-understanding-programs/6-logging-state/exercises/search/1.js b/3-understanding-programs/5-logging-state/exercises/search/1.js similarity index 100% rename from 3-understanding-programs/6-logging-state/exercises/search/1.js rename to 3-understanding-programs/5-logging-state/exercises/search/1.js diff --git a/3-understanding-programs/6-logging-state/exercises/search/2.js b/3-understanding-programs/5-logging-state/exercises/search/2.js similarity index 100% rename from 3-understanding-programs/6-logging-state/exercises/search/2.js rename to 3-understanding-programs/5-logging-state/exercises/search/2.js diff --git a/3-understanding-programs/6-logging-state/exercises/study.json b/3-understanding-programs/5-logging-state/exercises/study.json similarity index 100% rename from 3-understanding-programs/6-logging-state/exercises/study.json rename to 3-understanding-programs/5-logging-state/exercises/study.json diff --git a/3-understanding-programs/6-logging-state/guide.mp4 b/3-understanding-programs/5-logging-state/guide.mp4 similarity index 100% rename from 3-understanding-programs/6-logging-state/guide.mp4 rename to 3-understanding-programs/5-logging-state/guide.mp4 diff --git a/3-understanding-programs/7-tracing-backwards/README.md b/3-understanding-programs/6-tracing-backwards/README.md similarity index 100% rename from 3-understanding-programs/7-tracing-backwards/README.md rename to 3-understanding-programs/6-tracing-backwards/README.md diff --git a/3-understanding-programs/7-tracing-backwards/exercises/frogify.js b/3-understanding-programs/6-tracing-backwards/exercises/frogify.js similarity index 100% rename from 3-understanding-programs/7-tracing-backwards/exercises/frogify.js rename to 3-understanding-programs/6-tracing-backwards/exercises/frogify.js diff --git a/3-understanding-programs/7-tracing-backwards/exercises/getting-an-orange.js b/3-understanding-programs/6-tracing-backwards/exercises/getting-an-orange.js similarity index 100% rename from 3-understanding-programs/7-tracing-backwards/exercises/getting-an-orange.js rename to 3-understanding-programs/6-tracing-backwards/exercises/getting-an-orange.js diff --git a/3-understanding-programs/7-tracing-backwards/exercises/guessing-game.js b/3-understanding-programs/6-tracing-backwards/exercises/guessing-game.js similarity index 100% rename from 3-understanding-programs/7-tracing-backwards/exercises/guessing-game.js rename to 3-understanding-programs/6-tracing-backwards/exercises/guessing-game.js diff --git a/3-understanding-programs/7-tracing-backwards/exercises/madlib.js b/3-understanding-programs/6-tracing-backwards/exercises/madlib.js similarity index 100% rename from 3-understanding-programs/7-tracing-backwards/exercises/madlib.js rename to 3-understanding-programs/6-tracing-backwards/exercises/madlib.js diff --git a/3-understanding-programs/7-tracing-backwards/exercises/remembery.js b/3-understanding-programs/6-tracing-backwards/exercises/remembery.js similarity index 100% rename from 3-understanding-programs/7-tracing-backwards/exercises/remembery.js rename to 3-understanding-programs/6-tracing-backwards/exercises/remembery.js diff --git a/3-understanding-programs/7-tracing-backwards/exercises/repeat-or-remove.js b/3-understanding-programs/6-tracing-backwards/exercises/repeat-or-remove.js similarity index 100% rename from 3-understanding-programs/7-tracing-backwards/exercises/repeat-or-remove.js rename to 3-understanding-programs/6-tracing-backwards/exercises/repeat-or-remove.js diff --git a/3-understanding-programs/7-tracing-backwards/exercises/search.js b/3-understanding-programs/6-tracing-backwards/exercises/search.js similarity index 100% rename from 3-understanding-programs/7-tracing-backwards/exercises/search.js rename to 3-understanding-programs/6-tracing-backwards/exercises/search.js diff --git a/3-understanding-programs/7-tracing-backwards/guide.mp4 b/3-understanding-programs/6-tracing-backwards/guide.mp4 similarity index 100% rename from 3-understanding-programs/7-tracing-backwards/guide.mp4 rename to 3-understanding-programs/6-tracing-backwards/guide.mp4 diff --git a/3-understanding-programs/7-tracing-backwards/study.json b/3-understanding-programs/6-tracing-backwards/study.json similarity index 100% rename from 3-understanding-programs/7-tracing-backwards/study.json rename to 3-understanding-programs/6-tracing-backwards/study.json diff --git a/3-understanding-programs/8-naming-variables/README.md b/3-understanding-programs/7-naming-variables/README.md similarity index 100% rename from 3-understanding-programs/8-naming-variables/README.md rename to 3-understanding-programs/7-naming-variables/README.md diff --git a/3-understanding-programs/8-naming-variables/examples/frogify/0-unhelpful-names.js b/3-understanding-programs/7-naming-variables/examples/frogify/0-unhelpful-names.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/examples/frogify/0-unhelpful-names.js rename to 3-understanding-programs/7-naming-variables/examples/frogify/0-unhelpful-names.js diff --git a/3-understanding-programs/8-naming-variables/examples/frogify/1-helpful-generic.js b/3-understanding-programs/7-naming-variables/examples/frogify/1-helpful-generic.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/examples/frogify/1-helpful-generic.js rename to 3-understanding-programs/7-naming-variables/examples/frogify/1-helpful-generic.js diff --git a/3-understanding-programs/8-naming-variables/examples/frogify/2-helpful-specific.js b/3-understanding-programs/7-naming-variables/examples/frogify/2-helpful-specific.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/examples/frogify/2-helpful-specific.js rename to 3-understanding-programs/7-naming-variables/examples/frogify/2-helpful-specific.js diff --git a/3-understanding-programs/8-naming-variables/exercises/animalopedia/0-unhelpful-names.js b/3-understanding-programs/7-naming-variables/exercises/animalopedia/0-unhelpful-names.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/animalopedia/0-unhelpful-names.js rename to 3-understanding-programs/7-naming-variables/exercises/animalopedia/0-unhelpful-names.js diff --git a/3-understanding-programs/8-naming-variables/exercises/animalopedia/1-helpful-generic.js b/3-understanding-programs/7-naming-variables/exercises/animalopedia/1-helpful-generic.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/animalopedia/1-helpful-generic.js rename to 3-understanding-programs/7-naming-variables/exercises/animalopedia/1-helpful-generic.js diff --git a/3-understanding-programs/8-naming-variables/exercises/animalopedia/2-helpful-specific.js b/3-understanding-programs/7-naming-variables/exercises/animalopedia/2-helpful-specific.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/animalopedia/2-helpful-specific.js rename to 3-understanding-programs/7-naming-variables/exercises/animalopedia/2-helpful-specific.js diff --git a/3-understanding-programs/8-naming-variables/exercises/e-at-index-1/0-unhelpful-names.js b/3-understanding-programs/7-naming-variables/exercises/e-at-index-1/0-unhelpful-names.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/e-at-index-1/0-unhelpful-names.js rename to 3-understanding-programs/7-naming-variables/exercises/e-at-index-1/0-unhelpful-names.js diff --git a/3-understanding-programs/8-naming-variables/exercises/e-at-index-1/1-helpful-generic.js b/3-understanding-programs/7-naming-variables/exercises/e-at-index-1/1-helpful-generic.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/e-at-index-1/1-helpful-generic.js rename to 3-understanding-programs/7-naming-variables/exercises/e-at-index-1/1-helpful-generic.js diff --git a/3-understanding-programs/8-naming-variables/exercises/e-at-index-1/2-helpful-specific.js b/3-understanding-programs/7-naming-variables/exercises/e-at-index-1/2-helpful-specific.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/e-at-index-1/2-helpful-specific.js rename to 3-understanding-programs/7-naming-variables/exercises/e-at-index-1/2-helpful-specific.js diff --git a/3-understanding-programs/8-naming-variables/exercises/e-at-index-2/0-unhelpful-names.js b/3-understanding-programs/7-naming-variables/exercises/e-at-index-2/0-unhelpful-names.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/e-at-index-2/0-unhelpful-names.js rename to 3-understanding-programs/7-naming-variables/exercises/e-at-index-2/0-unhelpful-names.js diff --git a/3-understanding-programs/8-naming-variables/exercises/e-at-index-2/1-helpful-generic.js b/3-understanding-programs/7-naming-variables/exercises/e-at-index-2/1-helpful-generic.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/e-at-index-2/1-helpful-generic.js rename to 3-understanding-programs/7-naming-variables/exercises/e-at-index-2/1-helpful-generic.js diff --git a/3-understanding-programs/8-naming-variables/exercises/e-at-index-2/2-helpful-specific.js b/3-understanding-programs/7-naming-variables/exercises/e-at-index-2/2-helpful-specific.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/e-at-index-2/2-helpful-specific.js rename to 3-understanding-programs/7-naming-variables/exercises/e-at-index-2/2-helpful-specific.js diff --git a/3-understanding-programs/8-naming-variables/exercises/every/0-unhelpful-names.js b/3-understanding-programs/7-naming-variables/exercises/every/0-unhelpful-names.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/every/0-unhelpful-names.js rename to 3-understanding-programs/7-naming-variables/exercises/every/0-unhelpful-names.js diff --git a/3-understanding-programs/8-naming-variables/exercises/every/1-helpful-generic.js b/3-understanding-programs/7-naming-variables/exercises/every/1-helpful-generic.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/every/1-helpful-generic.js rename to 3-understanding-programs/7-naming-variables/exercises/every/1-helpful-generic.js diff --git a/3-understanding-programs/8-naming-variables/exercises/every/2-helpful-specific.js b/3-understanding-programs/7-naming-variables/exercises/every/2-helpful-specific.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/every/2-helpful-specific.js rename to 3-understanding-programs/7-naming-variables/exercises/every/2-helpful-specific.js diff --git a/3-understanding-programs/8-naming-variables/exercises/filter/0-unhelpful-names.js b/3-understanding-programs/7-naming-variables/exercises/filter/0-unhelpful-names.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/filter/0-unhelpful-names.js rename to 3-understanding-programs/7-naming-variables/exercises/filter/0-unhelpful-names.js diff --git a/3-understanding-programs/8-naming-variables/exercises/filter/1-helpful-generic.js b/3-understanding-programs/7-naming-variables/exercises/filter/1-helpful-generic.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/filter/1-helpful-generic.js rename to 3-understanding-programs/7-naming-variables/exercises/filter/1-helpful-generic.js diff --git a/3-understanding-programs/8-naming-variables/exercises/filter/2-helpful-specific.js b/3-understanding-programs/7-naming-variables/exercises/filter/2-helpful-specific.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/filter/2-helpful-specific.js rename to 3-understanding-programs/7-naming-variables/exercises/filter/2-helpful-specific.js diff --git a/3-understanding-programs/8-naming-variables/exercises/map/0-unhelpful-names.js b/3-understanding-programs/7-naming-variables/exercises/map/0-unhelpful-names.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/map/0-unhelpful-names.js rename to 3-understanding-programs/7-naming-variables/exercises/map/0-unhelpful-names.js diff --git a/3-understanding-programs/8-naming-variables/exercises/map/1-helpful-generic.js b/3-understanding-programs/7-naming-variables/exercises/map/1-helpful-generic.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/map/1-helpful-generic.js rename to 3-understanding-programs/7-naming-variables/exercises/map/1-helpful-generic.js diff --git a/3-understanding-programs/8-naming-variables/exercises/map/2-helpful-specific.js b/3-understanding-programs/7-naming-variables/exercises/map/2-helpful-specific.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/map/2-helpful-specific.js rename to 3-understanding-programs/7-naming-variables/exercises/map/2-helpful-specific.js diff --git a/3-understanding-programs/8-naming-variables/exercises/no-duplicates/0-unhelpful-names.js b/3-understanding-programs/7-naming-variables/exercises/no-duplicates/0-unhelpful-names.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/no-duplicates/0-unhelpful-names.js rename to 3-understanding-programs/7-naming-variables/exercises/no-duplicates/0-unhelpful-names.js diff --git a/3-understanding-programs/8-naming-variables/exercises/no-duplicates/1-helpful-generic.js b/3-understanding-programs/7-naming-variables/exercises/no-duplicates/1-helpful-generic.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/no-duplicates/1-helpful-generic.js rename to 3-understanding-programs/7-naming-variables/exercises/no-duplicates/1-helpful-generic.js diff --git a/3-understanding-programs/8-naming-variables/exercises/no-duplicates/2-helpful-specific.js b/3-understanding-programs/7-naming-variables/exercises/no-duplicates/2-helpful-specific.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/no-duplicates/2-helpful-specific.js rename to 3-understanding-programs/7-naming-variables/exercises/no-duplicates/2-helpful-specific.js diff --git a/3-understanding-programs/8-naming-variables/exercises/remembery/0-unhelpful-names.js b/3-understanding-programs/7-naming-variables/exercises/remembery/0-unhelpful-names.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/remembery/0-unhelpful-names.js rename to 3-understanding-programs/7-naming-variables/exercises/remembery/0-unhelpful-names.js diff --git a/3-understanding-programs/8-naming-variables/exercises/remembery/1-helpful-generic.js b/3-understanding-programs/7-naming-variables/exercises/remembery/1-helpful-generic.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/remembery/1-helpful-generic.js rename to 3-understanding-programs/7-naming-variables/exercises/remembery/1-helpful-generic.js diff --git a/3-understanding-programs/8-naming-variables/exercises/remembery/2-helpful-specific.js b/3-understanding-programs/7-naming-variables/exercises/remembery/2-helpful-specific.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/remembery/2-helpful-specific.js rename to 3-understanding-programs/7-naming-variables/exercises/remembery/2-helpful-specific.js diff --git a/3-understanding-programs/8-naming-variables/exercises/some/0-unhelpful-names.js b/3-understanding-programs/7-naming-variables/exercises/some/0-unhelpful-names.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/some/0-unhelpful-names.js rename to 3-understanding-programs/7-naming-variables/exercises/some/0-unhelpful-names.js diff --git a/3-understanding-programs/8-naming-variables/exercises/some/1-helpful-generic.js b/3-understanding-programs/7-naming-variables/exercises/some/1-helpful-generic.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/some/1-helpful-generic.js rename to 3-understanding-programs/7-naming-variables/exercises/some/1-helpful-generic.js diff --git a/3-understanding-programs/8-naming-variables/exercises/some/2-helpful-specific.js b/3-understanding-programs/7-naming-variables/exercises/some/2-helpful-specific.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/some/2-helpful-specific.js rename to 3-understanding-programs/7-naming-variables/exercises/some/2-helpful-specific.js diff --git a/3-understanding-programs/8-naming-variables/exercises/sort-by-length/0-unhelpful-names.js b/3-understanding-programs/7-naming-variables/exercises/sort-by-length/0-unhelpful-names.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/sort-by-length/0-unhelpful-names.js rename to 3-understanding-programs/7-naming-variables/exercises/sort-by-length/0-unhelpful-names.js diff --git a/3-understanding-programs/8-naming-variables/exercises/sort-by-length/1-helpful-generic.js b/3-understanding-programs/7-naming-variables/exercises/sort-by-length/1-helpful-generic.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/sort-by-length/1-helpful-generic.js rename to 3-understanding-programs/7-naming-variables/exercises/sort-by-length/1-helpful-generic.js diff --git a/3-understanding-programs/8-naming-variables/exercises/sort-by-length/2-helpful-specific.js b/3-understanding-programs/7-naming-variables/exercises/sort-by-length/2-helpful-specific.js similarity index 100% rename from 3-understanding-programs/8-naming-variables/exercises/sort-by-length/2-helpful-specific.js rename to 3-understanding-programs/7-naming-variables/exercises/sort-by-length/2-helpful-specific.js diff --git a/3-understanding-programs/8-naming-variables/guide.mp4 b/3-understanding-programs/7-naming-variables/guide.mp4 similarity index 100% rename from 3-understanding-programs/8-naming-variables/guide.mp4 rename to 3-understanding-programs/7-naming-variables/guide.mp4 diff --git a/3-understanding-programs/8-naming-variables/study.json b/3-understanding-programs/7-naming-variables/study.json similarity index 100% rename from 3-understanding-programs/8-naming-variables/study.json rename to 3-understanding-programs/7-naming-variables/study.json diff --git a/3-understanding-programs/9-code-review/README.md b/3-understanding-programs/8-code-review/README.md similarity index 100% rename from 3-understanding-programs/9-code-review/README.md rename to 3-understanding-programs/8-code-review/README.md diff --git a/3-understanding-programs/9-code-review/examples/no-repetitions/program.js b/3-understanding-programs/8-code-review/examples/no-repetitions/program.js similarity index 100% rename from 3-understanding-programs/9-code-review/examples/no-repetitions/program.js rename to 3-understanding-programs/8-code-review/examples/no-repetitions/program.js diff --git a/3-understanding-programs/9-code-review/examples/no-repetitions/review.js b/3-understanding-programs/8-code-review/examples/no-repetitions/review.js similarity index 100% rename from 3-understanding-programs/9-code-review/examples/no-repetitions/review.js rename to 3-understanding-programs/8-code-review/examples/no-repetitions/review.js diff --git a/3-understanding-programs/9-code-review/exercises/1-is-excited/program.js b/3-understanding-programs/8-code-review/exercises/1-is-excited/program.js similarity index 100% rename from 3-understanding-programs/9-code-review/exercises/1-is-excited/program.js rename to 3-understanding-programs/8-code-review/exercises/1-is-excited/program.js diff --git a/3-understanding-programs/9-code-review/exercises/1-is-excited/review.js b/3-understanding-programs/8-code-review/exercises/1-is-excited/review.js similarity index 100% rename from 3-understanding-programs/9-code-review/exercises/1-is-excited/review.js rename to 3-understanding-programs/8-code-review/exercises/1-is-excited/review.js diff --git a/3-understanding-programs/9-code-review/exercises/2-frogopedia/program.js b/3-understanding-programs/8-code-review/exercises/2-frogopedia/program.js similarity index 100% rename from 3-understanding-programs/9-code-review/exercises/2-frogopedia/program.js rename to 3-understanding-programs/8-code-review/exercises/2-frogopedia/program.js diff --git a/3-understanding-programs/9-code-review/exercises/2-frogopedia/review.js b/3-understanding-programs/8-code-review/exercises/2-frogopedia/review.js similarity index 100% rename from 3-understanding-programs/9-code-review/exercises/2-frogopedia/review.js rename to 3-understanding-programs/8-code-review/exercises/2-frogopedia/review.js diff --git a/3-understanding-programs/9-code-review/exercises/3-has-a-vowel/program.js b/3-understanding-programs/8-code-review/exercises/3-has-a-vowel/program.js similarity index 100% rename from 3-understanding-programs/9-code-review/exercises/3-has-a-vowel/program.js rename to 3-understanding-programs/8-code-review/exercises/3-has-a-vowel/program.js diff --git a/3-understanding-programs/9-code-review/exercises/3-has-a-vowel/review.js b/3-understanding-programs/8-code-review/exercises/3-has-a-vowel/review.js similarity index 100% rename from 3-understanding-programs/9-code-review/exercises/3-has-a-vowel/review.js rename to 3-understanding-programs/8-code-review/exercises/3-has-a-vowel/review.js diff --git a/3-understanding-programs/9-code-review/study.json b/3-understanding-programs/8-code-review/study.json similarity index 100% rename from 3-understanding-programs/9-code-review/study.json rename to 3-understanding-programs/8-code-review/study.json diff --git a/4-developing-programs/0-pair-programming/README.md b/4-developing-programs/0-pair-programming/README.md index bb467f35..89ea1e8d 100644 --- a/4-developing-programs/0-pair-programming/README.md +++ b/4-developing-programs/0-pair-programming/README.md @@ -17,19 +17,19 @@ takes turns in these two roles: ## Practice -> [puzzlecode.org](https://puzzlecode.org/), -> [wiki guide](https://github.com/mikegagnon/puzzlecode/wiki/) +To practice pair programming there are 4 small programs you can develop in +pairs. You have already studied these programs in Just Enough JavaScript, so you +should be able to focus on your pair programming role instead of how to solve +the problem. -[PuzzleCode](https://puzzlecode.org/) is a great site for learning to pair -program, the website has simple coding challenges with a minimal programming -language that you can figure out in a minute. Because the language is simple and -there is no setup required, you can get right into Pair Programming without -getting caught up in details. +In pair programming it's good to switch roles regularly. Try switching roles for +each user story in the spec. This strategy will accomplish two things: -After you've spent some time practicing both roles (_Navigator & Driver_) on -PuzzleCode you will be ready for Pair Programming with JavaScript. +1. You will both have a chance to practice each role. +2. You will experience _incremental development_ - writing a program one step at + a time, where each step adds user-facing behavior. -Enjoy! +Happy coding! --- diff --git a/4-developing-programs/0-pair-programming/exercises/exactly-ten.js b/4-developing-programs/0-pair-programming/exercises/exactly-ten.js new file mode 100644 index 00000000..2139cb79 --- /dev/null +++ b/4-developing-programs/0-pair-programming/exercises/exactly-ten.js @@ -0,0 +1,20 @@ +// #todo + +'use strict'; + +/* + a user can provide input that is 10 characters long + - given they cancel, a message is displayed and they are prompted again + - given the input is too short, they are told how much too short and prompted again + - given the input is too long, they are told how much too long and prompted again + - given the input is 10 characters, the loop will exit and the input is alerted + + test cases: + invalid input: + (no test cases! the loop will not exit so there will be no output to test) + input of 10 characters + 'javascript' -> 'javascript' + '0123456789' -> '0123456789' + 'a b c d e ' -> 'a b c d e ' + +*/ diff --git a/4-developing-programs/0-pair-programming/exercises/first-and-last.js b/4-developing-programs/0-pair-programming/exercises/first-and-last.js new file mode 100644 index 00000000..0741db9f --- /dev/null +++ b/4-developing-programs/0-pair-programming/exercises/first-and-last.js @@ -0,0 +1,27 @@ +// #todo + +'use strict'; + +/* + a user can provide input that starts with a capital letter and ends with a period + - given the user cancels, they will be prompted again + - given the input is shorter than two characters, they will be prompted again + - given their input does not begin with a capital letter, they will be prompted again + - given their input does not end with a period, they will be prompted again + - given their input is valid, the first letter will be lower-cased and the period removed + - given their input is valid, the loop will exit + + test cases: + invalid input: + (no test cases! the loop will not exit so there will be no output to test) + two-character input: + 'A.' -> 'a' + 'X.' -> 'x' + longer words: + 'Hello.' -> 'hello' + 'JavaScript!.' -> 'javaScript!' + with some spaces: + 'Hello World.' -> 'hello World' + 'Hack your future.' -> 'hack your future' + +*/ diff --git a/4-developing-programs/0-pair-programming/exercises/one-at-a-time.js b/4-developing-programs/0-pair-programming/exercises/one-at-a-time.js new file mode 100644 index 00000000..8dce1aa0 --- /dev/null +++ b/4-developing-programs/0-pair-programming/exercises/one-at-a-time.js @@ -0,0 +1,17 @@ +// #todo + +'use strict'; + +/* + a user can add single characters to a string until they confirm they have finished + - given they cancel, they see a helpful message and are prompted again + - given the input is empty, they see a helpful message and are prompted again + - given the input is longer than 1 character, they see a helpful message and are prompted again + - given the input is a single character, the input is appended to the output + - given the user confirms the output is complete, the loop will end and the output is displayed + + no test cases! + this program cannot be tested by input/output pairs + because the user can decide when to stop there are no certain test cases + +*/ diff --git a/4-developing-programs/0-pair-programming/exercises/only-letters.js b/4-developing-programs/0-pair-programming/exercises/only-letters.js new file mode 100644 index 00000000..05bf156f --- /dev/null +++ b/4-developing-programs/0-pair-programming/exercises/only-letters.js @@ -0,0 +1,20 @@ +// #todo + +'use strict'; + +/* + a user can provide input that contains only uppercase and lowercase letters + - given the user cancels, they will be prompted again + - given the input is empty, they will be prompted again + - given their input contains anything that is not a letter, they will be prompted again + - given their input is valid, the loop will exit and their input is alerted + + test cases: + invalid input: + (no test cases! the loop will not exit so there will be no output to test) + input with only letters: + 'abcdABCD' -> 'abcdABCD' + 'JAVAscript' -> 'JAVAscript' + 'hi' -> 'hi' + +*/ diff --git a/4-developing-programs/6-legacy-code/README.md b/4-developing-programs/6-legacy-code/README.md new file mode 100644 index 00000000..0ae0c423 --- /dev/null +++ b/4-developing-programs/6-legacy-code/README.md @@ -0,0 +1,45 @@ +# Legacy Code + +**Legacy Code** is software that was written in the past that is still used +today. Often legacy code was written by someone who no longer works for a +company, or was even written in a language that current developers don't know +very well - or at all! + +A classic example of legacy code is +[COBOL](https://stackoverflow.blog/2020/04/20/brush-up-your-cobol-why-is-a-60-year-old-language-suddenly-in-demand/) +in +[Banking](https://www.fintechfutures.com/2021/11/legacy-systems-in-banking-the-major-barrier-for-digital-transformation/), +but not all legacy code is so extreme. Legacy code might also be written 6 +months ago but still be hard to understand because it was poorly documented, +poorly written, or is simply 1000 lines of code that you have 1 day to study +before shipping a new feature. + +## Your Challenge + +In these exercises you will be given programs that work, but are poorly or +confusingly written. Some of the programs may contain JS language features you +haven't learned yet, that's part of the challenge! You don't need to master +those features or use them in your refactor, but will need to study them enough +to understand what they are doing in the legacy code. You might even find that +you can refactor the program without understanding all of it! So don't loose +toooo much time on each detail, focus on the big picture and refactor the +program so _you_ understand it. + +Your task is to rewrite the programs in `/exercises` so they ... + +1. ... are easier for a developer to understand. +2. ... are more intuitive for the user. +3. ... implement simpler computer instructions. + +You don't need to worry about efficiency, optimizing programs for speed is more +advanced skill you can learn later in your development life when you start +building programs that are noticeably slow. + +> PS. You have already studied programs with similar behavior to these +> exercises. Challenge yourself to complete these exercises without looking back +> to past programs. Try to find new ways of writing these programs that fit your +> style. + +## References + +- [When understanding means rewriting](https://blog.codinghorror.com/when-understanding-means-rewriting/) diff --git a/3-understanding-programs/z-challenge/1-developer-experience.md b/4-developing-programs/6-legacy-code/examples/1-developer-experience.md similarity index 100% rename from 3-understanding-programs/z-challenge/1-developer-experience.md rename to 4-developing-programs/6-legacy-code/examples/1-developer-experience.md diff --git a/3-understanding-programs/z-challenge/2-user-experience.md b/4-developing-programs/6-legacy-code/examples/2-user-experience.md similarity index 100% rename from 3-understanding-programs/z-challenge/2-user-experience.md rename to 4-developing-programs/6-legacy-code/examples/2-user-experience.md diff --git a/3-understanding-programs/z-challenge/3-computer-instructions.md b/4-developing-programs/6-legacy-code/examples/3-computer-instructions.md similarity index 100% rename from 3-understanding-programs/z-challenge/3-computer-instructions.md rename to 4-developing-programs/6-legacy-code/examples/3-computer-instructions.md diff --git a/3-understanding-programs/z-challenge/README.md b/4-developing-programs/6-legacy-code/examples/README.md similarity index 98% rename from 3-understanding-programs/z-challenge/README.md rename to 4-developing-programs/6-legacy-code/examples/README.md index 923f911b..616ec50a 100644 --- a/3-understanding-programs/z-challenge/README.md +++ b/4-developing-programs/6-legacy-code/examples/README.md @@ -1,4 +1,4 @@ -# Challenge: Many Versions of the Same Program +# Legacy Code: Examples You should think of source code _first_ as a letter to the next developer, _second_ as a user experience, and _third_ as instructions for the computer. diff --git a/4-developing-programs/6-legacy-code/exercises/frogify/legacy.js b/4-developing-programs/6-legacy-code/exercises/frogify/legacy.js new file mode 100644 index 00000000..92de08c4 --- /dev/null +++ b/4-developing-programs/6-legacy-code/exercises/frogify/legacy.js @@ -0,0 +1,43 @@ +/* Analyze the legacy code. + + Developer: + + - Formatting: + - Variable Names: + - Comments: + - Logs: + + User: + + - Clear Instructions: + - Helpful Feedback: + - Consistency: + - Tone of Voice: + + Computer: + + - Variables and Types: + - Data Input: + - Control Flow: + - Operations: + +*/ + +tbf = null +while (tbf == null) + tbf = prompt( + 'frogify this.\n' + + '"f" -> "frog"\n' + + '"F" -> "FROG"' + ) + +fd = '' +for (i = 0; i < tbf.length; i++) { + ch = tbf[i] + + if (ch == 'f') fd = fd + 'frog' + else if (ch == 'F') fd = fd + 'FROG' + else fd = fd + ch +} + +alert(fd) diff --git a/4-developing-programs/6-legacy-code/exercises/frogify/refactor.js b/4-developing-programs/6-legacy-code/exercises/frogify/refactor.js new file mode 100644 index 00000000..cd0da518 --- /dev/null +++ b/4-developing-programs/6-legacy-code/exercises/frogify/refactor.js @@ -0,0 +1,26 @@ +'use strict'; + +/* Describe your refactor. + + Developer: + + - Formatting: + - Variable Names: + - Comments: + - Logs: + + User: + + - Clear Instructions: + - Helpful Feedback: + - Consistency: + - Tone of Voice: + + Computer: + + - Variables and Types: + - Data Input: + - Control Flow: + - Operations: + +*/ diff --git a/4-developing-programs/6-legacy-code/exercises/getting-an-orange/legacy.js b/4-developing-programs/6-legacy-code/exercises/getting-an-orange/legacy.js new file mode 100644 index 00000000..f359761b --- /dev/null +++ b/4-developing-programs/6-legacy-code/exercises/getting-an-orange/legacy.js @@ -0,0 +1,51 @@ +'use strict'; + +/* Analyze the legacy code. + + Developer: + + - Formatting: + - Variable Names: + - Comments: + - Logs: + + User: + + - Clear Instructions: + - Helpful Feedback: + - Consistency: + - Tone of Voice: + + Computer: + + - Variables and Types: + - Data orange_maybe: + - Control Flow: + - Operations: + +*/ + + +let orange = ''; + +for (;orange === '';) +{ var orange_maybe = prompt('orange me!;') + + if (orange_maybe === null) null + else if (orange_maybe.toLowerCase() === 'orange') + { orange = orange_maybe; } } + + +let size = ''; + +if (orange === 'orange') +{ size += 'small;' } + +if (orange === 'ORANGE') +{ size += 'big;' } + +if (orange !== 'orange' && orange !== 'ORANGE') +{ size = 'small/big;' } + + +alert(orange + ' is a ' + size + ' orange;') diff --git a/4-developing-programs/6-legacy-code/exercises/getting-an-orange/refactor.js b/4-developing-programs/6-legacy-code/exercises/getting-an-orange/refactor.js new file mode 100644 index 00000000..cd0da518 --- /dev/null +++ b/4-developing-programs/6-legacy-code/exercises/getting-an-orange/refactor.js @@ -0,0 +1,26 @@ +'use strict'; + +/* Describe your refactor. + + Developer: + + - Formatting: + - Variable Names: + - Comments: + - Logs: + + User: + + - Clear Instructions: + - Helpful Feedback: + - Consistency: + - Tone of Voice: + + Computer: + + - Variables and Types: + - Data Input: + - Control Flow: + - Operations: + +*/ diff --git a/4-developing-programs/6-legacy-code/exercises/guessing-game/legacy.js b/4-developing-programs/6-legacy-code/exercises/guessing-game/legacy.js new file mode 100644 index 00000000..b1fa521a --- /dev/null +++ b/4-developing-programs/6-legacy-code/exercises/guessing-game/legacy.js @@ -0,0 +1,116 @@ +/* Analyze the legacy code. + + Developer: + + - Formatting: + - Variable Names: + - Comments: + - Logs: + + User: + + - Clear Instructions: + - Helpful Feedback: + - Consistency: + - Tone of Voice: + + Computer: + + - Variables and Types: + - Data Input: + - Control Flow: + - Operations: + +*/ + +const user = { + option: prompt(`Welcome! + +"play": begin the game +"-h": read the instructions +escape: exit the game`), +}; + +with (user) { + if (option === '-h') { + alert( + `This is a two player game. + +Player 1: enters a secret number, and then a clue. +Player 2: is shown the clue and must guess the number. + +you can end the game at any point by canceling`, + ); + } else if (option === 'play') { + const game = { + phrase: '', + clue: '', + guess: '', + winner: 'no one', + }; + + alert('Player 2: look away! hide your eyes!'); + + with (game) { + while (phrase === '') { + phrase = prompt('Player 1: enter a secret phrase'); + } + + if (phrase === null) { + alert('good bye'); + } else { + while (clue === '') { + clue = prompt('Player 1: enter a clue to help guess your number'); + } + + if (clue === null) { + alert('good bye'); + } else { + alert(`Player 1: you entered ... + +- number: ${phrase} +- clue: "${clue}"`); + + alert('now go get Player 2'); + + while (guess === '') { + guess = prompt(`Player 2, Here is your clue: + +- "${clue}" + +what do you think the secret phrase is?`); + } + + if (guess === null) { + alert('good bye'); + } else if (guess === phrase) { + winner = 'Player 2'; + alert('Congrats, you were right!'); + } else { + winner = 'Player 1'; + + const revealTheSecret = confirm(`Nope, not correct. + +do you want to know the secret?`); + + if (revealTheSecret) { + alert(`The secret was: + +- ${phrase} + +thanks for playing, see ya`); + } else { + alert('better luck next time'); + } + } + } + } + } + + alert('game over. the winner is: ' + winner); + } else if (option === null) { + alert('good bye'); + } else { + alert('unknown command: "' + option + '"'); + } +} diff --git a/4-developing-programs/6-legacy-code/exercises/guessing-game/refactor.js b/4-developing-programs/6-legacy-code/exercises/guessing-game/refactor.js new file mode 100644 index 00000000..cd0da518 --- /dev/null +++ b/4-developing-programs/6-legacy-code/exercises/guessing-game/refactor.js @@ -0,0 +1,26 @@ +'use strict'; + +/* Describe your refactor. + + Developer: + + - Formatting: + - Variable Names: + - Comments: + - Logs: + + User: + + - Clear Instructions: + - Helpful Feedback: + - Consistency: + - Tone of Voice: + + Computer: + + - Variables and Types: + - Data Input: + - Control Flow: + - Operations: + +*/ diff --git a/4-developing-programs/6-legacy-code/exercises/madlib/legacy.js b/4-developing-programs/6-legacy-code/exercises/madlib/legacy.js new file mode 100644 index 00000000..544b7581 --- /dev/null +++ b/4-developing-programs/6-legacy-code/exercises/madlib/legacy.js @@ -0,0 +1,43 @@ +'use strict'; + +/* Analyze the legacy code. + + Developer: + + - Formatting: + - Variable Names: + - Comments: + - Logs: + + User: + + - Clear Instructions: + - Helpful Feedback: + - Consistency: + - Tone of Voice: + + Computer: + + - Variables and Types: + - Data Input: + - Control Flow: + - Operations: + +*/ + + +alert(renderMadlib(['noun', 'adjective', 'verb'], madlib)); + +function renderMadlib(wordTypes = [], madlib) { + const words = []; + for (const wordType of wordTypes) { + let nextWord = null; + while (nextWord === null) nextWord = prompt(`enter an ${wordType}`); + words.push(nextWord); + } + return madlib(...words); +} + +function madlib(noun = '', adjective = '', verb = '') { + return `The ${adjective} ${noun} likes to ${verb}.`; +} diff --git a/4-developing-programs/6-legacy-code/exercises/madlib/refactor.js b/4-developing-programs/6-legacy-code/exercises/madlib/refactor.js new file mode 100644 index 00000000..cd0da518 --- /dev/null +++ b/4-developing-programs/6-legacy-code/exercises/madlib/refactor.js @@ -0,0 +1,26 @@ +'use strict'; + +/* Describe your refactor. + + Developer: + + - Formatting: + - Variable Names: + - Comments: + - Logs: + + User: + + - Clear Instructions: + - Helpful Feedback: + - Consistency: + - Tone of Voice: + + Computer: + + - Variables and Types: + - Data Input: + - Control Flow: + - Operations: + +*/ diff --git a/4-developing-programs/6-legacy-code/exercises/remembery/legacy.js b/4-developing-programs/6-legacy-code/exercises/remembery/legacy.js new file mode 100644 index 00000000..1f0be11a --- /dev/null +++ b/4-developing-programs/6-legacy-code/exercises/remembery/legacy.js @@ -0,0 +1,64 @@ +'use strict'; + +/* Analyze the legacy code. + + Developer: + + - Formatting: + - Variable Names: + - Comments: + - Logs: + + User: + + - Clear Instructions: + - Helpful Feedback: + - Consistency: + - Tone of Voice: + + Computer: + + - Variables and Types: + - Data Input: + - Control Flow: + - Operations: + +*/ + + +alert(`Guess 3 phrases in 3 tries + + Player 1: + enter three phrases + + Player 2: + see the three phrases in order + then enter them back in order + you will get one point for each correct guess +`); + +alert('Player 2: go hide'); + +let one = prompt('Player 1, enter your first phrase:'), + two = prompt('Player 1, enter your second phrase:'), + three = prompt('Player 1, enter your third phrase:'); + +alert('Player 2, get back here'); + +alert(`Player 2, remember these:\n1. "${one}"\n2. "${two}"\n3. "${three}"`,); + +let points = 3; + +if (prompt('Player 2, guess 1:') !== one) { + points = points - 1; +} +if (prompt('Player 2, guess 2:') !== two) { + points = points - 1; +} +if (prompt('Player 2, guess 3:') !== three) { + points = points - 1; +} + +alert("player 1's score: " + (3 - points)); + +alert("player 2's score: " + points); diff --git a/4-developing-programs/6-legacy-code/exercises/remembery/refactor.js b/4-developing-programs/6-legacy-code/exercises/remembery/refactor.js new file mode 100644 index 00000000..cd0da518 --- /dev/null +++ b/4-developing-programs/6-legacy-code/exercises/remembery/refactor.js @@ -0,0 +1,26 @@ +'use strict'; + +/* Describe your refactor. + + Developer: + + - Formatting: + - Variable Names: + - Comments: + - Logs: + + User: + + - Clear Instructions: + - Helpful Feedback: + - Consistency: + - Tone of Voice: + + Computer: + + - Variables and Types: + - Data Input: + - Control Flow: + - Operations: + +*/ diff --git a/4-developing-programs/6-from-spec/0-stepped-examples/study.json b/4-developing-programs/6-legacy-code/exercises/study.json similarity index 100% rename from 4-developing-programs/6-from-spec/0-stepped-examples/study.json rename to 4-developing-programs/6-legacy-code/exercises/study.json diff --git a/4-developing-programs/6-from-spec/0-stepped-examples/1-be-excited/0-the-behavior.js b/4-developing-programs/7-from-spec/0-stepped-examples/1-be-excited/0-the-behavior.js similarity index 100% rename from 4-developing-programs/6-from-spec/0-stepped-examples/1-be-excited/0-the-behavior.js rename to 4-developing-programs/7-from-spec/0-stepped-examples/1-be-excited/0-the-behavior.js diff --git a/4-developing-programs/6-from-spec/0-stepped-examples/1-be-excited/1-plan-goals.js b/4-developing-programs/7-from-spec/0-stepped-examples/1-be-excited/1-plan-goals.js similarity index 100% rename from 4-developing-programs/6-from-spec/0-stepped-examples/1-be-excited/1-plan-goals.js rename to 4-developing-programs/7-from-spec/0-stepped-examples/1-be-excited/1-plan-goals.js diff --git a/4-developing-programs/6-from-spec/0-stepped-examples/1-be-excited/2-english-solution.js b/4-developing-programs/7-from-spec/0-stepped-examples/1-be-excited/2-english-solution.js similarity index 100% rename from 4-developing-programs/6-from-spec/0-stepped-examples/1-be-excited/2-english-solution.js rename to 4-developing-programs/7-from-spec/0-stepped-examples/1-be-excited/2-english-solution.js diff --git a/4-developing-programs/6-from-spec/0-stepped-examples/1-be-excited/3-pseudo-code.js b/4-developing-programs/7-from-spec/0-stepped-examples/1-be-excited/3-pseudo-code.js similarity index 100% rename from 4-developing-programs/6-from-spec/0-stepped-examples/1-be-excited/3-pseudo-code.js rename to 4-developing-programs/7-from-spec/0-stepped-examples/1-be-excited/3-pseudo-code.js diff --git a/4-developing-programs/6-from-spec/0-stepped-examples/1-be-excited/4-first-goal.js b/4-developing-programs/7-from-spec/0-stepped-examples/1-be-excited/4-first-goal.js similarity index 100% rename from 4-developing-programs/6-from-spec/0-stepped-examples/1-be-excited/4-first-goal.js rename to 4-developing-programs/7-from-spec/0-stepped-examples/1-be-excited/4-first-goal.js diff --git a/4-developing-programs/6-from-spec/0-stepped-examples/1-be-excited/5-second-goal.js b/4-developing-programs/7-from-spec/0-stepped-examples/1-be-excited/5-second-goal.js similarity index 100% rename from 4-developing-programs/6-from-spec/0-stepped-examples/1-be-excited/5-second-goal.js rename to 4-developing-programs/7-from-spec/0-stepped-examples/1-be-excited/5-second-goal.js diff --git a/4-developing-programs/6-from-spec/0-stepped-examples/1-be-excited/6-third-goal.js b/4-developing-programs/7-from-spec/0-stepped-examples/1-be-excited/6-third-goal.js similarity index 100% rename from 4-developing-programs/6-from-spec/0-stepped-examples/1-be-excited/6-third-goal.js rename to 4-developing-programs/7-from-spec/0-stepped-examples/1-be-excited/6-third-goal.js diff --git a/4-developing-programs/6-from-spec/0-stepped-examples/1-be-excited/7-more-tests.js b/4-developing-programs/7-from-spec/0-stepped-examples/1-be-excited/7-more-tests.js similarity index 100% rename from 4-developing-programs/6-from-spec/0-stepped-examples/1-be-excited/7-more-tests.js rename to 4-developing-programs/7-from-spec/0-stepped-examples/1-be-excited/7-more-tests.js diff --git a/4-developing-programs/6-from-spec/0-stepped-examples/2-favorite-color/0-the-behavior.js b/4-developing-programs/7-from-spec/0-stepped-examples/2-favorite-color/0-the-behavior.js similarity index 100% rename from 4-developing-programs/6-from-spec/0-stepped-examples/2-favorite-color/0-the-behavior.js rename to 4-developing-programs/7-from-spec/0-stepped-examples/2-favorite-color/0-the-behavior.js diff --git a/4-developing-programs/6-from-spec/0-stepped-examples/2-favorite-color/1-plan-goals.js b/4-developing-programs/7-from-spec/0-stepped-examples/2-favorite-color/1-plan-goals.js similarity index 100% rename from 4-developing-programs/6-from-spec/0-stepped-examples/2-favorite-color/1-plan-goals.js rename to 4-developing-programs/7-from-spec/0-stepped-examples/2-favorite-color/1-plan-goals.js diff --git a/4-developing-programs/6-from-spec/0-stepped-examples/2-favorite-color/2-pseudo-code.js b/4-developing-programs/7-from-spec/0-stepped-examples/2-favorite-color/2-pseudo-code.js similarity index 100% rename from 4-developing-programs/6-from-spec/0-stepped-examples/2-favorite-color/2-pseudo-code.js rename to 4-developing-programs/7-from-spec/0-stepped-examples/2-favorite-color/2-pseudo-code.js diff --git a/4-developing-programs/6-from-spec/0-stepped-examples/2-favorite-color/3-first-goal.js b/4-developing-programs/7-from-spec/0-stepped-examples/2-favorite-color/3-first-goal.js similarity index 100% rename from 4-developing-programs/6-from-spec/0-stepped-examples/2-favorite-color/3-first-goal.js rename to 4-developing-programs/7-from-spec/0-stepped-examples/2-favorite-color/3-first-goal.js diff --git a/4-developing-programs/6-from-spec/0-stepped-examples/2-favorite-color/4-second-goal.js b/4-developing-programs/7-from-spec/0-stepped-examples/2-favorite-color/4-second-goal.js similarity index 100% rename from 4-developing-programs/6-from-spec/0-stepped-examples/2-favorite-color/4-second-goal.js rename to 4-developing-programs/7-from-spec/0-stepped-examples/2-favorite-color/4-second-goal.js diff --git a/4-developing-programs/6-from-spec/0-stepped-examples/2-favorite-color/5-third-goal.js b/4-developing-programs/7-from-spec/0-stepped-examples/2-favorite-color/5-third-goal.js similarity index 100% rename from 4-developing-programs/6-from-spec/0-stepped-examples/2-favorite-color/5-third-goal.js rename to 4-developing-programs/7-from-spec/0-stepped-examples/2-favorite-color/5-third-goal.js diff --git a/4-developing-programs/6-from-spec/0-stepped-examples/2-favorite-color/6-more-tests.js b/4-developing-programs/7-from-spec/0-stepped-examples/2-favorite-color/6-more-tests.js similarity index 100% rename from 4-developing-programs/6-from-spec/0-stepped-examples/2-favorite-color/6-more-tests.js rename to 4-developing-programs/7-from-spec/0-stepped-examples/2-favorite-color/6-more-tests.js diff --git a/4-developing-programs/6-from-spec/0-stepped-examples/3-bouncy-string/00-the-behavior.js b/4-developing-programs/7-from-spec/0-stepped-examples/3-bouncy-string/00-the-behavior.js similarity index 100% rename from 4-developing-programs/6-from-spec/0-stepped-examples/3-bouncy-string/00-the-behavior.js rename to 4-developing-programs/7-from-spec/0-stepped-examples/3-bouncy-string/00-the-behavior.js diff --git a/4-developing-programs/6-from-spec/0-stepped-examples/3-bouncy-string/01-plan-goals.js b/4-developing-programs/7-from-spec/0-stepped-examples/3-bouncy-string/01-plan-goals.js similarity index 100% rename from 4-developing-programs/6-from-spec/0-stepped-examples/3-bouncy-string/01-plan-goals.js rename to 4-developing-programs/7-from-spec/0-stepped-examples/3-bouncy-string/01-plan-goals.js diff --git a/4-developing-programs/6-from-spec/0-stepped-examples/3-bouncy-string/02-pseudo-code.js b/4-developing-programs/7-from-spec/0-stepped-examples/3-bouncy-string/02-pseudo-code.js similarity index 100% rename from 4-developing-programs/6-from-spec/0-stepped-examples/3-bouncy-string/02-pseudo-code.js rename to 4-developing-programs/7-from-spec/0-stepped-examples/3-bouncy-string/02-pseudo-code.js diff --git a/4-developing-programs/6-from-spec/0-stepped-examples/3-bouncy-string/04-first-goal-a.js b/4-developing-programs/7-from-spec/0-stepped-examples/3-bouncy-string/04-first-goal-a.js similarity index 100% rename from 4-developing-programs/6-from-spec/0-stepped-examples/3-bouncy-string/04-first-goal-a.js rename to 4-developing-programs/7-from-spec/0-stepped-examples/3-bouncy-string/04-first-goal-a.js diff --git a/4-developing-programs/6-from-spec/0-stepped-examples/3-bouncy-string/05-first-goal-b.js b/4-developing-programs/7-from-spec/0-stepped-examples/3-bouncy-string/05-first-goal-b.js similarity index 100% rename from 4-developing-programs/6-from-spec/0-stepped-examples/3-bouncy-string/05-first-goal-b.js rename to 4-developing-programs/7-from-spec/0-stepped-examples/3-bouncy-string/05-first-goal-b.js diff --git a/4-developing-programs/6-from-spec/0-stepped-examples/3-bouncy-string/06-first-goal-c.js b/4-developing-programs/7-from-spec/0-stepped-examples/3-bouncy-string/06-first-goal-c.js similarity index 100% rename from 4-developing-programs/6-from-spec/0-stepped-examples/3-bouncy-string/06-first-goal-c.js rename to 4-developing-programs/7-from-spec/0-stepped-examples/3-bouncy-string/06-first-goal-c.js diff --git a/4-developing-programs/6-from-spec/0-stepped-examples/3-bouncy-string/07-first-goal-d.js b/4-developing-programs/7-from-spec/0-stepped-examples/3-bouncy-string/07-first-goal-d.js similarity index 100% rename from 4-developing-programs/6-from-spec/0-stepped-examples/3-bouncy-string/07-first-goal-d.js rename to 4-developing-programs/7-from-spec/0-stepped-examples/3-bouncy-string/07-first-goal-d.js diff --git a/4-developing-programs/6-from-spec/0-stepped-examples/3-bouncy-string/08-second-goal.js b/4-developing-programs/7-from-spec/0-stepped-examples/3-bouncy-string/08-second-goal.js similarity index 100% rename from 4-developing-programs/6-from-spec/0-stepped-examples/3-bouncy-string/08-second-goal.js rename to 4-developing-programs/7-from-spec/0-stepped-examples/3-bouncy-string/08-second-goal.js diff --git a/4-developing-programs/6-from-spec/0-stepped-examples/3-bouncy-string/09-third-goal.js b/4-developing-programs/7-from-spec/0-stepped-examples/3-bouncy-string/09-third-goal.js similarity index 100% rename from 4-developing-programs/6-from-spec/0-stepped-examples/3-bouncy-string/09-third-goal.js rename to 4-developing-programs/7-from-spec/0-stepped-examples/3-bouncy-string/09-third-goal.js diff --git a/4-developing-programs/6-from-spec/0-stepped-examples/3-bouncy-string/10-more-tests.js b/4-developing-programs/7-from-spec/0-stepped-examples/3-bouncy-string/10-more-tests.js similarity index 100% rename from 4-developing-programs/6-from-spec/0-stepped-examples/3-bouncy-string/10-more-tests.js rename to 4-developing-programs/7-from-spec/0-stepped-examples/3-bouncy-string/10-more-tests.js diff --git a/4-developing-programs/7-from-spec/0-stepped-examples/study.json b/4-developing-programs/7-from-spec/0-stepped-examples/study.json new file mode 100644 index 00000000..94911a73 --- /dev/null +++ b/4-developing-programs/7-from-spec/0-stepped-examples/study.json @@ -0,0 +1,5 @@ +{ + "study": { + "stepped": ".js" + } +} diff --git a/4-developing-programs/6-from-spec/1-starter-code/1-something-with-a-space.js b/4-developing-programs/7-from-spec/1-starter-code/1-something-with-a-space.js similarity index 100% rename from 4-developing-programs/6-from-spec/1-starter-code/1-something-with-a-space.js rename to 4-developing-programs/7-from-spec/1-starter-code/1-something-with-a-space.js diff --git a/4-developing-programs/6-from-spec/1-starter-code/2-has-spaces.js b/4-developing-programs/7-from-spec/1-starter-code/2-has-spaces.js similarity index 100% rename from 4-developing-programs/6-from-spec/1-starter-code/2-has-spaces.js rename to 4-developing-programs/7-from-spec/1-starter-code/2-has-spaces.js diff --git a/4-developing-programs/6-from-spec/2-specs-and-goals/no-repeats.js b/4-developing-programs/7-from-spec/2-specs-and-goals/no-repeats.js similarity index 100% rename from 4-developing-programs/6-from-spec/2-specs-and-goals/no-repeats.js rename to 4-developing-programs/7-from-spec/2-specs-and-goals/no-repeats.js diff --git a/4-developing-programs/6-from-spec/2-specs-and-goals/remove-repeats.js b/4-developing-programs/7-from-spec/2-specs-and-goals/remove-repeats.js similarity index 100% rename from 4-developing-programs/6-from-spec/2-specs-and-goals/remove-repeats.js rename to 4-developing-programs/7-from-spec/2-specs-and-goals/remove-repeats.js diff --git a/4-developing-programs/6-from-spec/3-only-specs/dogify.js b/4-developing-programs/7-from-spec/3-only-specs/dogify.js similarity index 100% rename from 4-developing-programs/6-from-spec/3-only-specs/dogify.js rename to 4-developing-programs/7-from-spec/3-only-specs/dogify.js diff --git a/4-developing-programs/6-from-spec/3-only-specs/has-a-dog.js b/4-developing-programs/7-from-spec/3-only-specs/has-a-dog.js similarity index 100% rename from 4-developing-programs/6-from-spec/3-only-specs/has-a-dog.js rename to 4-developing-programs/7-from-spec/3-only-specs/has-a-dog.js diff --git a/4-developing-programs/6-from-spec/README.md b/4-developing-programs/7-from-spec/README.md similarity index 100% rename from 4-developing-programs/6-from-spec/README.md rename to 4-developing-programs/7-from-spec/README.md diff --git a/4-developing-programs/7-reverse-engineering/README.md b/4-developing-programs/8-reverse-engineering/README.md similarity index 100% rename from 4-developing-programs/7-reverse-engineering/README.md rename to 4-developing-programs/8-reverse-engineering/README.md diff --git a/4-developing-programs/7-reverse-engineering/exercises/mystery-1.js b/4-developing-programs/8-reverse-engineering/exercises/mystery-1.js similarity index 100% rename from 4-developing-programs/7-reverse-engineering/exercises/mystery-1.js rename to 4-developing-programs/8-reverse-engineering/exercises/mystery-1.js diff --git a/4-developing-programs/7-reverse-engineering/exercises/mystery-1.re.js b/4-developing-programs/8-reverse-engineering/exercises/mystery-1.re.js similarity index 100% rename from 4-developing-programs/7-reverse-engineering/exercises/mystery-1.re.js rename to 4-developing-programs/8-reverse-engineering/exercises/mystery-1.re.js diff --git a/4-developing-programs/7-reverse-engineering/exercises/mystery-2.js b/4-developing-programs/8-reverse-engineering/exercises/mystery-2.js similarity index 100% rename from 4-developing-programs/7-reverse-engineering/exercises/mystery-2.js rename to 4-developing-programs/8-reverse-engineering/exercises/mystery-2.js diff --git a/4-developing-programs/7-reverse-engineering/exercises/mystery-2.re.js b/4-developing-programs/8-reverse-engineering/exercises/mystery-2.re.js similarity index 100% rename from 4-developing-programs/7-reverse-engineering/exercises/mystery-2.re.js rename to 4-developing-programs/8-reverse-engineering/exercises/mystery-2.re.js diff --git a/4-developing-programs/7-reverse-engineering/exercises/mystery-3.js b/4-developing-programs/8-reverse-engineering/exercises/mystery-3.js similarity index 100% rename from 4-developing-programs/7-reverse-engineering/exercises/mystery-3.js rename to 4-developing-programs/8-reverse-engineering/exercises/mystery-3.js diff --git a/4-developing-programs/7-reverse-engineering/exercises/mystery-3.re.js b/4-developing-programs/8-reverse-engineering/exercises/mystery-3.re.js similarity index 100% rename from 4-developing-programs/7-reverse-engineering/exercises/mystery-3.re.js rename to 4-developing-programs/8-reverse-engineering/exercises/mystery-3.re.js diff --git a/4-developing-programs/8-imagining-programs/README.md b/4-developing-programs/9-imagining-programs/README.md similarity index 100% rename from 4-developing-programs/8-imagining-programs/README.md rename to 4-developing-programs/9-imagining-programs/README.md diff --git a/README.md b/README.md index 75c52da9..6ca9866e 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ + + # Welcome to JS > The best authors and the best JavaScript developers are those who obsess about @@ -170,11 +172,8 @@ read a new program and do a simple code review. 2. Zoom In 3. Find Connections 4. Describe Goals -- [ ] πŸ₯ **Code Review**: Given a working program you can review the code for +- [ ] 🐣 **Code Review**: Given a working program you can review the code for clarity, correctness and style. -- [ ] πŸ” **Same Behavior, Different Code**: You can study simple programs with - the same behavior (_data in, data out_) but different source code and - explain how the differences matter for each audience. ### [4. Developing Programs](./4-developing-programs) @@ -196,7 +195,10 @@ collaboratively on a code base. - [ ] 🐣 **Modifying Programs**: You can make small changes in a program to change its behavior without breaking it. - [ ] πŸ₯ **Refactoring**: Given a working program, you can make changes to the - code without changing the program's behavior. + code without changing the program's user-facing behavior. +- [ ] πŸ₯ **Legacy Code**: You can understand and rewrite a poorly written + program to improve the experience of all 3 audiences: _developer_, _user_, + _computer_. - [ ] πŸ₯ **Writing Programs**: Given a description of a program's behavior (_user story + test cases_), you can plan goals for the program and write code to pass the tests. @@ -251,8 +253,8 @@ collaboratively on a code base. 2. pull the changes from your fork to your computer 3. Navigate to the module repository in terminal - `$ cd welcome-to-js` -4. Run the `study` command from your CLI - - `$ study` +4. Run the `lenses2` command from your CLI + - `$ lenses2` 5. The material will open in your default browser, you're good to go! - you can read the `study-lenses` user guide from your browser by navigating to `localhost:xxxx?--help` diff --git a/assets/a-program.png b/assets/a-program.png new file mode 100644 index 00000000..adbebdff Binary files /dev/null and b/assets/a-program.png differ diff --git a/assets/computers-and-developers.png b/assets/computers-and-developers.png new file mode 100644 index 00000000..bbe897e6 Binary files /dev/null and b/assets/computers-and-developers.png differ diff --git a/assets/the-big-picture.png b/assets/the-big-picture.png new file mode 100644 index 00000000..086f05d5 Binary files /dev/null and b/assets/the-big-picture.png differ diff --git a/lesson-plans/README.md b/lesson-plans/README.md index 670765e5..a86140b8 100644 --- a/lesson-plans/README.md +++ b/lesson-plans/README.md @@ -1,9 +1,13 @@ # Lesson Plans -## Week 1 +If you are using this material with teachers and students check out these lesson +plans for some ideas what to cover in class. -- [Week 1](./week-1/README.md) +Got more ideas for lesson plans around this material? Send a PR! -## Week 2 +Suggested Sequence: -- [Week 2](./week-2/README.md) +1. Computers and Developers +2. Devtools Debugger +3. Errors and Bugs +4. Writing and Reviewing diff --git a/lesson-plans/week-1/README.md b/lesson-plans/computers-and-developers/README.md similarity index 57% rename from lesson-plans/week-1/README.md rename to lesson-plans/computers-and-developers/README.md index ca9b45b7..2d647cc6 100644 --- a/lesson-plans/week-1/README.md +++ b/lesson-plans/computers-and-developers/README.md @@ -1,4 +1,8 @@ -# Week 1 +# Computers & Developers + +Explore how Computers and Developers read the same code in different ways. + +--- ## Prep Work @@ -17,19 +21,28 @@ - [JS Fundamentals - Variables](https://javascript.info/variables) - [JS Variables](https://education.launchcode.org/intro-to-professional-web-dev/chapters/data-and-variables/variables.html) - [JavaScript Variables and Constants](https://www.programiz.com/javascript/variables-constants) -- from `javascript.info`: [DevTools](https://javascript.info/devtools), - [Debugging Chrome](https://javascript.info/debugging-chrome) -- Study - [/3-understanding-programs/1-predicting-execution](../../3-understanding-programs/1-predicting-execution/?--defaults) - - `devtool-setup.mp4` - - `guide.mp4` - - the JS files + +--- + +## Learning Objectives + +- πŸ₯š **Code Audiences**: You can explain how a single file of code is understood + by: + - **Computers**: A computer follows the code's instructions one step at a + time. + - **Developers**: A developer reads the code, comments and variable names to + understand what the code is _intended_ to do. +- 🐣 **Tracing Variables**: You can follow a program's instructions like the + computer does, filling out a _trace table_ and checking your work with the + [trace] button. + +--- ## During Class The most important objective for today is that you learn how to trace variables the way a computer interprets them. If you don't understand this the rest of JS -will be a mystery! and learn how to use devtools and debug your code. +will be a mystery! ### Before Break @@ -42,26 +55,13 @@ will be a mystery! and learn how to use devtools and debug your code. - Study examples 4 & 5 again with your classmates - Begin `tracing-variables/exercises` ---- - -rhetorical situation - ---- - - -Tracing Variables +**Break!** ### After Break -- **All Together**: A coach demonstrates the debugger features in - `/1-isolate/examples` -- **In Small Groups**: Practice stepping through and predicting the programs in - `/1-isolate/exercises` -- **All Together**: A coach demonstrates how to step through JavaScript in an - HTML project with `/2-integrate/examples` -- **In Small Groups**: Practice stepping through and predicting the programs in - `/2-integrate/exercises` -- **All Together** Regroup with ~20 minutes left at the end of class for each +- **In Small Groups**: + - Continue studying `tracing-variables/exercises` +- **All Together** Regroup with ~30 minutes left at the end of class for each group to present: - what went well? - what went less well? @@ -69,24 +69,23 @@ Tracing Variables --- -1. Isolate +rhetorical situation --- -2. -Integrate + +Tracing Variables --- ## After Class +No deliverables. Just lots of study time, alone and in groups. Here's some ideas +for what to focus on: + - πŸ₯š [compute-it](http://compute-it.toxicode.fr/) (all of it), 🐣 [little-dot](http://little-dot.toxicode.fr/) - Continue studying your favorite online tutorials - Finish `/1-what-is-programming` and study as much as you can from `/2-just-enough-javascript` - `/0-flashcards`: ~20 minutes every day (add more cards as you go!) -- Continue studying your favorite online tutorials -- Finish studying `/2-just-enough-javascript` if you haven't yet -- Study `/3-understanding-programs` -- `/0-flashcards`: ~20 minutes every day (add more cards as you go!) diff --git a/lesson-plans/computers-and-developers/study.json b/lesson-plans/computers-and-developers/study.json new file mode 100644 index 00000000..aab8fb1c --- /dev/null +++ b/lesson-plans/computers-and-developers/study.json @@ -0,0 +1,37 @@ +{ + "study": { + "loopGuard": false, + "eslint": false, + "openIn": "jsTutor", + "save": true, + "writeme": false, + "debug": false, + "ask": { + "levels": [1, 2], + "data": false, + "functions": false + } + }, + "highlight": { + "--use": "", + "run": false, + "flowchart": false, + "variables": false, + "ask": false, + "table": false, + "trace": false, + "random": false + }, + "variables": { + "--use": "", + "trace": false, + "ask": false + }, + "parsons": { + "--use": "", + "study": false, + "table": false, + "trace": false, + "run": false + } +} diff --git a/lesson-plans/week-1/teaching-tips.md b/lesson-plans/computers-and-developers/teaching-tips.md similarity index 100% rename from lesson-plans/week-1/teaching-tips.md rename to lesson-plans/computers-and-developers/teaching-tips.md diff --git a/lesson-plans/week-1/computers-and-developers/tracing-variables/README.md b/lesson-plans/computers-and-developers/tracing-variables/README.md similarity index 100% rename from lesson-plans/week-1/computers-and-developers/tracing-variables/README.md rename to lesson-plans/computers-and-developers/tracing-variables/README.md diff --git a/lesson-plans/week-1/computers-and-developers/tracing-variables/examples/0-comments.js b/lesson-plans/computers-and-developers/tracing-variables/examples/0-comments.js similarity index 100% rename from lesson-plans/week-1/computers-and-developers/tracing-variables/examples/0-comments.js rename to lesson-plans/computers-and-developers/tracing-variables/examples/0-comments.js diff --git a/lesson-plans/week-1/computers-and-developers/tracing-variables/examples/1-strings.js b/lesson-plans/computers-and-developers/tracing-variables/examples/1-strings.js similarity index 100% rename from lesson-plans/week-1/computers-and-developers/tracing-variables/examples/1-strings.js rename to lesson-plans/computers-and-developers/tracing-variables/examples/1-strings.js diff --git a/lesson-plans/week-1/computers-and-developers/tracing-variables/examples/2-console-log.js b/lesson-plans/computers-and-developers/tracing-variables/examples/2-console-log.js similarity index 100% rename from lesson-plans/week-1/computers-and-developers/tracing-variables/examples/2-console-log.js rename to lesson-plans/computers-and-developers/tracing-variables/examples/2-console-log.js diff --git a/lesson-plans/week-1/computers-and-developers/tracing-variables/examples/3-string-concatenation.js b/lesson-plans/computers-and-developers/tracing-variables/examples/3-string-concatenation.js similarity index 100% rename from lesson-plans/week-1/computers-and-developers/tracing-variables/examples/3-string-concatenation.js rename to lesson-plans/computers-and-developers/tracing-variables/examples/3-string-concatenation.js diff --git a/lesson-plans/week-1/computers-and-developers/tracing-variables/examples/4-strict-mode.js b/lesson-plans/computers-and-developers/tracing-variables/examples/4-strict-mode.js similarity index 100% rename from lesson-plans/week-1/computers-and-developers/tracing-variables/examples/4-strict-mode.js rename to lesson-plans/computers-and-developers/tracing-variables/examples/4-strict-mode.js diff --git a/lesson-plans/week-1/computers-and-developers/tracing-variables/examples/5-variables.js b/lesson-plans/computers-and-developers/tracing-variables/examples/5-variables.js similarity index 100% rename from lesson-plans/week-1/computers-and-developers/tracing-variables/examples/5-variables.js rename to lesson-plans/computers-and-developers/tracing-variables/examples/5-variables.js diff --git a/lesson-plans/week-1/computers-and-developers/tracing-variables/examples/6-trace-tables.png b/lesson-plans/computers-and-developers/tracing-variables/examples/6-trace-tables.png similarity index 100% rename from lesson-plans/week-1/computers-and-developers/tracing-variables/examples/6-trace-tables.png rename to lesson-plans/computers-and-developers/tracing-variables/examples/6-trace-tables.png diff --git a/lesson-plans/week-1/computers-and-developers/tracing-variables/exercises/1-two-variables.js b/lesson-plans/computers-and-developers/tracing-variables/exercises/1-two-variables.js similarity index 100% rename from lesson-plans/week-1/computers-and-developers/tracing-variables/exercises/1-two-variables.js rename to lesson-plans/computers-and-developers/tracing-variables/exercises/1-two-variables.js diff --git a/lesson-plans/week-1/computers-and-developers/tracing-variables/exercises/2-four-variables.js b/lesson-plans/computers-and-developers/tracing-variables/exercises/2-four-variables.js similarity index 100% rename from lesson-plans/week-1/computers-and-developers/tracing-variables/exercises/2-four-variables.js rename to lesson-plans/computers-and-developers/tracing-variables/exercises/2-four-variables.js diff --git a/lesson-plans/week-1/computers-and-developers/tracing-variables/exercises/3-hello-good-bye.js b/lesson-plans/computers-and-developers/tracing-variables/exercises/3-hello-good-bye.js similarity index 100% rename from lesson-plans/week-1/computers-and-developers/tracing-variables/exercises/3-hello-good-bye.js rename to lesson-plans/computers-and-developers/tracing-variables/exercises/3-hello-good-bye.js diff --git a/lesson-plans/week-1/computers-and-developers/tracing-variables/exercises/4-value-swap.js b/lesson-plans/computers-and-developers/tracing-variables/exercises/4-value-swap.js similarity index 100% rename from lesson-plans/week-1/computers-and-developers/tracing-variables/exercises/4-value-swap.js rename to lesson-plans/computers-and-developers/tracing-variables/exercises/4-value-swap.js diff --git a/lesson-plans/week-1/computers-and-developers/tracing-variables/exercises/5-conditional-statement.js b/lesson-plans/computers-and-developers/tracing-variables/exercises/5-conditional-statement.js similarity index 100% rename from lesson-plans/week-1/computers-and-developers/tracing-variables/exercises/5-conditional-statement.js rename to lesson-plans/computers-and-developers/tracing-variables/exercises/5-conditional-statement.js diff --git a/lesson-plans/week-1/computers-and-developers/tracing-variables/exercises/6-while-loop.js b/lesson-plans/computers-and-developers/tracing-variables/exercises/6-while-loop.js similarity index 100% rename from lesson-plans/week-1/computers-and-developers/tracing-variables/exercises/6-while-loop.js rename to lesson-plans/computers-and-developers/tracing-variables/exercises/6-while-loop.js diff --git a/lesson-plans/week-1/devtools-debugger/1-isolate/README.md b/lesson-plans/devtools-debugger/1-isolate/README.md similarity index 100% rename from lesson-plans/week-1/devtools-debugger/1-isolate/README.md rename to lesson-plans/devtools-debugger/1-isolate/README.md diff --git a/lesson-plans/week-1/devtools-debugger/1-isolate/examples/1-stepping-through.js b/lesson-plans/devtools-debugger/1-isolate/examples/1-stepping-through.js similarity index 100% rename from lesson-plans/week-1/devtools-debugger/1-isolate/examples/1-stepping-through.js rename to lesson-plans/devtools-debugger/1-isolate/examples/1-stepping-through.js diff --git a/lesson-plans/week-1/devtools-debugger/1-isolate/examples/2-scope-panel.js b/lesson-plans/devtools-debugger/1-isolate/examples/2-scope-panel.js similarity index 100% rename from lesson-plans/week-1/devtools-debugger/1-isolate/examples/2-scope-panel.js rename to lesson-plans/devtools-debugger/1-isolate/examples/2-scope-panel.js diff --git a/lesson-plans/week-1/devtools-debugger/1-isolate/examples/3-hovering-preview.js b/lesson-plans/devtools-debugger/1-isolate/examples/3-hovering-preview.js similarity index 100% rename from lesson-plans/week-1/devtools-debugger/1-isolate/examples/3-hovering-preview.js rename to lesson-plans/devtools-debugger/1-isolate/examples/3-hovering-preview.js diff --git a/lesson-plans/week-1/devtools-debugger/1-isolate/examples/4-continue-to-here.js b/lesson-plans/devtools-debugger/1-isolate/examples/4-continue-to-here.js similarity index 100% rename from lesson-plans/week-1/devtools-debugger/1-isolate/examples/4-continue-to-here.js rename to lesson-plans/devtools-debugger/1-isolate/examples/4-continue-to-here.js diff --git a/lesson-plans/week-1/devtools-debugger/1-isolate/examples/5-breakpoints.js b/lesson-plans/devtools-debugger/1-isolate/examples/5-breakpoints.js similarity index 100% rename from lesson-plans/week-1/devtools-debugger/1-isolate/examples/5-breakpoints.js rename to lesson-plans/devtools-debugger/1-isolate/examples/5-breakpoints.js diff --git a/lesson-plans/week-1/devtools-debugger/1-isolate/examples/6-debugger-statement.js b/lesson-plans/devtools-debugger/1-isolate/examples/6-debugger-statement.js similarity index 100% rename from lesson-plans/week-1/devtools-debugger/1-isolate/examples/6-debugger-statement.js rename to lesson-plans/devtools-debugger/1-isolate/examples/6-debugger-statement.js diff --git a/lesson-plans/week-1/devtools-debugger/1-isolate/exercises/1-conditionals/1-greeting.js b/lesson-plans/devtools-debugger/1-isolate/exercises/1-conditionals/1-greeting.js similarity index 100% rename from lesson-plans/week-1/devtools-debugger/1-isolate/exercises/1-conditionals/1-greeting.js rename to lesson-plans/devtools-debugger/1-isolate/exercises/1-conditionals/1-greeting.js diff --git a/lesson-plans/week-1/devtools-debugger/1-isolate/exercises/1-conditionals/2-five-characters.js b/lesson-plans/devtools-debugger/1-isolate/exercises/1-conditionals/2-five-characters.js similarity index 100% rename from lesson-plans/week-1/devtools-debugger/1-isolate/exercises/1-conditionals/2-five-characters.js rename to lesson-plans/devtools-debugger/1-isolate/exercises/1-conditionals/2-five-characters.js diff --git a/lesson-plans/week-1/devtools-debugger/1-isolate/exercises/2-while-loops/1-input-something.js b/lesson-plans/devtools-debugger/1-isolate/exercises/2-while-loops/1-input-something.js similarity index 100% rename from lesson-plans/week-1/devtools-debugger/1-isolate/exercises/2-while-loops/1-input-something.js rename to lesson-plans/devtools-debugger/1-isolate/exercises/2-while-loops/1-input-something.js diff --git a/lesson-plans/week-1/devtools-debugger/1-isolate/exercises/2-while-loops/2-five-characters.js b/lesson-plans/devtools-debugger/1-isolate/exercises/2-while-loops/2-five-characters.js similarity index 100% rename from lesson-plans/week-1/devtools-debugger/1-isolate/exercises/2-while-loops/2-five-characters.js rename to lesson-plans/devtools-debugger/1-isolate/exercises/2-while-loops/2-five-characters.js diff --git a/lesson-plans/week-1/devtools-debugger/1-isolate/exercises/3-for-of-loops/1-doubled-characters.js b/lesson-plans/devtools-debugger/1-isolate/exercises/3-for-of-loops/1-doubled-characters.js similarity index 100% rename from lesson-plans/week-1/devtools-debugger/1-isolate/exercises/3-for-of-loops/1-doubled-characters.js rename to lesson-plans/devtools-debugger/1-isolate/exercises/3-for-of-loops/1-doubled-characters.js diff --git a/lesson-plans/week-1/devtools-debugger/1-isolate/exercises/3-for-of-loops/2-reverse.js b/lesson-plans/devtools-debugger/1-isolate/exercises/3-for-of-loops/2-reverse.js similarity index 100% rename from lesson-plans/week-1/devtools-debugger/1-isolate/exercises/3-for-of-loops/2-reverse.js rename to lesson-plans/devtools-debugger/1-isolate/exercises/3-for-of-loops/2-reverse.js diff --git a/lesson-plans/week-1/devtools-debugger/1-isolate/study.json b/lesson-plans/devtools-debugger/1-isolate/study.json similarity index 100% rename from lesson-plans/week-1/devtools-debugger/1-isolate/study.json rename to lesson-plans/devtools-debugger/1-isolate/study.json diff --git a/lesson-plans/week-1/devtools-debugger/2-integrate/README.md b/lesson-plans/devtools-debugger/2-integrate/README.md similarity index 100% rename from lesson-plans/week-1/devtools-debugger/2-integrate/README.md rename to lesson-plans/devtools-debugger/2-integrate/README.md diff --git a/lesson-plans/week-1/devtools-debugger/2-integrate/examples/0-the-sources-tab/app.js b/lesson-plans/devtools-debugger/2-integrate/examples/0-the-sources-tab/app.js similarity index 100% rename from lesson-plans/week-1/devtools-debugger/2-integrate/examples/0-the-sources-tab/app.js rename to lesson-plans/devtools-debugger/2-integrate/examples/0-the-sources-tab/app.js diff --git a/lesson-plans/week-1/devtools-debugger/2-integrate/examples/0-the-sources-tab/index.html b/lesson-plans/devtools-debugger/2-integrate/examples/0-the-sources-tab/index.html similarity index 100% rename from lesson-plans/week-1/devtools-debugger/2-integrate/examples/0-the-sources-tab/index.html rename to lesson-plans/devtools-debugger/2-integrate/examples/0-the-sources-tab/index.html diff --git a/lesson-plans/week-1/devtools-debugger/2-integrate/examples/0-the-sources-tab/styles.css b/lesson-plans/devtools-debugger/2-integrate/examples/0-the-sources-tab/styles.css similarity index 100% rename from lesson-plans/week-1/devtools-debugger/2-integrate/examples/0-the-sources-tab/styles.css rename to lesson-plans/devtools-debugger/2-integrate/examples/0-the-sources-tab/styles.css diff --git a/lesson-plans/week-1/devtools-debugger/2-integrate/examples/1-dom-io/app.js b/lesson-plans/devtools-debugger/2-integrate/examples/1-dom-io/app.js similarity index 100% rename from lesson-plans/week-1/devtools-debugger/2-integrate/examples/1-dom-io/app.js rename to lesson-plans/devtools-debugger/2-integrate/examples/1-dom-io/app.js diff --git a/lesson-plans/week-1/devtools-debugger/2-integrate/examples/1-dom-io/index.html b/lesson-plans/devtools-debugger/2-integrate/examples/1-dom-io/index.html similarity index 100% rename from lesson-plans/week-1/devtools-debugger/2-integrate/examples/1-dom-io/index.html rename to lesson-plans/devtools-debugger/2-integrate/examples/1-dom-io/index.html diff --git a/lesson-plans/week-1/devtools-debugger/2-integrate/examples/1-dom-io/styles.css b/lesson-plans/devtools-debugger/2-integrate/examples/1-dom-io/styles.css similarity index 100% rename from lesson-plans/week-1/devtools-debugger/2-integrate/examples/1-dom-io/styles.css rename to lesson-plans/devtools-debugger/2-integrate/examples/1-dom-io/styles.css diff --git a/lesson-plans/week-1/devtools-debugger/2-integrate/examples/2-step-over/app.js b/lesson-plans/devtools-debugger/2-integrate/examples/2-step-over/app.js similarity index 100% rename from lesson-plans/week-1/devtools-debugger/2-integrate/examples/2-step-over/app.js rename to lesson-plans/devtools-debugger/2-integrate/examples/2-step-over/app.js diff --git a/lesson-plans/week-1/devtools-debugger/2-integrate/examples/2-step-over/index.html b/lesson-plans/devtools-debugger/2-integrate/examples/2-step-over/index.html similarity index 100% rename from lesson-plans/week-1/devtools-debugger/2-integrate/examples/2-step-over/index.html rename to lesson-plans/devtools-debugger/2-integrate/examples/2-step-over/index.html diff --git a/lesson-plans/week-1/devtools-debugger/2-integrate/examples/2-step-over/styles.css b/lesson-plans/devtools-debugger/2-integrate/examples/2-step-over/styles.css similarity index 100% rename from lesson-plans/week-1/devtools-debugger/2-integrate/examples/2-step-over/styles.css rename to lesson-plans/devtools-debugger/2-integrate/examples/2-step-over/styles.css diff --git a/lesson-plans/week-1/devtools-debugger/2-integrate/exercises/1-variables/1-hello/app.js b/lesson-plans/devtools-debugger/2-integrate/exercises/1-variables/1-hello/app.js similarity index 100% rename from lesson-plans/week-1/devtools-debugger/2-integrate/exercises/1-variables/1-hello/app.js rename to lesson-plans/devtools-debugger/2-integrate/exercises/1-variables/1-hello/app.js diff --git a/lesson-plans/week-1/devtools-debugger/2-integrate/exercises/1-variables/1-hello/index.html b/lesson-plans/devtools-debugger/2-integrate/exercises/1-variables/1-hello/index.html similarity index 100% rename from lesson-plans/week-1/devtools-debugger/2-integrate/exercises/1-variables/1-hello/index.html rename to lesson-plans/devtools-debugger/2-integrate/exercises/1-variables/1-hello/index.html diff --git a/lesson-plans/week-1/devtools-debugger/2-integrate/exercises/1-variables/1-hello/styles.css b/lesson-plans/devtools-debugger/2-integrate/exercises/1-variables/1-hello/styles.css similarity index 100% rename from lesson-plans/week-1/devtools-debugger/2-integrate/exercises/1-variables/1-hello/styles.css rename to lesson-plans/devtools-debugger/2-integrate/exercises/1-variables/1-hello/styles.css diff --git a/lesson-plans/week-1/devtools-debugger/2-integrate/exercises/1-variables/2-twice/app.js b/lesson-plans/devtools-debugger/2-integrate/exercises/1-variables/2-twice/app.js similarity index 100% rename from lesson-plans/week-1/devtools-debugger/2-integrate/exercises/1-variables/2-twice/app.js rename to lesson-plans/devtools-debugger/2-integrate/exercises/1-variables/2-twice/app.js diff --git a/lesson-plans/week-1/devtools-debugger/2-integrate/exercises/1-variables/2-twice/index.html b/lesson-plans/devtools-debugger/2-integrate/exercises/1-variables/2-twice/index.html similarity index 100% rename from lesson-plans/week-1/devtools-debugger/2-integrate/exercises/1-variables/2-twice/index.html rename to lesson-plans/devtools-debugger/2-integrate/exercises/1-variables/2-twice/index.html diff --git a/lesson-plans/week-1/devtools-debugger/2-integrate/exercises/1-variables/2-twice/styles.css b/lesson-plans/devtools-debugger/2-integrate/exercises/1-variables/2-twice/styles.css similarity index 100% rename from lesson-plans/week-1/devtools-debugger/2-integrate/exercises/1-variables/2-twice/styles.css rename to lesson-plans/devtools-debugger/2-integrate/exercises/1-variables/2-twice/styles.css diff --git a/lesson-plans/week-1/devtools-debugger/2-integrate/exercises/2-conditionals/1-time-management/app.js b/lesson-plans/devtools-debugger/2-integrate/exercises/2-conditionals/1-time-management/app.js similarity index 100% rename from lesson-plans/week-1/devtools-debugger/2-integrate/exercises/2-conditionals/1-time-management/app.js rename to lesson-plans/devtools-debugger/2-integrate/exercises/2-conditionals/1-time-management/app.js diff --git a/lesson-plans/week-1/devtools-debugger/2-integrate/exercises/2-conditionals/1-time-management/index.html b/lesson-plans/devtools-debugger/2-integrate/exercises/2-conditionals/1-time-management/index.html similarity index 100% rename from lesson-plans/week-1/devtools-debugger/2-integrate/exercises/2-conditionals/1-time-management/index.html rename to lesson-plans/devtools-debugger/2-integrate/exercises/2-conditionals/1-time-management/index.html diff --git a/lesson-plans/week-1/devtools-debugger/2-integrate/exercises/2-conditionals/1-time-management/styles.css b/lesson-plans/devtools-debugger/2-integrate/exercises/2-conditionals/1-time-management/styles.css similarity index 100% rename from lesson-plans/week-1/devtools-debugger/2-integrate/exercises/2-conditionals/1-time-management/styles.css rename to lesson-plans/devtools-debugger/2-integrate/exercises/2-conditionals/1-time-management/styles.css diff --git a/lesson-plans/week-1/devtools-debugger/2-integrate/exercises/2-conditionals/2-search/app.js b/lesson-plans/devtools-debugger/2-integrate/exercises/2-conditionals/2-search/app.js similarity index 100% rename from lesson-plans/week-1/devtools-debugger/2-integrate/exercises/2-conditionals/2-search/app.js rename to lesson-plans/devtools-debugger/2-integrate/exercises/2-conditionals/2-search/app.js diff --git a/lesson-plans/week-1/devtools-debugger/2-integrate/exercises/2-conditionals/2-search/index.html b/lesson-plans/devtools-debugger/2-integrate/exercises/2-conditionals/2-search/index.html similarity index 100% rename from lesson-plans/week-1/devtools-debugger/2-integrate/exercises/2-conditionals/2-search/index.html rename to lesson-plans/devtools-debugger/2-integrate/exercises/2-conditionals/2-search/index.html diff --git a/lesson-plans/week-1/devtools-debugger/2-integrate/exercises/2-conditionals/2-search/styles.css b/lesson-plans/devtools-debugger/2-integrate/exercises/2-conditionals/2-search/styles.css similarity index 100% rename from lesson-plans/week-1/devtools-debugger/2-integrate/exercises/2-conditionals/2-search/styles.css rename to lesson-plans/devtools-debugger/2-integrate/exercises/2-conditionals/2-search/styles.css diff --git a/lesson-plans/week-1/devtools-debugger/2-integrate/exercises/3-for-of-loops/1-reverse/app.js b/lesson-plans/devtools-debugger/2-integrate/exercises/3-for-of-loops/1-reverse/app.js similarity index 100% rename from lesson-plans/week-1/devtools-debugger/2-integrate/exercises/3-for-of-loops/1-reverse/app.js rename to lesson-plans/devtools-debugger/2-integrate/exercises/3-for-of-loops/1-reverse/app.js diff --git a/lesson-plans/week-1/devtools-debugger/2-integrate/exercises/3-for-of-loops/1-reverse/index.html b/lesson-plans/devtools-debugger/2-integrate/exercises/3-for-of-loops/1-reverse/index.html similarity index 100% rename from lesson-plans/week-1/devtools-debugger/2-integrate/exercises/3-for-of-loops/1-reverse/index.html rename to lesson-plans/devtools-debugger/2-integrate/exercises/3-for-of-loops/1-reverse/index.html diff --git a/lesson-plans/week-1/devtools-debugger/2-integrate/exercises/3-for-of-loops/1-reverse/styles.css b/lesson-plans/devtools-debugger/2-integrate/exercises/3-for-of-loops/1-reverse/styles.css similarity index 100% rename from lesson-plans/week-1/devtools-debugger/2-integrate/exercises/3-for-of-loops/1-reverse/styles.css rename to lesson-plans/devtools-debugger/2-integrate/exercises/3-for-of-loops/1-reverse/styles.css diff --git a/lesson-plans/week-1/devtools-debugger/2-integrate/exercises/3-for-of-loops/2-mirror/app.js b/lesson-plans/devtools-debugger/2-integrate/exercises/3-for-of-loops/2-mirror/app.js similarity index 100% rename from lesson-plans/week-1/devtools-debugger/2-integrate/exercises/3-for-of-loops/2-mirror/app.js rename to lesson-plans/devtools-debugger/2-integrate/exercises/3-for-of-loops/2-mirror/app.js diff --git a/lesson-plans/week-1/devtools-debugger/2-integrate/exercises/3-for-of-loops/2-mirror/index.html b/lesson-plans/devtools-debugger/2-integrate/exercises/3-for-of-loops/2-mirror/index.html similarity index 100% rename from lesson-plans/week-1/devtools-debugger/2-integrate/exercises/3-for-of-loops/2-mirror/index.html rename to lesson-plans/devtools-debugger/2-integrate/exercises/3-for-of-loops/2-mirror/index.html diff --git a/lesson-plans/week-1/devtools-debugger/2-integrate/exercises/3-for-of-loops/2-mirror/styles.css b/lesson-plans/devtools-debugger/2-integrate/exercises/3-for-of-loops/2-mirror/styles.css similarity index 100% rename from lesson-plans/week-1/devtools-debugger/2-integrate/exercises/3-for-of-loops/2-mirror/styles.css rename to lesson-plans/devtools-debugger/2-integrate/exercises/3-for-of-loops/2-mirror/styles.css diff --git a/lesson-plans/week-1/devtools-debugger/2-integrate/study.json b/lesson-plans/devtools-debugger/2-integrate/study.json similarity index 100% rename from lesson-plans/week-1/devtools-debugger/2-integrate/study.json rename to lesson-plans/devtools-debugger/2-integrate/study.json diff --git a/lesson-plans/devtools-debugger/README.md b/lesson-plans/devtools-debugger/README.md new file mode 100644 index 00000000..d384bb39 --- /dev/null +++ b/lesson-plans/devtools-debugger/README.md @@ -0,0 +1,86 @@ +# DevTools Debugger + +Practice using different features in your browser's DevTools Debugger to +understand interactive JS programs. + +--- + +## Prep Work + +- from `javascript.info`: [DevTools](https://javascript.info/devtools), + [Debugging Chrome](https://javascript.info/debugging-chrome) +- Study + [/3-understanding-programs/1-predicting-execution](../../3-understanding-programs/1-predicting-execution/?--defaults) + - `devtool-setup.mp4` + - `guide.mp4` + - the JS files + +--- + +## Learning Objectives + +- πŸ₯š **Stepping Through**: You can use the _Step_ button to go through a program + one statement at a time, pausing an any line you want to inspect. +- πŸ₯š **Scope Panel**: You can use the _Scope_ panel in your debugger to find the + value of all active variables at step of execution, including when a variable + is _uninitialized_. +- πŸ₯š **Hovering Previews**: You can preview the value of any expression or + initialized variable in your program, including parts of a longer expression. +- 🐣 **Continue to Here**: When paused in the debugger, you can skip the + program's execution to a specific line using the "continue to here" option. +- 🐣 **Breakpoints**: Once in the Debugger, you can set and unset breakpoints to + skip ahead to specific lines. You can also set and unset breakpoints within a + line when possible. +- πŸ₯ **`debugger` Statement**: You understand the difference between `debugger` + and a breakpoint, and can write a `debugger` statement in your source code to + pause the program before specific lines. +- πŸ₯ **Stepping Over**: You can step over functions in your program to skip + their _implementation_ and focus on your program's behavior. + +--- + +## During Class + +Practice stepping and skipping through programs using your browser's debugger. + +### Before Break + +- **All Together**: A coach demonstrates the debugger features in + `/1-isolate/examples` +- **In Small Groups**: Practice stepping through and predicting the programs in + `/1-isolate/exercises` + +**Break!** + +### After Break + +- **All Together**: A coach demonstrates how to step through JavaScript in an + HTML project with `/2-integrate/examples` +- **In Small Groups**: Practice stepping through and predicting the programs in + `/2-integrate/exercises` +- **All Together** Regroup with ~20 minutes left at the end of class for each + group to present: + - what went well? + - what went less well? + - lessons learned + +--- + +1. Isolate + +--- + +2. +Integrate + +--- + +## After Class + +No deliverables. Just lots of study time, alone and in groups. Here's some ideas +for what to focus on after this lesson: + +- Continue studying your favorite online tutorials +- Finish studying `/2-just-enough-javascript` if you haven't yet +- Study `/3-understanding-programs` +- `/0-flashcards`: ~20 minutes every day (add more cards as you go!) diff --git a/lesson-plans/week-1/devtools-debugger/study.json b/lesson-plans/devtools-debugger/study.json similarity index 100% rename from lesson-plans/week-1/devtools-debugger/study.json rename to lesson-plans/devtools-debugger/study.json diff --git a/lesson-plans/week-2/errors-and-bugs/1-errors/README.md b/lesson-plans/errors-and-bugs/1-errors/README.md similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/1-errors/README.md rename to lesson-plans/errors-and-bugs/1-errors/README.md diff --git a/lesson-plans/week-2/errors-and-bugs/1-errors/exercises/1-isolate/reference-error/declaration-mistake-1.js b/lesson-plans/errors-and-bugs/1-errors/exercises/1-isolate/reference-error/declaration-mistake-1.js similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/1-errors/exercises/1-isolate/reference-error/declaration-mistake-1.js rename to lesson-plans/errors-and-bugs/1-errors/exercises/1-isolate/reference-error/declaration-mistake-1.js diff --git a/lesson-plans/week-2/errors-and-bugs/1-errors/exercises/1-isolate/reference-error/declaration-mistake-2.js b/lesson-plans/errors-and-bugs/1-errors/exercises/1-isolate/reference-error/declaration-mistake-2.js similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/1-errors/exercises/1-isolate/reference-error/declaration-mistake-2.js rename to lesson-plans/errors-and-bugs/1-errors/exercises/1-isolate/reference-error/declaration-mistake-2.js diff --git a/lesson-plans/week-2/errors-and-bugs/1-errors/exercises/1-isolate/reference-error/reading-variable-mistake.js b/lesson-plans/errors-and-bugs/1-errors/exercises/1-isolate/reference-error/reading-variable-mistake.js similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/1-errors/exercises/1-isolate/reference-error/reading-variable-mistake.js rename to lesson-plans/errors-and-bugs/1-errors/exercises/1-isolate/reference-error/reading-variable-mistake.js diff --git a/lesson-plans/week-2/errors-and-bugs/1-errors/exercises/1-isolate/syntax-error/bad-conditional.js b/lesson-plans/errors-and-bugs/1-errors/exercises/1-isolate/syntax-error/bad-conditional.js similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/1-errors/exercises/1-isolate/syntax-error/bad-conditional.js rename to lesson-plans/errors-and-bugs/1-errors/exercises/1-isolate/syntax-error/bad-conditional.js diff --git a/lesson-plans/week-2/errors-and-bugs/1-errors/exercises/1-isolate/syntax-error/string-mistake-1.js b/lesson-plans/errors-and-bugs/1-errors/exercises/1-isolate/syntax-error/string-mistake-1.js similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/1-errors/exercises/1-isolate/syntax-error/string-mistake-1.js rename to lesson-plans/errors-and-bugs/1-errors/exercises/1-isolate/syntax-error/string-mistake-1.js diff --git a/lesson-plans/week-2/errors-and-bugs/1-errors/exercises/1-isolate/syntax-error/string-mistake-2.js b/lesson-plans/errors-and-bugs/1-errors/exercises/1-isolate/syntax-error/string-mistake-2.js similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/1-errors/exercises/1-isolate/syntax-error/string-mistake-2.js rename to lesson-plans/errors-and-bugs/1-errors/exercises/1-isolate/syntax-error/string-mistake-2.js diff --git a/lesson-plans/week-2/errors-and-bugs/1-errors/exercises/1-isolate/syntax-error/two-declarations.js b/lesson-plans/errors-and-bugs/1-errors/exercises/1-isolate/syntax-error/two-declarations.js similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/1-errors/exercises/1-isolate/syntax-error/two-declarations.js rename to lesson-plans/errors-and-bugs/1-errors/exercises/1-isolate/syntax-error/two-declarations.js diff --git a/lesson-plans/week-2/errors-and-bugs/1-errors/exercises/1-isolate/syntax-error/variable-name.js b/lesson-plans/errors-and-bugs/1-errors/exercises/1-isolate/syntax-error/variable-name.js similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/1-errors/exercises/1-isolate/syntax-error/variable-name.js rename to lesson-plans/errors-and-bugs/1-errors/exercises/1-isolate/syntax-error/variable-name.js diff --git a/lesson-plans/week-2/errors-and-bugs/1-errors/exercises/1-isolate/type-error/variable-assignment-mistake.js b/lesson-plans/errors-and-bugs/1-errors/exercises/1-isolate/type-error/variable-assignment-mistake.js similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/1-errors/exercises/1-isolate/type-error/variable-assignment-mistake.js rename to lesson-plans/errors-and-bugs/1-errors/exercises/1-isolate/type-error/variable-assignment-mistake.js diff --git a/lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/1-twice/app.js b/lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/1-twice/app.js similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/1-twice/app.js rename to lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/1-twice/app.js diff --git a/lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/1-twice/index.html b/lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/1-twice/index.html similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/1-twice/index.html rename to lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/1-twice/index.html diff --git a/lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/1-twice/styles.css b/lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/1-twice/styles.css similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/1-twice/styles.css rename to lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/1-twice/styles.css diff --git a/lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/2-time-management/app.js b/lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/2-time-management/app.js similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/2-time-management/app.js rename to lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/2-time-management/app.js diff --git a/lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/2-time-management/index.html b/lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/2-time-management/index.html similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/2-time-management/index.html rename to lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/2-time-management/index.html diff --git a/lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/2-time-management/styles.css b/lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/2-time-management/styles.css similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/2-time-management/styles.css rename to lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/2-time-management/styles.css diff --git a/lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/3-search/app.js b/lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/3-search/app.js similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/3-search/app.js rename to lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/3-search/app.js diff --git a/lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/3-search/index.html b/lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/3-search/index.html similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/3-search/index.html rename to lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/3-search/index.html diff --git a/lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/3-search/styles.css b/lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/3-search/styles.css similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/3-search/styles.css rename to lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/3-search/styles.css diff --git a/lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/4-reverse/app.js b/lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/4-reverse/app.js similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/4-reverse/app.js rename to lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/4-reverse/app.js diff --git a/lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/4-reverse/index.html b/lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/4-reverse/index.html similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/4-reverse/index.html rename to lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/4-reverse/index.html diff --git a/lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/4-reverse/styles.css b/lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/4-reverse/styles.css similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/4-reverse/styles.css rename to lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/4-reverse/styles.css diff --git a/lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/5-mirror/app.js b/lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/5-mirror/app.js similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/5-mirror/app.js rename to lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/5-mirror/app.js diff --git a/lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/5-mirror/index.html b/lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/5-mirror/index.html similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/5-mirror/index.html rename to lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/5-mirror/index.html diff --git a/lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/5-mirror/styles.css b/lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/5-mirror/styles.css similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/5-mirror/styles.css rename to lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/5-mirror/styles.css diff --git a/lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/study.json b/lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/study.json similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/1-errors/exercises/2-integrate/study.json rename to lesson-plans/errors-and-bugs/1-errors/exercises/2-integrate/study.json diff --git a/lesson-plans/week-2/errors-and-bugs/1-errors/study.json b/lesson-plans/errors-and-bugs/1-errors/study.json similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/1-errors/study.json rename to lesson-plans/errors-and-bugs/1-errors/study.json diff --git a/lesson-plans/week-2/errors-and-bugs/2-bugs/README.md b/lesson-plans/errors-and-bugs/2-bugs/README.md similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/2-bugs/README.md rename to lesson-plans/errors-and-bugs/2-bugs/README.md diff --git a/lesson-plans/week-2/errors-and-bugs/2-bugs/examples/five-long.js b/lesson-plans/errors-and-bugs/2-bugs/examples/five-long.js similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/2-bugs/examples/five-long.js rename to lesson-plans/errors-and-bugs/2-bugs/examples/five-long.js diff --git a/lesson-plans/week-2/errors-and-bugs/2-bugs/exercises/1-isolate/1-five-long.js b/lesson-plans/errors-and-bugs/2-bugs/exercises/1-isolate/1-five-long.js similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/2-bugs/exercises/1-isolate/1-five-long.js rename to lesson-plans/errors-and-bugs/2-bugs/exercises/1-isolate/1-five-long.js diff --git a/lesson-plans/week-2/errors-and-bugs/2-bugs/exercises/1-isolate/2-enter-something.js b/lesson-plans/errors-and-bugs/2-bugs/exercises/1-isolate/2-enter-something.js similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/2-bugs/exercises/1-isolate/2-enter-something.js rename to lesson-plans/errors-and-bugs/2-bugs/exercises/1-isolate/2-enter-something.js diff --git a/lesson-plans/week-2/errors-and-bugs/2-bugs/exercises/1-isolate/3-excitement.js b/lesson-plans/errors-and-bugs/2-bugs/exercises/1-isolate/3-excitement.js similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/2-bugs/exercises/1-isolate/3-excitement.js rename to lesson-plans/errors-and-bugs/2-bugs/exercises/1-isolate/3-excitement.js diff --git a/lesson-plans/week-2/errors-and-bugs/2-bugs/exercises/1-isolate/4-mirror.js b/lesson-plans/errors-and-bugs/2-bugs/exercises/1-isolate/4-mirror.js similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/2-bugs/exercises/1-isolate/4-mirror.js rename to lesson-plans/errors-and-bugs/2-bugs/exercises/1-isolate/4-mirror.js diff --git a/lesson-plans/week-2/errors-and-bugs/2-bugs/exercises/2-integrate/1-string-sorter/app.js b/lesson-plans/errors-and-bugs/2-bugs/exercises/2-integrate/1-string-sorter/app.js similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/2-bugs/exercises/2-integrate/1-string-sorter/app.js rename to lesson-plans/errors-and-bugs/2-bugs/exercises/2-integrate/1-string-sorter/app.js diff --git a/lesson-plans/week-2/errors-and-bugs/2-bugs/exercises/2-integrate/1-string-sorter/app.re.js b/lesson-plans/errors-and-bugs/2-bugs/exercises/2-integrate/1-string-sorter/app.re.js similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/2-bugs/exercises/2-integrate/1-string-sorter/app.re.js rename to lesson-plans/errors-and-bugs/2-bugs/exercises/2-integrate/1-string-sorter/app.re.js diff --git a/lesson-plans/week-2/errors-and-bugs/2-bugs/exercises/2-integrate/1-string-sorter/index.html b/lesson-plans/errors-and-bugs/2-bugs/exercises/2-integrate/1-string-sorter/index.html similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/2-bugs/exercises/2-integrate/1-string-sorter/index.html rename to lesson-plans/errors-and-bugs/2-bugs/exercises/2-integrate/1-string-sorter/index.html diff --git a/lesson-plans/week-2/errors-and-bugs/2-bugs/exercises/2-integrate/1-string-sorter/styles.css b/lesson-plans/errors-and-bugs/2-bugs/exercises/2-integrate/1-string-sorter/styles.css similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/2-bugs/exercises/2-integrate/1-string-sorter/styles.css rename to lesson-plans/errors-and-bugs/2-bugs/exercises/2-integrate/1-string-sorter/styles.css diff --git a/lesson-plans/week-2/errors-and-bugs/2-bugs/exercises/2-integrate/2-pyramid/app.js b/lesson-plans/errors-and-bugs/2-bugs/exercises/2-integrate/2-pyramid/app.js similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/2-bugs/exercises/2-integrate/2-pyramid/app.js rename to lesson-plans/errors-and-bugs/2-bugs/exercises/2-integrate/2-pyramid/app.js diff --git a/lesson-plans/week-2/errors-and-bugs/2-bugs/exercises/2-integrate/2-pyramid/app.re.js b/lesson-plans/errors-and-bugs/2-bugs/exercises/2-integrate/2-pyramid/app.re.js similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/2-bugs/exercises/2-integrate/2-pyramid/app.re.js rename to lesson-plans/errors-and-bugs/2-bugs/exercises/2-integrate/2-pyramid/app.re.js diff --git a/lesson-plans/week-2/errors-and-bugs/2-bugs/exercises/2-integrate/2-pyramid/index.html b/lesson-plans/errors-and-bugs/2-bugs/exercises/2-integrate/2-pyramid/index.html similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/2-bugs/exercises/2-integrate/2-pyramid/index.html rename to lesson-plans/errors-and-bugs/2-bugs/exercises/2-integrate/2-pyramid/index.html diff --git a/lesson-plans/week-2/errors-and-bugs/2-bugs/exercises/2-integrate/2-pyramid/styles.css b/lesson-plans/errors-and-bugs/2-bugs/exercises/2-integrate/2-pyramid/styles.css similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/2-bugs/exercises/2-integrate/2-pyramid/styles.css rename to lesson-plans/errors-and-bugs/2-bugs/exercises/2-integrate/2-pyramid/styles.css diff --git a/lesson-plans/week-2/errors-and-bugs/2-bugs/exercises/2-integrate/study.json b/lesson-plans/errors-and-bugs/2-bugs/exercises/2-integrate/study.json similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/2-bugs/exercises/2-integrate/study.json rename to lesson-plans/errors-and-bugs/2-bugs/exercises/2-integrate/study.json diff --git a/lesson-plans/week-2/errors-and-bugs/2-bugs/study.json b/lesson-plans/errors-and-bugs/2-bugs/study.json similarity index 100% rename from lesson-plans/week-2/errors-and-bugs/2-bugs/study.json rename to lesson-plans/errors-and-bugs/2-bugs/study.json diff --git a/lesson-plans/errors-and-bugs/README.md b/lesson-plans/errors-and-bugs/README.md new file mode 100644 index 00000000..9773654b --- /dev/null +++ b/lesson-plans/errors-and-bugs/README.md @@ -0,0 +1,55 @@ +# Errors & Bugs + +Practice using different features in your browser's DevTools Debugger to +understand interactive JS programs. + +--- + +## Learning Objectives + +- Errors + - πŸ₯š Understand the difference between an _error_ and your _mistake_. + - πŸ₯š Use error messages and your debugger to find errors in your code. + - πŸ₯š Search errors online using the _name_, _message_ and _environment_. + - 🐣 Identify if an error occurred in creation or execution phase. + - 🐣 Fix errors in your programs. +- Bugs + - πŸ₯š Use test cases to check if a program works correctly. + - πŸ₯š Find lines in a program that surprise you. + - 🐣 Make small changes and keep track of your experiments. + - πŸ₯ Fix bugs in your programs. + - πŸ” Tracing backwards to understand _why_ something happened. + +--- + +## During Class + +Practice fixing errors and bugs in a program. + +### Before Break + +- **All Together**: [Errors](./1-errors/README.md?--defaults) +- **In Small Groups**: Practice the exercises in `./1-errors` + +**Break!** + +### After Break + +- **All Together**: [Bugs](./2-bugs/README.md?--defaults) +- **In Small Groups**: Practice the exercises in `./2-bugs` +- **All Together** Regroup with ~20 minutes left at the end of class for each + group to present: + - what went well? + - what went less well? + - lessons learned + +--- + +## After Class + +No deliverables. Just lots of study time, alone and in groups. Here's some ideas +for what to focus on after this lesson: + +- Continue studying your favorite online tutorials +- Study `/4-developing-programs` +- `/0-flashcards`: ~20 minutes every day (add more cards as you go!) diff --git a/lesson-plans/week-1/computers-and-developers/README.md b/lesson-plans/week-1/computers-and-developers/README.md deleted file mode 100644 index e69de29b..00000000 diff --git a/lesson-plans/week-1/devtools-debugger/README.md b/lesson-plans/week-1/devtools-debugger/README.md deleted file mode 100644 index e69de29b..00000000 diff --git a/lesson-plans/week-2/errors-and-bugs/README.md b/lesson-plans/week-2/errors-and-bugs/README.md deleted file mode 100644 index e69de29b..00000000 diff --git a/lesson-plans/week-2/writing-and-reviewing/README.md b/lesson-plans/week-2/writing-and-reviewing/README.md deleted file mode 100644 index e69de29b..00000000 diff --git a/lesson-plans/week-2/README.md b/lesson-plans/writing-and-reviewing/README.md similarity index 59% rename from lesson-plans/week-2/README.md rename to lesson-plans/writing-and-reviewing/README.md index d5273308..4705cb96 100644 --- a/lesson-plans/week-2/README.md +++ b/lesson-plans/writing-and-reviewing/README.md @@ -1,29 +1,34 @@ -# Week 2 +# Writing & Reviewing + +--- ## Prep Work - Study `/3-understanding-programs/7-code-review` - Read through `/4-developing-programs/0-pair-programming` -## During Class - -Practice fixing errors and bugs in a program and how to write and review code. +--- -### Before Break +## Learning Objectives -- **All Together**: [Errors](../week-2/errors-and-bugs/1-errors/README.md?--defaults) -- **In Small Groups**: Practice the exercises in `./1-errors` -- **All Together**: [Bugs](../week-2/errors-and-bugs/2-bugs/README.md?--defaults) -- **In Small Groups**: Practice the exercises in `./2-bugs` -- **All Together** Regroup with ~20 minutes left at the end of class for each - group to present: - - what went well? - - what went less well? - - lessons learned +- πŸ₯š **Pair Programming**: You can explain the two roles in pair programming + (_driver_ and _navigator_), and are comfortable trying either role. +- 🐣 **Code Review**: You can work in pairs to review your classmates' programs, + including incomplete programs or programs that do not work as expected. +- 🐣 **Giving Feedback**: You can give constructive feedback to your classmates + about their code after you had a chance to review it. +- 🐣 **Learning From Code**: You can clearly explain at least 2 things you + learned from studying your classmates' programs. +- πŸ₯ **Writing Programs**: You can use Pair Programming to write code to satisfy + user a story, acceptance criteria & test cases. +- πŸ” **Multiple Solutions**: You can write more than one solution to the same + code challenge. --- -### After Break +## During Class + +### Before Break - **All Together**: Read through the challenge's specs, test cases & use the obfuscated solution so everyone understands the expected behavior. @@ -31,6 +36,11 @@ Practice fixing errors and bugs in a program and how to write and review code. challenge. Take your time and use the `review.js` as a guide to write the best code you can. - Done early? Try writing more solutions + +**Break!** + +### After Break + - **In Pairs**: Find another pair to work with: - Swap programs and review each others' code, without talking to each other! If one pair wrote more than one solution, just pick one to review @@ -45,7 +55,7 @@ Practice fixing errors and bugs in a program and how to write and review code. --- -The Challenge: Bouncify +The Challenge: Bouncify --- @@ -54,6 +64,6 @@ Practice fixing errors and bugs in a program and how to write and review code. No deliverables. Just lots of study time, alone and in groups. Here's some ideas for what to focus on after this lesson: -- `/0-flashcards`: ~20 minutes every day (add more cards as you go!) - Continue studying your favorite online tutorials - Study `/4-developing-programs` +- `/0-flashcards`: ~20 minutes every day (add more cards as you go!) diff --git a/lesson-plans/week-2/writing-and-reviewing/bouncify/demo.re.js b/lesson-plans/writing-and-reviewing/bouncify/demo.re.js similarity index 100% rename from lesson-plans/week-2/writing-and-reviewing/bouncify/demo.re.js rename to lesson-plans/writing-and-reviewing/bouncify/demo.re.js diff --git a/lesson-plans/week-2/writing-and-reviewing/bouncify/review.js b/lesson-plans/writing-and-reviewing/bouncify/review.js similarity index 100% rename from lesson-plans/week-2/writing-and-reviewing/bouncify/review.js rename to lesson-plans/writing-and-reviewing/bouncify/review.js diff --git a/lesson-plans/week-2/writing-and-reviewing/bouncify/solution-1.js b/lesson-plans/writing-and-reviewing/bouncify/solution-1.js similarity index 100% rename from lesson-plans/week-2/writing-and-reviewing/bouncify/solution-1.js rename to lesson-plans/writing-and-reviewing/bouncify/solution-1.js diff --git a/lesson-plans/week-2/writing-and-reviewing/bouncify/solution-2.js b/lesson-plans/writing-and-reviewing/bouncify/solution-2.js similarity index 100% rename from lesson-plans/week-2/writing-and-reviewing/bouncify/solution-2.js rename to lesson-plans/writing-and-reviewing/bouncify/solution-2.js diff --git a/lesson-plans/week-2/writing-and-reviewing/bouncify/solution-3.js b/lesson-plans/writing-and-reviewing/bouncify/solution-3.js similarity index 100% rename from lesson-plans/week-2/writing-and-reviewing/bouncify/solution-3.js rename to lesson-plans/writing-and-reviewing/bouncify/solution-3.js diff --git a/lesson-plans/week-2/writing-and-reviewing/bouncify/solution-4.js b/lesson-plans/writing-and-reviewing/bouncify/solution-4.js similarity index 100% rename from lesson-plans/week-2/writing-and-reviewing/bouncify/solution-4.js rename to lesson-plans/writing-and-reviewing/bouncify/solution-4.js diff --git a/lesson-plans/week-2/writing-and-reviewing/study.json b/lesson-plans/writing-and-reviewing/study.json similarity index 100% rename from lesson-plans/week-2/writing-and-reviewing/study.json rename to lesson-plans/writing-and-reviewing/study.json diff --git a/package-lock.json b/package-lock.json index 579dbbe7..4cce5745 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,9 @@ "name": "welcome-to-js", "version": "1.0.0", "license": "MIT", + "dependencies": { + "study-lenses": "^0.0.170" + }, "devDependencies": { "@ls-lint/ls-lint": "^2.0.0", "cspell": "^6.31.1", @@ -212,9 +215,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", - "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", + "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -224,14 +227,14 @@ } }, "node_modules/@babel/template": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz", - "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.23.9", - "@babel/types": "^7.23.9" + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -322,9 +325,9 @@ } }, "node_modules/@babel/traverse": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz", - "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", + "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", "dev": true, "dependencies": { "@babel/code-frame": "^7.23.5", @@ -333,8 +336,8 @@ "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.9", - "@babel/types": "^7.23.9", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -436,9 +439,9 @@ } }, "node_modules/@babel/types": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz", - "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.23.4", @@ -1028,9 +1031,9 @@ } }, "node_modules/@javascript-obfuscator/escodegen": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@javascript-obfuscator/escodegen/-/escodegen-2.2.0.tgz", - "integrity": "sha512-vyBqXZqAHWe40dA5tVsXC85KJ0eWgTwPrxZdOtaHH0di7tkb8G8x8MEQs0HbbDdONN7M5M45fyVpEF5aR1++Dw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@javascript-obfuscator/escodegen/-/escodegen-2.2.2.tgz", + "integrity": "sha512-0VoGJun/lpGEPv8J8R8fpwt1iAGyctUjHTQoYoCbKY2rcGc6d+NycrqSMo61vRXhZiTnHgud1UF8dOI7UAPdTw==", "dev": true, "dependencies": { "@javascript-obfuscator/estraverse": "^5.3.0", @@ -1145,9 +1148,9 @@ } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, "engines": { "node": ">=6.0.0" @@ -1339,9 +1342,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.20", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.20.tgz", - "integrity": "sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==", + "version": "20.11.24", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.24.tgz", + "integrity": "sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -1648,26 +1651,6 @@ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "dev": true }, - "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", - "dev": true, - "peer": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/array-lite": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/array-lite/-/array-lite-0.1.1.tgz", @@ -1689,84 +1672,6 @@ "node": ">=8" } }, - "node_modules/array.prototype.filter": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz", - "integrity": "sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==", - "dev": true, - "peer": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz", - "integrity": "sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==", - "dev": true, - "peer": true, - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.3.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "dev": true, - "peer": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", - "dev": true, - "peer": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/arraybuffer.prototype.slice": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", @@ -2187,22 +2092,6 @@ "node": ">=6" } }, - "node_modules/canvas": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.8.0.tgz", - "integrity": "sha512-gLTi17X8WY9Cf5GZ2Yns8T5lfBOcGgFehDFb+JQwDqdOoBOcECS9ZWMEAqMSVcMYwXD659J8NyzjRY/2aE+C2Q==", - "dev": true, - "hasInstallScript": true, - "peer": true, - "dependencies": { - "@mapbox/node-pre-gyp": "^1.0.0", - "nan": "^2.14.0", - "simple-get": "^3.0.3" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -2220,9 +2109,9 @@ } }, "node_modules/chance": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/chance/-/chance-1.1.7.tgz", - "integrity": "sha512-bua/2cZEfzS6qPm0vi3JEvGNbriDLcMj9lKxCQOjUcCJRcyjA7umP0zZm6bKWWlBN04vA0L99QGH/CZQawr0eg==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/chance/-/chance-1.1.8.tgz", + "integrity": "sha512-v7fi5Hj2VbR6dJEGRWLmJBA83LJMS47pkAbmROFxHWd9qmE1esHRZW8Clf1Fhzr3rjxnNZVCjOEv/ivFxeIMtg==", "dev": true }, "node_modules/char-regex": { @@ -2450,15 +2339,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/clone-response/node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/color": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", @@ -2999,16 +2879,15 @@ } }, "node_modules/decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", "dev": true, - "peer": true, "dependencies": { - "mimic-response": "^2.0.0" + "mimic-response": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/deep-extend": { @@ -3590,18 +3469,18 @@ } }, "node_modules/es-abstract": { - "version": "1.22.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.4.tgz", - "integrity": "sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg==", + "version": "1.22.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.5.tgz", + "integrity": "sha512-oW69R+4q2wG+Hc3KZePPZxOiisRIqfKBVo/HLx94QcJeWGU/8sZhCvc829rd1kS366vlJbzBfXf9yWwf0+Ko7w==", "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.1", "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.6", + "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.7", "es-define-property": "^1.0.0", "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.2", + "es-set-tostringtag": "^2.0.3", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", "get-intrinsic": "^1.2.4", @@ -3609,15 +3488,15 @@ "globalthis": "^1.0.3", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.1", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", "hasown": "^2.0.1", "internal-slot": "^1.0.7", "is-array-buffer": "^3.0.4", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", + "is-negative-zero": "^2.0.3", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", + "is-shared-array-buffer": "^1.0.3", "is-string": "^1.0.7", "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", @@ -3630,10 +3509,10 @@ "string.prototype.trim": "^1.2.8", "string.prototype.trimend": "^1.0.7", "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.1", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.5", "unbox-primitive": "^1.0.2", "which-typed-array": "^1.1.14" }, @@ -3644,13 +3523,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "dev": true, - "peer": true - }, "node_modules/es-define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", @@ -3686,16 +3558,6 @@ "node": ">= 0.4" } }, - "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", - "dev": true, - "peer": true, - "dependencies": { - "hasown": "^2.0.0" - } - }, "node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -3867,119 +3729,27 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "dev": true, - "peer": true, - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "peer": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", - "dev": true, - "peer": true, - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "peer": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "node_modules/eslint-plugin-jsdoc": { + "version": "33.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-33.3.0.tgz", + "integrity": "sha512-wt6I9X8JoOyUtnsafM7AWBEfLCD3BI1wR5/vTu0hti4CoZc37bB4ZX9A7DsWKbEC/xROAAcBV2VAT638w9VKyQ==", "dev": true, - "peer": true, "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", - "semver": "^6.3.1", - "tsconfig-paths": "^3.15.0" + "@es-joy/jsdoccomment": "^0.4.4", + "comment-parser": "1.1.5", + "debug": "^4.3.1", + "esquery": "^1.4.0", + "jsdoctypeparser": "^9.0.0", + "lodash": "^4.17.21", + "regextras": "^0.7.1", + "semver": "^7.3.5", + "spdx-expression-parse": "^3.0.1" }, "engines": { - "node": ">=4" + "node": ">=10" }, "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "peer": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "peer": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "peer": true, - "bin": { - "semver": "bin/semver.js" + "eslint": "^6.0.0 || ^7.0.0" } }, "node_modules/eslint-plugin-prettier": { @@ -4172,14 +3942,14 @@ } }, "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "version": "4.18.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.3.tgz", + "integrity": "sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==", "dev": true, "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.1", + "body-parser": "1.20.2", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.5.0", @@ -4213,30 +3983,6 @@ "node": ">= 0.10.0" } }, - "node_modules/express/node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, "node_modules/express/node_modules/cookie": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", @@ -4279,21 +4025,6 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "node_modules/express/node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -4960,18 +4691,6 @@ "node": ">=8.6" } }, - "node_modules/got/node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/got/node_modules/get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -4984,15 +4703,6 @@ "node": ">=6" } }, - "node_modules/got/node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -5586,19 +5296,6 @@ "is-ci": "bin.js" } }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "peer": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-date-object": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", @@ -5975,22 +5672,22 @@ } }, "node_modules/javascript-obfuscator": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/javascript-obfuscator/-/javascript-obfuscator-2.17.0.tgz", - "integrity": "sha512-R7WqpiMh7lvi/9E1g76zUw3MEWJ/6kuK8vj13fWdMm+QjjJuYSjunxkWe5KnbL8kh6zNpAKY8HN3I0ZGUfVVHg==", + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/javascript-obfuscator/-/javascript-obfuscator-2.19.1.tgz", + "integrity": "sha512-NPoC0pUBKHiFJqAm/+hHDM1FzpreUGkzkBTAWDYkA+XI6wZWRqjwlDAjLOwWbjqNwnW/QqkPf35KMAZC/oHtiw==", "dev": true, "hasInstallScript": true, "dependencies": { - "@javascript-obfuscator/escodegen": "2.2.0", + "@javascript-obfuscator/escodegen": "2.2.2", "@javascript-obfuscator/estraverse": "5.3.0", "@nuxtjs/opencollective": "0.3.2", - "acorn": "8.4.1", + "acorn": "8.5.0", "assert": "2.0.0", - "chalk": "4.1.1", - "chance": "1.1.7", + "chalk": "4.1.2", + "chance": "1.1.8", "class-validator": "0.13.1", - "commander": "8.0.0", - "eslint-scope": "5.1.1", + "commander": "8.2.0", + "eslint-scope": "6.0.0", "fast-deep-equal": "3.1.3", "inversify": "5.1.1", "js-string-escape": "1.0.1", @@ -5999,16 +5696,16 @@ "multimatch": "5.0.0", "process": "0.11.10", "reflect-metadata": "0.1.13", - "source-map-support": "0.5.19", + "source-map-support": "0.5.20", "string-template": "1.0.0", "stringz": "2.1.0", - "tslib": "2.3.0" + "tslib": "2.3.1" }, "bin": { "javascript-obfuscator": "bin/javascript-obfuscator" }, "engines": { - "node": ">=12" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", @@ -6016,9 +5713,9 @@ } }, "node_modules/javascript-obfuscator/node_modules/acorn": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", - "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", + "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -6027,57 +5724,32 @@ "node": ">=0.4.0" } }, - "node_modules/javascript-obfuscator/node_modules/chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/javascript-obfuscator/node_modules/commander": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.0.0.tgz", - "integrity": "sha512-Xvf85aAtu6v22+E5hfVoLHqyul/jyxh91zvqk/ioJTQuJR7Z78n7H558vMPKanPSRgIEeZemT92I2g9Y8LPbSQ==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.2.0.tgz", + "integrity": "sha512-LLKxDvHeL91/8MIyTAD5BFMNtoIwztGPMiM/7Bl8rIPmHCZXRxmSWr91h57dpOpnQ6jIUqEWdXE/uBYMfiVZDA==", "dev": true, "engines": { "node": ">= 12" } }, "node_modules/javascript-obfuscator/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-6.0.0.tgz", + "integrity": "sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/javascript-obfuscator/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/javascript-obfuscator/node_modules/tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", "dev": true }, "node_modules/jest-diff": { @@ -6778,16 +6450,12 @@ } }, "node_modules/mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", "dev": true, - "peer": true, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, "node_modules/min-document": { @@ -6830,12 +6498,12 @@ } }, "node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz", + "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==", "dev": true, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, "node_modules/minizlib": { @@ -6967,13 +6635,6 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, - "node_modules/nan": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", - "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==", - "dev": true, - "peer": true - }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -7095,13 +6756,13 @@ } }, "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -7151,56 +6812,6 @@ "node": ">= 0.4" } }, - "node_modules/object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", - "dev": true, - "peer": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.groupby": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.2.tgz", - "integrity": "sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==", - "dev": true, - "peer": true, - "dependencies": { - "array.prototype.filter": "^1.0.3", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.0.0" - } - }, - "node_modules/object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", - "dev": true, - "peer": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -7547,13 +7158,6 @@ "node": ">=8" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "peer": true - }, "node_modules/path-scurry": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", @@ -7972,24 +7576,6 @@ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "peer": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -8567,39 +8153,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peer": true - }, - "node_modules/simple-get": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", - "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", - "dev": true, - "peer": true, - "dependencies": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, "node_modules/simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", @@ -8651,9 +8204,9 @@ } }, "node_modules/source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "version": "0.5.20", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", + "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", "dev": true, "dependencies": { "buffer-from": "^1.0.0", @@ -9073,29 +8626,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/study-lenses/node_modules/eslint-plugin-jsdoc": { - "version": "33.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-33.3.0.tgz", - "integrity": "sha512-wt6I9X8JoOyUtnsafM7AWBEfLCD3BI1wR5/vTu0hti4CoZc37bB4ZX9A7DsWKbEC/xROAAcBV2VAT638w9VKyQ==", - "dev": true, - "dependencies": { - "@es-joy/jsdoccomment": "^0.4.4", - "comment-parser": "1.1.5", - "debug": "^4.3.1", - "esquery": "^1.4.0", - "jsdoctypeparser": "^9.0.0", - "lodash": "^4.17.21", - "regextras": "^0.7.1", - "semver": "^7.3.5", - "spdx-expression-parse": "^3.0.1" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0" - } - }, "node_modules/study-lenses/node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -9208,19 +8738,6 @@ "node": ">=8" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/table": { "version": "6.8.1", "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", @@ -9305,6 +8822,15 @@ "node": ">=10" } }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/teamcity-service-messages": { "version": "0.1.12", "resolved": "https://registry.npmjs.org/teamcity-service-messages/-/teamcity-service-messages-0.1.12.tgz", @@ -9347,16 +8873,6 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "node_modules/terser/node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, "node_modules/text-hex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", diff --git a/package.json b/package.json index 1dc22ad7..ca5bcfea 100644 --- a/package.json +++ b/package.json @@ -10,10 +10,16 @@ "lint:ls": "ls-lint", "lint:md": "markdownlint --ignore node_modules --ignore flashcards --config ./.markdownlint.jsonc --fix ./ ", "lint:js": "eslint --max-warnings=0 --ext=.js --format=codeframe --format=table", - "study": "lenses2" + "study": "lenses2", + "demo:local": "study --demo-reset=300000 --reset-ignore=node_modules", + "demo:deployed": "study --demo-reset=300000 --reset-ignore=node_modules --no-open", + "demo:dev": "study --demo-reset=10000 --reset-ignore=node_modules, --no-open" }, "author": "HackYourFutureBelgium", "license": "MIT", + "dependencies": { + "study-lenses": "^0.0.170" + }, "devDependencies": { "@ls-lint/ls-lint": "^2.0.0", "cspell": "^6.31.1",