Skip to content

ZA | ITP-May | Praise Magidi | Sprint-3 | Module-Structuring-and-Testing-Data #592

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 11 commits into
base: to-be-deleted-coursework/sprint-3
Choose a base branch
from
Open
6 changes: 3 additions & 3 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

You must title your PR like this:

COHORT_NAME | FIRST_NAME LAST_NAME | REPO_NAME | WEEK
REGION | COHORT_NAME | FIRST_NAME LAST_NAME | PROJ_NAME

For example,

NW4 | Carol Owen | HTML-CSS-Module | Week1
London | May-2025 | Carol Owen | Sprint-1

Complete the task list below this message.
If your PR is rejected, check the task list.
Expand All @@ -18,7 +18,7 @@ If your PR is rejected, check the task list.
Self checklist

- [ ] I have committed my files one by one, on purpose, and for a reason
- [ ] I have titled my PR with COHORT_NAME | FIRST_NAME LAST_NAME | REPO_NAME | WEEK
- [ ] I have titled my PR with REGION | COHORT_NAME | FIRST_NAME LAST_NAME | PROJ_NAME
- [ ] I have tested my changes
- [ ] My changes follow the [style guide](https://curriculum.codeyourfuture.io/guides/contributing/)
- [ ] My changes meet the [requirements](./README.md) of this task
Expand Down
2 changes: 2 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,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 assigning another different value to count by adding 1 to its current value. The = is not working like an equalizer it is
the count value.
8 changes: 7 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,13 @@ 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

6 changes: 4 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,9 @@ 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, 49);
const ext = filePath.slice(-4);

console.log(`The directory of the file path is ${dir} and the extension is ${ext}`)

// 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
console.log(num)

When breaking down the expression it starts by the third brackets where maximum - minimum + 1, maximum represents a
100 and minimum represents a 1. From there you multiply the answer by Math.random, where a random number between 0
and 1 is selected randomly. Another minimum is added to that answer. Now Math.floor rounds the answer to the nearest
whole number, and that value is what you get when you run the code.
3 changes: 2 additions & 1 deletion Sprint-1/2-mandatory-errors/0.js
Original file line number Diff line number Diff line change
@@ -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?
We don't want the computer to run these 2 lines - how can we solve this problem?
We can make the 2 lines comments by adding two slashes before the sentence
4 changes: 3 additions & 1 deletion Sprint-1/2-mandatory-errors/1.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
// 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)
2 changes: 2 additions & 0 deletions Sprint-1/2-mandatory-errors/2.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,5 @@

console.log(`I was born in ${cityOfBirth}`);
const cityOfBirth = "Bolton";

It is not working because the const was declared after the console.log
7 changes: 6 additions & 1 deletion Sprint-1/2-mandatory-errors/3.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
const cardNumber = 4533787178994213;
const cardNumber = "4533787178994213";
const last4Digits = cardNumber.slice(-4);
console.log(`Last 4 digits are ${last4Digits}`)

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

//I put my answers into comments because my code was not running when i put them normally because of key words i think.
//The code will not run because the cardNumber string has no quotation marks also there is no console.log
//the error I got is that cardNumber.slice is not a function.
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 twelveHourClockTime = "20:53";
const twentyfourhourClockTime = "08:53";
console.log(twelveHourClockTime)
console.log(twentyfourhourClockTime)
6 changes: 6 additions & 0 deletions Sprint-1/3-mandatory-interpret/1-percentage-change.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
line 4 and 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?
The error is coming from line 5, I think it is because there is no comma after the first quotation marks. I can fix
it by adding the comma between the two quotation marks.

// c) Identify all the lines that are variable reassignment statements
line 7 and 8

// d) Identify all the lines that are variable declarations
line 1 and 2

// e) Describe what the expression Number(carPrice.replaceAll(",","")) is doing - what is the purpose of this expression?
It is removing the commas from the String, making the number easier to read
12 changes: 11 additions & 1 deletion Sprint-1/3-mandatory-interpret/2-time-format.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,24 @@ 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

// b) How many function calls are there?
1

// c) Using documentation, explain what the expression movieLength % 60 represents
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators
So it is a remainder operator it gives the remaining value after 2 numbers are divided, here the values are always
divided by 60 hence "% 60"

// d) Interpret line 4, what does the expression assigned to totalMinutes mean?
The length of the movie previously declared in line 1 will be subtracted by the remaining totalMinutes, that value
will now be divided by 60

// e) What do you think the variable result represents? Can you think of a better name for this variable?

the results represent the exact time a movie lasts in Hours, minutes and seconds respectively. Altenatively i would
call the variable "Total length of a movie"

// f) Try experimenting with different values of movieLength. Will this code work for all values of movieLength? Explain your answer
The code does not work for all values I think it is because movieLength is declared as a constant therefore it cannot
be reassigned another value
7 changes: 7 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,10 @@ console.log(`£${pounds}.${pence}`);

// To begin, we can start with
// 1. const penceString = "399p": initialises a string variable with the value "399p"
In line 3 the function is subtracting the last string character from the string so its now 399 not 399p
In line 8 the .padStart is making sure that there is always 3 digits
In line 9 they are subtracting the last two characters of the string so its not 399 anymore, only 3
In line 14 substring is making sure there is always 2 characters and pad.End reinforcing that there only is two
characters
console.log is now showing the final results of how much pounds and pence there is.

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?
I got a notification pop up saying that the new tab page says Hello World!

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?
It makes a notification pop up

What is the return value of `prompt`?
myName
5 changes: 5 additions & 0 deletions Sprint-1/4-stretch-explore/objects.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,17 @@ 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?
'console.log'

Now enter just `console` in the Console, what output do you get back?
console {debug: ƒ, error: ƒ, info: ƒ, log: ƒ, warn: ƒ, …}

Try also entering `typeof console`

Answer the following questions:

What does `console` store?
detailed information about code and editing options

What does the syntax `console.log` or `console.assert` mean? In particular, what does the `.` mean?
it means running or testing the code rather the `.` is a way of telling the computer exactly what type of console you are reffering to.
19 changes: 13 additions & 6 deletions Sprint-2/1-key-errors/0.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,20 @@
// Predict and explain first...
// =============> write your prediction here

// call the function capitalise with a string input
I think the error will be that str has already been declared
// call the function capitalize 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 capitalize(str) {
// let str = `${str[0].toUpperCase()}${str.slice(1)}`;
// return str;
//}

// =============> write your explanation here
in line 8 they are trying to declare str again
// =============> write your new code here

function capitalize(str) {
let capitalize = `${str[0].toUpperCase()}${str.slice(1)}`;
return capitalize;
}
console.log(capitalize(`praise`));
13 changes: 10 additions & 3 deletions Sprint-2/1-key-errors/1.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// Predict and explain first...

// Why will an error occur when this program runs?
// Why will an error occur when this program runs
// =============> write your prediction here

the const variable is being declared twice
// Try playing computer with the example to work out what is going on

function convertToPercentage(decimalNumber) {
Expand All @@ -14,7 +14,14 @@ function convertToPercentage(decimalNumber) {

console.log(decimalNumber);

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

// =============> write your explanation here
because the percentage is being declared twice the code will not run smoothly, console.log(decimalNumber) will crash the program because it's trying to access a variable that only exists inside the function
// Finally, correct the code to fix the problem
// =============> write your new code here
function convertToPercentage(decimalNumber) {
const percentage = `${decimalNumber * 100}%`;
return percentage;
}

console.log(convertToPercentage(7.9));
11 changes: 9 additions & 2 deletions Sprint-2/1-key-errors/2.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,24 @@
// this function should square any number but instead we're going to get an error

// =============> write your prediction of the error here
We’re going to get an error because function parameters can’t be literal values like 3 — they need to be variable names.

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

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

// =============> explain this error message here
In JavaScript, function parameters must be valid variable names, not actual values.

// Finally, correct the code to fix the problem

// =============> write your new code here
function square(num) {
const form = num * num;
return form;
}


console.log(square(5));
8 changes: 7 additions & 1 deletion Sprint-2/2-mandatory-debug/0.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// Predict and explain first...

// =============> write your prediction here
the code is lacking a return statement

function multiply(a, b) {
console.log(a * b);
Expand All @@ -9,6 +10,11 @@ function multiply(a, b) {
console.log(`The result of multiplying 10 and 32 is ${multiply(10, 32)}`);

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

console.log() just prints, it does not give back a value. The function does not return anything
// 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)}`);
9 changes: 8 additions & 1 deletion Sprint-2/2-mandatory-debug/1.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Predict and explain first...
// =============> write your prediction here

the return statement is not defined
function sum(a, b) {
return;
a + b;
Expand All @@ -9,5 +9,12 @@ function sum(a, b) {
console.log(`The sum of 10 and 32 is ${sum(10, 32)}`);

// =============> write your explanation here
when you write return; and then go to a new line, it immediately ends the function and ignores everything after it

// 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)}`);
14 changes: 13 additions & 1 deletion Sprint-2/2-mandatory-debug/2.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

// Predict the output of the following code:
// =============> Write your prediction here

all the output values are going to be 3
const num = 103;

function getLastDigit() {
Expand All @@ -14,11 +14,23 @@ 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
my prediction was correct

// =============> write the output here
// Explain why the output is the way it is
the num was declared a const value so any other value couldnt work
// =============> write your explanation here
// 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
getLastDigit was not working because there was a constant num value so that value was overriding any other value that was being tested
7 changes: 5 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,8 @@
// 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 bmi = weight / (height * height);// return the BMI of someone based off their weight and height
return bmi.toFixed(1);
}

console.log(`The BMI is ${calculateBMI(144, 1.51)}`);
6 changes: 6 additions & 0 deletions Sprint-2/3-mandatory-implement/2-cases.js
Original file line number Diff line number Diff line change
Expand Up @@ -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 snakeCase(text){
return text.toUpperCase().replace(/\s+/g, '_');
}

console.log(snakeCase(`i am praise magidi`));
Loading