Kids who do have their own laptops available are going to be gently hampered by choice-paralysis. What programming language do they learn[1]? Where do they start? What do they need to get to start?
They're also going to be gently hampered by having various incompatibilities - the programming environment will cause some stuff to not compile and while that's a great learning experience it's not what you want someone to be faced with on their first "Hello World" example. Note that all those home computers that people started on, typing listings from magazines, did not have those problems.
And advanced learners are going to be gently impeded by the OS not letting them get access to the hardware. I made a simple DA converter out of resistors soldered to a D25, which I used with NO$GB emulator. Building that DA was useful for me, and seeing the data lines on the D25 made the concept a lot more real. I guess this is possible under Linux or OSX or Windows but it's harder than just selecting addresses and sending data to them.
[1] My answer to those questions is to just use "Learn Python the Hard Way"; perhaps having a version tailored for young people and the Raspberry PI. Once they've worked their way through that they have the confidence to start choosing editors etc.