From 864d3190226223feede8e18c7be9a2da5b8aba3f Mon Sep 17 00:00:00 2001 From: christelleb Date: Tue, 4 Feb 2025 18:48:35 +0000 Subject: [PATCH 01/34] New branch From 795c9bfcb4c5fb70fceec556611f48d52becc215 Mon Sep 17 00:00:00 2001 From: christelleb Date: Tue, 4 Feb 2025 18:56:38 +0000 Subject: [PATCH 02/34] count explanation --- Sprint-1/1-key-exercises/1-count.js | 1 + 1 file changed, 1 insertion(+) diff --git a/Sprint-1/1-key-exercises/1-count.js b/Sprint-1/1-key-exercises/1-count.js index 117bcb2b6..5d72c39ed 100644 --- a/Sprint-1/1-key-exercises/1-count.js +++ b/Sprint-1/1-key-exercises/1-count.js @@ -4,3 +4,4 @@ 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 +// Here, line 3 is a statement that is reassigning a value to count by incrementing it by 1. From 2514b49a4a68de13d10d010519402cabf76ce36a Mon Sep 17 00:00:00 2001 From: christelleb Date: Tue, 4 Feb 2025 19:22:50 +0000 Subject: [PATCH 03/34] commit in initials --- Sprint-1/1-key-exercises/2-initials.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sprint-1/1-key-exercises/2-initials.js b/Sprint-1/1-key-exercises/2-initials.js index 47561f617..0238a71c6 100644 --- a/Sprint-1/1-key-exercises/2-initials.js +++ b/Sprint-1/1-key-exercises/2-initials.js @@ -5,7 +5,7 @@ let 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. -let initials = ``; +let initials = firstName[0] + middleName[0] + lastName[0]; // https://www.google.com/search?q=get+first+character+of+string+mdn From 62f02e4abb707aff52362f7eae41c30ca6db2d1c Mon Sep 17 00:00:00 2001 From: christelleb Date: Tue, 4 Feb 2025 20:14:22 +0000 Subject: [PATCH 04/34] 3-paths commit --- Sprint-1/1-key-exercises/3-paths.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sprint-1/1-key-exercises/3-paths.js b/Sprint-1/1-key-exercises/3-paths.js index ab90ebb28..98ab371c3 100644 --- a/Sprint-1/1-key-exercises/3-paths.js +++ b/Sprint-1/1-key-exercises/3-paths.js @@ -17,7 +17,7 @@ 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 = base.slice(base.lastIndexOf(".")); // https://www.google.com/search?q=slice+mdn \ No newline at end of file From 238ca63d9b0f9e71cf6918a0d58ac958da82378f Mon Sep 17 00:00:00 2001 From: christelleb Date: Sat, 15 Feb 2025 11:15:37 +0000 Subject: [PATCH 05/34] 4-randoms commit --- Sprint-1/1-key-exercises/4-random.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Sprint-1/1-key-exercises/4-random.js b/Sprint-1/1-key-exercises/4-random.js index 292f83aab..ad3ec00b3 100644 --- a/Sprint-1/1-key-exercises/4-random.js +++ b/Sprint-1/1-key-exercises/4-random.js @@ -7,3 +7,8 @@ const num = Math.floor(Math.random() * (maximum - minimum + 1)) + minimum; // Try breaking down the expression and using documentation to explain what it means // 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 + +// Here, Math.rondom creates a random number between 0 to 1 and Math.floor rounds donw to the nearest integer. +// When creating a random number between 0 and 1, we will multiply it by the (100 - 1 + 1), then round it down to the nearest integer +// Then add all of that to 1. + From 3beef1ec9f996b5bf90f8d753802cc31650831d6 Mon Sep 17 00:00:00 2001 From: christelleb Date: Sat, 15 Feb 2025 11:20:46 +0000 Subject: [PATCH 06/34] mandatory error 0 commit --- Sprint-1/2-mandatory-errors/0.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sprint-1/2-mandatory-errors/0.js b/Sprint-1/2-mandatory-errors/0.js index cf6c5039f..65ad3030d 100644 --- a/Sprint-1/2-mandatory-errors/0.js +++ b/Sprint-1/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 +//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 633ded276f3f7b0096f3c477fa253c143e956b00 Mon Sep 17 00:00:00 2001 From: christelleb Date: Sat, 15 Feb 2025 11:22:32 +0000 Subject: [PATCH 07/34] mandatory_error 1 commit --- Sprint-1/2-mandatory-errors/1.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sprint-1/2-mandatory-errors/1.js b/Sprint-1/2-mandatory-errors/1.js index 7a43cbea7..031839b47 100644 --- a/Sprint-1/2-mandatory-errors/1.js +++ b/Sprint-1/2-mandatory-errors/1.js @@ -1,4 +1,4 @@ // trying to create an age variable and then reassign the value by 1 -const age = 33; +let age = 33; age = age + 1; From 676e44f023466f1450faba076025f910e182a6e1 Mon Sep 17 00:00:00 2001 From: christelleb Date: Sat, 15 Feb 2025 11:50:32 +0000 Subject: [PATCH 08/34] mandatory_error 2 commit --- Sprint-1/2-mandatory-errors/2.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Sprint-1/2-mandatory-errors/2.js b/Sprint-1/2-mandatory-errors/2.js index e09b89831..1426832b9 100644 --- a/Sprint-1/2-mandatory-errors/2.js +++ b/Sprint-1/2-mandatory-errors/2.js @@ -3,3 +3,6 @@ console.log(`I was born in ${cityOfBirth}`); const cityOfBirth = "Bolton"; + +// the variable 'cityOfBirth' had to be declared first before doing the console log. +// This is because the JAvascript reads from top to bottom From 78478addb9d29ef11ee78bc110170314037cd8c5 Mon Sep 17 00:00:00 2001 From: christelleb Date: Sat, 15 Feb 2025 12:14:01 +0000 Subject: [PATCH 09/34] mandatory_errors 3 and 4 --- Sprint-1/2-mandatory-errors/3.js | 8 +++++++- Sprint-1/2-mandatory-errors/4.js | 4 ++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Sprint-1/2-mandatory-errors/3.js b/Sprint-1/2-mandatory-errors/3.js index ec101884d..fc0f40f1b 100644 --- a/Sprint-1/2-mandatory-errors/3.js +++ b/Sprint-1/2-mandatory-errors/3.js @@ -1,5 +1,7 @@ const cardNumber = 4533787178994213; -const last4Digits = cardNumber.slice(-4); +const last4Digits = String(cardNumber).slice(-4); + +console.log (last4Digits) // The last4Digits variable should store the last 4 digits of cardNumber // However, the code isn't working @@ -7,3 +9,7 @@ const last4Digits = cardNumber.slice(-4); // Then run the code and see what error it gives. // 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 + +//Prediction: The slice method doesn't work on numbers and integers. It only works on strings and arrays +//Error message: The error message satates that "SLice is not a function" + diff --git a/Sprint-1/2-mandatory-errors/4.js b/Sprint-1/2-mandatory-errors/4.js index 21dad8c5d..e8902c0c5 100644 --- a/Sprint-1/2-mandatory-errors/4.js +++ b/Sprint-1/2-mandatory-errors/4.js @@ -1,2 +1,2 @@ -const 12HourClockTime = "20:53"; -const 24hourClockTime = "08:53"; \ No newline at end of file +const HourClockTime = "20:53"; +const hourClockTime = "08:53"; \ No newline at end of file From d0ad944ea4ecde369f7b648f972d41f1ad3fedc0 Mon Sep 17 00:00:00 2001 From: christelleb Date: Sat, 15 Feb 2025 12:28:05 +0000 Subject: [PATCH 10/34] percentage_change commit --- Sprint-1/3-mandatory-interpret/1-percentage-change.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Sprint-1/3-mandatory-interpret/1-percentage-change.js b/Sprint-1/3-mandatory-interpret/1-percentage-change.js index e24ecb8e1..f21ccf77b 100644 --- a/Sprint-1/3-mandatory-interpret/1-percentage-change.js +++ b/Sprint-1/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; @@ -12,11 +12,17 @@ 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 +//There are two function calls here. replaceAll and console.log + // 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 was missing a separation comma // c) Identify all the lines that are variable reassignment statements +// Line 4 and LIne 5 have variables being reassigned. // d) Identify all the lines that are variable declarations +// Line 1, line 2, line 7 and line 8 have variable declarations // e) Describe what the expression Number(carPrice.replaceAll(",","")) is doing - what is the purpose of this expression? +//This expression removes the comma in the price from 10,000 to 10000 From 8d7e2e4ad23100a6e5cb870858e13b23d8d317a1 Mon Sep 17 00:00:00 2001 From: christelleb Date: Sat, 15 Feb 2025 12:45:54 +0000 Subject: [PATCH 11/34] time_format commit --- Sprint-1/3-mandatory-interpret/2-time-format.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Sprint-1/3-mandatory-interpret/2-time-format.js b/Sprint-1/3-mandatory-interpret/2-time-format.js index 47d239558..83c23e17c 100644 --- a/Sprint-1/3-mandatory-interpret/2-time-format.js +++ b/Sprint-1/3-mandatory-interpret/2-time-format.js @@ -12,14 +12,20 @@ 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? +// There are 6 variable declarations // b) How many function calls are there? +// There is one function call which is console.log // c) Using documentation, explain what the expression movieLength % 60 represents // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators +// % is a remainder operator which will do movieLength / 60 and we will consider the remainder of this operation // d) Interpret line 4, what does the expression assigned to totalMinutes mean? +// In line 4 we are declaring the totalMinutes. we have the remainingSeconds which is 24. Then we will do ((8784 - 24) /60) = 146 // e) What do you think the variable result represents? Can you think of a better name for this variable? +// The variable result shows the total remaining duration of a movie in terms of hours, minutes and seconds // f) Try experimenting with different values of movieLength. Will this code work for all values of movieLength? Explain your answer +// The movieLength code will work work with all kinds of number. THat is integers and floats. It will not work with strings From e87bd36b41f666509f7d57c229070e02211a4322 Mon Sep 17 00:00:00 2001 From: christelleb Date: Sat, 15 Feb 2025 14:20:15 +0000 Subject: [PATCH 12/34] to_pound commit --- Sprint-1/3-mandatory-interpret/3-to-pounds.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Sprint-1/3-mandatory-interpret/3-to-pounds.js b/Sprint-1/3-mandatory-interpret/3-to-pounds.js index 60c9ace69..e1d34e711 100644 --- a/Sprint-1/3-mandatory-interpret/3-to-pounds.js +++ b/Sprint-1/3-mandatory-interpret/3-to-pounds.js @@ -25,3 +25,10 @@ console.log(`£${pounds}.${pence}`); // To begin, we can start with // 1. const penceString = "399p": initialises a string variable with the value "399p" +// 2. const penceStringWithoutTrailingP = "399p".substring( 0, penceString.length - 1): Here we use the subString method which will slide the string of +// penceString starting at index 0 and ending at index 2 (3 - 1). The result should be "399" +// 3. const paddedPenceNumberString = penceStringWithoutTrailingP.padStart(3, "0"): Here we want to make sure that the penceStringWithoutTrailingP variable has at least 3 characters, if that is not the case, we will add "0" infront of the character till it reaches the length required. +// Here, paddedPenceNumberString = "399" . Then pounds = "3" +// 4. const pence = paddedPenceNumberString.substring(paddedPenceNumberString.length - 2).padEnd(2, "0") : The substring(paddedPenceNumberString.length - 2) will return 99 and the padEnd(2,"0") will make sure that there are at least two characters here. + + From 6c4bfa237d9ceea39c4d92a05bb7b1ad434eba86 Mon Sep 17 00:00:00 2001 From: christelleb Date: Sat, 15 Feb 2025 14:50:09 +0000 Subject: [PATCH 13/34] stretch explore commit --- Sprint-1/4-stretch-explore/chrome.md | 3 +++ Sprint-1/4-stretch-explore/objects.md | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/Sprint-1/4-stretch-explore/chrome.md b/Sprint-1/4-stretch-explore/chrome.md index e7dd5feaf..23e5c4182 100644 --- a/Sprint-1/4-stretch-explore/chrome.md +++ b/Sprint-1/4-stretch-explore/chrome.md @@ -11,8 +11,11 @@ In the Chrome console, invoke the function `alert` with an input string of `"Hello world!"`; What effect does calling the `alert` function have? +Answer: It creates a pop up window on the browser. 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? +Answer: It creates a pop up window which allows the user to input data. This prompt has a cancel and an 'OK' button. What is the return value of `prompt`? +Answer: The return value will depend on what the user inputs. If the user presses the 'cancel' button, then the return is null. If the user presses 'OK' without entering anything, then the return type is an empty string. Else if something is written by the user, then the return value will be what the user has entered. diff --git a/Sprint-1/4-stretch-explore/objects.md b/Sprint-1/4-stretch-explore/objects.md index 0216dee56..375ecdb83 100644 --- a/Sprint-1/4-stretch-explore/objects.md +++ b/Sprint-1/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? +ANswer: I get this ƒ log() { [native code] } Now enter just `console` in the Console, what output do you get back? +Answer: {debug: ƒ, error: ƒ, info: ƒ, log: ƒ, warn: ƒ, …} Try also entering `typeof console` +Answer: object Answer the following questions: What does `console` store? +Answer: Console stores a lot of objects like assert, clear, error, info, warn, log, debug and more. + What does the syntax `console.log` or `console.assert` mean? In particular, what does the `.` mean? +Answer: Console.log helps to print out a message. +Console.assert writes an error message to the console if the assertion is false. If the assertion is true, nothing happens. +`.` is used to access the properties or methods of an object From ac0f0114c2f8d368e5bbe54f5da78bf4a240f2c2 Mon Sep 17 00:00:00 2001 From: christelleb Date: Sun, 2 Nov 2025 19:33:07 +0000 Subject: [PATCH 14/34] count 1 explanation --- Sprint-1/1-key-exercises/1-count.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Sprint-1/1-key-exercises/1-count.js b/Sprint-1/1-key-exercises/1-count.js index 5d72c39ed..5db8da112 100644 --- a/Sprint-1/1-key-exercises/1-count.js +++ b/Sprint-1/1-key-exercises/1-count.js @@ -1,7 +1,8 @@ let count = 0; count = count + 1; +//console.log(count); // 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 -// Here, line 3 is a statement that is reassigning a value to count by incrementing it by 1. +// Line 3 is a statement that is is reassigning the value of count, to add 1 to the initial declaration which was 0. From 734265fed0b9c6f960f3eac443b5baeab11c2e55 Mon Sep 17 00:00:00 2001 From: christelleb Date: Sun, 2 Nov 2025 19:49:12 +0000 Subject: [PATCH 15/34] answer 2 - initials --- Sprint-1/1-key-exercises/1-count.js | 2 +- Sprint-1/1-key-exercises/2-initials.js | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Sprint-1/1-key-exercises/1-count.js b/Sprint-1/1-key-exercises/1-count.js index 5db8da112..aef90a997 100644 --- a/Sprint-1/1-key-exercises/1-count.js +++ b/Sprint-1/1-key-exercises/1-count.js @@ -5,4 +5,4 @@ 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 is a statement that is is reassigning the value of count, to add 1 to the initial declaration which was 0. +// Line 3 is a statement that is reassigning the value of count, to add 1 to the initial declaration which was 0. diff --git a/Sprint-1/1-key-exercises/2-initials.js b/Sprint-1/1-key-exercises/2-initials.js index 0238a71c6..72a29676c 100644 --- a/Sprint-1/1-key-exercises/2-initials.js +++ b/Sprint-1/1-key-exercises/2-initials.js @@ -5,7 +5,9 @@ let 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. -let initials = firstName[0] + middleName[0] + lastName[0]; +let initial = firstName.charAt(0) + middleName.charAt(0) + lastName.charAt(0); +//let initials = firstName[0] + middleName[0] + lastName[0]; +//console.log(initial); // https://www.google.com/search?q=get+first+character+of+string+mdn From 48ef768a60cbf5fa40a5f8be7fb4cbac4e502d6c Mon Sep 17 00:00:00 2001 From: christelleb Date: Sun, 2 Nov 2025 20:32:19 +0000 Subject: [PATCH 16/34] answer 3 - paths --- Sprint-1/1-key-exercises/3-paths.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Sprint-1/1-key-exercises/3-paths.js b/Sprint-1/1-key-exercises/3-paths.js index 98ab371c3..02d6280ad 100644 --- a/Sprint-1/1-key-exercises/3-paths.js +++ b/Sprint-1/1-key-exercises/3-paths.js @@ -16,8 +16,12 @@ 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 +//console.log(lastSlashIndex); +console.log(base); const dir = filePath.slice(0, lastSlashIndex); const ext = base.slice(base.lastIndexOf(".")); +console.log(`The extension part of directory ${dir} is ${ext}`); + // https://www.google.com/search?q=slice+mdn \ No newline at end of file From 2250a8f6dd1ac7b4b8aef5e1290e8691f5fcf470 Mon Sep 17 00:00:00 2001 From: christelleb Date: Sun, 2 Nov 2025 20:41:01 +0000 Subject: [PATCH 17/34] answer 4_raondom and floor --- Sprint-1/1-key-exercises/4-random.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Sprint-1/1-key-exercises/4-random.js b/Sprint-1/1-key-exercises/4-random.js index ad3ec00b3..1e904b92f 100644 --- a/Sprint-1/1-key-exercises/4-random.js +++ b/Sprint-1/1-key-exercises/4-random.js @@ -8,7 +8,8 @@ const num = Math.floor(Math.random() * (maximum - minimum + 1)) + minimum; // 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 -// Here, Math.rondom creates a random number between 0 to 1 and Math.floor rounds donw to the nearest integer. +// Here, Math.rondom creates a random number which is greater than or equals to 0 and less than 1. +// Math.floor rounds down to the nearest integer which is less than or equals to a given number // When creating a random number between 0 and 1, we will multiply it by the (100 - 1 + 1), then round it down to the nearest integer -// Then add all of that to 1. +// Then add all of that to 1 which is the minimun. From 19e577cb61d1eca7ae4bcd2956961f9b32d425a9 Mon Sep 17 00:00:00 2001 From: christelleb Date: Sun, 2 Nov 2025 20:43:34 +0000 Subject: [PATCH 18/34] Errors- 0.js --- Sprint-1/2-mandatory-errors/0.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Sprint-1/2-mandatory-errors/0.js b/Sprint-1/2-mandatory-errors/0.js index 65ad3030d..23625836e 100644 --- a/Sprint-1/2-mandatory-errors/0.js +++ b/Sprint-1/2-mandatory-errors/0.js @@ -1,2 +1,3 @@ //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? +// I added a two forward slashes at the start of each line to make them as comment. \ No newline at end of file From def478d4a51b5025834b580c84b3c327c7a9c16c Mon Sep 17 00:00:00 2001 From: christelleb Date: Sun, 2 Nov 2025 20:48:09 +0000 Subject: [PATCH 19/34] mandatory errors 1.js --- Sprint-1/2-mandatory-errors/1.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Sprint-1/2-mandatory-errors/1.js b/Sprint-1/2-mandatory-errors/1.js index 031839b47..6ef2ea979 100644 --- a/Sprint-1/2-mandatory-errors/1.js +++ b/Sprint-1/2-mandatory-errors/1.js @@ -2,3 +2,5 @@ let age = 33; age = age + 1; + +console.log(age); From f94aba5d32ed7dea73f161255f1a56150ba626aa Mon Sep 17 00:00:00 2001 From: christelleb Date: Sun, 2 Nov 2025 20:49:37 +0000 Subject: [PATCH 20/34] mandatory errors 2.js --- Sprint-1/2-mandatory-errors/2.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Sprint-1/2-mandatory-errors/2.js b/Sprint-1/2-mandatory-errors/2.js index 1426832b9..b4a6e9f8f 100644 --- a/Sprint-1/2-mandatory-errors/2.js +++ b/Sprint-1/2-mandatory-errors/2.js @@ -1,8 +1,9 @@ // Currently trying to print the string "I was born in Bolton" but it isn't working... // what's the error ? -console.log(`I was born in ${cityOfBirth}`); const cityOfBirth = "Bolton"; +console.log(`I was born in ${cityOfBirth}`); + // the variable 'cityOfBirth' had to be declared first before doing the console log. // This is because the JAvascript reads from top to bottom From 5af70097c0986a0a896a3863abe6146868f26a67 Mon Sep 17 00:00:00 2001 From: christelleb Date: Sun, 2 Nov 2025 21:00:19 +0000 Subject: [PATCH 21/34] mandatory errors 3.js --- Sprint-1/2-mandatory-errors/3.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sprint-1/2-mandatory-errors/3.js b/Sprint-1/2-mandatory-errors/3.js index fc0f40f1b..6a55a0df6 100644 --- a/Sprint-1/2-mandatory-errors/3.js +++ b/Sprint-1/2-mandatory-errors/3.js @@ -11,5 +11,5 @@ console.log (last4Digits) // Then try updating the expression last4Digits is assigned to, in order to get the correct value //Prediction: The slice method doesn't work on numbers and integers. It only works on strings and arrays -//Error message: The error message satates that "SLice is not a function" +//Error message: The error message states that "Slice is not a function" From 917e1b842f26a5ba980232ca6f3dd1b070691bc0 Mon Sep 17 00:00:00 2001 From: christelleb Date: Sun, 2 Nov 2025 21:06:14 +0000 Subject: [PATCH 22/34] Mandatory errors 4.js --- Sprint-1/2-mandatory-errors/4.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Sprint-1/2-mandatory-errors/4.js b/Sprint-1/2-mandatory-errors/4.js index e8902c0c5..aae4db627 100644 --- a/Sprint-1/2-mandatory-errors/4.js +++ b/Sprint-1/2-mandatory-errors/4.js @@ -1,2 +1,4 @@ const HourClockTime = "20:53"; -const hourClockTime = "08:53"; \ No newline at end of file +const hourClockTime = "08:53"; + +console.log(`The time in a 24hours format is ${HourClockTime} and in a 12 hours format is ${hourClockTime}`); \ No newline at end of file From 92389bd1cd7eb72635c8a653beab36f63d8eecc5 Mon Sep 17 00:00:00 2001 From: christelleb Date: Tue, 4 Nov 2025 11:13:50 +0000 Subject: [PATCH 23/34] mandatory error 4 update --- Sprint-1/2-mandatory-errors/4.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Sprint-1/2-mandatory-errors/4.js b/Sprint-1/2-mandatory-errors/4.js index aae4db627..48f68f0d5 100644 --- a/Sprint-1/2-mandatory-errors/4.js +++ b/Sprint-1/2-mandatory-errors/4.js @@ -1,4 +1,4 @@ -const HourClockTime = "20:53"; -const hourClockTime = "08:53"; +const hourClockTime24 = "20:53"; +const hourClockTime12 = "08:53"; -console.log(`The time in a 24hours format is ${HourClockTime} and in a 12 hours format is ${hourClockTime}`); \ No newline at end of file +console.log(`The time in a 24 hours format is ${hourClockTime24} and in a 12 hours format is ${hourClockTime12}`); \ No newline at end of file From 1b8e8a1daae97c5455a32bb8d32daddfb0c4ce3e Mon Sep 17 00:00:00 2001 From: christelleb Date: Fri, 7 Nov 2025 16:09:40 +0000 Subject: [PATCH 24/34] key errors 0.0 --- Sprint-2/1-key-errors/0.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/Sprint-2/1-key-errors/0.js b/Sprint-2/1-key-errors/0.js index 653d6f5a0..2b1ed13ff 100644 --- a/Sprint-2/1-key-errors/0.js +++ b/Sprint-2/1-key-errors/0.js @@ -1,13 +1,22 @@ // Predict and explain first... // =============> write your prediction here +// I believe the code is trying to write the first letter of a string on capital letter. But since the "str" declaration has already been used, we will need a new name // call the function capitalise with a string input // interpret the error message and figure out why an error is occurring -function capitalise(str) { - let str = `${str[0].toUpperCase()}${str.slice(1)}`; - return str; -} +// function capitalise(str) { +// let str = `${str[0].toUpperCase()}${str.slice(1)}`; +// return str; +// } -// =============> write your explanation here +// =============> write your explanation here: //There is a SynthaxError on line 9 of the code when we try to declare a new variable with the name "str". This is because the "str" name has already been used when declaring the function "capitalise". // =============> write your new code here +function capitalise(str) { + let name = `${str[0].toUpperCase()}${str.slice(1)}`; + return name; + } + let str = "emma"; + console.log(capitalise(str)); + + From d67f3f39d3d0cfa1262b5c5b88910ad429a330e0 Mon Sep 17 00:00:00 2001 From: christelleb Date: Fri, 7 Nov 2025 16:25:26 +0000 Subject: [PATCH 25/34] key error 0.1 --- Sprint-2/1-key-errors/1.js | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/Sprint-2/1-key-errors/1.js b/Sprint-2/1-key-errors/1.js index f2d56151f..11abde45f 100644 --- a/Sprint-2/1-key-errors/1.js +++ b/Sprint-2/1-key-errors/1.js @@ -1,20 +1,30 @@ // Predict and explain first... // Why will an error occur when this program runs? -// =============> write your prediction here +// Here the name decimalNumber in 'const decimalNumber' has already been used, so we will get a synthax Error for that line. // Try playing computer with the example to work out what is going on +// function convertToPercentage(decimalNumber) { +// const decimalNumber = 0.5; +// const percentage = `${decimalNumber * 100}%`; + +// return percentage; +// } + +// console.log(decimalNumber); + +// JavaScript is read from top to bottom, so when the processor reads an error, the program will stop running and will get the error message. +//The first error is on line 9 with the reuse of the variable declaration name of 'decimalNumber. +//The second error is on line 15 where we are trying to call the variable 'decimalNumber',which is a local variable inside the function. We cannot access this variable outside of the function. We will need to call the whole function. +// Finally, correct the code to fix the problem +// =============> write your new code here function convertToPercentage(decimalNumber) { - const decimalNumber = 0.5; - const percentage = `${decimalNumber * 100}%`; + const decimalNumber1 = 0.5; + const percentage = `${decimalNumber1 * 100}%`; return percentage; } -console.log(decimalNumber); - -// =============> write your explanation here +console.log(convertToPercentage()); -// Finally, correct the code to fix the problem -// =============> write your new code here From c63f76306cc8795aca13ff2e1671580ef44d0468 Mon Sep 17 00:00:00 2001 From: christelleb Date: Fri, 7 Nov 2025 16:32:21 +0000 Subject: [PATCH 26/34] key errors 0.2 --- Sprint-2/1-key-errors/2.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Sprint-2/1-key-errors/2.js b/Sprint-2/1-key-errors/2.js index aad57f7cf..813430a33 100644 --- a/Sprint-2/1-key-errors/2.js +++ b/Sprint-2/1-key-errors/2.js @@ -3,18 +3,22 @@ // this function should square any number but instead we're going to get an error -// =============> write your prediction of the error here +// =============> write your prediction of the error here: There will be an error because we put a value (3) as a function's parameter instead of using variable names. We also don't know where num comes from as we have't defined/ declared that. -function square(3) { - return num * num; -} +// function square(3) { +// return num * num; +// } -// =============> write the error message here +// =============> write the error message here: SyntaxError: Unexpected number -// =============> explain this error message here +// =============> explain this error message here: We get an error message saying that there is an unexpected number on line 8 (Syntax Error). // Finally, correct the code to fix the problem // =============> write your new code here +function square(num) { + return num * num; +} +console.log(square(3)); From 84683b44f7a31aa111b639c9a245e0066968b783 Mon Sep 17 00:00:00 2001 From: christelleb Date: Fri, 7 Nov 2025 16:50:55 +0000 Subject: [PATCH 27/34] mandatory debug 0.0 --- Sprint-2/2-mandatory-debug/0.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/Sprint-2/2-mandatory-debug/0.js b/Sprint-2/2-mandatory-debug/0.js index b27511b41..d7d9375a2 100644 --- a/Sprint-2/2-mandatory-debug/0.js +++ b/Sprint-2/2-mandatory-debug/0.js @@ -1,14 +1,19 @@ // Predict and explain first... -// =============> write your prediction here +// =============> write your prediction here: There is no return value value for the function multiply. Though it print the value of a * b in the function, this function cannot be called outside of the function (on line 9). So, it will be undefinded. WE need a return -function multiply(a, b) { - console.log(a * b); -} +// function multiply(a, b) { +// console.log(a * b); +// } -console.log(`The result of multiplying 10 and 32 is ${multiply(10, 32)}`); +// console.log(`The result of multiplying 10 and 32 is ${multiply(10, 32)}`); -// =============> write your explanation here +// =============> write your explanation here: We need to change console.log on line 6 to return so that we can call in outside of the function. // Finally, correct the code to fix the problem // =============> write your new code here +function multiply(a, b) { + return a * b; +} + +console.log(`The result of multiplying 10 and 32 is ${multiply(10, 32)}`); From 60f078fb6bc20a0b5c51f5771d27ceb4185d0525 Mon Sep 17 00:00:00 2001 From: christelleb Date: Fri, 7 Nov 2025 16:54:24 +0000 Subject: [PATCH 28/34] mandatory error 1.1 --- Sprint-2/2-mandatory-debug/1.js | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/Sprint-2/2-mandatory-debug/1.js b/Sprint-2/2-mandatory-debug/1.js index 37cedfbcf..5fe42234d 100644 --- a/Sprint-2/2-mandatory-debug/1.js +++ b/Sprint-2/2-mandatory-debug/1.js @@ -1,13 +1,18 @@ // Predict and explain first... -// =============> write your prediction here +// =============> write your prediction here: There is a semi column on line 5 after the return which separates it from line 6. We don't know what we are returning. -function sum(a, b) { - return; - a + b; -} +// function sum(a, b) { +// return; +// a + b; +// } -console.log(`The sum of 10 and 32 is ${sum(10, 32)}`); +// console.log(`The sum of 10 and 32 is ${sum(10, 32)}`); -// =============> write your explanation here +// =============> write your explanation here: SInce we don't know what we are returning, we will get an undefined value for the function. // Finally, correct the code to fix the problem // =============> write your new code here +function sum(a, b) { + return a + b; +} + +console.log(`The sum of 10 and 32 is ${sum(10, 32)}`); From 43b3249b0bf3ab16a14eddcc6add861abb4d6de1 Mon Sep 17 00:00:00 2001 From: christelleb Date: Fri, 7 Nov 2025 17:07:05 +0000 Subject: [PATCH 29/34] mandatory debug 1.2 --- Sprint-2/2-mandatory-debug/2.js | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/Sprint-2/2-mandatory-debug/2.js b/Sprint-2/2-mandatory-debug/2.js index 57d3f5dc3..2405c6658 100644 --- a/Sprint-2/2-mandatory-debug/2.js +++ b/Sprint-2/2-mandatory-debug/2.js @@ -1,24 +1,33 @@ // Predict and explain first... // Predict the output of the following code: -// =============> Write your prediction here +// =============> Write your prediction here: We are trying to convert the last figure (last index) of a number to a String. We will surely get "2", "5" and "6" -const num = 103; +// const num = 103; -function getLastDigit() { - return num.toString().slice(-1); -} +// function getLastDigit() { +// return num.toString().slice(-1); +// } -console.log(`The last digit of 42 is ${getLastDigit(42)}`); -console.log(`The last digit of 105 is ${getLastDigit(105)}`); -console.log(`The last digit of 806 is ${getLastDigit(806)}`); +// console.log(`The last digit of 42 is ${getLastDigit(42)}`); +// console.log(`The last digit of 105 is ${getLastDigit(105)}`); +// console.log(`The last digit of 806 is ${getLastDigit(806)}`); // Now run the code and compare the output to your prediction -// =============> write the output here +// =============> write the output here: After running our code, we saw that it printed "3" all over. Which comes from our initial declaration of num = 103 // Explain why the output is the way it is -// =============> write your explanation here +// =============> write your explanation here: We have declared num as a const which makes it unchangeable through out. We cannot redeclare it. The second thing is that we will need to add num inside of the parameter of the function. // Finally, correct the code to fix the problem // =============> write your new code here +let num = 103; + +function getLastDigit(num) { + return num.toString().slice(-1); +} + +console.log(`The last digit of 42 is ${getLastDigit(42)}`); +console.log(`The last digit of 105 is ${getLastDigit(105)}`); +console.log(`The last digit of 806 is ${getLastDigit(806)}`); // This program should tell the user the last digit of each number. // Explain why getLastDigit is not working properly - correct the problem From fa712303b5b8d3bc3ba9d26ec524d53e63dfd621 Mon Sep 17 00:00:00 2001 From: christelleb Date: Fri, 7 Nov 2025 18:19:33 +0000 Subject: [PATCH 30/34] mandatory implement 3.0 --- Sprint-2/3-mandatory-implement/1-bmi.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Sprint-2/3-mandatory-implement/1-bmi.js b/Sprint-2/3-mandatory-implement/1-bmi.js index 17b1cbde1..c4249b906 100644 --- a/Sprint-2/3-mandatory-implement/1-bmi.js +++ b/Sprint-2/3-mandatory-implement/1-bmi.js @@ -15,5 +15,9 @@ // It should return their Body Mass Index to 1 decimal place function calculateBMI(weight, height) { - // return the BMI of someone based off their weight and height -} \ No newline at end of file + const squareHeight = height * height; + const divide = weight / squareHeight; + let BMI = divide.toFixed(2); + return BMI; +} +console.log(calculateBMI(70, 1.73)); \ No newline at end of file From 12f7f2fe48ecf58251132b54901c15cb8e113aa8 Mon Sep 17 00:00:00 2001 From: christelleb Date: Fri, 7 Nov 2025 18:50:56 +0000 Subject: [PATCH 31/34] Upper Snake case --- Sprint-2/3-mandatory-implement/2-cases.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Sprint-2/3-mandatory-implement/2-cases.js b/Sprint-2/3-mandatory-implement/2-cases.js index 5b0ef77ad..7ef88eede 100644 --- a/Sprint-2/3-mandatory-implement/2-cases.js +++ b/Sprint-2/3-mandatory-implement/2-cases.js @@ -14,3 +14,9 @@ // You will need to come up with an appropriate name for the function // Use the MDN string documentation to help you find a solution // This might help https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase + +function upperSnakeCase(name){ + return name.replaceAll(' ', '_').toUpperCase(); + +} +console.log(upperSnakeCase("hello there")); From 431983a3ec950daba2fe9de89a7abbfe2fd57dcf Mon Sep 17 00:00:00 2001 From: christelleb Date: Fri, 7 Nov 2025 19:09:20 +0000 Subject: [PATCH 32/34] convert to pounds --- Sprint-2/3-mandatory-implement/3-to-pounds.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Sprint-2/3-mandatory-implement/3-to-pounds.js b/Sprint-2/3-mandatory-implement/3-to-pounds.js index 6265a1a70..fdd417fb2 100644 --- a/Sprint-2/3-mandatory-implement/3-to-pounds.js +++ b/Sprint-2/3-mandatory-implement/3-to-pounds.js @@ -4,3 +4,22 @@ // You will need to declare a function called toPounds with an appropriately named parameter. // You should call this function a number of times to check it works for different inputs + +//let penceString = "399p"; + +function convertToPounds(penceString){ + + const penceStringWithoutTrailingP = penceString.substring(0, penceString.length - 1); + const paddedPenceNumberString = penceStringWithoutTrailingP.padStart(3, "0"); + const pounds = paddedPenceNumberString.substring(0, paddedPenceNumberString.length - 2); + const pence = paddedPenceNumberString.substring(paddedPenceNumberString.length - 2).padEnd(2, "0"); + return `£${pounds}.${pence}`; +} + +console.log(convertToPounds("459p")); +console.log(convertToPounds("9p")); +console.log(convertToPounds("399p")); + + + + From 98bba93dad237fe440fdcd4bc26f098b95010525 Mon Sep 17 00:00:00 2001 From: christelleb Date: Fri, 7 Nov 2025 19:38:21 +0000 Subject: [PATCH 33/34] time format display --- Sprint-2/4-mandatory-interpret/time-format.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Sprint-2/4-mandatory-interpret/time-format.js b/Sprint-2/4-mandatory-interpret/time-format.js index 7c98eb0e8..b0fbf553d 100644 --- a/Sprint-2/4-mandatory-interpret/time-format.js +++ b/Sprint-2/4-mandatory-interpret/time-format.js @@ -10,6 +10,7 @@ function formatTimeDisplay(seconds) { return `${pad(totalHours)}:${pad(remainingMinutes)}:${pad(remainingSeconds)}`; } +console.log(formatTimeDisplay(61)); // You will need to play computer with this example - use the Python Visualiser https://pythontutor.com/visualize.html#mode=edit // to help you answer these questions @@ -17,18 +18,18 @@ function formatTimeDisplay(seconds) { // Questions // a) When formatTimeDisplay is called how many times will pad be called? -// =============> write your answer here +// =============> write your answer here: 3 times (for hours, minutes and seconds) // Call formatTimeDisplay with an input of 61, now answer the following: // b) What is the value assigned to num when pad is called for the first time? -// =============> write your answer here +// =============> write your answer here: 0 // c) What is the return value of pad is called for the first time? -// =============> write your answer here +// =============> write your answer here: "00" // d) What is the value assigned to num when pad is called for the last time in this program? Explain your answer -// =============> write your answer here +// =============> write your answer here: 1 // e) What is the return value assigned to num when pad is called for the last time in this program? Explain your answer -// =============> write your answer here +// =============> write your answer here: "01" From c5f6681b4477acf20c7af61611e5149015e33953 Mon Sep 17 00:00:00 2001 From: christelleb Date: Fri, 7 Nov 2025 19:48:59 +0000 Subject: [PATCH 34/34] time format --- Sprint-2/5-stretch-extend/format-time.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Sprint-2/5-stretch-extend/format-time.js b/Sprint-2/5-stretch-extend/format-time.js index 32a32e66b..dd3fb353b 100644 --- a/Sprint-2/5-stretch-extend/format-time.js +++ b/Sprint-2/5-stretch-extend/format-time.js @@ -23,3 +23,6 @@ console.assert( currentOutput2 === targetOutput2, `current output: ${currentOutput2}, target output: ${targetOutput2}` ); +console.log(`The current output of ${currentOutput} is the same as ${targetOutput}`); +console.log(`The second current output ${currentOutput2} is equals to ${targetOutput2}`); +