From 0015f4842b249e428a4f7423a8e10ca2090bbc1c Mon Sep 17 00:00:00 2001 From: mandip sanger Date: Sat, 5 Sep 2026 14:43:37 +0100 Subject: [PATCH 01/14] count.js --- 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..aca231a7a 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 is reassigning the value of the variable count by adding 1 to its initial value. +// The = sign is assigning the result of the expression on the right side (count + 1) to the variable count on the left side. From 8b470ccbc7bf771d3dc02f25f42f4be5e7d41853 Mon Sep 17 00:00:00 2001 From: mandip sanger Date: Sat, 5 Sep 2026 15:01:22 +0100 Subject: [PATCH 02/14] intials.js --- Sprint-2/1-key-exercises/2-initials.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Sprint-2/1-key-exercises/2-initials.js b/Sprint-2/1-key-exercises/2-initials.js index 964c9563c..f3c7e3667 100644 --- a/Sprint-2/1-key-exercises/2-initials.js +++ b/Sprint-2/1-key-exercises/2-initials.js @@ -1,6 +1,6 @@ -const firstName = "Creola"; -const middleName = "Katherine"; -const lastName = "Johnson"; +let firstName = "Creola"; +let middleName = "Katherine"; +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. From 2135afb834576aa774d6eb76addfc4b98ff12a94 Mon Sep 17 00:00:00 2001 From: mandip sanger Date: Sat, 5 Sep 2026 15:03:11 +0100 Subject: [PATCH 03/14] file javas fundamentals --- Sprint-2/1-key-exercises/2-initials.js | 3 ++- Sprint-2/1-key-exercises/3-paths.js | 9 ++++++--- Sprint-2/1-key-exercises/4-random.js | 5 +++++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/Sprint-2/1-key-exercises/2-initials.js b/Sprint-2/1-key-exercises/2-initials.js index f3c7e3667..6ef71d66c 100644 --- a/Sprint-2/1-key-exercises/2-initials.js +++ b/Sprint-2/1-key-exercises/2-initials.js @@ -5,6 +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. -const initials = ``; +let initials = `${firstName[0]}${middleName[0]}${lastName[0]}`; // https://www.google.com/search?q=get+first+character+of+string+mdn +console.log(initials); diff --git a/Sprint-2/1-key-exercises/3-paths.js b/Sprint-2/1-key-exercises/3-paths.js index ab90ebb28..7b387e394 100644 --- a/Sprint-2/1-key-exercises/3-paths.js +++ b/Sprint-2/1-key-exercises/3-paths.js @@ -17,7 +17,10 @@ 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 +console.log(dir); +console.log(ext); + +// 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 292f83aab..c13d3be44 100644 --- a/Sprint-2/1-key-exercises/4-random.js +++ b/Sprint-2/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 +// num represents a random integer between the minimum and maximum values (inclusive). +// The expression Math.random() generates a random decimal number between 0 (inclusive) and 1 (exclusive). +// By multiplying this value by (maximum - minimum + 1), we scale it to the desired range. +// The Math.floor() function then rounds this value down to the nearest whole number, ensuring we get an integer. +// Finally, we add the minimum value to shift the range to start from the minimum instead of 0. From e331dbb644ff14ef924cb1d2f3803a60369f6ae3 Mon Sep 17 00:00:00 2001 From: mandip sanger Date: Sat, 5 Sep 2026 15:09:32 +0100 Subject: [PATCH 04/14] mandatory error1 --- Sprint-2/2-mandatory-errors/1.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Sprint-2/2-mandatory-errors/1.js b/Sprint-2/2-mandatory-errors/1.js index 7a43cbea7..e459da892 100644 --- a/Sprint-2/2-mandatory-errors/1.js +++ b/Sprint-2/2-mandatory-errors/1.js @@ -1,4 +1,7 @@ // trying to create an age variable and then reassign the value by 1 -const age = 33; +// const age = 33; +// age = age + 1; + +let age = 33; age = age + 1; From 74a3d77a63e268b8c485d8c8d53b635a800747ee Mon Sep 17 00:00:00 2001 From: mandip sanger Date: Sat, 5 Sep 2026 15:10:54 +0100 Subject: [PATCH 05/14] mandatory error 2 --- Sprint-2/2-mandatory-errors/2.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Sprint-2/2-mandatory-errors/2.js b/Sprint-2/2-mandatory-errors/2.js index e09b89831..e4809c5b7 100644 --- a/Sprint-2/2-mandatory-errors/2.js +++ b/Sprint-2/2-mandatory-errors/2.js @@ -1,5 +1,10 @@ // Currently trying to print the string "I was born in Bolton" but it isn't working... // what's the error ? +const cityOfBirth = "Bolton"; console.log(`I was born in ${cityOfBirth}`); -const cityOfBirth = "Bolton"; + +// return has not been defined before it is used in the console.log statement. +// To fix this, you should declare and assign a value to the variable cityOfBirth before using it in the console.log statement. +// To do this, you can move the line const cityOfBirth = "Bolton"; above the console.log statement. +// This way, the variable will be defined before it is used, and the code will work as expected. From 97aaeda27fea91d7cdb4be96de8d3f89afe3229f Mon Sep 17 00:00:00 2001 From: mandip sanger Date: Sat, 5 Sep 2026 15:18:13 +0100 Subject: [PATCH 06/14] mandatory errors 3 --- Sprint-2/2-mandatory-errors/3.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Sprint-2/2-mandatory-errors/3.js b/Sprint-2/2-mandatory-errors/3.js index ec101884d..8d5d6b276 100644 --- a/Sprint-2/2-mandatory-errors/3.js +++ b/Sprint-2/2-mandatory-errors/3.js @@ -1,5 +1,6 @@ const cardNumber = 4533787178994213; -const last4Digits = cardNumber.slice(-4); +const last4Digits = cardNumber.toString().slice(-4); +console.log(last4Digits); // The last4Digits variable should store the last 4 digits of cardNumber // However, the code isn't working @@ -7,3 +8,5 @@ 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 +// returns an error because the slice method is not available for numbers. The slice method is a string method, and cardNumber is a number. +// To fix this, we need to convert cardNumber to a string before using the slice method. We can do this by using the toString() method or by using template literals. From ffe85e66aa1ff1348eb0a5cd7f0f842e8c64e0cf Mon Sep 17 00:00:00 2001 From: mandip sanger Date: Sat, 5 Sep 2026 15:19:47 +0100 Subject: [PATCH 07/14] mandatory errors 4 --- Sprint-2/2-mandatory-errors/4.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Sprint-2/2-mandatory-errors/4.js b/Sprint-2/2-mandatory-errors/4.js index 5f86c730b..cd0b28a0d 100644 --- a/Sprint-2/2-mandatory-errors/4.js +++ b/Sprint-2/2-mandatory-errors/4.js @@ -1,2 +1,9 @@ -const 12HourClockTime = "8:53pm"; -const 24hourClockTime = "20:53"; +const twelveHourClockTime = "8:53pm"; +const twentyFourHourClockTime = "20:53"; + +// 12 Hour clock time is a string that represents the time in 12-hour format, while 24hourClockTime is a string that represents the time in 24-hour format. +// To convert 12HourClockTime to 24-hour format, we can use the following steps: +// 1. Split the string into hours and minutes using the split() method. +// 2. Check if the time is in the "pm" period. If it is, add 12 to the hours (unless it's 12pm). +// 3. If the time is in the "am" period and the hour is 12, set the hour to 0. +// 4. Format the hours and minutes into a string in 24-hour format. From cf901b61b9268a2c623c8bd7ec320742d3e8058d Mon Sep 17 00:00:00 2001 From: mandip sanger Date: Sat, 5 Sep 2026 15:21:01 +0100 Subject: [PATCH 08/14] percentages --- 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 e24ecb8e1..da7326020 100644 --- a/Sprint-2/3-mandatory-interpret/1-percentage-change.js +++ b/Sprint-2/3-mandatory-interpret/1-percentage-change.js @@ -19,4 +19,4 @@ console.log(`The percentage change is ${percentageChange}`); // d) Identify all the lines that are variable declarations -// e) Describe what the expression Number(carPrice.replaceAll(",","")) is doing - what is the purpose of this expression? +// e) Describe what the expression Number(carPrice.replaceAll(",","")) is doing - what is the purpose of this expression? \ No newline at end of file From 3585299d44deda1b3efccb500683eec6525b7e93 Mon Sep 17 00:00:00 2001 From: mandip sanger Date: Sat, 5 Sep 2026 15:21:52 +0100 Subject: [PATCH 09/14] time format --- Sprint-2/3-mandatory-interpret/2-time-format.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Sprint-2/3-mandatory-interpret/2-time-format.js b/Sprint-2/3-mandatory-interpret/2-time-format.js index 47d239558..599e98dfe 100644 --- a/Sprint-2/3-mandatory-interpret/2-time-format.js +++ b/Sprint-2/3-mandatory-interpret/2-time-format.js @@ -23,3 +23,11 @@ console.log(result); // e) What do you think the variable result represents? Can you think of a better name for this variable? // f) Try experimenting with different values of movieLength. Will this code work for all values of movieLength? Explain your answer + +//There are 6 variables declared in this program: movieLength, remainingSeconds, totalMinutes, remainingMinutes, totalHours, and result. +// There is 1 function calls in this program: console.log(), and the three arithmetic operations used to calculate remainingSeconds, totalMinutes, and remainingMinutes. +// The expression movieLength % 60 calculates the remainder when movieLength is divided by 60. This gives the number of seconds remaining after converting the total length of the movie into minutes and hours. +// Interpret line 4, the expression assigned to totalMinutes calculates the total number of minutes in the movie by subtracting the remaining seconds from the total length of the movie and dividing by 60. +// The variable result represents the formatted string of the movie length in hours, minutes, and seconds. A better name for this variable could be formattedMovieLength or movieLengthString. +// This code will work for all values of movieLength. +// experimenting with different values of movieLength, such as 1:51:6, 0:55:33 etc., will show that the code correctly formats the length of the movie in hours, minutes, and seconds for all positive values. From 60a9900b21367dd6e5910f32099543da9dedd144 Mon Sep 17 00:00:00 2001 From: mandip sanger Date: Sat, 5 Sep 2026 15:22:58 +0100 Subject: [PATCH 10/14] to pounds --- Sprint-2/3-mandatory-interpret/3-to-pounds.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Sprint-2/3-mandatory-interpret/3-to-pounds.js b/Sprint-2/3-mandatory-interpret/3-to-pounds.js index 60c9ace69..0104e8d1f 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 @@ -17,7 +17,7 @@ const pence = paddedPenceNumberString console.log(`£${pounds}.${pence}`); -// This program takes a string representing a price in pence +// This program takes a string representindng a price in pence // The program then builds up a string representing the price in pounds // You need to do a step-by-step breakdown of each line in this program @@ -25,3 +25,9 @@ console.log(`£${pounds}.${pence}`); // To begin, we can start with // 1. const penceString = "399p": initialises a string variable with the value "399p" +// const penceString = "399p": initialises a string variable with the value "399p" +// 1. const penceStringWithoutTrailingP = penceString.substring(0, penceString.length - 1): creates a new string variable that removes the last character "p" from the original string +// 2. const paddedPenceNumberString = penceStringWithoutTrailingP.padStart(3, "0"): creates a new string variable that pads the original string with leading zeros to make it 3 characters long +// 3. const pounds = paddedPenceNumberString.substring(0, paddedPenceNumberString.length - 2): extracts the pounds portion of the string by taking all characters except the last two +// 4. const pence = paddedPenceNumberString.substring(paddedPenceNumberString.length - 2).padEnd(2, "0"): extracts the pence portion of the string by taking the last two characters and pads it with trailing zeros to make it 2 characters long +// 5. console.log(`£${pounds}.${pence}`): outputs the final formatted price in pounds and pence to the console From 729eef2c6a8c785900282de7abf5ee94e874892b Mon Sep 17 00:00:00 2001 From: mandip sanger Date: Sat, 5 Sep 2026 15:36:12 +0100 Subject: [PATCH 11/14] count.js --- Sprint-2/1-key-exercises/1-count.js | 1 + 1 file changed, 1 insertion(+) diff --git a/Sprint-2/1-key-exercises/1-count.js b/Sprint-2/1-key-exercises/1-count.js index aca231a7a..d0d63d893 100644 --- a/Sprint-2/1-key-exercises/1-count.js +++ b/Sprint-2/1-key-exercises/1-count.js @@ -6,3 +6,4 @@ count = count + 1; // Describe what line 3 is doing, in particular focus on what = is doing // Line 3 is reassigning the value of the variable count by adding 1 to its initial value. // The = sign is assigning the result of the expression on the right side (count + 1) to the variable count on the left side. +// From 7c00cb032943921ace7e571ae5bdf4394481b1ff Mon Sep 17 00:00:00 2001 From: mandip sanger Date: Sat, 5 Sep 2026 16:14:33 +0100 Subject: [PATCH 12/14] 0.js --- Sprint-2/2-mandatory-errors/0.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sprint-2/2-mandatory-errors/0.js b/Sprint-2/2-mandatory-errors/0.js index cf6c5039f..74c5bc229 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 \ No newline at end of file From e5c1675e5efbed5461639fac4d23c5513fa2354e Mon Sep 17 00:00:00 2001 From: mandip sanger Date: Sat, 5 Sep 2026 16:27:06 +0100 Subject: [PATCH 13/14] original 0.js --- Sprint-2/2-mandatory-errors/0.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sprint-2/2-mandatory-errors/0.js b/Sprint-2/2-mandatory-errors/0.js index 74c5bc229..cf6c5039f 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? \ No newline at end of file From 98ceee2a4e71f437595203b4394a60f6e393c904 Mon Sep 17 00:00:00 2001 From: mandip sanger Date: Sat, 5 Sep 2026 16:30:29 +0100 Subject: [PATCH 14/14] replacing count.js --- Sprint-2/1-key-exercises/1-count.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/Sprint-2/1-key-exercises/1-count.js b/Sprint-2/1-key-exercises/1-count.js index d0d63d893..117bcb2b6 100644 --- a/Sprint-2/1-key-exercises/1-count.js +++ b/Sprint-2/1-key-exercises/1-count.js @@ -4,6 +4,3 @@ 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 reassigning the value of the variable count by adding 1 to its initial value. -// The = sign is assigning the result of the expression on the right side (count + 1) to the variable count on the left side. -//