π§π½βπ€βπ§π½ day-plan
Energiser
Every CYF session begins with an energiser. Usually there’s a rota showing who will lead the energiser. We have some CYF favourite games you can play if you are stuck.
- Traffic Jam: re-order the cars to unblock yourself
- Telephone: draw the words and write the pictures
- 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.
Welcome to Code Your Future π
SDC Goals and expectations π
Learning Objectives
Preparation
Introduction
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.Learning as a community π«
Learning Objectives
At Code Your Future, we learn as a community.
In this session, we’re going to describe how we harness our community to learn together.
Resources
The facilitator will use this presentation π Learning as a community presentation
Preparation
- Facilitator: Review this presentation before class.
- Facilitator: Ensure everyone can access the Miro board presentation.
- Facilitator: Split the class into groups of no more than 5.
- Facilitator: Make sure every group has access to a laptop.
- Facilitator: Make sure every group has access to a piece of paper and pen
Introduction
The facilitator will use the Miro board presentation to guide trainees and volunteers on a discussion about how we learn together as a community.
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)
- Open to the cohort’s General Weekly Availability spreadsheet.
- Add your name to the next line that is available in column A.
- Use the same colour as the example to identify when you are available.
- 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
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:
- 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
- Open the “General Weekly Availability” spreadsheet.
- Identify who could pair together, considering their availability.
- Someone should add these pairs to the other spreadsheet (exercise 1).
Community Lunch
Every Saturday at CYF 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.
Git workshop π
Part 1
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.
- On one person’s computer, fork this repo: https://github.com/CodeYourFuture/cyf-demo-repo
- π 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 as per the steps in the previous section.
π 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.
- Clone your fork of
cyf-demo-repo
to your local machine. - Open this local repository using VSCode.
- 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
πΉοΈ Activity - Figure it out π
π― Goal: Make some local changes and create a local commit on our branch.
- Do this section in pairs
- β²οΈ 15 mins
Follow these instructions carefully.
Our Git timeline starts off with some commits like this:
We’re going to figure out how to
- make local changes and commit them to our branch “week-1-workshop”,
so our history looks something like this:
where the most recent commits contain our changes.
To create a commit, we can use the following steps (explained more below):
- Make a change to a file
- View the local changes
- Stage the changes
- Creating the commit
ποΈ 1. Make a change to a file
- Open up your local repo
cyf-demo-repo
in VSCode. - Go to the Explorer section of VSCode ( look for a π icon ).
- Find
file.txt
and edit the file with the answer to the questions. - Remember to save the changes to
file.txt
.
Tip:
- You can use Cmd + S on a Mac to save changes to a file in VSCode.
- You can use Ctrl + S on a Linux OS to save changes to a file in VSCode.
π¬ 2. View the local changes
We want to view the changes we’ve just made to our working directory.
- Locate the Source Control tab in VSCode.
- Go to the Changes section and click on the file you changed - this should now show the changes for the file.
- Try editing the file again in the Explorer tab and check to see the update is visible in the Source Control panel
π’ 3. Stage the changes
We need to tell Git which changes we want to be part of our next commit.
Each commit is a checkpoint we’ve decided to save. When making a commit, we can decide to not include all of our changes in the checkpoint, but just include some of them.
We choose which changes we want to include in a commit by staging our changes.
In the Source Control tab again…
- Go to the file
file.txt
and click on the +.
π Notice what happens when you carry out step 1.
- View the Staged Changes area in your Source Control panel.
πΈ 4. Create the commit
Once we’ve staged our changes, then we can commit these changes.
Before we do, we should make sure we’re on the correct branch. Check that you’re on the week-1-workshop
branch.
Your VSCode window should look like this:
and not like this:
If you’re sure you’re on the right branch:
- Enter a commit message describing briefly what you did in your commit.
- Click Commit to create the Git commit.
π Now figure out how many commits you have on your local machine.
π§ Explain what you think would have happened if you didn’t stage anything in your working directory when you made your commit.
When you’re finished…
β Once you’ve completed this commit, swap roles in your pair.
Choose another file and then go through the steps in the Creating a commit section
Group discussion/demo 𧡠π£οΈ
- Group discussion/demo
- β²οΈ 10 mins
- A volunteer will need to facilitate this section
A volunteer will now need to navigate with directions from the group. Go through the git commit steps together.
Also use this time for clarifying questions.
π«Έ Pushing
π― Goal: Push a branch to a remote repository
πΉοΈ Activity - Figure it out π
- Trainees work in pairs
- β²οΈ 5 mins
After committing your work on your machine, you’ll have a local branch that looks like this
--- title: cyf-demo-repo --- gitGraph commit commit branch "week-1-workshop" commit commit
π 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 try 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:
- what is a commit? explain why need to make commits when we’re developing a project?
- explain why we store repositories on GitHub
- describe the purpose of VSCode
- explain the difference between Git and GitHub
- explain why developers use branches
- explain the difference between a fork and a clone?
- what does the branch name
origin/main
mean instead of justmain
- 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.
Next steps π£
Learning Objectives
For trainees
In this section, we’re going to go through a set of questions/tasks to clarify what we’re going to do in the next part of the course.
Get into pairs with somebody you’ve not paired up with today and try figuring out the answers/solutions to the following questions/tasks:
- Using the curriculum, locate the page setup page for the upcoming module.
- Using the curriculum website, locate the page with the prep material for the first week of the next module
- List the things you need to install ( if anything ) for the upcoming module.
- Check you can find the backlog page for the Induction sprint. Double check you’ve copied all the issues from the backlog over to your Course Planner.
- Identify all the issues with π icon that are marked as Priority. What does the Priority icon π mean?
- Go to your group Slack channel and start a thread 𧡠outlining times you’re free to meet up to discuss the prep work during the week
- Which day β° should you start the prep work for the upcoming HTML module?
- Experiment with your project planner: can you filter by Size, Week 1, Tech ed, PD etc.?
For volunteers
- Locate the classroom planning board for your region ( if one exists )
- Locate the day-plan for the next week/module
- Check the instructions and links on the Priority π issues for the upcoming week ( both Tech Ed and PD )
- In the day-plan for the upcoming week identify the instructions for any workshops and visit the repository containing that readme. Check the instructions make sense.
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.
- Set a timer for 5 minutes.
- Write down as many things as you can think of that you’d like to start, stop, and continue doing next sprint.
- Write one point per note and keep it short.
- When the timer goes off, one person should set a timer for 1 minute and group the notes into themes.
- 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.
- Finally, set a timer for 8 minutes and all discuss the top three themes.