Saturday, July 5, 2014

Lernstick

When looking for a platform to learn Linux and Python programming, Raspberry Pi would be on top of most peoples mind today.

The success of the Raspberry Pi brand has created an active and novice friendly community, where help and advice is easy to find.

However, just using a Raspberry Pi as a low-end desktop computer is surprisingly complex and setting up a room for a programming workshop requires a few crates of additional equipment (keyboards, mice, monitors etc.).

It seems that the strength of Raspberry Pi platform is in low-cost, low-power embedded and physical computing applications, like robotics, control and measurements systems.

Despite the enthusiasm for Raspberry Pi, it may not be the best choice for organizing a programming class/workshop, specially if the school already has plenty of PC hardware available.

The Lernstick is a Debian live-image based distribution which can be booted off a DVD or USB stick. It is being developed by the School for Teacher Education at the University of Applied Sciences and Arts Northwestern Switzerland specifically to support computing applications in schools. The standard distribution includes a lot of applications useful for this educational context, both learning apps and standard productivity tools.

The idea behind Lernstick is to give students a personalized and customizable Linux system they can carry with them (even if it's only the disk) and use it on any standard PC hardware available to them. Switzerland having one of the highes per-capita penetration of PCs (over 85% as of 10 years ago), chances are, that most students would have access to a PC either at school, at home or both. However these PCs would most likely be running windows, be locked down and not allow or encourage tinkering and experimentation with the computing platform itself which is so important to get students beyond being simply users.

To make it suitable for classroom use, there is a lot of emphasis on keeping a low barrier to entry in terms of complexity of installation, administration and deployment, which typically would fall on the teacher. Part of the distribution is a self-hosted management utility (see on screenshot below) which allows to clone the installation onto other UBS drives, including any customizations made like network or printer setup.

To bootstrap the installation process one first needs to download a DVD ISO image and run the installation on a USB drive from it. On my target computer, a refurbished HP EliteBook 6030, I couldn't boot the DVD but had not problems with the USB drives. Since built-in DVD drives are not as common any more, it would be nice to have power user option to download a raw disk image to burn directly on a flash drive, similar to the process for Raspbian for example.

Contrary to Raspbian images, the Lernstick installation uses static system partition that is union-mounted with a data partition for customization and user data. Not really sure why this setup was chosen. Maybe to allow a combination of DVD boot with a smaller USB drive as data partition or an easier upgrade and recovery mode. Given how much larger and faster modern USB drives are compared to DVDs, I am not sure this choice still makes much sense.

While the Lernstick is not primarily designed to teach programming, it comes with a few programming tools pre-installed. For example Scratch and as part of the base operating system installation also  the Python interpreter and C compiler. Maybe most relevant in its absence is IDLE, the simple and novice friendly Python IDE, which is often recommended as a good starting point for learning Python. Fortunately, any missing packages can easily be installed using the standard Debian package management system (e.g. sudo apt-get install idle).

I tried out Lernstick on both a high-end, high-speed USB 3.0 as well as a generic no-name USB stick. Both work quite well, but the faster one is booting 30% faster and the Debian desktop is feeling noticeably snappier - a reminder on how disk-heavy modern desktop environments really are.

Even for schools which are committed to using Linux and open-source applications, the simplicity of Lernstick might still be a good choice, given the challenges of managing fleets of public PCs and network or cloud based setup of user account and data access, with all the data-protection issues that specially Europeans are so concerned about.

I don't know how well Lernstick would perform in a day to day classroom setting, e.g. how often they would break or get lost. On the other hand, the personalization and ownership might lead to a flexibility and motivation that goes beyond what is possible with just having access to a room of shared computers. Similar to the Raspberry Pi, having all the system state on a easily changeable and restorable commodity flash drive creates that "don't worry, you can't really break this" atmosphere which might be important to encourage students to start tinkering and experimenting.