🎡 Morning orientation
Learning Objectives
Planning during the week
👣 To Do
🎙️ The Facilitator will:
- Assemble the entire group (all volunteers & all students) in a circle
- Briefly welcome everyone with an announcement, like this:
💬 “Morning everyone, Welcome to another Saturday at MigraCode, this week we are working on Module X Sprint 3 and we’re currently working on {summarise what the topic of the week is}”
- 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.
- Next add one thing you hope to find out or learn about today.
⏰ 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
🎙️ Introduce Yourself!
Learning Objectives
Activity
In your professional life, you will often be asked to introduce yourself. It is a good idea to have an elevator pitch ready, a brief (30 seconds) way of introducing yourself, getting across a key point or two, and making a connection with someone.
Today we will be going around the room and introducing ourselves! `
Facilitator(s) start by sharing your elevator pitch and then popcorn around the room.
Some tips:
- Your response should be around 30 seconds. Think: What do you do? What are your skills, passions, or hobbies? What motivates you?
- Have a list of items ready but tailor what you say to your audience. For example, at a technical conference focus on your technical interests rather than your love of making cupcakes, but on the first day of a new job introducing yourself to your new team, add 1-2 personal details.
- Structure your response: Who are you? Where are you from? Where have you worked? Have you studied somewhere and what subjects?
- Try to be enthusiastic, let your personality and confidence shine
- Allow space for follow-up questions
- It will feel awkward and nerve-wracking the first couple of times, practice-practice-practice to feel confident
Facilitator Check-in questions
- How did you feel about public speaking?
- What are some strategies to feel more confident when public speaking?
- What activities could you share to create a connection? Ex. Sports, Hobbies
🔗 Workshop:Playing Computer
Learning Objectives
🎮 Playing computer
💡 Purpose
This workshop is designed to develop your understanding of playing computer. Playing computer means simulating how the computer executes our code. We “step through” the code, line by line, and work out what the computer does when it follows each instruction. Once we develop a better intuition for how our code runs it becomes easier to debug code, reason about it and write more complex programs.
During this session, you will:
Resources
You will need:
- A piece of paper saying “memory” - where we store variables
- A piece of paper saying “console” - where we print to the console
- Some example programs like the ones here 👉 Playing computer workshop
- [Optional] A set of functions in envelopes ( this isn’t essential but a nice thing to have to reinforce the idea of instructions being “opened” up when a function is called )
( If you don’t have any paper/pens you can create plain text files for “memory” and “console” and write your work out in there! )
🧰 Setup
- Split up into groups of 2 or 3 at most.
- Start with the first example ( e.g.
example-0.js) - Each person will need to take responsibility for a particular frame. One person will be assigned the role of global frame, for example. If there are other function declarations, someone else will “play” that frame too.
🍲 Warm-up
Start with the program in example-0.js. There is only one frame to play here - the global frame, as there are no other function declarations and calls in the file.
- One person will “play” the Global frame
- This person will step through the code in
example-0.jsusing the rules of execution below. - Other members of the group can watch and provide support as they go through the code.
- Once you’ve finished you can change some of the values/variables and then someone else can play the global frame too
- ❗ After you’ve finished playing computer with the program, you should check your memory sheet and console sheet by using the Python visualiser
Rules of execution
Rule 0
Only one person can be sat at the table at a time ( where we write to the memory sheet/console sheet)
Rule 1
Start reading code from top to bottom, one line at a time
Rule 2
Write and update variables in memory as you go along For example, if the program says:
let a = 32;
You would write down “a : 32” on your piece of paper saying “memory”
Rule 3
If a function is called the person “playing” this frame takes the seat and we jump to the instructions in that function, using Rules 1 and 2.
Rule 4
When a function returns or finishes execution this person leaves their seat and the previous person sits down again.
You may need to play computer like this a few times before you get used to this way of thinking about the code. Make sure you swap roles so others get the chance to play a particular frame.
📝 Check your understanding
Doing this activity by hand is a great way to start thinking about how your code runs. Once you’ve gone through this activity and played computer with pen and paper, you can check what you’ve got on your piece of paper by playing computer with the Python Tutor code visualiser
🍽️ Lunch
At MigraCode, there will be scheduled community lunches throughout the year during which all of MigraCode team will joing and would like to invite you to eat with us. The MC team will let you know when the upcoming community lunch will be. Bring your home-cooked food or buy some food across the street at Glories (e.g., at the Carrefour Supermarket or pick up some to-go meal from one of the restaurants there). We share our time, food and our stories. We learn about each other and the world. We build community.👭👬
On days where there is no community lunch planned you can still stay to socialise here and use the terrace to meet you peers and connect (this goes especially for class days that are longer than just until 2pm.)
Adevinta allows us to use their beautiful space, cutlery, plates, microwaves etc - please make sure to leave everything exactly as it was before so they keep lending their precious space to us ☺️. Ah and make sure to check out the foosball table on the terrace.
📢 Standup
It’s time to stand up. Split into groups of no more than 6 people.
Stand in a circle and share for no more than 60 seconds each:
- 📛 your name
- 💪🏽 What you worked on yesterday
- 🛟 What issues are blocking you / What problems you encountered
- 👷🏾 What you will work on today
After everyone has given an update, reflect on next steps together. Can you team up on shared blockers? Is someone working on something interesting that you want to know more about?
🧑🏿🔧 Study Group Development
Learning Objectives
This time is set aside for you to work together in small groups to make progress on your coursework and objectives. You should have brought at least one ticket from your backlog to work on and ideally have prepared at least one question to get mentor support on.
You can also choose to do structured activities to consolidate your objectives for this sprint. Your learning journey belongs to you. Think about what you need to do to achieve the objectives for this sprint and how you can use this time to work towards them.
If you are working on a Pull Request, this is a great time to get real time code review from your peers and mentors. Remember to use the GitHub interface to comment on the code and ask questions so your work can be tracked.
🗂️ Options
Optional structured activity: Pair Programming
🧑🏿🔧🧑🏿🔧 Pair programming
Learning Objectives
- Switch between driver and navigator roles after
- The “driver” is the person typing on the keyboard, just thinking about what needs to be written
- The “navigator” reviews what the driver is doing and is thinking about to write next
- Don’t dominate - this is teamwork
⌛ Time’s up! Take a break! Make a cup of tea. Good job, partners!
🫖 Morning Break
Please feel free to grab some coffee or tea or pray at this time if this is part of your religion .
🧑🏿🔧 Study Group Development
Learning Objectives
This time is set aside for you to work together in small groups to make progress on your coursework and objectives. You should have brought at least one ticket from your backlog to work on and ideally have prepared at least one question to get mentor support on.
You can also choose to do structured activities to consolidate your objectives for this sprint. Your learning journey belongs to you. Think about what you need to do to achieve the objectives for this sprint and how you can use this time to work towards them.
If you are working on a Pull Request, this is a great time to get real time code review from your peers and mentors. Remember to use the GitHub interface to comment on the code and ask questions so your work can be tracked.
🗂️ Options
Optional structured activity: Pomodoro
🍅 Pomodoro
Learning Objectives
Each group member, take a small-scoped piece of work from your backlog. Set a timer for . Use this focused time to complete your ticket and open a PR.
⌛ Time’s up! Take a break! Make a cup of tea. Walk around a bit.
Now set a new and review each PR as a group.
⌛ Time’s up! Take a break! Make a cup of tea. Stretch! Look at how much progress you made in one hour. ✨
Optional structured activity: Kata
🥋 Kata
Learning Objectives
The goal of a kata is to practice a specific skill, such as refactoring, or to learn a new language or framework.
Kata are often used in coding dojo, a practice where a group of programmers work together to solve a programming problem. Today we will use kata to practice TDD, using a simple kata from our Codewars collections.
🕹️TDD Pair Kata (20 minutes)
One person will be the driver. The driver can only write the code as directed by the navigator. One person will be the navigator. The navigator can only give directions to the driver. Hands off the keyboard!
The driver and navigator will solve the kata TDD style. First write a failing test, then write the code to make it pass. Then refactor the code. Write the simplest code that passes the test. Start with the simplest test, and work your way up to the most complex.
🔄 Retro: Start / Stop / Continue
🕹️Retro (20 minutes)
A retro is a chance to reflect. You can do this on RetroTool (create a free anonymous retro and share the link with the class) or on sticky notes on a wall.
- Set a timer for 5 minutes. There’s one on the RetroTool too.
- 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.