βπ½ Register
π‘ Morning orientation
Learning Objectives
Planning during the week
π£ 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:
- Assemble the entire group (all volunteers & all trainees) in a circle
- 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}”
- Ask any newcomers to introduce themselves to the group, and welcome them.
- 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 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
π§° Discussion: programming language concepts
Learning Objectives
This sprint you have read about programming language concepts in How Computers Really Work.
In groups of no more than 6, have a discussion trying to answer the following questions. Everyone in the group should contribute at least one idea to each discussion topic.
Volunteers should avoid speaking as much as possible - the trainees should be answering these questions as much as possible.
Topic: variables and memory
What is main memory? What is a variable?
How does a variable relate to a memory location?
How is a string laid out in memory?
How does main memory (RAM) relate to secondary storage (a hard drive)? Why do we have both?
Topic: CPUs
What does a CPU do?
What benefits are there to having multiple CPU cores?
Topic: Functions
What happens when you call a function? Can you draw this?
What are parameters/arguments? Return values? Scope?
How does “the next line of code to run” move around when using functions?
Topic: Classes
What is a class? How would you explain a class to someone who doesn’t know what code is?
Make sure to discuss at least two real-world examples.
Make sure you describe the relationship between a class and an instance of a class (often called an object).
Topic: Objects
Instances of classes are often called objects.
This kind of “object” is similar to, but slightly different from what we call an “object” in JavaScript.
What are the similarities and differences between these two meanings of the word object?
π« Morning Break
A quick break of fifteen minutes so we can all concentrate on the next piece of work.
π Study Group
Learning Objectives
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
π² Games, rules, logic, and strategy
We have some 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
- Set: a game of visual perception
- Mastermind: a game of deduction
- Sudoku: a game of logic
- Mancala: a game of strategy
π½οΈ 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.
π€ Demo
At CYF we expect you to demo your work to the class. You must have many opportunities to practice how to clearly and simply explain your work to others. This is really important both for interviews and for getting promoted later on.
β° Timekeeper
The timekeeper will keep the groups on track.
Split randomly into groups of no more than 5 people. Each person will have 2 minutes to demo their work to the group. After the demo, the group will give feedback for 5 minutes. Then the next person will demo their work.
π§πΌβπ Trainees
1. Demo
You will demo your work to the group. You will have 2 minutes to explain what you did and why. It’s ok to show broken code or code that doesn’t work yet. Just make sure your demo is interesting.
2. Feedback
After the demo, the group will give you feedback for up to 5 minutes. It’s smart to suggest what kind of feedback you want by asking some “generative” questions. For example:
- I wasn’t sure if it makes sense to try X. What do you think?
- I liked the way I did X, but I know there are other approaches, what did you do?
- I found X really confusing, did anyone else have the same problem?
- I wasn’t sure if I explained what an X was very clearly, how could I have explained it better?
π‘ Tips:
- Practice your demo before class.
- Keep it simple. Don’t try to show everything you did. Just show one interesting thing.
- Keep it short. Two minutes is enough.
- Explain what you did and why.
- Show your code.
- Ask for feedback.
π Study Group
Learning Objectives
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
ποΈ Code waiting for review π
Below are trainee coursework Pull Requests that need to be reviewed by volunteers.
Cape Town| 25-SDC-July | Faith Muzondo | Sprint 2| Shell pipelines π
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 Region | Cohort | FirstName LastName | Sprint | Assignment Title
- 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 reviewLondon | 25-SDC-July | Priscilla Emebo | Sprint 2 | Shell pipelines π
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 Region | Cohort | FirstName LastName | Sprint | Assignment Title
- 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 reviewZA | 25-SDC-July | Luke Manyamazi | Sprint 2 | Shell Pipelines Exercises π
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 Region | Cohort | FirstName LastName | Sprint | Assignment Title
- I have tested my changes
- My changes follow the style guide
- My changes meet the requirements of this task
Changelist
Practiced listing and filtering files using ls and grep, including matching patterns and using extended regular expressions Used sort, uniq, head, and tail to process text files like scores-table.txt and events-with-timestamps.txt:
- Sorted lines by specific fields (e.g., person names).
- Counted unique entries and exits using a combination of tools.
- Extracted top/bottom lines of sorted data for analysis. Explored tr to transform and clean input data streams, such as converting text to uppercase and replacing whitespace.
Questions
- Is my usage of sort -k to sort by names correct and efficient, especially for larger datasets?
- Are there more concise ways to combine uniq and awk to get counts for multiple patterns (like Entry/Exit) more elegantly?
ZA | 25-SDC-July | Luke Manyamazi | Sprint 2 | JQ Exercises π
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 Region | Cohort | FirstName LastName | Sprint | Assignment Title
- I have tested my changes
- My changes follow the style guide
- My changes meet the requirements of this task
Changelist
This pull request includes the following changes:
Completed 10 exercises involving the use of the jq command to parse and manipulate JSON data in Bash scripts. Accessed and extracted data from two JSON files: scores.json and person.json. Implemented commands to:
- Output player names and cities.
- Sum numeric values using array aggregation.
- Safely handle missing or malformed data using fallback logic.
- Filter and sort nested JSON arrays.
- Combine multiple fields into structured output. Ensured all scripts return the expected output format.
Briefly explain your PR.
This pull request contains a set of 10 exercises demonstrating the use of the jq command within shell scripts to query and manipulate JSON data. The tasks involve extracting specific fields, summing values, and formatting output from scores.json and person.json. The goal was to practice efficient JSON parsing using command-line tools in preparation for scripting tasks.
Questions
Ask any questions you have for your reviewer.
- Is there a best practice for handling missing or null values in JSON when using jq in scripts? (e.g., // 0 fallback)
- When constructing new arrays from filtered objects, is there a more efficient or readable way than [.[] | …]?
- Are there common pitfalls or performance considerations when using jq on larger JSON files in real-world applications?
- Would you recommend using jq for production-level data parsing in scripts, or is it better to shift to a higher-level language like Python for complex logic?
London | 25-SDC-July | Priscilla Emebo | Sprint 2 | Jq exercises π
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 Region | Cohort | FirstName LastName | Sprint | Assignment Title
- 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π« 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.
π Study Group
Learning Objectives
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
π 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.