From c32281a7edf4756ec3663dad5f96f4a3ed091bfb Mon Sep 17 00:00:00 2001 From: abmhts Date: Tue, 15 Sep 2026 12:59:45 +0100 Subject: [PATCH 01/25] Explain assignment operator --- Sprint-2/1-key-exercises/1-count.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Sprint-2/1-key-exercises/1-count.js b/Sprint-2/1-key-exercises/1-count.js index 117bcb2b6..d10099074 100644 --- a/Sprint-2/1-key-exercises/1-count.js +++ b/Sprint-2/1-key-exercises/1-count.js @@ -4,3 +4,5 @@ count = count + 1; // Line 1 is a variable declaration, creating the count variable with an initial value of 0 // Describe what line 3 is doing, in particular focus on what = is doing + +// Line 3 takes the current value of count and adds 1 to it,and uses = to assign new value back to count,so the new value will be 1. From 5eefab92458c25ddf3254e08e2add20dee9a13f5 Mon Sep 17 00:00:00 2001 From: abmhts Date: Tue, 15 Sep 2026 14:51:04 +0100 Subject: [PATCH 02/25] Generate initials from name strings --- Sprint-2/1-key-exercises/2-initials.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Sprint-2/1-key-exercises/2-initials.js b/Sprint-2/1-key-exercises/2-initials.js index 964c9563c..55348e491 100644 --- a/Sprint-2/1-key-exercises/2-initials.js +++ b/Sprint-2/1-key-exercises/2-initials.js @@ -5,6 +5,7 @@ const lastName = "Johnson"; // Declare a variable called initials that stores the first character of each string. // This should produce the string "CKJ", but you must not write the characters C, K, or J in the code of your solution. -const initials = ``; +const initials = firstName.charAt(0) + middleName.charAt(0) + lastName.charAt(0) +console.log(initials); // https://www.google.com/search?q=get+first+character+of+string+mdn From 689213bd06ad910365b3f398e5f5b3c0da7926d5 Mon Sep 17 00:00:00 2001 From: abmhts Date: Tue, 15 Sep 2026 17:06:48 +0100 Subject: [PATCH 03/25] Extract dir and ext from file path --- Sprint-2/1-key-exercises/3-paths.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Sprint-2/1-key-exercises/3-paths.js b/Sprint-2/1-key-exercises/3-paths.js index ab90ebb28..93c046970 100644 --- a/Sprint-2/1-key-exercises/3-paths.js +++ b/Sprint-2/1-key-exercises/3-paths.js @@ -17,7 +17,8 @@ console.log(`The base part of ${filePath} is ${base}`); // Create a variable to store the dir part of the filePath variable // Create a variable to store the ext part of the variable -const dir = ; -const ext = ; +const dir = filePath.slice(0, lastSlashIndex); +const ext = filePath.slice(filePath.lastIndexOf(".") + 1); + // https://www.google.com/search?q=slice+mdn \ No newline at end of file From 1716943b630796d70dd183e98c38975cffd46ef1 Mon Sep 17 00:00:00 2001 From: abmhts Date: Tue, 15 Sep 2026 22:55:54 +0100 Subject: [PATCH 04/25] fix: move cityOfBirth declaration before console log --- Sprint-2/2-mandatory-errors/2.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Sprint-2/2-mandatory-errors/2.js b/Sprint-2/2-mandatory-errors/2.js index e09b89831..846e2891d 100644 --- a/Sprint-2/2-mandatory-errors/2.js +++ b/Sprint-2/2-mandatory-errors/2.js @@ -1,5 +1,9 @@ // Currently trying to print the string "I was born in Bolton" but it isn't working... // what's the error ? +//'cityOfBirth' cannot access before initialization + +// console.log(`I was born in ${cityOfBirth}`); +// const cityOfBirth = "Bolton"; -console.log(`I was born in ${cityOfBirth}`); const cityOfBirth = "Bolton"; +console.log(`I was born in ${cityOfBirth}`); From d8c52f70fd5165a276158c979b26e0c9ab8d10fd Mon Sep 17 00:00:00 2001 From: abmhts Date: Tue, 15 Sep 2026 22:58:53 +0100 Subject: [PATCH 05/25] use "let" for reassigning age variable --- Sprint-2/2-mandatory-errors/1.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Sprint-2/2-mandatory-errors/1.js b/Sprint-2/2-mandatory-errors/1.js index 7a43cbea7..35b7ac56d 100644 --- a/Sprint-2/2-mandatory-errors/1.js +++ b/Sprint-2/2-mandatory-errors/1.js @@ -2,3 +2,6 @@ const age = 33; age = age + 1; + +let age = 33; +age = age + 1; \ No newline at end of file From 52e2cb39c8f53fc1ee7b35d2aeabb914e9c96a30 Mon Sep 17 00:00:00 2001 From: abmhts Date: Tue, 15 Sep 2026 23:01:00 +0100 Subject: [PATCH 06/25] add comments for human-readable instructions --- Sprint-2/2-mandatory-errors/0.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Sprint-2/2-mandatory-errors/0.js b/Sprint-2/2-mandatory-errors/0.js index cf6c5039f..549a6df40 100644 --- a/Sprint-2/2-mandatory-errors/0.js +++ b/Sprint-2/2-mandatory-errors/0.js @@ -1,2 +1,5 @@ This is just an instruction for the first activity - but it is just for human consumption -We don't want the computer to run these 2 lines - how can we solve this problem? \ No newline at end of file +We don't want the computer to run these 2 lines - how can we solve this problem? + +// This is just an instruction for the first activity - but it is just for human consumption +// We don't want the computer to run these 2 lines - how can we solve this problem? \ No newline at end of file From 64003b5a2ade3e36d81a4e3545bb6578e318b2ea Mon Sep 17 00:00:00 2001 From: abmhts Date: Tue, 15 Sep 2026 23:04:36 +0100 Subject: [PATCH 07/25] Explain random number generation with Math.random and Math.floor --- Sprint-2/1-key-exercises/4-random.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Sprint-2/1-key-exercises/4-random.js b/Sprint-2/1-key-exercises/4-random.js index 292f83aab..c75af4677 100644 --- a/Sprint-2/1-key-exercises/4-random.js +++ b/Sprint-2/1-key-exercises/4-random.js @@ -4,6 +4,19 @@ const maximum = 100; const num = Math.floor(Math.random() * (maximum - minimum + 1)) + minimum; // In this exercise, you will need to work out what num represents? +//num represents a randomly generated whole number between 1 and 100. + // Try breaking down the expression and using documentation to explain what it means + // Math.random() generates a random decimal number greater than or equal to 0 and less than 1. Multiplying it by 100 gives a number between 0 and 100. + // Math.floor() always rounds down and returns the largest integer less than or equal to a given number in this case between 0 and 99. Finally, adding 1 changes the range to 1–100. + // Math.floor(Math.random() * (maximum - minimum + 1)) + // Math.floor(Math.random() * (100 - 1 + 1) + // Math.floor(Math.random() * 100) + // Math.random give any random number between 0 to 1 example 0.225 * 100 = 22.5 + // Math.floor rounds that number to a whole number so 22.5 will become 22 + // (22) + minimum + // 22 + 1 + // 23 + // It will help to think about the order in which expressions are evaluated // Try logging the value of num and running the program several times to build an idea of what the program is doing From 7fdd13f3034e41a3fddcb6a59774d06ec776b6be Mon Sep 17 00:00:00 2001 From: abmhts Date: Wed, 16 Sep 2026 10:17:07 +0100 Subject: [PATCH 08/25] Fix extracting last 4 digits from card number --- Sprint-2/2-mandatory-errors/3.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Sprint-2/2-mandatory-errors/3.js b/Sprint-2/2-mandatory-errors/3.js index ec101884d..897827115 100644 --- a/Sprint-2/2-mandatory-errors/3.js +++ b/Sprint-2/2-mandatory-errors/3.js @@ -1,9 +1,15 @@ const cardNumber = 4533787178994213; const last4Digits = cardNumber.slice(-4); +const cardNumber = "4533787178994213"; +const last4Digits = cardNumber.slice(-4); +console.log(last4Digits) + // The last4Digits variable should store the last 4 digits of cardNumber // However, the code isn't working // Before running the code, make and explain a prediction about why the code won't work + slice() not work with number // Then run the code and see what error it gives. + cardNumber.slice is not a function // Consider: Why does it give this error? Is this what I predicted? If not, what's different? // Then try updating the expression last4Digits is assigned to, in order to get the correct value From 46da3bdb9dbaa6e2381165ea2ee0e03bcde6d508 Mon Sep 17 00:00:00 2001 From: abmhts Date: Wed, 16 Sep 2026 10:33:45 +0100 Subject: [PATCH 09/25] Rename clock time variables starting with numbers --- Sprint-2/2-mandatory-errors/4.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Sprint-2/2-mandatory-errors/4.js b/Sprint-2/2-mandatory-errors/4.js index 5f86c730b..060998aae 100644 --- a/Sprint-2/2-mandatory-errors/4.js +++ b/Sprint-2/2-mandatory-errors/4.js @@ -1,2 +1,5 @@ const 12HourClockTime = "8:53pm"; const 24hourClockTime = "20:53"; + +const ClockTime12Hour = "8:53pm"; +const ClockTime24Hour = "20:53"; \ No newline at end of file From 8cc6b17f53c30af3a7bf6aa6911deb9709077e23 Mon Sep 17 00:00:00 2001 From: abmhts Date: Wed, 16 Sep 2026 16:20:48 +0100 Subject: [PATCH 10/25] Convert price strings to numbers before calculating --- .../3-mandatory-interpret/1-percentage-change.js | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/Sprint-2/3-mandatory-interpret/1-percentage-change.js b/Sprint-2/3-mandatory-interpret/1-percentage-change.js index e24ecb8e1..e2b19128e 100644 --- a/Sprint-2/3-mandatory-interpret/1-percentage-change.js +++ b/Sprint-2/3-mandatory-interpret/1-percentage-change.js @@ -12,11 +12,21 @@ console.log(`The percentage change is ${percentageChange}`); // Read the code and then answer the questions below // a) How many function calls are there in this file? Write down all the lines where a function call is made - + 4 function calls + -Number(carPrice.replaceAll(",", "")) + -replaceAll(",", "") + -Number(priceAfterOneYear.replaceAll("," "")) + -replaceAll("," "") // b) Run the code and identify the line where the error is coming from - why is this error occurring? How can you fix this problem? - + -Line 5 + -missing ) after argument list + -why: replaceAll() needs two arguments separated by a comma. + -fix: by adding comma replaceAll(",", "") // c) Identify all the lines that are variable reassignment statements + line 4 and 5 // d) Identify all the lines that are variable declarations - + line 1,2,7 and 8 // e) Describe what the expression Number(carPrice.replaceAll(",","")) is doing - what is the purpose of this expression? + -First removing the comma "10,000" + -Second convert string into number 10000 \ No newline at end of file From f33a66519f220441e11de7676a3d95694db81358 Mon Sep 17 00:00:00 2001 From: abmhts Date: Wed, 16 Sep 2026 20:09:12 +0100 Subject: [PATCH 11/25] Calculate movie length in Hours:Minutes:Seconds --- Sprint-2/3-mandatory-interpret/2-time-format.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Sprint-2/3-mandatory-interpret/2-time-format.js b/Sprint-2/3-mandatory-interpret/2-time-format.js index 47d239558..ab4add31e 100644 --- a/Sprint-2/3-mandatory-interpret/2-time-format.js +++ b/Sprint-2/3-mandatory-interpret/2-time-format.js @@ -12,14 +12,17 @@ console.log(result); // For the piece of code above, read the code and then answer the following questions // a) How many variable declarations are there in this program? - + // 6 // b) How many function calls are there? - + // 1 // c) Using documentation, explain what the expression movieLength % 60 represents // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators - + // Remainder operator : calculates the remainder after dividing the movie length in seconds by 60 // d) Interpret line 4, what does the expression assigned to totalMinutes mean? + // It takes the remaining seconds away from the total movie length and divides by 60 to turn the seconds into minutes. // e) What do you think the variable result represents? Can you think of a better name for this variable? - + // - It represents the movie duration in hours, minutes, and seconds. + // - const movieDuration // f) Try experimenting with different values of movieLength. Will this code work for all values of movieLength? Explain your answer + // The code works with positive whole numbers for movieLength and changes them into hours, minutes, and seconds. Decimal or negative numbers may not give the correct result. \ No newline at end of file From 60283cb816237121489de8885e169649cd023f83 Mon Sep 17 00:00:00 2001 From: abmhts Date: Wed, 16 Sep 2026 22:49:13 +0100 Subject: [PATCH 12/25] Convert pence to pounds --- Sprint-2/3-mandatory-interpret/3-to-pounds.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Sprint-2/3-mandatory-interpret/3-to-pounds.js b/Sprint-2/3-mandatory-interpret/3-to-pounds.js index 60c9ace69..ccffcdd9c 100644 --- a/Sprint-2/3-mandatory-interpret/3-to-pounds.js +++ b/Sprint-2/3-mandatory-interpret/3-to-pounds.js @@ -25,3 +25,20 @@ console.log(`£${pounds}.${pence}`); // To begin, we can start with // 1. const penceString = "399p": initialises a string variable with the value "399p" + +1. const penceString = "399p" // Stores "399p" in a variable called penceString so the program can work with the price. +2. const penceStringWithoutTrailingP = penceString.substring( + 0, + penceString.length - 1 +); // Removes the "p" from the end of "399p", leaving "399" +3. const paddedPenceNumberString = penceStringWithoutTrailingP.padStart(3, "0"); +//Adds a "0" at the start if there are less than 3 digits. +4. const pounds = paddedPenceNumberString.substring( + 0, + paddedPenceNumberString.length - 2); //gets the digits before the last two to find the pounds. + +5. const pence = paddedPenceNumberString + .substring(paddedPenceNumberString.length - 2) + .padEnd(2, "0"); //gets the last two digits to find the pence. + +6. console.log(`£${pounds}.${pence}`); //Combines the pounds and pence and print the final price as £3.99 \ No newline at end of file From fb6144694138e28f5b82bb9073e7e0a800802532 Mon Sep 17 00:00:00 2001 From: abmhts Date: Wed, 16 Sep 2026 23:54:18 +0100 Subject: [PATCH 13/25] Chrome console exercise --- Sprint-2/4-stretch-explore/chrome.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Sprint-2/4-stretch-explore/chrome.md b/Sprint-2/4-stretch-explore/chrome.md index 962580b82..a2412fd51 100644 --- a/Sprint-2/4-stretch-explore/chrome.md +++ b/Sprint-2/4-stretch-explore/chrome.md @@ -8,8 +8,12 @@ Let's try an example. In the Chrome console, invoke the function `alert` with one argument, the string `"Hello world!"`; What effect does calling the `alert` function have? +- A popup with chrome:/new-tab-page says "hello world" Now try invoking the function `prompt` with a string input of `"What is your name?"` - store the return value of your call to `prompt` in an variable called `myName`. What effect does calling the `prompt` function have? +- A popup with chrome:/new-tab-page says "What is your name?" with a text box to type your name. + What is the return value of `prompt`? +- "myname" which is the value that i entered. From 581eb7b7919ff18fe4ce005f8b7f00a29820d4d5 Mon Sep 17 00:00:00 2001 From: abmhts Date: Thu, 17 Sep 2026 10:07:14 +0100 Subject: [PATCH 14/25] Chrome console exercise (objects) --- Sprint-2/4-stretch-explore/objects.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Sprint-2/4-stretch-explore/objects.md b/Sprint-2/4-stretch-explore/objects.md index 0216dee56..8026cd553 100644 --- a/Sprint-2/4-stretch-explore/objects.md +++ b/Sprint-2/4-stretch-explore/objects.md @@ -5,12 +5,20 @@ In this activity, we'll explore some additional concepts that you'll encounter i Open the Chrome devtools Console, type in `console.log` and then hit enter What output do you get? +- log() { [native code] } Now enter just `console` in the Console, what output do you get back? +- console {debug: ƒ, error: ƒ, info: ƒ, log: ƒ, warn: ƒ, …} -Try also entering `typeof console` +Try also entering `typeof console` +- 'object' Answer the following questions: What does `console` store? +- console stores different functions you can use to display or check information in the console. + What does the syntax `console.log` or `console.assert` mean? In particular, what does the `.` mean? +- console.log() method accepts any value and outputs that the given value to the console. +- console.assert() takes a boolean first and displays the message only when the condition is false. +- "." means to access or call something inside this object either .log() or .assert() function. \ No newline at end of file From b5135ac63700cda240a07b25fa233e2ddade334f Mon Sep 17 00:00:00 2001 From: Abakar Date: Thu, 17 Sep 2026 20:45:08 +0100 Subject: [PATCH 15/25] Update 2-initials.js --- Sprint-2/1-key-exercises/2-initials.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sprint-2/1-key-exercises/2-initials.js b/Sprint-2/1-key-exercises/2-initials.js index 55348e491..861080794 100644 --- a/Sprint-2/1-key-exercises/2-initials.js +++ b/Sprint-2/1-key-exercises/2-initials.js @@ -5,7 +5,7 @@ const lastName = "Johnson"; // Declare a variable called initials that stores the first character of each string. // This should produce the string "CKJ", but you must not write the characters C, K, or J in the code of your solution. -const initials = firstName.charAt(0) + middleName.charAt(0) + lastName.charAt(0) +const initials = firstName.charAt(0) + middleName.charAt(0) + lastName.charAt(0); console.log(initials); // https://www.google.com/search?q=get+first+character+of+string+mdn From 89a16d1c4f589012394e36d6b24d66ff0492435e Mon Sep 17 00:00:00 2001 From: abmhts Date: Thu, 17 Sep 2026 22:05:28 +0100 Subject: [PATCH 16/25] Update-Explain random number generation with Math.random and Math.floor --- Sprint-2/1-key-exercises/4-random.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sprint-2/1-key-exercises/4-random.js b/Sprint-2/1-key-exercises/4-random.js index c75af4677..c99f7fa86 100644 --- a/Sprint-2/1-key-exercises/4-random.js +++ b/Sprint-2/1-key-exercises/4-random.js @@ -7,10 +7,10 @@ const num = Math.floor(Math.random() * (maximum - minimum + 1)) + minimum; //num represents a randomly generated whole number between 1 and 100. // Try breaking down the expression and using documentation to explain what it means - // Math.random() generates a random decimal number greater than or equal to 0 and less than 1. Multiplying it by 100 gives a number between 0 and 100. + // Math.random() generates a random decimal number greater than or equal to 0 and less than 1. Multiplying by 100 gives a number between 0 and up to, but not including 100. // Math.floor() always rounds down and returns the largest integer less than or equal to a given number in this case between 0 and 99. Finally, adding 1 changes the range to 1–100. // Math.floor(Math.random() * (maximum - minimum + 1)) - // Math.floor(Math.random() * (100 - 1 + 1) + // Math.floor(Math.random() * (100 - 1 + 1)) // Math.floor(Math.random() * 100) // Math.random give any random number between 0 to 1 example 0.225 * 100 = 22.5 // Math.floor rounds that number to a whole number so 22.5 will become 22 From 60676296b77cda9febd969225892bd6bacb3dc5a Mon Sep 17 00:00:00 2001 From: abmhts Date: Thu, 17 Sep 2026 22:11:05 +0100 Subject: [PATCH 17/25] update-use "let" for reassigning age variable --- Sprint-2/2-mandatory-errors/1.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Sprint-2/2-mandatory-errors/1.js b/Sprint-2/2-mandatory-errors/1.js index 35b7ac56d..afb1fe462 100644 --- a/Sprint-2/2-mandatory-errors/1.js +++ b/Sprint-2/2-mandatory-errors/1.js @@ -1,7 +1,8 @@ // trying to create an age variable and then reassign the value by 1 -const age = 33; -age = age + 1; +//const age = 33; +//age = age + 1; let age = 33; -age = age + 1; \ No newline at end of file +age = age + 1; +console.log(age); \ No newline at end of file From a57dcc9615919e4de51eaab96920324376b1e9e4 Mon Sep 17 00:00:00 2001 From: abmhts Date: Thu, 17 Sep 2026 22:20:05 +0100 Subject: [PATCH 18/25] update- Fix extracting last 4 digits from card number --- Sprint-2/2-mandatory-errors/3.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/Sprint-2/2-mandatory-errors/3.js b/Sprint-2/2-mandatory-errors/3.js index 897827115..ec02c634a 100644 --- a/Sprint-2/2-mandatory-errors/3.js +++ b/Sprint-2/2-mandatory-errors/3.js @@ -1,5 +1,5 @@ -const cardNumber = 4533787178994213; -const last4Digits = cardNumber.slice(-4); +// const cardNumber = 4533787178994213; +// const last4Digits = cardNumber.slice(-4); const cardNumber = "4533787178994213"; const last4Digits = cardNumber.slice(-4); @@ -7,9 +7,12 @@ console.log(last4Digits) // The last4Digits variable should store the last 4 digits of cardNumber // However, the code isn't working + // Before running the code, make and explain a prediction about why the code won't work - slice() not work with number -// Then run the code and see what error it gives. - cardNumber.slice is not a function -// Consider: Why does it give this error? Is this what I predicted? If not, what's different? + //slice() not work with number + + // Then run the code and see what error it gives. + //cardNumber.slice is not a function + + // Consider: Why does it give this error? Is this what I predicted? If not, what's different? // Then try updating the expression last4Digits is assigned to, in order to get the correct value From cc7acf910b432dad37013f2e5c6d3e23708e7e08 Mon Sep 17 00:00:00 2001 From: abmhts Date: Thu, 17 Sep 2026 22:24:28 +0100 Subject: [PATCH 19/25] update- Rename clock time variables starting with numbers --- Sprint-2/2-mandatory-errors/4.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Sprint-2/2-mandatory-errors/4.js b/Sprint-2/2-mandatory-errors/4.js index 060998aae..0117551c3 100644 --- a/Sprint-2/2-mandatory-errors/4.js +++ b/Sprint-2/2-mandatory-errors/4.js @@ -1,5 +1,6 @@ -const 12HourClockTime = "8:53pm"; -const 24hourClockTime = "20:53"; +//const 12HourClockTime = "8:53pm"; +//const 24hourClockTime = "20:53"; const ClockTime12Hour = "8:53pm"; -const ClockTime24Hour = "20:53"; \ No newline at end of file +const ClockTime24Hour = "20:53"; +console.log(ClockTime24Hour,ClockTime12Hour); \ No newline at end of file From be74be111cd9b065e2ce1c465909e201f11d3449 Mon Sep 17 00:00:00 2001 From: abmhts Date: Sat, 19 Sep 2026 21:57:28 +0100 Subject: [PATCH 20/25] Update - add comments for human-readable instructions. --- Sprint-2/2-mandatory-errors/0.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/Sprint-2/2-mandatory-errors/0.js b/Sprint-2/2-mandatory-errors/0.js index 549a6df40..6a7a7f690 100644 --- a/Sprint-2/2-mandatory-errors/0.js +++ b/Sprint-2/2-mandatory-errors/0.js @@ -1,5 +1,2 @@ -This is just an instruction for the first activity - but it is just for human consumption -We don't want the computer to run these 2 lines - how can we solve this problem? - // This is just an instruction for the first activity - but it is just for human consumption // We don't want the computer to run these 2 lines - how can we solve this problem? \ No newline at end of file From f142f3900655c61b6b688072ab3edd359b043547 Mon Sep 17 00:00:00 2001 From: abmhts Date: Sat, 19 Sep 2026 22:07:53 +0100 Subject: [PATCH 21/25] Update- convert price strings to numbers before calculating --- .../1-percentage-change.js | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/Sprint-2/3-mandatory-interpret/1-percentage-change.js b/Sprint-2/3-mandatory-interpret/1-percentage-change.js index e2b19128e..8fe9e04d5 100644 --- a/Sprint-2/3-mandatory-interpret/1-percentage-change.js +++ b/Sprint-2/3-mandatory-interpret/1-percentage-change.js @@ -12,21 +12,22 @@ console.log(`The percentage change is ${percentageChange}`); // Read the code and then answer the questions below // a) How many function calls are there in this file? Write down all the lines where a function call is made - 4 function calls - -Number(carPrice.replaceAll(",", "")) - -replaceAll(",", "") - -Number(priceAfterOneYear.replaceAll("," "")) - -replaceAll("," "") + // 5 function calls + // -Number(carPrice.replaceAll(",", "")) + // -replaceAll(",", "") + // -Number(priceAfterOneYear.replaceAll("," "")) + // -replaceAll("," "") + // -console.log(`The percentage change is ${percentageChange}`) // b) Run the code and identify the line where the error is coming from - why is this error occurring? How can you fix this problem? - -Line 5 - -missing ) after argument list - -why: replaceAll() needs two arguments separated by a comma. - -fix: by adding comma replaceAll(",", "") + // -Line 5 + // -missing ) after argument list + // -why: replaceAll() needs two arguments separated by a comma. + // -fix: by adding comma replaceAll(",", "") // c) Identify all the lines that are variable reassignment statements - line 4 and 5 + // line 4 and 5 // d) Identify all the lines that are variable declarations - line 1,2,7 and 8 + // line 1,2,7 and 8 // e) Describe what the expression Number(carPrice.replaceAll(",","")) is doing - what is the purpose of this expression? - -First removing the comma "10,000" - -Second convert string into number 10000 \ No newline at end of file + // -First removing the comma "10,000" + // -Second convert string into number 10000 \ No newline at end of file From 304536e14c50c4320128e30a9864adc29f2683ce Mon Sep 17 00:00:00 2001 From: abmhts Date: Sat, 19 Sep 2026 22:11:41 +0100 Subject: [PATCH 22/25] update - Convert pence to pounds --- Sprint-2/3-mandatory-interpret/3-to-pounds.js | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/Sprint-2/3-mandatory-interpret/3-to-pounds.js b/Sprint-2/3-mandatory-interpret/3-to-pounds.js index ccffcdd9c..9fc5f401a 100644 --- a/Sprint-2/3-mandatory-interpret/3-to-pounds.js +++ b/Sprint-2/3-mandatory-interpret/3-to-pounds.js @@ -26,19 +26,19 @@ console.log(`£${pounds}.${pence}`); // To begin, we can start with // 1. const penceString = "399p": initialises a string variable with the value "399p" -1. const penceString = "399p" // Stores "399p" in a variable called penceString so the program can work with the price. -2. const penceStringWithoutTrailingP = penceString.substring( - 0, - penceString.length - 1 -); // Removes the "p" from the end of "399p", leaving "399" -3. const paddedPenceNumberString = penceStringWithoutTrailingP.padStart(3, "0"); +// 1. const penceString = "399p" // Stores "399p" in a variable called penceString so the program can work with the price. +// 2. const penceStringWithoutTrailingP = penceString.substring( +// 0, +// penceString.length - 1); +// Removes the "p" from the end of "399p", leaving "399" +// 3. const paddedPenceNumberString = penceStringWithoutTrailingP.padStart(3, "0"); //Adds a "0" at the start if there are less than 3 digits. -4. const pounds = paddedPenceNumberString.substring( - 0, - paddedPenceNumberString.length - 2); //gets the digits before the last two to find the pounds. +// 4. const pounds = paddedPenceNumberString.substring( +// 0, +// paddedPenceNumberString.length - 2); //gets the digits before the last two to find the pounds. -5. const pence = paddedPenceNumberString - .substring(paddedPenceNumberString.length - 2) - .padEnd(2, "0"); //gets the last two digits to find the pence. +// 5. const pence = paddedPenceNumberString +// .substring(paddedPenceNumberString.length - 2) +// .padEnd(2, "0"); //gets the last two digits to find the pence. -6. console.log(`£${pounds}.${pence}`); //Combines the pounds and pence and print the final price as £3.99 \ No newline at end of file +// 6. console.log(`£${pounds}.${pence}`); //Combines the pounds and pence and print the final price as £3.99 \ No newline at end of file From 1295cd412acd7760554f781427c941aad72c9f40 Mon Sep 17 00:00:00 2001 From: abmhts Date: Sat, 19 Sep 2026 22:49:59 +0100 Subject: [PATCH 23/25] update1- Rename clock time variables starting with numbers --- Sprint-2/2-mandatory-errors/4.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Sprint-2/2-mandatory-errors/4.js b/Sprint-2/2-mandatory-errors/4.js index 0117551c3..fc747a8ae 100644 --- a/Sprint-2/2-mandatory-errors/4.js +++ b/Sprint-2/2-mandatory-errors/4.js @@ -1,6 +1,5 @@ -//const 12HourClockTime = "8:53pm"; -//const 24hourClockTime = "20:53"; +// const 12HourClockTime = "8:53pm"; +// const 24hourClockTime = "20:53"; const ClockTime12Hour = "8:53pm"; const ClockTime24Hour = "20:53"; -console.log(ClockTime24Hour,ClockTime12Hour); \ No newline at end of file From fa97c403579a069e35033e12f407a0027c6689cf Mon Sep 17 00:00:00 2001 From: abmhts Date: Sat, 19 Sep 2026 23:18:20 +0100 Subject: [PATCH 24/25] update-Convert price strings to numbers before calculating --- Sprint-2/3-mandatory-interpret/1-percentage-change.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sprint-2/3-mandatory-interpret/1-percentage-change.js b/Sprint-2/3-mandatory-interpret/1-percentage-change.js index 8fe9e04d5..204e64230 100644 --- a/Sprint-2/3-mandatory-interpret/1-percentage-change.js +++ b/Sprint-2/3-mandatory-interpret/1-percentage-change.js @@ -2,7 +2,7 @@ let carPrice = "10,000"; let priceAfterOneYear = "8,543"; carPrice = Number(carPrice.replaceAll(",", "")); -priceAfterOneYear = Number(priceAfterOneYear.replaceAll("," "")); +priceAfterOneYear = Number(priceAfterOneYear.replaceAll(",", "")); const priceDifference = carPrice - priceAfterOneYear; const percentageChange = (priceDifference / carPrice) * 100; From 9e45bc7402f697bcfac22801a28c99b69e167ee3 Mon Sep 17 00:00:00 2001 From: abmhts Date: Sat, 19 Sep 2026 23:29:40 +0100 Subject: [PATCH 25/25] format Sprint-2 with Prettier --- Sprint-2/1-key-exercises/2-initials.js | 3 +- Sprint-2/1-key-exercises/3-paths.js | 3 +- Sprint-2/1-key-exercises/4-random.js | 22 +++++++-------- Sprint-2/2-mandatory-errors/0.js | 2 +- Sprint-2/2-mandatory-errors/1.js | 2 +- Sprint-2/2-mandatory-errors/3.js | 10 +++---- .../1-percentage-change.js | 28 +++++++++---------- .../3-mandatory-interpret/2-time-format.js | 14 +++++----- Sprint-2/3-mandatory-interpret/3-to-pounds.js | 6 ++-- Sprint-2/4-stretch-explore/chrome.md | 3 ++ Sprint-2/4-stretch-explore/objects.md | 12 +++++--- Sprint-2/README.md | 4 +-- 12 files changed, 58 insertions(+), 51 deletions(-) diff --git a/Sprint-2/1-key-exercises/2-initials.js b/Sprint-2/1-key-exercises/2-initials.js index 861080794..6b9f1b03c 100644 --- a/Sprint-2/1-key-exercises/2-initials.js +++ b/Sprint-2/1-key-exercises/2-initials.js @@ -5,7 +5,8 @@ const lastName = "Johnson"; // Declare a variable called initials that stores the first character of each string. // This should produce the string "CKJ", but you must not write the characters C, K, or J in the code of your solution. -const initials = firstName.charAt(0) + middleName.charAt(0) + lastName.charAt(0); +const initials = + firstName.charAt(0) + middleName.charAt(0) + lastName.charAt(0); console.log(initials); // https://www.google.com/search?q=get+first+character+of+string+mdn diff --git a/Sprint-2/1-key-exercises/3-paths.js b/Sprint-2/1-key-exercises/3-paths.js index 93c046970..cca4eeecc 100644 --- a/Sprint-2/1-key-exercises/3-paths.js +++ b/Sprint-2/1-key-exercises/3-paths.js @@ -20,5 +20,4 @@ console.log(`The base part of ${filePath} is ${base}`); const dir = filePath.slice(0, lastSlashIndex); const ext = filePath.slice(filePath.lastIndexOf(".") + 1); - -// https://www.google.com/search?q=slice+mdn \ No newline at end of file +// https://www.google.com/search?q=slice+mdn diff --git a/Sprint-2/1-key-exercises/4-random.js b/Sprint-2/1-key-exercises/4-random.js index c99f7fa86..872b05e32 100644 --- a/Sprint-2/1-key-exercises/4-random.js +++ b/Sprint-2/1-key-exercises/4-random.js @@ -7,16 +7,16 @@ const num = Math.floor(Math.random() * (maximum - minimum + 1)) + minimum; //num represents a randomly generated whole number between 1 and 100. // Try breaking down the expression and using documentation to explain what it means - // Math.random() generates a random decimal number greater than or equal to 0 and less than 1. Multiplying by 100 gives a number between 0 and up to, but not including 100. - // Math.floor() always rounds down and returns the largest integer less than or equal to a given number in this case between 0 and 99. Finally, adding 1 changes the range to 1–100. - // Math.floor(Math.random() * (maximum - minimum + 1)) - // Math.floor(Math.random() * (100 - 1 + 1)) - // Math.floor(Math.random() * 100) - // Math.random give any random number between 0 to 1 example 0.225 * 100 = 22.5 - // Math.floor rounds that number to a whole number so 22.5 will become 22 - // (22) + minimum - // 22 + 1 - // 23 - +// Math.random() generates a random decimal number greater than or equal to 0 and less than 1. Multiplying by 100 gives a number between 0 and up to, but not including 100. +// Math.floor() always rounds down and returns the largest integer less than or equal to a given number in this case between 0 and 99. Finally, adding 1 changes the range to 1–100. +// Math.floor(Math.random() * (maximum - minimum + 1)) +// Math.floor(Math.random() * (100 - 1 + 1)) +// Math.floor(Math.random() * 100) +// Math.random give any random number between 0 to 1 example 0.225 * 100 = 22.5 +// Math.floor rounds that number to a whole number so 22.5 will become 22 +// (22) + minimum +// 22 + 1 +// 23 + // It will help to think about the order in which expressions are evaluated // Try logging the value of num and running the program several times to build an idea of what the program is doing diff --git a/Sprint-2/2-mandatory-errors/0.js b/Sprint-2/2-mandatory-errors/0.js index 6a7a7f690..044add7ac 100644 --- a/Sprint-2/2-mandatory-errors/0.js +++ b/Sprint-2/2-mandatory-errors/0.js @@ -1,2 +1,2 @@ // This is just an instruction for the first activity - but it is just for human consumption -// We don't want the computer to run these 2 lines - how can we solve this problem? \ No newline at end of file +// We don't want the computer to run these 2 lines - how can we solve this problem? diff --git a/Sprint-2/2-mandatory-errors/1.js b/Sprint-2/2-mandatory-errors/1.js index afb1fe462..0eb59841e 100644 --- a/Sprint-2/2-mandatory-errors/1.js +++ b/Sprint-2/2-mandatory-errors/1.js @@ -5,4 +5,4 @@ let age = 33; age = age + 1; -console.log(age); \ No newline at end of file +console.log(age); diff --git a/Sprint-2/2-mandatory-errors/3.js b/Sprint-2/2-mandatory-errors/3.js index ec02c634a..8f3400bab 100644 --- a/Sprint-2/2-mandatory-errors/3.js +++ b/Sprint-2/2-mandatory-errors/3.js @@ -3,16 +3,16 @@ const cardNumber = "4533787178994213"; const last4Digits = cardNumber.slice(-4); -console.log(last4Digits) +console.log(last4Digits); // The last4Digits variable should store the last 4 digits of cardNumber // However, the code isn't working // Before running the code, make and explain a prediction about why the code won't work - //slice() not work with number +//slice() not work with number - // Then run the code and see what error it gives. - //cardNumber.slice is not a function +// Then run the code and see what error it gives. +//cardNumber.slice is not a function - // Consider: Why does it give this error? Is this what I predicted? If not, what's different? +// Consider: Why does it give this error? Is this what I predicted? If not, what's different? // Then try updating the expression last4Digits is assigned to, in order to get the correct value diff --git a/Sprint-2/3-mandatory-interpret/1-percentage-change.js b/Sprint-2/3-mandatory-interpret/1-percentage-change.js index 204e64230..138d3af64 100644 --- a/Sprint-2/3-mandatory-interpret/1-percentage-change.js +++ b/Sprint-2/3-mandatory-interpret/1-percentage-change.js @@ -12,22 +12,22 @@ console.log(`The percentage change is ${percentageChange}`); // Read the code and then answer the questions below // a) How many function calls are there in this file? Write down all the lines where a function call is made - // 5 function calls - // -Number(carPrice.replaceAll(",", "")) - // -replaceAll(",", "") - // -Number(priceAfterOneYear.replaceAll("," "")) - // -replaceAll("," "") - // -console.log(`The percentage change is ${percentageChange}`) +// 5 function calls +// -Number(carPrice.replaceAll(",", "")) +// -replaceAll(",", "") +// -Number(priceAfterOneYear.replaceAll("," "")) +// -replaceAll("," "") +// -console.log(`The percentage change is ${percentageChange}`) // b) Run the code and identify the line where the error is coming from - why is this error occurring? How can you fix this problem? - // -Line 5 - // -missing ) after argument list - // -why: replaceAll() needs two arguments separated by a comma. - // -fix: by adding comma replaceAll(",", "") +// -Line 5 +// -missing ) after argument list +// -why: replaceAll() needs two arguments separated by a comma. +// -fix: by adding comma replaceAll(",", "") // c) Identify all the lines that are variable reassignment statements - // line 4 and 5 +// line 4 and 5 // d) Identify all the lines that are variable declarations - // line 1,2,7 and 8 +// line 1,2,7 and 8 // e) Describe what the expression Number(carPrice.replaceAll(",","")) is doing - what is the purpose of this expression? - // -First removing the comma "10,000" - // -Second convert string into number 10000 \ No newline at end of file +// -First removing the comma "10,000" +// -Second convert string into number 10000 diff --git a/Sprint-2/3-mandatory-interpret/2-time-format.js b/Sprint-2/3-mandatory-interpret/2-time-format.js index ab4add31e..9377733c3 100644 --- a/Sprint-2/3-mandatory-interpret/2-time-format.js +++ b/Sprint-2/3-mandatory-interpret/2-time-format.js @@ -12,17 +12,17 @@ console.log(result); // For the piece of code above, read the code and then answer the following questions // a) How many variable declarations are there in this program? - // 6 +// 6 // b) How many function calls are there? - // 1 +// 1 // c) Using documentation, explain what the expression movieLength % 60 represents // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators - // Remainder operator : calculates the remainder after dividing the movie length in seconds by 60 +// Remainder operator : calculates the remainder after dividing the movie length in seconds by 60 // d) Interpret line 4, what does the expression assigned to totalMinutes mean? - // It takes the remaining seconds away from the total movie length and divides by 60 to turn the seconds into minutes. +// It takes the remaining seconds away from the total movie length and divides by 60 to turn the seconds into minutes. // e) What do you think the variable result represents? Can you think of a better name for this variable? - // - It represents the movie duration in hours, minutes, and seconds. - // - const movieDuration +// - It represents the movie duration in hours, minutes, and seconds. +// - const movieDuration // f) Try experimenting with different values of movieLength. Will this code work for all values of movieLength? Explain your answer - // The code works with positive whole numbers for movieLength and changes them into hours, minutes, and seconds. Decimal or negative numbers may not give the correct result. \ No newline at end of file +// The code works with positive whole numbers for movieLength and changes them into hours, minutes, and seconds. Decimal or negative numbers may not give the correct result. diff --git a/Sprint-2/3-mandatory-interpret/3-to-pounds.js b/Sprint-2/3-mandatory-interpret/3-to-pounds.js index 9fc5f401a..713bd67a2 100644 --- a/Sprint-2/3-mandatory-interpret/3-to-pounds.js +++ b/Sprint-2/3-mandatory-interpret/3-to-pounds.js @@ -2,13 +2,13 @@ const penceString = "399p"; const penceStringWithoutTrailingP = penceString.substring( 0, - penceString.length - 1 + penceString.length - 1, ); const paddedPenceNumberString = penceStringWithoutTrailingP.padStart(3, "0"); const pounds = paddedPenceNumberString.substring( 0, - paddedPenceNumberString.length - 2 + paddedPenceNumberString.length - 2, ); const pence = paddedPenceNumberString @@ -41,4 +41,4 @@ console.log(`£${pounds}.${pence}`); // .substring(paddedPenceNumberString.length - 2) // .padEnd(2, "0"); //gets the last two digits to find the pence. -// 6. console.log(`£${pounds}.${pence}`); //Combines the pounds and pence and print the final price as £3.99 \ No newline at end of file +// 6. console.log(`£${pounds}.${pence}`); //Combines the pounds and pence and print the final price as £3.99 diff --git a/Sprint-2/4-stretch-explore/chrome.md b/Sprint-2/4-stretch-explore/chrome.md index a2412fd51..c67f29356 100644 --- a/Sprint-2/4-stretch-explore/chrome.md +++ b/Sprint-2/4-stretch-explore/chrome.md @@ -8,12 +8,15 @@ Let's try an example. In the Chrome console, invoke the function `alert` with one argument, the string `"Hello world!"`; What effect does calling the `alert` function have? + - A popup with chrome:/new-tab-page says "hello world" Now try invoking the function `prompt` with a string input of `"What is your name?"` - store the return value of your call to `prompt` in an variable called `myName`. What effect does calling the `prompt` function have? + - A popup with chrome:/new-tab-page says "What is your name?" with a text box to type your name. What is the return value of `prompt`? + - "myname" which is the value that i entered. diff --git a/Sprint-2/4-stretch-explore/objects.md b/Sprint-2/4-stretch-explore/objects.md index 8026cd553..11726c63a 100644 --- a/Sprint-2/4-stretch-explore/objects.md +++ b/Sprint-2/4-stretch-explore/objects.md @@ -5,20 +5,24 @@ In this activity, we'll explore some additional concepts that you'll encounter i Open the Chrome devtools Console, type in `console.log` and then hit enter What output do you get? + - log() { [native code] } Now enter just `console` in the Console, what output do you get back? -- console {debug: ƒ, error: ƒ, info: ƒ, log: ƒ, warn: ƒ, …} +- console {debug: ƒ, error: ƒ, info: ƒ, log: ƒ, warn: ƒ, …} Try also entering `typeof console` + - 'object' -Answer the following questions: + Answer the following questions: What does `console` store? + - console stores different functions you can use to display or check information in the console. What does the syntax `console.log` or `console.assert` mean? In particular, what does the `.` mean? -- console.log() method accepts any value and outputs that the given value to the console. + +- console.log() method accepts any value and outputs that the given value to the console. - console.assert() takes a boolean first and displays the message only when the condition is false. -- "." means to access or call something inside this object either .log() or .assert() function. \ No newline at end of file +- "." means to access or call something inside this object either .log() or .assert() function. diff --git a/Sprint-2/README.md b/Sprint-2/README.md index 826253dfc..ec5623a22 100644 --- a/Sprint-2/README.md +++ b/Sprint-2/README.md @@ -12,7 +12,7 @@ This README will guide you through the different sections for this week. ## 1 Exercises -In this section, you'll have a short program and task. Some of the syntax may be unfamiliar - in this case, you'll need to look things up in documentation. +In this section, you'll have a short program and task. Some of the syntax may be unfamiliar - in this case, you'll need to look things up in documentation. https://developer.mozilla.org/en-US/docs/Web/JavaScript @@ -28,7 +28,7 @@ You must use documentation to make sense of anything unfamiliar - learning how t You can also use `console.log` to check the value of different variables in the code. -https://developer.mozilla.org/en-US/docs/Web/JavaScript +https://developer.mozilla.org/en-US/docs/Web/JavaScript ## 4 Explore - Stretch 💪