Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
81bdea7
Updated readme file with small changes
hamdiheb Nov 27, 2025
81dbb97
Answered 1-count exerice in sprint 1 exercice 1
hamdiheb Nov 27, 2025
5d2d3f6
Done exercice 2 of sprint 1/1-key-Exercices
hamdiheb Nov 27, 2025
9ff3542
Done Exercie 3 of 1 key exerices on Sprint 1
hamdiheb Nov 27, 2025
b707e05
Done exerice 4-random.js 1-key-exercices from sprint 1
hamdiheb Nov 27, 2025
af076c7
Done exercice on 2-mandatory-errors from sprint1
hamdiheb Nov 27, 2025
56222d3
Exercice 2 2-mandatory-errors from sprint 1
hamdiheb Nov 27, 2025
76a3a6a
Exerice 3 2-Mandatory-errors from sprint1
hamdiheb Nov 27, 2025
b9c6fc4
Exercice 4 2-mandatory-errors on sprint 1
hamdiheb Nov 27, 2025
6264b45
Exercice 5 2-mandatory-errors sprint1
hamdiheb Nov 27, 2025
683d011
Exercice 1 3-mandatory-interpret on sprint1
hamdiheb Nov 27, 2025
2d8ac52
Exercice 2 3-mandatory-interpret section sprint 1
hamdiheb Nov 30, 2025
9254f18
Exercice 3 to pound from 3-mandatory-interpret sprint1
hamdiheb Nov 30, 2025
ab35d42
Exercice chrome.md from 4-stretch-explore on sprint1
hamdiheb Nov 30, 2025
3a83fe1
Done objects exercice from 4-stretch-explore on sprint1
hamdiheb Nov 30, 2025
521400a
Predict what the function operating for 0.js exercice sprint 2 on 1ke…
hamdiheb Dec 3, 2025
669efae
Done 0.js sprint2 1keyerrors
hamdiheb Dec 3, 2025
31efefe
Done 1.js sprint2 1keyerrors
hamdiheb Dec 3, 2025
52e8dff
Done 2.js sprint 1 folder 1-key-errorrs
hamdiheb Dec 4, 2025
6bbb65f
Done exercice 0.js sprint2 folder 2-mandatory-debug
hamdiheb Dec 4, 2025
832d6d2
Exercice 1 and 2 sprint 2 from 2 mandatory debug
hamdiheb Dec 4, 2025
a47b38d
Done exerice 1-bmi.js sprint 2 from 3 mandatory implement
hamdiheb Dec 4, 2025
6c934a7
Done 2 cases sprint 3 from 3 mandatory implement
hamdiheb Dec 4, 2025
413999e
Used code from sprint 1 to pound into exercice to pound from sprint 2…
hamdiheb Dec 4, 2025
8f845e2
Done Exercice time-format sprint 2 on 4 mandatory interpret folder
hamdiheb Dec 7, 2025
af11c02
Edited 4-random exercice 1key exercicses sprint1
hamdiheb Dec 7, 2025
24b3688
Done format-time exercice 5-stretch-extend sprint 2
hamdiheb Dec 7, 2025
3ebec3f
Exercice angle 1keyimplement on sprint3
hamdiheb Dec 16, 2025
d0d95a1
Proper franction exercice 1keyimplement sprint3
hamdiheb Dec 16, 2025
2f020c0
get card value exercice 1keyimplement sprint 3
hamdiheb Dec 16, 2025
eb43908
Testing exercices on 2-mandatory sprint3
hamdiheb Dec 17, 2025
0862052
Exercice 3-mandatory-practice
hamdiheb Dec 17, 2025
912626b
Correct my get oridinal exercice sprint3
hamdiheb Dec 22, 2025
ec9c653
Card validator exercice sprint3
hamdiheb Dec 22, 2025
c7c839b
Added more tests to get ordinal number exercice
hamdiheb Dec 22, 2025
bc1deb7
Find exercice sprint3
hamdiheb Dec 22, 2025
9b3c2fa
password validator exercice sprint3
hamdiheb Dec 22, 2025
7d8236c
Password validator sprint 3
hamdiheb Dec 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Sprint-1/1-key-exercises/1-count.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
// In line 3 we are adding 1 to the current value of count, the = symbole is the assignment operator which means store the value on the right side into the variable on the left side
3 changes: 2 additions & 1 deletion Sprint-1/1-key-exercises/2-initials.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ 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

9 changes: 7 additions & 2 deletions Sprint-1/1-key-exercises/3-paths.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,18 @@

const filePath = "/Users/mitch/cyf/Module-JS1/week-1/interpret/file.txt";
const lastSlashIndex = filePath.lastIndexOf("/");
console.log(lastSlashIndex);
const base = filePath.slice(lastSlashIndex + 1);
console.log(base);
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(filePath[0],lastSlashIndex);
const ext = filePath.slice(filePath.lastIndexOf("."),filePath.length);

console.log(`The dir Part is ${dir} and the ext Part is ${ext}`);

// https://www.google.com/search?q=slice+mdn
8 changes: 7 additions & 1 deletion Sprint-1/1-key-exercises/4-random.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
const minimum = 1;
const maximum = 100;

const num = Math.floor(Math.random() * (maximum - minimum + 1)) + minimum;
let random_number=Math.random(); //Math.random() is pre defined javascript function which generate an integer or float
const num = Math.floor(random_number * (maximum - minimum + 1)) + minimum; //Math.floor is pre defined javascript function which return the closest lowest number to the gived parameter

console.log(`Our random number is ${random_number} and if we multiply it by ${maximum+minimum+1} it will be = ${random_number * (maximum - minimum +1) + minimum} and the closest down round is ${num}`);

// In this exercise, you will need to work out what num represents?
// 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 represent integer number round between 1 and 100
4 changes: 2 additions & 2 deletions Sprint-1/2-mandatory-errors/0.js
Original file line number Diff line number Diff line change
@@ -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?
//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?
4 changes: 2 additions & 2 deletions Sprint-1/2-mandatory-errors/1.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// trying to create an age variable and then reassign the value by 1

const age = 33;
// it's a const variable , const variable can't be changed we need to change it to let
let age = 33;
age = age + 1;
5 changes: 3 additions & 2 deletions Sprint-1/2-mandatory-errors/2.js
Original file line number Diff line number Diff line change
@@ -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}`);
//cityofbirth is intialized after console.log which can not be readable only if it is before the console.log
const cityOfBirth = "Bolton";
console.log(`I was born in ${cityOfBirth}`);

4 changes: 3 additions & 1 deletion Sprint-1/2-mandatory-errors/3.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
const cardNumber = 4533787178994213;
const cardNumber = '4533787178994213';
const last4Digits = cardNumber.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
//.slice is working only on string or array and cardNumber values are integer
// Then run the code and see what error it gives.
//The error 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
6 changes: 4 additions & 2 deletions Sprint-1/2-mandatory-errors/4.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
const 12HourClockTime = "20:53";
const 24hourClockTime = "08:53";
const _12HourClockTime = "20:53";
const _24hourClockTime = "08:53";

//Javascript variables name can not start with a number, only a letter,underscore or dollar sign
7 changes: 6 additions & 1 deletion Sprint-1/3-mandatory-interpret/1-percentage-change.js
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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
//We have called function number twice , line 4 and line 5

// 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 replaceall method doesn't have the correct paramter as comma is missing

// c) Identify all the lines that are variable reassignment statements
//line 4 and 5 are variable reassignment

// d) Identify all the lines that are variable declarations
//line 1,2,7 and 8 are lines for variable declarations

// e) Describe what the expression Number(carPrice.replaceAll(",","")) is doing - what is the purpose of this expression?
//replaceall method replace the existent variable with different variable given on paramter for both
8 changes: 7 additions & 1 deletion Sprint-1/3-mandatory-interpret/2-time-format.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const movieLength = 8784; // length of movie in seconds
const movieLength = 1000000; // length of movie in seconds

const remainingSeconds = movieLength % 60;
const totalMinutes = (movieLength - remainingSeconds) / 60;
Expand All @@ -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?
//6 variables

// b) How many function calls are there?
//We have no function called

// c) Using documentation, explain what the expression movieLength % 60 represents
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators
//This represent the rest seconds after calculating ho many minutes , as % will give the rest

// d) Interpret line 4, what does the expression assigned to totalMinutes mean?
//Totalminutes will show how many minutes in the movie

// e) What do you think the variable result represents? Can you think of a better name for this variable?
//result variable will show the exact film duration in hours, minutes and seconds i prefer calling the variable name movie_duration

// f) Try experimenting with different values of movieLength. Will this code work for all values of movieLength? Explain your answer
//Correct this code will work for all values
18 changes: 11 additions & 7 deletions Sprint-1/3-mandatory-interpret/3-to-pounds.js
Original file line number Diff line number Diff line change
@@ -1,20 +1,24 @@
const penceString = "399p";
const penceString = "399p"; //initialises a string variable with the value "399p"

const penceStringWithoutTrailingP = penceString.substring(
0,
penceString.length - 1
);
); //This variable will have value of 399
console.log(penceStringWithoutTrailingP);

const paddedPenceNumberString = penceStringWithoutTrailingP.padStart(3, "0"); //This variable will have value of 399 without adding any 0 because target length already 3
console.log(paddedPenceNumberString);

const paddedPenceNumberString = penceStringWithoutTrailingP.padStart(3, "0");
const pounds = paddedPenceNumberString.substring(
0,
paddedPenceNumberString.length - 2
);
); // This variable value will be 3
console.log(pounds);

const pence = paddedPenceNumberString
.substring(paddedPenceNumberString.length - 2)
.padEnd(2, "0");

.substring(paddedPenceNumberString.length - 2)//Here we will copy last 99
.padEnd(2, "0"); //padend function will not works because target length already 2
console.log(pence);
console.log(`£${pounds}.${pence}`);

// This program takes a string representing a price in pence
Expand Down
4 changes: 4 additions & 0 deletions Sprint-1/4-stretch-explore/chrome.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,12 @@ In the Chrome console,
invoke the function `alert` with an input string of `"Hello world!"`;

What effect does calling the `alert` function have?
//Alert function showing alert on your 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?
//prompt function is an alert function that can store data into variables

What is the return value of `prompt`?
//undefined
6 changes: 5 additions & 1 deletion Sprint-1/4-stretch-explore/objects.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,14 @@ Open the Chrome devtools Console, type in `console.log` and then hit enter
What output do you get?

Now enter just `console` in the Console, what output do you get back?

ƒ log() { [native code] }
Try also entering `typeof console`
object

Answer the following questions:

What does `console` store?
Console stores all command that you can need to debug the code
What does the syntax `console.log` or `console.assert` mean? In particular, what does the `.` mean?
Console.log will display the code to the console , while console.assert is meant to test your code and show you the message you are including
. to choose which built in function from library of console.
3 changes: 3 additions & 0 deletions Sprint-1/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,6 @@ https://developer.mozilla.org/en-US/docs/Web/JavaScript
## 4 Explore - Stretch 💪

This stretch activity will get you to start exploring new concepts and environments by yourself. It will do so by prompting you to reflect on some questions.


Working on Sprint 1
14 changes: 10 additions & 4 deletions Sprint-2/1-key-errors/0.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,19 @@
// Predict and explain first...
// =============> write your prediction here
// =============> This function should return first letter of the input string capitalised + from second letter of the input string till the end using slice function

// 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)}`;
//let str_final = `${str[0].toUpperCase()}${str.slice(1)}`;
//return str_final;

str = `${str[0].toUpperCase()}${str.slice(1)}`;
return str;
}

// =============> write your explanation here
// =============> write your new code here
// =============> str variable is input that has been declared in the function parameter, we can not redeclare a parameter variable
// =============> we can declare new variable to receive the final result or not declare again the variable and return directly

console.log(capitalise("iheb"));
22 changes: 14 additions & 8 deletions Sprint-2/1-key-errors/1.js
Original file line number Diff line number Diff line change
@@ -1,20 +1,26 @@
// Predict and explain first...
// Here we have a function that convert decimal number to percentage

// Why will an error occur when this program runs?
// =============> write your prediction here
// =============> Because a global variable is being declared again inside a function and we are not calling the function on the console.log

// Try playing computer with the example to work out what is going on

function convertToPercentage(decimalNumber) {
/*function convertToPercentage(decimalNumber) {
const decimalNumber = 0.5;
const percentage = `${decimalNumber * 100}%`;

return percentage;
}

console.log(decimalNumber);

// =============> write your explanation here
}*/
//console.log(decimalNumber);
// =============> Because a global variable is being declared again inside a function and we are not calling the function on the console.log

// Finally, correct the code to fix the problem
// =============> write your new code here
function convertToPercentage(decimalNumber) {
decimalNumber = 0.5;
const percentage = `${decimalNumber * 100}%`;

return percentage;
}

console.log(convertToPercentage());
13 changes: 8 additions & 5 deletions Sprint-2/1-key-errors/2.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,21 @@

// this function should square any number but instead we're going to get an error

// =============> write your prediction of the error here
// =============> we are passing value as parameter , we need to pass variable name

function square(3) {
/*function square(3) {
return num * num;
}
}*/

// =============> write the error message here
// =============> SyntaxError: Unexpected number

// =============> explain this error message here
// =============> we have invalid code which causing the error

// Finally, correct the code to fix the problem

// =============> write your new code here


function square(num) {
return num*num;
}
14 changes: 10 additions & 4 deletions Sprint-2/2-mandatory-debug/0.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,20 @@
// Predict and explain first...

// =============> write your prediction here
// =============> i think we can not console log twice , the function should return data to the console log otherwise we will have undefined

function multiply(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

// 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)}`);
14 changes: 10 additions & 4 deletions Sprint-2/2-mandatory-debug/1.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,19 @@
// Predict and explain first...
// =============> write your prediction here
// =============> i think we will have syntax error

function sum(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
// =============> we didn't have error but the function is not working because we are not returning as line 5 is closed by ;
// 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)}`);
Loading