πŸ§‘πŸ½β€πŸ€β€πŸ§‘πŸ½ day-plan

Energiser

Every session begins with an energiser. Usually there’s a rota showing who will lead the energiser. We have some favourite games you can play if you are stuck.

  1. Traffic Jam: re-order the cars to unblock yourself
  2. Telephone: draw the words and write the pictures
  3. Popcorn show and tell: popcorn around the room and show one nearby object or something in your pocket or bag and explain what it means to you.

Notes

🎑 Morning orientation

Learning Objectives

Planning during the week

🧭 During the week, create a post on Slack and get some people to take on the roles of facilitator and timekeeper. Nominate new people each time.

πŸ‘£ Steps

If you haven’t done so already, choose someone (volunteer or trainee) to be the facilitator for this morning orientation block. Choose another to be the timekeeper.

πŸŽ™οΈ The Facilitator will:

  1. Assemble the entire group (all volunteers & all trainees) in a circle
  2. Briefly welcome everyone with an announcement, like this:

    πŸ’¬ “Morning everyone, Welcome to CYF {REGION}, this week we are working on {MODULE} {SPRINT} and we’re currently working on {SUMMARISE THE TOPICS OF THE WEEK}”

  3. Ask any newcomers to introduce themselves to the group, and welcome them.
  4. Now check: is it the start of a new module? Is it sprint 1? If so, read out the success criteria for the new module.
  5. Next go through the morning day plan only (typically on the curriculum website) - and check the following things:

Facilitator Checklist

  • Check the number of volunteers you have for the morning
  • Check someone is leading each session
  • Describe how any new activities works for the group
  • Decide how best to allocate trainees and volunteers for a given block - most blocks will make this clear

⏰ The Timekeeper will:

  • Announce the start of an activity and how long it will take (check everyone is listening)
  • Manage any whole class timers that are used in an activity
  • Give people a 10-minute wrap-up warning before the end of an activity
  • Announce the end of an activity and what happens next

Notes

Learning Objectives

Teamwork Project S2 πŸ”—

Learning Objectives

Preparation

Have post-its and pens and a collaborative board

Introduction

You will work together through these exercises to ensure everyone understands and can apply the concepts your read about.

Discuss the theory you read about

🎯 Goal: To explain the product, MVP, feature, and user story concepts (20 minutes)

  • Create a collaborative board with the following concepts

    • Product
    • MVP
    • Feature
    • User story
  • Briefly discuss as a class what we mean by each concepts.

  • Each trainee should write 1 phrase/word per Post-it (e.g. The first working software) and put it in against the concept (in this example, MVP) on the collaborative board

  • Review the posts as a group

  • Ensure any questions are clarified

Who will use your product?

🎯 Goal: To identify the users of a product (20 minutes)

During the previous week’s coursework, you defined your team’s product.

  • Discuss the following questions as a team to identify your product’s users.

    • Who are your users?
    • What different user profiles will be?
    • What user needs does your product try to address?
  • Write down a a short description of your product, users, and user needs, which will be played back to the wider group.

  • One speaker will represent the team (ideally not the same person that talked in the previous lesson). Each speaker has only 1 minute to describe the product, user and user needs.

Make sure someone is the time keeper so all groups have the same amount of time.

Brainstorming about your users' problems

🎯 Goal: To identify how products achieve user needs (20 minutes)

In your teams, brainstorm the following questions to understand your product better.

  • What is the functionality of your product?
  • How does it address the user’s needs / solve their problem?

Pair with another team.

Share your answers to the questions above in turns.

Provide feedback, opinions, and additional suggestions to each other.

Morning Break

A quick break of fifteen minutes so we can all concentrate on the next piece of work.

Notes

Study Group

What are we doing now?

You’re going to use this time to work through coursework. Your cohort will collectively self-organise to work through the coursework together in your own way. Sort yourselves into groups that work for you.

Use this time wisely

You will have study time in almost every class day. Don’t waste it. Use it to:

  • work through the coursework
  • ask questions and get unblocked
  • give and receive code review
  • work on your portfolio
  • develop your own projects

Notes

πŸ›ŽοΈ Code waiting for review πŸ”—

Below are trainee coursework Pull Requests that need to be reviewed by volunteers.

WM5 |ELMIRA ZANGENEH| MODULE-JS3 | PROGRAMMING HUMOUR | WEEK 2 πŸ”—

Learners, PR Template

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 tested my changes
  • My changes follow the style guide
  • My changes meet the requirements of this task

Changelist

Briefly explain your PR.

Questions

Ask any questions you have for your reviewer.

Start a review
WM5 | Abdihamid Ali | Modul-JS3 | Programmer Humour | week3 πŸ”—

Learners, PR Template

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 tested my changes
  • My changes follow the style guide
  • My changes meet the requirements of this task

Changelist

Briefly explain your PR.

Questions

I’m getting confused about this “Quality Gate failed” from sonarcloud can anyone explain it to me ? do I have to do anything about it ?
Ask any questions you have for your reviewer.

Start a review
NW6 | Nazanin Saedi | object-destructuring | Module-JS3 | Exercise 3 | Week 3 πŸ”—

one explanation :

The console.log(“QTY\tITEM\t\t\tTOTAL”); line is used to print the header of the receipt, which includes the titles for each column: “QTY” for quantity, “ITEM” for item name, and “TOTAL” for total cost.

Here’s a breakdown of what each part of the string does:

\t: This is an escape sequence representing a tab character. It adds spacing between the columns.
“QTY”: This is the title for the quantity column.
“ITEM”: This is the title for the item name column.
“\t\t\t”: This adds extra tabs to provide additional spacing between the item name column and the total column.
“TOTAL”: This is the title for the total cost column.

Start a review
NW6 | Nazanin Saedi | object-destructuring | Module-JS3 |Exercise 2 | week3 πŸ”—
In both tasks, destructuring is used when filtering the hogwarts array and when iterating over the filtered results to extract the necessary properties (firstName and lastName) Start a review
NW6 | NazaninSaedi | Module-JS3 | JS3 | object-destructuring |Exercise-1 |Week3 πŸ”—

Learners, PR Template

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 tested my changes
  • My changes follow the style guide
  • My changes meet the requirements of this task

Changelist

Briefly explain your PR.

Questions

Ask any questions you have for your reviewer.

Start a review
See more pull requests

Community Lunch

Every Saturday we cook and eat together. We share our food and our stories. We learn about each other and the world. We build community.

This is everyone’s responsibility, so help with what is needed to make this happen, for example, organising the food, setting up the table, washing up, tidying up, etc. You can do something different every week. You don’t need to be constantly responsible for the same task.

Notes

Break down πŸ”—

Goblin Breakdown

Use AI to break down coding problems into smaller pieces.

{{<note type="tip" title="Prompt">}} If Goblin is offline, use any LLM with the pre-prompt "Break down this task into single responsibility functions". {{</note>}}

Learning Objectives

Requirements

We're practising breaking down our problems again. It must be Saturday!

This time we're going to use AI to help us. Goblin is a small, clever integration with ChatGPT that makes magic todo lists. We're going to use it to break down our problem and plan our solution.

🧰 1. Setup

You should already be set up but just in case, you need to open the Goblin workshop in VS Code. Set a whole class timer for 5 minutes.

{{<note type="activity" title="Getting Set Up">}}

  1. Fork the CYF-Workshops repo to your own GitHub account if you have not already.
  2. Clone the repository to your machine.
  3. Open in VS Code and go to the goblin-breakdown folder.
  4. Look at the contact folder. It contains a file called index.js. This is where you will write your code. Look at data.json to see an example of the data returned from the API.

{{</note>}}

πŸ‘£ 2. Break down coding problems

Let's try breaking down a coding problem. Let's do a sample problem together. Set a whole class timer for 10 minutes.

{{<note type="activity" title="Planning a Solution 10m">}}

> Format a UK address and UK phone number from a JSON object and show it as HTML on the page

  1. Paste the above problem into Goblin and press the πŸͺ„ wand button.
  2. Goblin will give you some steps. In the contact folder, paste each of the steps into index.js as comments. There are some samples given but your Goblin might be a bit different. Feel free to delete the existing examples.
  3. You likely have around five steps. Under each comment, write the name of the function you will write to achieve the step. Two are given as an example. Don't write the function out, just the name and leave the function empty.
  4. Now you have planned your code! If you have time, start writing the functions.

{{</note>}}

{{<note type="tip" title="Sample Solution">}} There isn't a "right answer" to this workshop. If you want to see a basic solution, look in the contact folder for the file completed.js. {{</note>}}

🧠 3. How can you use this?

Set a whole class timer for 10 minutes.

{{<note type="activity" title="Reflect and Discuss 10m">}}

Reflect on this process of breaking down the problem and planning your solution. Discuss with your pair or group.

  • How can you use this process in your own work?
  • What are the benefits of breaking down a problem?
  • What are the risks of having an AI break down a problem? How can you mitigate those risks?
  • What are the benefits of planning your solution?
  • Why does CYF want to make you write such small functions?
  • How could doing these steps make writing your code easier?
    {{</note>}}

Acceptance Criteria

  • I have used AI to produce a step-by-step plan for my solution
  • I have written comments to structure my code
  • I have produced a planned solution to a coding problem
  • I have reflected on this process and discussed it with my pair or group

Study Group

What are we doing now?

You’re going to use this time to work through coursework. Your cohort will collectively self-organise to work through the coursework together in your own way. Sort yourselves into groups that work for you.

Use this time wisely

You will have study time in almost every class day. Don’t waste it. Use it to:

  • work through the coursework
  • ask questions and get unblocked
  • give and receive code review
  • work on your portfolio
  • develop your own projects

Notes

Afternoon Break

Please feel comfortable and welcome to pray at this time if this is part of your religion.

If you are breastfeeding and would like a private space, please let us know.

Notes

Study Group

What are we doing now?

You’re going to use this time to work through coursework. Your cohort will collectively self-organise to work through the coursework together in your own way. Sort yourselves into groups that work for you.

Use this time wisely

You will have study time in almost every class day. Don’t waste it. Use it to:

  • work through the coursework
  • ask questions and get unblocked
  • give and receive code review
  • work on your portfolio
  • develop your own projects

Notes

πŸ›ŽοΈ Code waiting for review πŸ”—

Below are trainee coursework Pull Requests that need to be reviewed by volunteers.

WM5 |ELMIRA ZANGENEH| MODULE-JS3 | PROGRAMMING HUMOUR | WEEK 2 πŸ”—

Learners, PR Template

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 tested my changes
  • My changes follow the style guide
  • My changes meet the requirements of this task

Changelist

Briefly explain your PR.

Questions

Ask any questions you have for your reviewer.

Start a review
WM5 | Abdihamid Ali | Modul-JS3 | Programmer Humour | week3 πŸ”—

Learners, PR Template

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 tested my changes
  • My changes follow the style guide
  • My changes meet the requirements of this task

Changelist

Briefly explain your PR.

Questions

I’m getting confused about this “Quality Gate failed” from sonarcloud can anyone explain it to me ? do I have to do anything about it ?
Ask any questions you have for your reviewer.

Start a review
NW6 | Nazanin Saedi | object-destructuring | Module-JS3 | Exercise 3 | Week 3 πŸ”—

one explanation :

The console.log(“QTY\tITEM\t\t\tTOTAL”); line is used to print the header of the receipt, which includes the titles for each column: “QTY” for quantity, “ITEM” for item name, and “TOTAL” for total cost.

Here’s a breakdown of what each part of the string does:

\t: This is an escape sequence representing a tab character. It adds spacing between the columns.
“QTY”: This is the title for the quantity column.
“ITEM”: This is the title for the item name column.
“\t\t\t”: This adds extra tabs to provide additional spacing between the item name column and the total column.
“TOTAL”: This is the title for the total cost column.

Start a review
NW6 | Nazanin Saedi | object-destructuring | Module-JS3 |Exercise 2 | week3 πŸ”—
In both tasks, destructuring is used when filtering the hogwarts array and when iterating over the filtered results to extract the necessary properties (firstName and lastName) Start a review
NW6 | NazaninSaedi | Module-JS3 | JS3 | object-destructuring |Exercise-1 |Week3 πŸ”—

Learners, PR Template

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 tested my changes
  • My changes follow the style guide
  • My changes meet the requirements of this task

Changelist

Briefly explain your PR.

Questions

Ask any questions you have for your reviewer.

Start a review
See more pull requests

Retro: Start / Stop / Continue

Retro (20 minutes)

A retro is a chance to reflect on this past sprint. You can do this on a Jamboard (make sure someone clicks “Make a copy” before you start, and you work on that together) or on sticky notes on a wall.

  1. Set a timer for 5 minutes.
  2. Write down as many things as you can think of that you’d like to start, stop, and continue doing next sprint.
  3. Write one point per note and keep it short.
  4. When the timer goes off, one person should set a timer for 1 minute and group the notes into themes.
  5. Next, set a timer for 2 minutes and all vote on the most important themes by adding a dot or a +1 to the note.
  6. Finally, set a timer for 8 minutes and all discuss the top three themes.

Notes