Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
5 changes: 5 additions & 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,8 @@ 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

// Answer: Line 3 is reassigning the value of the variable 'count' by adding 1 to its current value.
// The = operator is used to update / assign a new value to the variable 'count'.
// It takes the current value of 'count', adds 1 to it, and then assigns that new value back to 'count'.
//
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

4 changes: 2 additions & 2 deletions Sprint-1/1-key-exercises/3-paths.js
Original file line number Diff line number Diff line change
Expand Up @@ -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(".") + 1);

// https://www.google.com/search?q=slice+mdn
6 changes: 6 additions & 0 deletions Sprint-1/1-key-exercises/4-random.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,9 @@ 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

// Answer: The variable we have created 'num' generates a random number, this is done by using the Math.random() function
// The Math.Random is a built-in function that creates a random number between 0 and 1, but not including 1. The next part
// of the expression multiplies the random number by (100 - 1 + 1) which is 100, this means that the random number will be between 0 and 100.
// Then +1 minimum is added to the random number, this means that the random number will be between 1 and 100. Finally, the Math.floor()
// function is used to round the random number down to the nearest whole number.
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?
2 changes: 1 addition & 1 deletion 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;
let age = 33;
age = age + 1;
3 changes: 1 addition & 2 deletions Sprint-1/2-mandatory-errors/2.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
// 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}`);
8 changes: 7 additions & 1 deletion Sprint-1/2-mandatory-errors/3.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
const cardNumber = 4533787178994213;
const last4Digits = cardNumber.slice(-4);
const last4Digits = cardNumber.toString().slice(-4);

console.log(last4Digits);

//The const Last4Digits should store the last 4 characters of the cardNumber and return it

//The Built in method slice() doesnt work on numbers, only on strings.

// The last4Digits variable should store the last 4 digits of cardNumber
// However, the code isn't working
Expand Down
4 changes: 2 additions & 2 deletions Sprint-1/2-mandatory-errors/4.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
const 12HourClockTime = "8:53pm";
const 24hourClockTime = "20:53";
const twelveHourClockTime = "8:53 pm";
const twentyFourHourClockTime = "20:53";
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
// A) 5 in total - lines 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?
// A) Missing comma in line 5 in function .replaceAll which is causing the error.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could more precisely describe "A comma is missing between "," and "" in the function call" as:
A comma is missing between the ___________s.

What is this programming term that refers to the values passed to a function? It begins with an 'a'.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This would be Argument?


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

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

// e) Describe what the expression Number(carPrice.replaceAll(",","")) is doing - what is the purpose of this expression?
// A) The expression is converting the string value of carPrice into a number and removing the commas so that it can be used in a mathematical calculation.
6 changes: 6 additions & 0 deletions Sprint-1/3-mandatory-interpret/2-time-format.js
Original file line number Diff line number Diff line change
Expand Up @@ -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?
// A) 6

// b) How many function calls are there?
// A) 1 (console.log function)

// c) Using documentation, explain what the expression movieLength % 60 represents
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators
// A) This expression is using the modulo operator that finds the remainder of the movieLength after being divided by 60.

// d) Interpret line 4, what does the expression assigned to totalMinutes mean?
// A) The expression is calculating the total number of minutes in the movie (not including the remaining seconds).

// e) What do you think the variable result represents? Can you think of a better name for this variable?
// A) The variable gives the total length of the movie in hours, minutes, and seconds. A better name for this variable could be "formattedMovieLength".

// f) Try experimenting with different values of movieLength. Will this code work for all values of movieLength? Explain your answer
// A) The code would have an error if the user was to inputs a value with commas, letters or as a string.
8 changes: 8 additions & 0 deletions Sprint-1/3-mandatory-interpret/3-to-pounds.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,11 @@ 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: uses the substring method to remove the "p" from the end of the string
// 3. Line 8: the variable paddedPenceNumberString is used to ensure that the string has at least 3 characters,
// if not it will add a zero to the start of the string
// 4. Line 9 - 11: the variable pounds uses the substring method in the same way as line 3 but this time removes the last two characters
// the result is now stored in the const 'pounds' to be used in the final output
// 5. Line 14 - 16: the variable pence also uses the substring method to extract the last two characters from paddedPenceNumberString
// the result is now stored in the const 'pence' to be used in the final output, a '0' is added to the end of the string if there is only one character
// 6. Line 18: the console.log function prints our output - the values stored in the consts 'pounds' and 'pence'.
11 changes: 5 additions & 6 deletions Sprint-2/1-key-errors/0.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
// Predict and explain first...
// =============> write your prediction here

// call the function capitalise with a string input
// =============> write your prediction here
//(A) You are likely to encounter a syntax error because the variable `str` is being declared twice within the same scope
// 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;
let capitalisedStr = `${str[0].toUpperCase()}${str.slice(1)}`;
return capitalisedStr;
}

// =============> write your explanation here
// =============> write your new code here
console.log(capitalise("hello"));
11 changes: 3 additions & 8 deletions Sprint-2/1-key-errors/1.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,14 @@

// Why will an error occur when this program runs?
// =============> write your prediction here
// (A)An error will occur because the variable `decimalNumber` is being declared twice within the same scope


// 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);

// =============> write your explanation here

// Finally, correct the code to fix the problem
// =============> write your new code here
console.log(convertToPercentage(0.5));
13 changes: 7 additions & 6 deletions Sprint-2/1-key-errors/2.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,18 @@
// this function should square any number but instead we're going to get an error

// =============> write your prediction of the error here

function square(3) {
return num * num;
}
// an error will occur because the value `3` has been put in the parentheses of the function.

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

// =============> explain this error message here
// (A)An error occurs because the function parameter `3` is a literal value instead of a variable name.

// Finally, correct the code to fix the problem

// =============> write your new code here
function square(num) {
return num * num;
}
console.log(square(3));


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
//(A) An error will occur because the function `multiply` does not return a value.

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
// (A) It returns `undefined`. This results in the output being "The result of multiplying 10 and 32 is undefined".
//

function multiply(a, b) {
return a * b;
}

// Finally, correct the code to fix the problem
// =============> write your new code here
console.log(`The result of multiplying 10 and 32 is ${multiply(10, 32)}`);
12 changes: 10 additions & 2 deletions Sprint-2/2-mandatory-debug/1.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,21 @@
// Predict and explain first...
// =============> write your prediction here
//(A) An error will occur because the function `sum` does not return a value. The `return` statement is followed by a semicolon, the function will return `undefined`

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
// 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)}`);
25 changes: 22 additions & 3 deletions Sprint-2/2-mandatory-debug/2.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,42 @@

// Predict the output of the following code:
// =============> Write your prediction here
// (A) The output will be "The last digit of... is 3" for all these due the the variable `num` being set to 103 and the function `getLastDigit`

const num = 103;

/*const num = 103;

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 806 is ${getLastDigit(806)}`);*/

// Now run the code and compare the output to your prediction
// =============> write the output here
/*The last digit of 42 is 3
The last digit of 105 is 3
The last digit of 806 is 3*/


// Explain why the output is the way it is
// =============> write your explanation here
//(A) As predicted the output resunts last digit of the variable `num`, which is set to 103. Therefore, regardless of the input values (42, 105, 806), the function always returns '3'.

// Finally, correct the code to fix the problem
// =============> write your new code here

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
//(A) The function `getLastDigit` needed to accept a parameter `num` in order to work properly.
8 changes: 6 additions & 2 deletions Sprint-2/3-mandatory-implement/1-bmi.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
const heightSquared = height * height;
const bmi = weight / heightSquared;
return Number(bmi.toFixed(1));
}

console.log(calculateBMI(70, 1.73)); // expected output: 23.4
10 changes: 9 additions & 1 deletion Sprint-2/3-mandatory-implement/2-cases.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,14 @@

// Implement a function that:

function convertToUpperSnakeCase(inputString) {
return inputString.toUpperCase().replace(" ", "_");
}

console.log(convertToUpperSnakeCase("hello there"));



// Given a string input like "hello there"
// When we call this function with the input string
// it returns the string in UPPER_SNAKE_CASE, so "HELLO_THERE"
Expand All @@ -13,4 +21,4 @@

// 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
//This might help https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase
26 changes: 25 additions & 1 deletion Sprint-2/3-mandatory-implement/3-to-pounds.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,30 @@
// In Sprint-1, there is a program written in interpret/to-pounds.js

// You will need to take this code and turn it into a reusable block of code.
// You will need to declare a function called toPounds with an appropriately named parameter.

function toPounds(penceString) {
// removes the trailing 'p'
const penceStringWithoutTrailingP = penceString.substring(
0,
penceString.length - 1
);
// pads pence number with leading zeros to ensure it has at least 3 characters
const paddedPenceNumberString = penceStringWithoutTrailingP.padStart(3, "0");
// extracts pounds and pence from the string
const pounds = paddedPenceNumberString.substring(
0,
paddedPenceNumberString.length - 2
);
// extracts the last two digits to get pence value, and ensures it has at least 2 characters
const pence = paddedPenceNumberString
.substring(paddedPenceNumberString.length - 2)
.padEnd(2, "0");

console.log(`£${pounds}.${pence}`);
}


//test cases
console.log(toPounds("190p"));
//
// You should call this function a number of times to check it works for different inputs
Loading
Loading