Ask HN: Alternatives to Scratch for a blind child?
219 points| nathell | 3 years ago
My friend’s children are starting their adventure with programming at school with Scratch. Unfortunately, the eldest one is blind, and as Scratch is visual, he won’t be able to use it. A pity: the kid has probably the most vivid imagination of all people I know.
Can you recommend an alternative? Something tactile or audial, perhaps? A quick googling yielded https://codejumper.com/ – is it worth the $1K it costs?
Personal experience reports are most welcome. Thanks!
[+] [-] hazelnut-tree|3 years ago|reply
https://quorumlanguage.com/
Although the language is not widely known, the language creator posted to Hacker News in 2018:
> Hi all, this is Andreas Stefik (I invented Quorum)....First, people saying Quorum was originally designed for blind children are correct. Originally, we were toying with the idea of adjusting syntax to make it easier to read out loud through a screen reader. That stemmed from observing young blind programmers use a variety of programming languages on one of my first National Science Foundation projects. Phrases like, “for int I equals semicolon, I less then semicolon I plus plus” or other phrases can be extraordinarily difficult to listen to, especially if you are child.
> This is one reason why Quorum is used so heavily at schools for the blind or visually impaired in the U.S. and elsewhere. We haven’t been just for the blind in a long-time, but I still care about that community quite a bit and we work hard to make things accessible. There’s a ton more to discuss in that area, but I want to move on to “evidence."
Full comment: https://news.ycombinator.com/item?id=17849357
[+] [-] y-curious|3 years ago|reply
[+] [-] hugs|3 years ago|reply
I didn't design PinThing specifically for people with blindness, but since it's a real 3D display, it could be useful as a 3D display for shapes, graphs... or even as a real 3D output display for Scratch.
For awhile, this has been a side/passion project, but if there's interest, I'd love to get them a prototype.
Software demo: https://www.pinthing.com/
Hardware demo: https://youtu.be/tx4W3ZDA_Vg
[+] [-] nathell|3 years ago|reply
Unfortunately, my hardware assembly skills are next to zero. Is there any chance to get a pre-assembled prototype? I’d happily pay for the BOM and blog about Adrian’s experience with this.
[+] [-] thom|3 years ago|reply
https://ganelson.github.io/inform-website/
[+] [-] gus_massa|3 years ago|reply
I'd recommend to skip Scratch and clones. Jump directly to Python. The indentation may be a problem, so you must find out how to configure the screen reader to say this invisible spaces of the indentation. Perhaps it's better to use tabs for the children, because they are easier to count. (Some editors show a small arrow instead of a tab, so I'm optimistic this is fixable.)
I recommend t create a small library to play sounds for the kid, so he can use it directly without caring about the nasty details. Something like
My idea is that he can make a small game where you walk and hear the sound in each room of a (haunted?) house. The volume and direction can gives cues. (The code to handle arrows may be tricky too, perhaps encapsulate it in another library.)(When my daughter was young, I made a 3D library for red-blue glasses. He used it do draw simple objects and buildings (something like the front of the Parthenon with square columns).)
If he is old enough and likes math, perhaps he can learn to nest a few `for` and `if` and bruteforce some elementary math problems. I'm not sure if the screen reader is good enough for this. Perhaps a text to downloaded speech library may be useful, so he can use
instead of[+] [-] giantg2|3 years ago|reply
[+] [-] e12e|3 years ago|reply
There's also lisps, like racket, that might be worth trying?
[+] [-] zersiax|3 years ago|reply
Disclaimer: Fully blind programmer, have been for several years,learned as a teenager, later went on to teach various blind individuals as a side hustle for a while, culminating in a 2 month course done for the folks who make CodeJumper. With all that out of the way, let's go.
First, let me just comment on that comment by @conviencefee999. Kindly do your research before chiming into a discussion you quite clearly know very little about. I don't know your unique set of circumstances, but stating that one of the most viable career paths for a blind individual is not a viable career path is rather against the current and, as you yourself helpfully point out, anything but helpful. While it is true that the barrier to entry is still somewhat present, particularly for the age group OP is asking about, it can absolutely be done. Case and point being myself, as well as various others I know of. There are discussion groups about this topic, mostly in the form of the admittedly rather antiquated mailing list. An example is program-l over at freelists.org.
Second, re: Python's indentation situation. I would actually argue that Python is a great starting point, because screen readers are able to either verbally or audibly indicate indentation levels when required, particularly on Windows and up to a point, in a more limited fashion, on Mac OS. This makes the "invisible characters" issue somewhat less problematic, and a braille display alleviates this issue even more, provided the blind computer user in question has access to one, which is more common in Europe than it is over in the States.
Now as for a couple recommendations.
Scratch works on the principle of instant gratification first and foremost: you do, you see. Right away. And it can be difficult to replicate that experience non-visually, particularly for younger children. I haven't really found a 100% equivalent alternative.
I worked with a group of researchers several months ago that is working on an accessible interface to Blockly, a Scratch competitor in a lot of respects, which came as close as I can think of a fully analogous experience. Unfortunately, I have no idea how that project is faring at the moment and if they ever made it further than the prototype I got to test back then.
The things I can think of that come closest are:
* Swift Playgrounds (mac/iPad): VoiceOver, Apple's screen reader, supports these environments rather well, describing the visuals within the game worlds you work in, so this could be something to look into.
* Freecodecamp/codecademy: I myself started learning how to program by writing HTML back when I was 10 or so. I liked the idea of writing some arcane things into a notepad and seeing it come alive on the page in front of me, and FreeCodeCamp essentially does that same thing, but gamifies it a bit more. That could be something to look into.
* SonicPie: SOnicPie is a ruby environment for creating music using code. There's a pretty accessible tutorial for newcomers that could work for, say, a 10-year-old I think, provided they have a love for music and sound. Could be another avenue to try, although the sonicPie editor isn't as accessible as it could be and takes a bit of getting used to.
I hope this helps a bit :)
[+] [-] Mezzie|3 years ago|reply
As a formerly blind and currently visually impaired person who programs, I'd even go so far as to argue there are some benefits to being blind. Humans are visual creatures, but computers aren't, and one of the stumbling blocks for humans learning to speak computer is wanting or needing visual representations of things and building layers of abstraction in part to deal with that need. We separate 'where', 'when', and 'why' a lot easier, I think.
[+] [-] easrng|3 years ago|reply
[+] [-] FranklinMaillot|3 years ago|reply
littleBits are their electonic components kits that can be easily assembled with magnet. According to this paper[1], they can be suitable for visually impaired kids.
[0] https://sphero.com/collections/coding-robots
[1] https://journals.ala.org/index.php/ltr/article/view/6673/895...
[+] [-] llagerlof|3 years ago|reply
[+] [-] femto|3 years ago|reply
Can something be done with an overhead camera, and a bunch of cardboard cutouts using QR codes? I remember one of the (big name?) universities had a project along these lines. In their case they used different patterns of coloured dots on objects, and every object in the room was mapped to a virtual equivalent. Interaction with the computer was solely by moving objects around in the room. I can't find it on Google. It might have had a connection to the Dynabook project? They probably have code ready to go.
Edit: Found it: Dynamicland
https://dynamicland.org/
No source code available?
It has appeared on Hacker News:
https://news.ycombinator.com/item?id=26725370
Also: https://paperprograms.org/
https://github.com/janpaul123/paperprograms
Maybe you could have different shaped bits of paper which implement blocks using javascript? Add a "print" function and the programmer could consolidate something they have written using multiple blocks/sheets into a single block/sheet, so allowing more complexity in a smaller space? Alternatively, can it be mapped directly to scratch instead of javascript?
[+] [-] gcanyon|3 years ago|reply
Another possibly odd suggestion is https://www.jsoftware.com/#/README Natively, J is nothing but symbols, but crucially, everything can be redefined. So this is possible:
7 equals =: = 5 equals 2 plus 3 1 4 equals 2 plus 3 0It's an array-based language, but it doesn't have to be used that way.
[+] [-] gcanyon|3 years ago|reply
[+] [-] gtm1260|3 years ago|reply
One other option I've seen is this Spintronics platform: https://upperstory.com/spintronics/
I first saw it on Steve Mould's youtube channel, they're basically mechanical circuits and it looks super cool.
https://www.youtube.com/watch?v=QrkiJZKJfpY
[+] [-] BigglesB|3 years ago|reply
[+] [-] TameraZamboni|3 years ago|reply
On a second note, I'd suggest researching free software solutions. There should be tools that are free and are specifically aimed towards accessibility.
Some helpful links for further research: 0) https://www.debian.org/devel/debian-accessibility/software 1) https://stackoverflow.com/questions/118984/how-can-you-progr...
[+] [-] rovr138|3 years ago|reply
Usually Apple has been pretty good with accessible features. I wonder if they built it into to Playgrounds too.
[+] [-] kimburgess|3 years ago|reply
Two approachable ones worth glancing at are:
https://sonic-pi.net/ (Ruby based, designed for students)
https://extemporelang.github.io/ (Scheme, with a REPL for real-time performance)
[+] [-] lern_too_spel|3 years ago|reply
[+] [-] nycdotnet|3 years ago|reply
[+] [-] deadbeef57|3 years ago|reply
- https://the-brannons.com/ - https://blvuug.org/ (blind and low-vision unix user group)
[+] [-] liveoneggs|3 years ago|reply
Looks like screen readers (adults run them at incredible speeds) + incredible memory and skill + any text-based language
[+] [-] Rich_Morin|3 years ago|reply
[+] [-] mikelnrd|3 years ago|reply
https://www.kickstarter.com/projects/coboblocks/coboblocks-s...
[+] [-] mikelnrd|3 years ago|reply
https://www.thinkfun.com/products/robot-turtles/