Monarch In Computer Science And Coding

Yesterday, when our Rise technical group met, the two Jasons, Bill and I were talking briefly about how Monarch can help younger pupils studying code or older students trying to master computer science.
I have several thoughts on this topic and would welcome more discussion.
First, to help people just learning to code, I strongly believe the Monarch needs a simple easy-to-master scripting language.
The original Braille 'N Speak had a BASIC language interpreter, and boy was that fun. So, so many games were written in BASIC, many ported to the B&S and others invented by blind kids. A blind child who likes to play games, but can be enticed in to actually writing games already has a foot in the door when it comes to building a career, even if actual coding will not be part of that career.
The modern BTSpeak from Blazie has a wonderful Python tutor and of course a Python interpreter. Again, teaching blind kids and adults how to think logically, plus solve problems helps them become career-ready.
The iPad has the Swift playgrounds, again for helping people learn how to code an iOS app. It’s accessible, and I can tell you quite addictive.
There’s probably stuff for Android, someone chime in.
And of course we have the iOS shortcuts app which is a very effective menu-driven scripting language. I tell people, both sighted and blind, if they want to explore learning to code to try playing with the iOS shortcuts app. No need to master any syntax but creating shortcuts helps you think like a coder!
So a simple scripting language for the Monarch would fill the same role. Maybe it’s a microPython. Or maybe, it looks like the menu-driven shortcuts app. Or a more graphical language might even work.
I think the first game I’d code would be a Simon game as that’s really easy to do and fun to play for all ages.
Regarding older students, I have some concerns. Instead of flow-charts, modern object oriented design often uses the UML language; so instead of manually drawing, these items can be selected from menus in a design app. Here’s agood intro, and if you are blind, use AI to describe the graphics on this page:

I wonder, could any of these UML symbols be reliably rendered on the Monarch? The problem with many diagrams is that simplifying them enough for tactile understanding works well for little kids, but less so for adults.
Another concern is that we must encourage the screen reader manufacturers to better support multi-line Braille. My programmer’s editors work well enough with the Monarch, but things could be better. I can easily switch to 8-dot computer Braille but I often want to look at code both above and below the line I’m focused on and find that I’m either focused at the top or the bottom of my Monarch’s display. Trying to get the scrolling to sync the way I want is tricky and often just doesn’t work. Thoughts on this would be helpful.
Reading technical books on the Monarch works great with a good grasp of Braille. But if you aren’t a wiz at Braille, and you depend on speech, punctuation isn’t usually voiced and the punctuation level cannot be changed. Luckily my Braille, both UEB and 8-dot computer Braille skills are quite good. But that’s not true for everyone.
Skematic symbols probably render faithfully on the Monarch as they are simple. So if you studied engineering that could help. But once you start designing any complex electronic circuit, I don’t think the Monarch will be much help. But for an intro to electronics, I think it would be fantastic.
Honestly the three big things I use my Monarch for are typing minutes in realtime in meetings and proofreading documents I write. I also use it to read technical books on bookshare. And when my boss makes me work on a spreadsheet I use the Monarch. But I don’t haul it out of its bag to write a few lines of code; I often just grab the NLS eReader out of my purse for that.

Let’s share some thoughts here about this topic as it was something our group would like more input about.

1 Like

Recent versions of Android include a text-based Linux terminal environment that runs Debian in a virtual machine. If this is (or can be made) accessible, perhaps it would be possible to install on the Monarch if/when the underlying version of Android is updated. A further advantage is that programming language interpreters (Linux shells, Python, Perl, etc.) and compilers can be easily installed as packages. Also, text editors (Nano, Vim, Emacs, and so forth) can be used to write code, marked up documents, and so forth.

As a Linux user since the late 1990s, I can attest to the accessibility of these tools.

I don’t know whether running a Python (or other language) interpreter would be possible from an Android application. There may be ways of achieving it if the Debian environment is installed, or of embedding it directly into the application.

I agree that better multi-line braille support from screen readers is important and desirable. I primarily use Linux and macOS at the moment. MacOS support is a matter for Apple. Linux support would require changes to the BRLTTY braille display software and, for graphical desktop environments, the Orca screen reader. I am on the mailing lists for both projects. I think the Orca changes would be more complex, as they would require multi-line braille features to be carefully designed and implemented by experienced software developers (and, no, I don’t qualify).

For Microsoft operating systems, there is some support from JAWS and NVDA, with the former being more extensive at the moment. Improvements are desirable, and as mentioned above, we also need better support for desktop operating systems beyond Windows.

Note also that Android itself is becoming a desktop operating system, and that Android-based laptops have been announced by Google. Whether these changes will affect the future of the Monarch remains to be determined. If the next version of the Monarch runs Microsoft Windows as in the BrailleNote Evolve, students and professionals will be able to run development tools directly. If it continues to be Android-based, the move toward supporting desktop applications could broaden the range of software available, assuming that general-purpose, accessible Android applications such as (on the present topic) text editors and development tools can be installed. Monarch technology strategists face major choices at the moment, including the options described above.

One feature I’ve found helpful is the ability to scroll the
screen/window without moving my focus. With a single-line Braille display you don’t need these commands as much.

Here are the Visual Studio Code command pallet commands followed by the keystrokes.
◦ “View: Scroll Line to Top” - (Ctrl+K Ctrl+T ) Scrolls the current line to the top of the window
◦ “View: Scroll Line to Center” - (Ctrl+K Ctrl+C ) Scrolls the current line to the middle of the window
◦ “View: Scroll Line to Bottom” - Scrolls the current line to the bottom of the window
There does not appear to be a keystroke to scroll to the bottom of the screen.
Scrolling to the center is very useful for quickly reviewing the lines above and below the focus without having to move the focus to see them. If you are writing code, it’s nice to be able to quickly look above and below what you are coding and these commands make it work with JAWS/NVDA.
Control-L does the same thing in Emacs.
• C-l (First press): Moves the cursor line to the center of the screen.
• C-l (Second press): Moves the cursor line to the top of the screen.
• C-l (Third press): Moves the cursor line to the bottom of the screen.
For Notepad++ you use control with the up and down arrows to scroll without moving the cursor.
• Ctrl + B: Centers the screen on the current cursor position.
There’s no single keyboard shortcut to scroll the focus to the top or bottom of the screen with Notepad++.

In plain old Windows 11 notepad, you have to use the scroll wheel on the mouse to accomplish this and in my testing the Monarch at least did not respond
with JAWS or NVDA to “notice” what was onscreen had changed.

If you use another editor with Monarch, why not chime in.

These keystrokes can also help a low vision user more quickly magnify the section of the screen where the focus is located.