I born in Uzbekistan. My dad bought me russian clone of ZX Spectrum [1] (8-bit, 3.5 MHz CPU, 48K RAM) in 1994. Which I actively used till 2000!

The funny thing is that I didn't look at my lovely ZX Spectrum as sad outdated piece of hardware. Quite opposite, I actually lived in 1980s, it was exciting time with my ZX Spectrum.

Back to education. In 1994, I was kinda troubled 10 years old kid, who completely hated school. Along with ZX Spectrum, my dad bought me a few books for kids about programming on Sinclair BASIC [2].

In a few years, I learned Sinclair BASIC myself without any external help. Around 1998, I discovered fast world of Assembly language. Cool thing is that I had only book about Assembly language but I didn't have Assembly Translator, so I had to use machine code directly [3].

So by 2000, I knew very well my ZX Spectrum. I knew all these secret ROM subroutines, I knew all these optimization tricks like if you put performance critical code in lower addresses, then it run faster. And if you put this code to video memory, it works even faster. So I learned myself how computer works and basics of computer science myself. My dad wasn't engineer. My school was useless in every single aspect of education.

In 2000, when I switched to Windows 98 SE on Pentium 166. In just a few days, I learned myself Windows 98 interface and how to use all basic programs there. It's because I was already exposed to some simple Window-based applications on my ZX Spectrum.

However, I couldn't grasp how to program on Windows 98. I had Delphi. But it looked so bloated and complicated. Unlike ZX Spectrum, I couldn't see full picture. As a sad result, after few failed attempts to program, I abandoned programming for next 7 years.

In 2007, when I finally switched to Knoppix Linux (and then Mandriva Linux), I finally start writing programs in C language. Linux as environment and C as a language were welcoming and friendly to programming!

Conclusion for me: If I were exposed to MS Windows from day one, I most probably wouldn't self-learn programming. ZX Spectrum was very simple and very clear in order to understand basics of computers and programming. ZX Spectrum was a perfect companion in the world of programming and computers for completely uneducated kid without any external guidance. On contrary, MS Windows and these bloated object-oriented programming language with fat IDE are unwelcoming. I highly doubt that average 10 years old uneducated kid without any guidance could grasp full complexity between you and machine. I even doubt kid would even find a way to start programming in the first place! ZX Spectrum had a prompt to programming on very start! Even to load game, you have to run BASIC command [4] (I had only tape recorder, so no TR-DOS [5] till 1999!). After you master ZX Spectrum, it takes just a week to self-learn how to use MS Windows (at least Windows 98).

Talking about computer education for kids in Ghana: I honestly believe they don't need expensive computers to run bloated, expensive and programmer unfriendly MS Windows. They do need modern microcomputers similar to ZX Spectrum. And the country can afford microcomputers. In 1990s, Uzbekistan suffered hyperinflation, average salary was about $5-$10 per month. It's not the end of the world if you clever about using limited resources.

Actually going further, I would say that even in the first world, kids should start using microcomputers in order to self-educate themselves about programming.

Bottom line: CS education could be extremely cheap. Most probably, 99% of world population can afford microcomputers and a couple of old programming books (by the way, I didn't even used original books, it was xerox-copied pages, or sometimes, text was reprinted in matrix-printer!).

[1] https://en.wikipedia.org/wiki/ZX_Spectrum

[2] https://en.wikipedia.org/wiki/Sinclair_BASIC

[3] http://www.worldofspectrum.org/ZXBasicManual/zxmanchap26.htm...

[4] http://www.retroisle.com/sinclair/zxspectrum/howtouse.php

[5] https://en.wikipedia.org/wiki/TR-DOS

[6] https://en.wikipedia.org/wiki/Microcomputer