Skip to content

2018 Program wrapup

Congratulations to our 75 graduates!

The Second Global Code Summer Program closed today in Koforidua, Accra and Cape Coast. 75 students were taught by 13 volunteers over 3 weeks: Linux, Python programming, MQTT, electronics – with a bit of databases and Docker thrown in for good measure.

Read more

First week: Done

We’ve just finished week 1 of our Summer program here in Ghana, so it’s time to take stock and reflect on what we’ve achieved.

Numbers

Firstly, this program is much bigger than last year. Student numbers fluctuated in the first half of the week for a number of reasons: a public holiday on the Monday that we valiantly taught through; another Summer Camp that delayed the start of Global Code for some students, and a couple of no-shows who saw their friends having fun and came along on the Tuesday or Wednesday.

Read more

#GC2018

One week until the second Global Code Summer Program kicks off, and we’re making our final preparations to make sure it all goes smoothly!

Local GC staffer Ibrahim has been working closely with out university contacts at Koforidua Tech, Cape Coast and UG Legon to prep our teaching areas and staff accommodation,

Read more

2018 Applications

Great news – applications for the Global Code Summer Program 2018 are open!

We’ll teach Linux on the Raspberry Pi, Python, internet and IoT technologies, and electronics. After the program finishes, we’ll give you the Raspberry Pi as a gift.

It’s a three week program running five days a week, from July 2-20. Class is from 9am-12pm and 1pm-4pm.

This is our second year, and we’re growing! This year, as well as KTU, we’ll be running the program at Cape Coast University and the University of Ghana!

Applications are welcome from all students at KTU, UCC and UG who will start their final year of a programming course in September. Female applicants will be given free accommodation on-campus, thanks to our university hosts. To apply, simply fill in the form here: https://goo.gl/hiJg9S

For more information, contact sam@globalcode.org.uk or call Ibrahim on +233 24 490 5148.

Positive changes

Last year we taught 18 students, only two of whom were women. Our aim is 50% so that was pretty bad. But I think that if you’ve got the right attitude and you’re honestly trying hard to do the right thing, a setback like this shouldn’t stop you from moving forward.

In other words, we ran the 2017 Global Code program knowing we’d have to work harder next year, which is where we are.

In 2017 we accepted 8 women (all the female applicants) to the program. On day 1 only two of them turned up. I asked Josh to approach the others and ask if they’d consider joining class, but none did.

After the program ended, I asked Josh to approach those applicants again and see if there was anything about the program we could change to make it more appealing to women: to carefully find out if we’d done anything wrong.

The answers can be grouped into three:

  • The applicants had chores at home that couldn’t be left undone.
  • The applicants weren’t sure what time of day the program would be running.
  • The applicants weren’t sure they could find safe accommodation for the program.

Ultimately, there’s not a lot we can do about the first issue. People have responsibilities and were asking for a commitment to fifteen days of a students summer holidays; that’s a big ask.

The second issue is easy to fix: we put the class times on our advertising. We work 9-12 and 1-4. We don’t let anyone stay in class over lunch or after the end of the day, so people are free to leave and there’s no preferential treatment for those whose schedules are more flexible. And we don’t assign homework.

Finally, to solve the third issue we approached our host universities and asked them to provide free on campus accommodation for our female students. I’m very grateful that they all graciously accepted, and I’d like to thank the faculty of KTU, UCC and UG for so kindly accommodating (literally!) our female applicants.

Applications are still coming in and we hope that 2018 is our first program with gender parity amongst our students.

Issues we’re still working on:

  • Currently 25% of our volunteer staff are women. We’re actively recruiting women and PoC staff for next year and working on funding their trip (~£2k each)
  • Last year the tshirts we gave to students were pretty crummy. We’re working with a Ghanaian textiles importer to get good quality brandable apparel from a Californian supplier.
  • I just bought 13 return flights to Ghana, I’m hoping to make Global Code carbon neutral in 2019
  • We give each student a Raspberry Pi 3B to use in class and let them take it as a gift when the program is over. It’s got an HDMI port so not many of our students are able to use them at home – again, we checked. So next year I’m hoping to add an HDMI/VGA adapter to our hardware buy.

Guest Post: A Week (and beyond) with a Raspberry Pi 3

(In this post, Ghanaian developer and Global Coder Rexford Nkansah gives us his hot take on the Global Code 2017 Summer Programme. Thanks Rexford!)

The first time I saw a Raspberry Pi was about three months ago. It was during my interview with Barnabas, who is into Internet of Things (IoT) and robotics. Barnabas shared some of his endeavours and projects, of which some of his works got him to represent Ghana in Dubai recently. More on that later.

On the very same day, I got to see an Arduino board too. Pretty fascinating devices. Their potential and the possibilities they come with, almost infinite!

IMG_8062

Rexford Nkansah

In all, I did not get to play with one practically until the Tech Leads Ghana Summer Program 2017 in collaboration with IoT Africa. The chance I had to firsthand, get myself dirty with the Raspberry Pi was a truly inspiring experience.

For the most part, the Summer program was more of a refresher course for me, as I spend many hours a week DevOps’ing. It was just a ball in my court! Heck, I am a Web Developer too.

However, the part that got me excited more was the Raspberry Pi experience and here, I share my experience below.

Understanding GPIO through use

Our first attempt at practically doing something ‘useful’ (turn on a LED bulb), was a success. As fundamental as it seemed, it opened my eyes to the possibilities. I wasn’t alone though.

I could see the faces of some 20 individuals who took part in the program cheer up, and light bulbs go on in their minds.

Getting the LED to light also ‘led’ to the understanding of what the breadboard is designed to accomplish. Took a while to understand the rows and columns and how they play integral way in forming circuits, circuits that get data signals from the GPIO pins to instruct whatever the input or output is.

General-purpose input/output (GPIO)

As we moved on to build slightly more complex setups meant the full potentials of the Raspberry Pi kept uncovering. When we threw in a button, which when pressed, lit up the LED bulb meant whatever the program was taking us through was hitting home right and solid.

As chaotic the wiring seemed at first, tracing the input points and where they ended up (the Ground (GND)), gave a clearer picture.

Before I went into the course, I had no experience related to Raspberry Pi’s, no ever thought I would one day be IoT’ing. Yet, there I was, setting triggers and lighting up LEDs, to even triggering sending of emails via If This Then That (IFTTT) services.

Speaking of sending emails, since Python is my go-to programming language for many of my web development activities (cough cough, Django), the existence of a fully featured and rich API for communicating with the Raspberry Pi was a relief.

IMG_8021

Rexford (center) with John from Rancard, and our Tech Leads star Josh Kumi

Icing on the Cake with Python GPIOZero

Having 20-pair GPIO pins that one could use to take input with or send signals out from is nice! What is even more amazing is the ease one could programmatically control.

GPIOZero made programming around feedback and signals sensors and input devices connected to the GPIO pins simple and streamlined.

In all, I realized I could throw the GPIOZero package into my usual Django applications, giving an interface to controls I have prepared on my Raspberry Pi. Thus the on and off button could be wired into an interface over the web, allowing an arbitrary user to turn on or off the LED light from anywhere in the world. Pretty handy!

Personal Customizations

So recently, I switched to using Mate Desktop full time, when news of Ubuntu switching to Gnome dropped. Therefore, I had to run a few changes to bring my Raspberry Pi to my taste, UI-tically and familiarity-wise. Forgive my English!

The Raspbian OS didn’t work as functional as I expected. The Mate Desktop for Arm architecture was the savior.

Each and every participant of the Tech Leads Ghana summer program took home, each a Raspberry Pi Model 3 and its related accessories, except a Monitor. Of course, I didn’t expect to carry home a monitor.

A big thank you to Sam Moorhouse, our instructor for the Summer Program for such a wonderful gift.

The customizations I applied to my Raspberry Pi are available on the Raspberry Pi website. Here is mine:

  • Installed a brand new shiny Mate Desktop 16.04 LTS on my Raspberry Pi. The experience with Mate Desktop, just smooth!
  • Installed OpenSSHServer, so I could remotely communicate with the Raspberry Pi via SSH (assuming both Raspberry and my machine are on same LAN or WLAN
    • After setting up my SSH, I then threw in VNC, thus without plugging my Raspberry Pi to a monitor, I could still have a GUI, via SSH.
  • Remotely accessing my Raspberry, as long as it is connected to the internet, from anywhere in the world.
    • I went with Dataplicity.

Check out the Remote Access section of the Raspberry Pi documentation to learn more about ways to go about you Raspberry Pi.

Conclusion

I really enjoyed this year’s summer program by Tech Lead. Hopefully, next year’s event will be much more interesting and educative, even more.

Kudos to the Tech Leads Ghana team, and IoT in Africa.


Thanks again, Rexford! You can follow his work here. Global Code returns to Ghana in July 2018. Read more about our work or buy a Raspberry Pi as a gift to a student. Thanks!

Guest Post: My Experience at the Global Code Summer Programme

(Our first programme was called “IoT in Africa” In this post, Global Coder Synvalnus Gatorwu describes his experiences on our 2017 Summer Programme)

It began as a whatsapp invite, and suddenly I felt an excitement to attend.

MY FIRST IMPRESSION

The impression I had upon entering the lab on a Monday morning was one of mixed feelings. I didn’t know what to expect. What I saw however raised my hopes that it was going to be practical, and not one of those talk shops.

As a science student during my O’level and A’level days, the lab is not a strange place to me, but an IT lab certainly is.

IMG_20170718_150338

Synvalnus Gatorwu

The next observation I made was our tutor. He was a British and obviously an experienced IT personality. I concluded that the next three weeks was going to be one of those serious intellectual times in my life, and I wasn’t wrong, it was a life changing one.

Initially, I had just come on the first day to see if this was something worth my time. After what I saw upon entering the lab, I changed my status to one of “I am really going to cancel all appointments and devote these three weeks to this”

This is how Rexford Nkansah, a web developer who was with us described Sam Moorhouse, our tutor:

The Instructor Sam Moorhouse, the instructor for the 3-week summer program is an industry expert experienced in working on real-world applications using battle-tested platforms and or tools in real-world organizations.

Although his experience and knowledge are deep, Sam’s teaching skills allow him to draw the students out into the bare open with simple-to- understand expressions and explanations. I personally enjoyed his lectures and hands-on assistance.

For me, in one sentence, he is an experienced teacher who knows how to teach the most complex of things in the simplest of ways.

Week One.

The first week of the program was exciting. We were introduced to intriguing subjects that got the entire class yearning for more. For someone like me, it was an eye-opener to be introduced to Internet of things, the Raspberry Pi, and more.

We started with the basics of Python, linux, went through a bit computing and networking fundamentals, using the Raspberry Pi, and IoT programming using programmable web and the particle IoT platform. All these are were new to me, and as a broadcast journalist, a statistics graduate and public health student, I asked myself “how come I didn’t know all these”

The entire program was so practical, there was hardly any lesson that didn’t involve hands-on, we got to apply everything we studied, and immediately appreciated their use in the real world.

The biggest surprise was the introduction to the Raspberry Pi, which I hadn’t seen before, its usage was an eye opener.

Week two

Began with another exciting Monday as we were informed of our trip to Accra on Thursday. Flask, was our first lesson in week two, and I was so elated to have seen how it works.

Heroku as another joy as we deployed the application and saw it work. The MQTT was also a delight to operate.

Need I state that, these are all new to me, unlike some of the students who already know of some of these, for me, it was a joy because I had not heard of these before.

Git and Github become a sensation among all the students. ‘git add’, ‘git commit’, and ‘git push’ probably will be the last any student of the program would forget. These terms became the mantra of the entire program.

Behold, it was Thursday, and time for the trip.

I had to finish up a meeting at the National Communications Authority Head office, yet I
couldn’t miss such a glorious opportunity to see real software engineers at work. I dashed to Accra by 5am, got my work done with the officer, and met up with the team.

My first reaction was to bring my journalistic prowess by interviewing Joshua Kumi, the brain behind Tech Leads and Sam’s man on the ground. The interview was live on facebook.

I was yet to appreciate the beauty of the IoT in Africa and Tech Leads T-Shirts, when I saw students in the bus, it was such a beauty.

IMG_7955

Synvalnus models our tee-shirts #bluesteel

Our first stop was at Rancard.

For me, it was like magic, starting from Ghana, they have spread their tentacles across the globe. And it was time for me to ask questions on how it was done, making it possible for text messages to be sent across platforms in real time, and the volume of it was amazing.

The “control room” my own term to describe where their work was being monitored was
awesome. At least, it demystified my thinking on how this “magic” works.

Our next stop was at hubtel

I must say, we had a lot of detail in hubtel because the presentations were a number, and then we had the opportunity to be taken round their various departments, unlike rancard where we were a bit restricted, hubtel gave us a treat, and for the first time, I saw computers with such giant screens.

We interacted with some of the engineers who were busily “coding” and who left their work to interact with us. I couldn’t resist the temptation of touching the screens to have a feel. I, for the first time, saw how and where phone applications are tested before released into the market.

I must confess, some of the terminologies used were new to me, and as a journalist, I came home to do a lot of homework.

Just before we left, we were showed the only laptop that was used to start the company an old dell computer. Lesson, little beginnings can lead to great ends if only one doesn’t give up.

The icing on the cake for me was a student from a country in the western world who had come to do internship, and to think that Ghana would have a company that would attract such was for me very hopeful of Africa’s potential.

On the Friday of the second week, Sam Moorhouse led us to choose our projects.

This was the most exciting time of the week, we all went home thinking and dreaming of our projects.

The week was an excited one as we all completed our projects ahead of time for the scheduled exhibition on Friday.

This is how a Senior Web Developer who spent time with us, Rexford Nkansah put it.

“Controlling an LED with a button press through the Raspberry Pi General-purpose input/output (GPIO) pins with the above code was fun.

As the LED goes on, the endless possibilities achievable with the Raspberry Pi kept popping up in our heads. Each nod by a student meant a light bulb in their mind came on. The experience was engaging and fun.

Writing basic Python code to turn our idea (turn on a light bulb by button press) into reality (light actually turned on) was priceless. As trivial as it seemed, the feeling and joy such an experience carried were more than words could describe.

Our understanding of the use of the breadboard meant we could build complex circuits using different sensors to achieve varied results. A firm grasp of the fundamentals was all that was needed, and the ideas started flowing.”

The IFTTT

The If This Then That event open source function was simply scintillating. In combination with our Raspberry Pi functionality, we could get emails sent after a button press.

Think of a panic button for your shop. Or the panic ‘word’, where a sensor would pick up your voice, and trigger an event.

In short, our ideas run wild. The practical understanding meant, we all took home a strong appreciation for what tech could help us all achieve.

This, was the project my team and I embarked upon, and an application, I am exploring for my website http://www.healthylifegh.com I intend to have publications sent to all social media accounts of my budding organization that specializes in churning out health news from Ghana to the world.

Our project used all we had learned, wrote a code in python, used the If This Then That (IFTTT) function, and then had a circuit in place on our breadboard, in addition to others, connected to a sensor.

When the code is running, this is what the project would do:

The concept is this: When my door bell or button is pressed, check to see if I am around and light a bulb so I would know, there’s someone at the door.

If I am not in, send me an email so I would get to know, there’s someone at my door.

And it did just that.

As a person new to these, I have come to appreciate the world of code, open source applications and electronics.

At the end of the program:

Every student of the Tech Leads Ghana 2017 Summer Program in collaboration with IoT in Africa took home a Raspberry Pi Model 3, a 16 Gig SD Card, a micro USB charger brick and cable, a breadboard and an HDMI cable.

Priceless gift! A big thank you to Sam.

My application of the program is going to help me reach a larger audience than I used to with my health news.

My gift of the Raspberry is going to be used in my newly acquired office.

Thanks to you once again for the great door opened to me into the world of IT.

Koforidua Technical University, where it all happened, will certainly be a place to remember.


Thanks Synvalnus Gatorwu! The Global Code Summer Programme returns to Ghana in July 2018. You can help by getting in touch and buying a Raspberry Pi as a gift to a student. Thanks!

GlobalPi: The Raspberry Pi as a teaching computer

In July 2017, we ran our first Global Code Summer Programme. One of our challenges was finding the right platform for our students. We wanted everyone in the class to have the same opportunity to learn and grow, so it was important that we bring our own hardware, rather than using whatever was available. We also wanted the flexibility to teach what we wanted  – meaning an IoT-rich curriculum with plenty of coding time using industry-standard tools.

We chose the Raspberry Pi 3B, and this is why.

Coding

The Raspberry Pi allowed us to dive straight into Linux and Python – the bedrock of our course and the balance of most of the teaching in week #1. Josh and I did all the setup ourselves on the Sunday before kick-off – plugging in, testing, installing Raspbian, then unplugging 30 Pis was the work of a couple of hours.

IMG-20170711-WA0059

We don’t do holy wars: Linux is a battle-tested, widely-used OS and every Software Engineer should have a firm grounding in the shell, so we needed to spend a couple of days letting our students discover the terminal, filesystem, editors, and Python REPL. The Raspberry Pi allowed us to do all this without either repurposing whatever hardware the students owned, or supporting a bunch of different configurations in-class.

Finally, Raspbian comes pre-installed with a decent Terminal, some Python editors, and a Python 2.7 (remember, no holy wars) REPL – and a whole bunch of other useful stuff is available with a quick “apt-get”.

Hardware

The Pi is underpowered for any kind of heavy lifting – I run a tab-heavy Chrome which simply doesn’t fly here – but it’s great for the kind of work we do in class – editing and running Python, looking up documentation, and fooling around with the shell.

Two things that really stand out with the Pi, though –

  • You can see the hardware. The 3B is about the size of a deck of cards – easily small enough to pick up and poke around on. They’re fairly robust so we didn’t use the cases we had in class – on day #1 we spent some time figuring out what all the components did, which really helped to demystify computing hardware.
  • The GPIO pins really help to bridge the gap between programs running in a virtual world where stuff happens but really has no effect, and the physical world where lights flash and bells ring. Being able to extend your computing environment into the real world helped students feel like they really could solve real-world problems with computers.

IMG_7200

Availability

The Raspberry Pi foundation has a truly excellent distribution model, meaning their hardware is available globally, with a short lead time, for a reasonable price.

It was important to us to buy locally, for two reasons:

  • Import and customs logistics is boring, and a place where we really add no value – a prime candidate for outsourcing,
  • We’d much rather build a relationship with a local supplier and let them profit from doing the work.
Invent

Josh and Sam drive to Kumasi. Thanks, Isaac!

We were lucky enough to find Isaac Sesi at Invent Electronics, and took a trip up to Kumasi to pick up the 33 Raspberry Pi starter kits and 6 Arduino starter kits we’d ordered from him. Isaac is a mainstay of the local maker community, and he co-founded the Nsesa Foundation, a Ghanaian organisation which aims to inspire students to be innovative using science and technology. He’s top talent and we’re happy to partner with him.

Portable

The Pi is tiny – it’s lightweight, comes with a screw-on case so you can throw it in your bag, and it’s low-powered so you can run it from a USB socket on the back of a PC (which is what we did). It’s great for teaching a student – but more importantly, for our purposes – it’s great for teaching 18 students! The Pi made our get-in cheap and easy.

Downsides

Whilst our decision was easy, there are a couple of practical downsides to the Raspberry Pi:

  • HDMI video – is all that’s available. Because this is still a fairly new standard it’s difficult to find cheap HDMI monitors on the secondary market. Our labs had multi-input VGA/DVI-D monitors which meant we were able to use a passive HDMI/DVI-D adapter cable, but this is a potential issue in other cases. Similarly, many of our students don’t have HDMI kit at home, which limits their ability to continue learning out of class.
  • Digital GPIO – unlike the Arduino Uno, say, the Raspberry Pi can only read digital in – which means the components you use must be set up specially if you need to read more than just 0’s and 1’s. This was fine for us but if you want to read the room temperature or humidity using commonly available components you’ll have to do some more work.

 

The Global Code Summer Programme 2017 finished on July 28. We’ll be back in Ghana in 2018 – find out more on Twitter, Facebook and Instagram, or get in touch and buy a Raspberry pi as a gift to a student.

Short projects: buy-in, energy, and the race to the finish

In the final week of our 3-week Summer Programme, we set our students the task of coming up with a group project, building it, and then presenting it to their faculty on graduation day. It’s a great learning experience, a little bit of pressure, but above all, it’s great fun.

Here’s how we do it.

Groups

We work in groups of three. Group work is a great way to share knowledge but it can also introduce an admin burden best described in the classic Software Engineering text, the Mythical Man Month. It’s tempting to think that larger groups will make your job as instructor easier, but it’s actually much harder: work grinds to a halt because of under-communication and personality clashes.

Three means that, on a small project with a tight, four-day turnaround, everyone has something to do.

Three is the magic number.

Self-determination

We have the groups define their own projects. This is so important as it gives each student the immediate sense of buy-in that you otherwise couldn’t grow organically in such a short time.

In our summer programme in July 2017 we drew up a list of topics we’d already covered, as a reminder of what we knew and what was in scope. The project ideas that we ended up with for our Monday morning brainstorm were, without fail, tractable, relevant, and scope appropriate.

Editing

Here’s where you come in, as an instructor – you know what can get done in four days (Monday – Thursday, with presentation and graduation on Friday), and you know, by now, what each team is capable of.

On Monday morning we went through each group as a class and discussed their proposals. Some groups had one, and one group had three different ideas for submission. All had the kernel of a great idea – “something we can work with”. It’s your job to guide the discussion towards a project you know will be successful. Here’s two writers tricks to help you:

  • Expand, then contract. Don’t edit the ideas as soon as the come to you – encourage the group to grow their idea first, then trim. “What if we used IFTTT here?”; “would that work with ten sensors? A hundred?”; “What if we had a million dollars instead of none?” It’s a really fun exercise.
  • “Yes, and”. This classic improv ploy helps to keep the discussion hot. It’s a great way to encourage the growth mindset and prevents you or your students from shutting down ideas. The rule is simple: never say “no”, never say “but” – always say “yes, and…”. 

Grind

That doesn’t really leave you with much time left! We had a hard deadline of Thursday at 4pm – when all the project work needed to be done, the room cleaned, and our patter prepared.

Your challenge now is to balance your time between finding incisive and relevant teaching opportunities and getting out of the way. Here’s a few thoughts:

  • Time management is hard. There’ll be a rush at the end. Time pressure isn’t always a bad thing.
  • Project planning is necessary, but you don’t have enough time to be explicit about it. You can help by teaching and applying some lightweight critical path analysis.
  • Teamwork is probably a new thing. All our students are on slack on day #1, but in these small groups they’re all at the same desk. There’s no time for a leader, so it’s probably you.
  • Division of labour isn’t natural yet. At one point in our 2017 project week, every group in the room was blocked on one of their group members, with the other two looking on hopefully. Talk about splitting up the work, wait for a bit, then when you come back and see that nothing’s changed, assign tasks, Adam Smith.

I found that my Monday and Thursday were intensive, and my Tuesday and Wednesday were quieter – I was walking around every 50 or 60 minutes chivvying and questioning.

Find the success

Realistically, a four-day project build by an inexperienced group isn’t breaking barriers, but if you’ve been careful, your students will have built up a sense of ownership, creativity, and achievement – a can-do attitude.

It might well be the first time any of your students have solved a problem using technology. That’s pretty incredible. So help your groups build the narrative around their solution – whatever they’ve come up with.

Here’s our projects from 2017:

  1. An MQTT system to take inputs from a number of distributed sensors and display them on an LCD screen
  2. A security system that will alert you when someone is at your door, by flashing a light if you’re home or emailing you if you’re away. The system uses a PIR to detect if you’re home.
  3. A device to allow a pregnant lady to press a button and alert the hospital when she goes into labour. A light on the device flashes when help is coming.
  4. A traffic lights system that lets more cars through when the lane is busy, and stops traffic if a motion detector detects a train, or a pedestrian presses a button.
  5. A button on a conference room table that alerts the speaker, by way of a message on an LCD screen, when a delegate has a question.

Global Code is growing! In 2018 we’ll teach 90 students in Ghana, and they all need a Raspberry Bi 3B. Get in touch if you can help us out.

Cheers
Sam Moorhouse
sam@globalcode.org.uk

#nohomework: equity and opportunity in the developing world

It’s almost axiomatic for an instructor to assign homework. In a world of MacBooks and coffee shops with free wifi, assigning a reading list, catchup work or extra credit is a gimme – your students are learning while you’ve got your feet up after class, what’s not to love?

Homework is only fair if everyone can do it

In the classroom we’ve got a high degree of control over the technical environment. At Global Code we give each student a Raspberry Pi 3B at the beginning of day #1. We spend class time holding the kit, poking around and plugging it in. We set wacky colour schemes and fun desktop backgrounds to build ownership. It’s yours.

Our technical rider includes the use of ethernet, HDMI screens, keyboards and mice – so everyone in the room has the same hardware baseline. We’re careful to design our applications process and curriculum around the enquiring mind rather than the academically successful one.

But things are different at home. Does the student have a quiet space where they can work? Do they have access to the internet? Do they have a keyboard, mouse, and monitor? Some do, for sure, but not all. Even in school, access to hardware is limited, with some teachers resorting to teaching computer skills with pebbles as mice.

Our host institution trusts us with lab keys, which is one reason we keep to a very strict 9-12, 1-4 timeline. It’s only fair to expect students to work during the time we can guarantee access to our environment.

Homework and housework

We’re aggressive about equal opportunity, although this year we fell far short – only two of our 18 students were female, despite an aggressive target of 50%. We’re focussing hard on this for next year, but one of our initial findings is that the girls who applied were often occupied with family-based housework in the evenings – cooking, cleaning, looking after younger brothers and sisters.

If we can be clearer about our strict working hours next year, this might go some way to redressing the gender balance in our classrooms.

Clocks and Curves

So how do you pack in such a heavy teaching schedule into three short weeks? We have 90 hours of classroom time to cover Linux, Python, git and GitHub, Flask, Heroku, Electronics, Web APIs, the programmable web, Heroku, MQTT, and GPIO, and design, build and present a group project. How do you approach all that?

Carefully! It’s a question of clocks and curves. Here are my tips.

  1. Timekeeping. As in many countries, attitudes towards time pressure are quite elastic in Ghana, but if you make your best effort to keep to a schedule, you’ll find that most of your class will come along with you. Clearly you can’t teach an empty class, but starting as early in the day as you can will show your students that 9 means 9. We made a joke out of British Time and Ghana Time.
  2. Timekeeping. Really, honestly: finish on time. And when you’re finished, empty the room. It’s great that people want to hang around and finish off, or chat, or learn more, but not everyone can, and if you’re serious about equality you can respect the time your students give you without creating social pressure to stay late.
  3. Timekeeping!. Make the most of the time you have. We teach by example, and when a class full of people is writing code, there’s always something to learn. How do I look up documentation? Teaching opportunity. How do I read a stacktrace? Teaching opportunity. How do I debug this function? Teaching opportunity! You can double down by having the student stand up and explain to the class what they just learned, if you think it’s appropriate.
  4. Use the forgetting curve: With such an action-packed schedule you have to do more than teach new material – you have to be careful to timeline reviews – the next morning, after a couple of days, the next week. Our curriculum is cumulative, so we cover Linux on days #1 and #2, then use linux on the Pi for the next three weeks. We also make use of morning and ad-hoc q&a, and even rote learning where it’s appropriate (git!).
  5. Remember the bell curve: know where your students are at. Check their body language and watch how they work together to spot leaders and followers. Know when to expect questions. Expect the placement of students on the curve to be dynamic across topics. Set high but attainable standards, and challenge your students without calling them out.

Got something to add? We’d love to hear from you in the comments below.

Here at #glblcd we just finished our first Summer Programme. Find out more about it here, or get in touch and buy a Raspberry Pi as a gift to a student. We’re on everything as @glblcd.