From a5f11ece0adb1b2e6a8832589d8ec53df606c208 Mon Sep 17 00:00:00 2001 From: khalidbih Date: Wed, 18 Feb 2026 14:58:00 +0000 Subject: [PATCH 01/12] complete 1-count exercise --- Sprint-1/1-key-exercises/1-count.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Sprint-1/1-key-exercises/1-count.js b/Sprint-1/1-key-exercises/1-count.js index 117bcb2b6..7857ef6e8 100644 --- a/Sprint-1/1-key-exercises/1-count.js +++ b/Sprint-1/1-key-exercises/1-count.js @@ -4,3 +4,6 @@ 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 updates the variable count, It takes the value on the right (count + 1, which is 0 + 1 = 1), +// and stores it back into `count` using the = assignment operator. + From 321c1d224bf849a7e3a4ca936f99b632b12e36fb Mon Sep 17 00:00:00 2001 From: khalidbih Date: Wed, 18 Feb 2026 15:01:01 +0000 Subject: [PATCH 02/12] complete 2-initials exercise --- Sprint-1/1-key-exercises/2-initials.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Sprint-1/1-key-exercises/2-initials.js b/Sprint-1/1-key-exercises/2-initials.js index 47561f617..8fea4882a 100644 --- a/Sprint-1/1-key-exercises/2-initials.js +++ b/Sprint-1/1-key-exercises/2-initials.js @@ -5,7 +5,10 @@ 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]); +console.log (initials); + + // https://www.google.com/search?q=get+first+character+of+string+mdn From 64ab32eef80d30069b89c3d383c23d68043cf54c Mon Sep 17 00:00:00 2001 From: khalidbih Date: Wed, 18 Feb 2026 16:18:53 +0000 Subject: [PATCH 03/12] complete 3-path exercise --- 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..2177bc07b 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 622028fd66a52236782fc3c416cf6a1a438bf509 Mon Sep 17 00:00:00 2001 From: khalidbih Date: Fri, 20 Feb 2026 19:42:15 +0000 Subject: [PATCH 04/12] complete 4-random exercise --- Sprint-1/1-key-exercises/4-random.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Sprint-1/1-key-exercises/4-random.js b/Sprint-1/1-key-exercises/4-random.js index 292f83aab..08c7d1373 100644 --- a/Sprint-1/1-key-exercises/4-random.js +++ b/Sprint-1/1-key-exercises/4-random.js @@ -4,6 +4,10 @@ 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 is a randomly generated whole number in the interval [1, 100], meaning it can be any number from 1 to 100. It is created by generating a random decimal, +// rounding it down, and shifting it to start at 1. // 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 +// When I ran the program several times, num always produced a different whole number between 1 and 100, +// This shows that the program generates a new random number each time it runs. \ No newline at end of file From f76840d42fba82a6fb5d859d484482765090d0dd Mon Sep 17 00:00:00 2001 From: khalidbih Date: Fri, 20 Feb 2026 19:47:42 +0000 Subject: [PATCH 05/12] complete 0.js exercise --- 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 cbbe383de695a24f2c37b5c897aed03e65a1f038 Mon Sep 17 00:00:00 2001 From: khalidbih Date: Fri, 20 Feb 2026 22:16:28 +0000 Subject: [PATCH 06/12] complete 1.js exercise --- Sprint-1/2-mandatory-errors/1.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Sprint-1/2-mandatory-errors/1.js b/Sprint-1/2-mandatory-errors/1.js index 7a43cbea7..003117be0 100644 --- a/Sprint-1/2-mandatory-errors/1.js +++ b/Sprint-1/2-mandatory-errors/1.js @@ -1,4 +1,5 @@ // trying to create an age variable and then reassign the value by 1 -const age = 33; +let age = 33; age = age + 1; +console.log(age) \ No newline at end of file From e3ae3a853acb7f281e4f9392570d62f36edb3113 Mon Sep 17 00:00:00 2001 From: khalidbih Date: Fri, 20 Feb 2026 22:28:50 +0000 Subject: [PATCH 07/12] Fix error caused by using const before declaration --- Sprint-1/2-mandatory-errors/2.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Sprint-1/2-mandatory-errors/2.js b/Sprint-1/2-mandatory-errors/2.js index e09b89831..96a19d537 100644 --- a/Sprint-1/2-mandatory-errors/2.js +++ b/Sprint-1/2-mandatory-errors/2.js @@ -1,5 +1,6 @@ // 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}`); +// The error happens because cityOfBirth is used before it is declared, +// Variables declared with const cannot be accessed before their declaration. const cityOfBirth = "Bolton"; +console.log(`I was born in ${cityOfBirth}`); From 974f8af54b191c4419b7c94698573e297abda98c Mon Sep 17 00:00:00 2001 From: khalidbih Date: Sat, 21 Feb 2026 00:25:56 +0000 Subject: [PATCH 08/12] Fix last4Digits, convert number to string before slicing --- Sprint-1/2-mandatory-errors/3.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Sprint-1/2-mandatory-errors/3.js b/Sprint-1/2-mandatory-errors/3.js index ec101884d..f678a010e 100644 --- a/Sprint-1/2-mandatory-errors/3.js +++ b/Sprint-1/2-mandatory-errors/3.js @@ -1,9 +1,13 @@ const cardNumber = 4533787178994213; -const last4Digits = cardNumber.slice(-4); +const last4Digits = cardNumber.toString().slice(-4); +console.log(last4Digits); +console.log(cardNumber.toString().slice(-4)); // 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 +// the code won’t work because cardNumber is a number, and .slice() only works on strings or arrays. // 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 +// Convert cardNumber to a string first, then use .slice(-4) to get the last 4 digits From e33cbfdec4d3de1d9bd021f858c0860290479d8c Mon Sep 17 00:00:00 2001 From: khalidbih Date: Sat, 21 Feb 2026 00:40:57 +0000 Subject: [PATCH 09/12] Fix 12-hour and 24-hour clock values --- Sprint-1/2-mandatory-errors/4.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sprint-1/2-mandatory-errors/4.js b/Sprint-1/2-mandatory-errors/4.js index 21dad8c5d..5b1e66438 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 time24h = "20:53"; +const time12h = "08:53"; \ No newline at end of file From da1bcacefd988f96be276dfdf47c90b1c894237f Mon Sep 17 00:00:00 2001 From: khalidbih Date: Tue, 24 Feb 2026 00:22:03 +0000 Subject: [PATCH 10/12] Convert price strings to numbers for calculation --- Sprint-1/3-mandatory-interpret/1-percentage-change.js | 7 ++++++- 1 file changed, 6 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..d8140912c 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,16 @@ 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 functions, lines are 4-5-10. // 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? +// the error is coming from line 5, because there wasn't a comma between argument in replaceAll(",", "")). // c) Identify all the lines that are variable reassignment statements +// the lines that variable reassignment statements are 4 and 5. // d) Identify all the lines that are variable declarations +// The variable declaration lines are 1-2-7-8 // e) Describe what the expression Number(carPrice.replaceAll(",","")) is doing - what is the purpose of this expression? +// Converts the string "10,000" into the number 10000 by removing commas so math can be done. From 885713aacb29eec60571498cc4d915d4d9c3d7e2 Mon Sep 17 00:00:00 2001 From: khalidbih Date: Tue, 24 Feb 2026 00:41:44 +0000 Subject: [PATCH 11/12] complete exercise time format --- 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..6723192fd 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 declarations lines 1-3-4-6-7 and 9. // b) How many function calls are there? +// 1 function call. // c) Using documentation, explain what the expression movieLength % 60 represents // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators +// it gives the number of seconds left after counting all full minutes. // d) Interpret line 4, what does the expression assigned to totalMinutes mean? +// the total number of complete minutes in the movie. // e) What do you think the variable result represents? Can you think of a better name for this variable? +// represents the hours,minutes,seconds of the movie.better name for the variable can be (movieTime). // f) Try experimenting with different values of movieLength. Will this code work for all values of movieLength? Explain your answer +// The code won’t work for all values of movieLength. If it’s negative, the result doesn’t make sense because time cannot be negative. \ No newline at end of file From 7d36f59857e7e7675bfd24093c8d9de2fee473d8 Mon Sep 17 00:00:00 2001 From: khalidbih Date: Tue, 24 Feb 2026 00:55:48 +0000 Subject: [PATCH 12/12] Format pence string into pounds and pence output --- Sprint-1/3-mandatory-interpret/3-to-pounds.js | 6 ++++++ 1 file changed, 6 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..e2a689e8d 100644 --- a/Sprint-1/3-mandatory-interpret/3-to-pounds.js +++ b/Sprint-1/3-mandatory-interpret/3-to-pounds.js @@ -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" +// 2. line (3) it returns a substring from the given string, it takes penceString and returns the substring that start with index 0 ends one character before the end we have 399p it returns 399. +// 3. line (8) We now have the string "399", which has 3 characters. This ensures we can split it into pounds and pence correctly. +// 4. line (9) We have a start and an end index. We start at 0 and end two characters before the string’s end, because the last two characters represent the pence. This gives us the pounds part. +// 5. line (14) This takes the last two characters of the string, which represent the pence portion of the price.it also Extracts the pence digits safely and makes sure it’s always two digits, even if the original number was small. +// 6. line (18) This prints the final price to the console in pounds and pence, using the pounds and pence variables to show it like £3.99. +