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

✍🏽 Register

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.

Goals and expectations

Preparation

Review the presentation in the class. Make sure a Word Cloud app is available. Everyone has to have their computers with internet and access to Slack.

Introduction

The Software Development Course of Code Your Future (CYF) has a particular goal: you get a job in tech! To achieve this, we have expectations of every trainee, and you will also have expectations about CYF. So we are now doing some exercises to align them.

Goals and expectations presentation and exercise

🎯 Goal: Agree with the goals and expectations of the Code Your Future Software Development Course (80 minutes)

Open this presentation and follow the slides.

General Weekly Availability

Learning Objectives

Preparation

Copy this General Weekly Availability
Spreadsheet

for your cohort and share it with everyone. If no one has done this yet, take the initiative and do it.

  • Someone in your cohort needs to bookmark this spreadsheet on your cohort channel in Slack.
  • Someone in your cohort also needs to do a brief post on Slack linking people to this spreadsheet.

This is one file for the cohort, not one per person.

Introduction

Sharing our general availability means that you and your peers can identify roughly who is available and when.

Why is this important?

Because you can then identify pairs and groups that can help each other, and helping each other is good for the community and your relationship, and makes us feel good about ourselves.

Add your general availability

🎯 Goal: Share your weekly availability with your peers (10 minutes)

  1. Open to the cohort’s General Weekly Availability spreadsheet.
  2. Add your name to the next line that is available in column A.
  3. Use the same colour as the example to identify when you are available.
  4. Leave non-available slots in grey. (Examples of Non-available slots: school pick-up/drop-off times, eating times, individual studying, part-time job, resting time, exercising times, mental health focus, etc. You do not have to detail what you are doing, but consider these when adding your availability)

Tip: Copy and paste one of the current coloured cells to your cell, this way you don’t have to figure out what’s the correct colour to use.

Identify pairs per week

Learning Objectives

Preparation

One trainee must volunteer to create a new tab on the existing Google sheet.

Introduction

Looking into the General Weekly Availability that you filled in before the induction, we will use each other’s availability and identify the best pairs to work together.

To work together, you must be available at similar times - not for the whole week, but for the number of hours needed for prep or coursework in pairs.

PS: It’s important to pair with different people in your cohort. There is more diversity, there better your professional competencies will evolve.

Creating pairs for the coursework

🎯 Goal: Update the shared file in which trainees can organise teamwork rotas (5 minutes)

On the Fundamentals section of the course, you should have created a rota spreadsheet of the form β€œXXX X Rota”, replacing the “X”’s with the name of your region and cohort number. For example, “NW 6 Rota” for the cohort in North West and cohort 6.
Double check this rota spreadsheet is bookmarked to your cohort channel and post a link to the spreadsheet on Slack

One trainee needs to update this Google sheet β€œXXX X Rota” on the cohort drive

  • Create a new tab on the spreadsheet called β€œPairs Induction”
  • The new tab must have two columns, one with the title β€œPair 1” and another for β€œPair 2.”
  • Post a message on the cohort Slack with the shared spreadsheet and the instructions on what to do (see below)

This tab will be the rota of the coursework.

Create pairs considering trainees' availability

🎯 Goal: Connect the people’s availability defining the most effective pairs to work together (10 minutes)

Multiple tasks need to be done to make this exercise happen, but not all of them should be done by one person:

  1. How many hours of coursework has to be done in pairs? Double check the issues that have a πŸ«±πŸΏβ€πŸ«²πŸ½ Pairs label on this module’s backlog
  2. Open the “General Weekly Availability” spreadsheet.
  3. Identify who could pair together, considering their availability.
  4. Someone should add these pairs to the other spreadsheet (exercise 1).

Lunch

Take your lunch break and be back in an hour!

Git workshop πŸ”—

Git Day 1

Git is a tool for software development that you will likely come to rely on in your software development journey. It might seem complex at first but with continuous practice, you will begin to disentangle the complexity.

πŸ’‘ Objective

This workshop will deepen your understanding of Git. By the end of this workshop, participants will:

  • Navigate a GitHub repository using the VSCode interface
  • Fork and clone a repository, create branches, and commit changes using the VSCode interface
  • Articulate the difference between a fork and clone
  • Explain their mental model of the working tree and the staging area

Setup

  • Break out into groups of 5/6 ( depending on volunteer and trainee numbers )
  • Use these instructions as a guide to check your understanding, resolve misconceptions and develop your understanding

This workshop starts with a recap based on this week’s prep material…

Exploring GitHub repositories

Recap activity πŸ•ΉοΈ

  • Trainees do this section in pairs
  • ⏲️ 10 mins

Let’s recap some of the things from earlier in the week.

Visit the following repository on GitHub: https://github.com/CodeYourFuture/cyf-demo-repo

Answer the following questions:

a) How many commits are there in the cyf-demo-repo project?

b) Who committed on Oct 31, 2020?

c) What changes did illictonion make in the commit titled “Revert changes accidentally pushed in the past”?

d) How many files were added in the first commit? What were the names of the files?

e) What is the hash for the first commit in the history?

f) What is Claire Bickley’s favourite food?

πŸ§΅πŸ—£οΈ group discussion

  • Group discussion
  • ⏲️ 10 mins
  • A volunteer will need to facilitate this section

A volunteer can facilitate this group discussion by going through the questions above and asking pairs for their feedback. If pairs are unsure / not quite accurate then spend a small amount of time addressing misconceptions.
Remember to ask around for feedback.

Creating a fork 🍴

πŸ•ΉοΈ Recap activity

  • Trainees do this section in pairs
  • ⏲️ 5 mins

Use the guidelines from the prep section of this week to create a fork.

  1. On one person’s computer, fork this repo: https://github.com/CodeYourFuture/cyf-demo-repo
  2. πŸ“ Double-check the URL of your forked repo. How can you tell the fork was successfully created?

Group discussion/demo 🧡 πŸ—£οΈ

  • Groups discussion
  • ⏲️ 5 mins
  • A volunteer will need to facilitate this section

A volunteer will need to navigate and let the group guide them in creating a fork.

πŸŒ€ Cloning a repository

πŸ•ΉοΈ Recap activity

  • Trainees do this section in pairs
  • ⏲️ 5 mins

πŸ“‹ Check your understanding

Before continuing, try answering the following:

❓ what is the difference between a fork and a clone.

Remember to check your answer before continuing.

  1. Clone your fork of cyf-demo-repo to your local machine.
  2. Open this local repository using VSCode.
  3. Use pwd in your terminal to check you’re in the right place.

Group discussion/demo 🧡 πŸ—£οΈ

  • Group discussion/demo
  • ⏲️ 5 mins
  • A volunteer will need to facilitate this section

A volunteer will need to navigate and let the group guide them in following through the steps in the previous recap activity.

🌳 Creating a branch

πŸ•ΉοΈ Recap activity

  • Trainees do this section in pairs
  • ⏲️ 10 mins

Next, create a local branch called week-1-workshop

Group discussion/demo 🧡 πŸ—£οΈ

  • Group discussion/demo
  • ⏲️ 10 mins
  • A volunteer will need to facilitate this section

Take a break for 10 mins… 🍫

Part 2 - New skills 🧰 - Committing and pushing πŸ“Έ

Learning objectives

πŸ“‹ Double-check you’ve been committing to your branch week-1-workshop branch and not your main branch.

However, our remote fork only has a main branch:

--- title: cyf-demo-repo --- gitGraph commit commit

In other words, we have not added our local branch onto the remote fork on GitHub.

To do this, we must push our branch onto GitHub.

push means adding local work to a remote GitHub repository.

πŸ” Figure out how to push your local branch to the GitHub repository using the Source Control interface in VSCode.
πŸ” Figure out how to check the week-1-workshop branch is on the remote fork.

Group discussion

  • Group discussion/demo
  • ⏲️ 5 mins
  • A volunteer will need to facilitate this section

A volunteer will need to navigate and let the group guide them in following through the steps in the previous recap activity.

🧡 Tying things up

Now is some time to wrap up and discuss some of the key concepts from this week.

πŸ—£οΈ Discussion in pairs

  • Trainees discuss in pairs
  • ⏲️ 10 mins

In your pair, discuss the following questions/tasks:

  1. What is a commit? Explain why we need to make commits when we’re developing a project.
  2. Explain why we store repositories on GitHub.
  3. Describe the purpose of VSCode.
  4. Explain the difference between Git and GitHub.
  5. Explain why developers use branches.
  6. Explain the difference between a fork and a clone.
  7. What does the branch name origin/main mean instead of just main ?
  8. Check out the following git repository diagram below:

How many commits are in common between week-1-feature and main?

--- title: cyf-demo-repo --- gitGraph commit commit commit branch "week-1-feature" commit commit

πŸ—£οΈ Group discussion

  • Discuss the questions together as a group. Go round and get feedback from each person in the group.

Retro: Start / Stop / Continue

  activity</span>

A retro is a chance to reflect. You can do this on a FigJam (make sure someone makes a copy of the template before you start) or on sticky notes on a wall.

  1. Set a timer for 5 minutes. There’s one on the FigJam too.
  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.