Fun Educational Morsels, Linux-Style
Bonjour, mes amis! Welcome back to my restaurant, “Chez Marcel”. Please, sit down. In honor of this month's special educational focus, François has prepared your tables (school desks, actually) by putting them all in a big circle. But of course, he will also be bringing your wine.
François! Du vin. Vite!
One of the questions I ask visitors to my restaurant is this: sure, you will cook with Linux at the office, but what will it take for me to convince you to try some recipes at home? As you can imagine, I get many answers, but one I hear so often is, “Sure, Linux is tasty, but what will my kids play with? I have all this wonderful educational software available on that other OS.”
Sacre bleu! Is that all? Well, pull your desks a bit closer, and together we will cook up an education and entertainment center for the kids (of all ages, non?) using Linux and open-source software. And yes, I have tried them all.
In order to keep things lively, I have asked François to hold off giving you the URL for all these fine recipes until the very end. You may take your souvenir menu as you leave the restaurant.
What's that? You think Chef Marcel has been sampling a little too much wine because he suggests turning the power of Linux over to a child? I assure you, mes amis, I have been drinking only as much as is necessary to ensure quality control. As for children, letting them have access to your system only makes sense.
Linux is a multi-user system by nature. Although a number of us instinctively log in to the root account when we start up, this is actually a very bad idea. The root login is there for you to perform administrative functions. While this is the first login we see during an install, for some users it is also the last. This is not only dangerous, but limits the reach of your Linux system. While you are logged in as root, create a user login for your child. Mon Dieu! Create one for everybody in the house! Since François is a child at heart, I will use him for our example.
adduser francois passwd francois
In order to make the experience of logging in as simple as possible for the whole family, I recommend that you use one of the graphical login programs. For KDE, this is kdm, while GNOME uses gdm. That old favourite xdm is still available, but the less Linux-savvy may find the default X Window System environment a little less than friendly. On my Red Hat system, I set my preference for kdm by modifying my rc.sysinit script. You'll find that in the /etc/rc.d directory. The section you want looks like this:
# Set preferred X display manager link preferred=kdm if [ -f /etc/sysconfig/desktop ]; then if [ -n "`grep GNOME /etc/sysconfig/desktop`" ]; then preferred=gdm elif [ -n "`grep KDE /etc/sysconfig/desktop`" ]; then preferred=kdm elif [ -n "`grep AnotherLevel /etc/sysconfig/desktop`" ]; then preferred=xdm fi fiBy default, the preferred= variable is not set. I changed mine so that it reads preferred=kdm. Another way to do the same thing is to edit the /etc/sysconfig/desktop file and simply put in the name of your favourite desktop environment. A couple of lines further on (in the next paragraph of the rc.sysinit), the system sets the link for prefdm which is then started in your /etc/inittab file.
ln -snf ../..`which kdm` /etc/X11/prefdmDuring your install, you may have been given the opportunity to let Linux boot into a graphical desktop. If you chose not to do this, you can still change your mind. This is the tail-end section of my /etc/inittab file:
# Run xdm in runlevel # xdm is now a separate service x:5:respawn:/etc/X11/prefdm -nodaemonSimply add or edit the last line to the inittab, then run the following command to activate it for next time and each successive boot. You will want to do this when your X environment is not running.
init qThe reason for that overview is to get you used to the idea of logging in and creating different profiles for all the users in your family, each with their own protected environment. Now, from your own login, you can start adding games. I created a folder for François, added and built various games, then copied these to his desktop. In KDE, when you create a folder on your desktop (or a link of some sort) you can find those items in a folder called “Desktop”. For François to have the same folder when he logs in, I simply copy my folder to his desktop. Since I broke my own rules and am running as root, I will also change the permissions on his new folder so he is allowed to open it himself.
cd Desktop find "Educational Games" -print | cpio -pduvm /home/francois/Desktop cd /home/francois/Desktop chown -R francois "Educational Games" # chgrp -R francois "Educational Games"
When he logged in, his desktop had a nice little folder with all the appropriate links and icons. Incidentally, this is a great way to maintain (and rebuild if need be) another user's desktop. If you want my little folder (as an example), you can download it from the link at the end of the article. I've also included a web page with links to all the items we will sample, if you don't want to go hunting for everything on your own. (See Figure)
When starting your educational games collection for the kids, look no further than your desktop environment. Both KDE and GNOME come with several games (as does X), some of which fit the bill very nicely. (Non. That “bill” comes later.) Some of the KDE games will have a counterpart in GNOME and vice versa. Your quest is to find the one you like best.
For instance,. . . Reversi is a classic strategy game that requires some planning. In this case, the GNOME version (known as Iagno) is more appealing to me for its animation and graphics. The only drawback (and the KDE version's plus) is the lack of board lines. For the younger set, it might require a few tries to get the hang of token placement.
In terms of strategy and logic, I am still a big fan of Sokoban, the Japanese “warehouse keeper” game. You will find this one among your KDE games. The object is to move large gems into their proper storage in an increasingly crowded warehouse. Sokoban takes patience, but does wonders for the analytical process.
Eventually, you will want to try something not included with your Linux distribution. While the excitement of Linux hasn't yet generated the vast amount of educational titles stocking the shelves for that other operating system, the selection is growing and will continue to do so. If you want to track what is happening in the world of children's games specifically, try the Linux for Kids web site. For the bigger kids, keep an eye on the Linux Game Tome and Linuxberg to name just a couple. Move your desks a little closer together, and sample what I found in my initial search.
To not only challenge, but twist and turn a young mind, I recommend Groundhog. This is a wonderful little puzzle where you manipulate tubes (or groundhog tunnels, I presume) to move little colored balls into their corresponding little colored pockets. So far, I have managed the two-ball by two-ball level, but I think I will graduate soon.
Codebreaker is a GPL'ed version of Mastermind, an old favorite of mine. This “guess the color code” game is still a great exercise in logic. For those who consider themselves experts at the game, I suggest trying it with eight different colors.
There are times when I really don't need to learn much. I just want to save the world from an evil empire, say a large multinational software empire bent on world domination. Enter XTux, a great little game that teaches some interesting lessons. For starters, CD-ROMs make great weapons with which to destroy mindless droids, and coffee is all you really need to keep you going. Several characters are provided to help you get the job done: Tux, Gown, BSD Daemon, Emacs and Vi. What can I tell you? It's silly, but fun.
Probably the most fun I had while putting this together was a little something called the Sticker Book. The concept is so simple, it's brilliant. Like the sticker books you had as a kid, this one comes with a variety of images and a handful of different backgrounds. You pick up the stickers by clicking on the various images, then simply paste them onto your background with another click. You can also increase the size of images, shrink them and rotate them. If you don't like the way it is turning out, you can erase everything and start over. In the process of writing this article, I had a couple of adults watching over my shoulder, and they were captivated. The only downside (and I hope the developers read this) is that the tabs which let you flip between series of stickers are a bit small for the large arrow pointer they supply. If it wasn't for the adult response, I would've said this was a game for the very young. Try this one. It's deceptively addictive.
Another selection for the very young is Linux Letters and Numbers. Essentially, this is a board with large tiles representing the numbers 0 through 9 and the letters of the alphabet. Clicking on a tile brings up a picture of something starting with that letter, or a collection of little pictures representing the number (4 apples, for instance). Letters and Numbers comes with a collection of tiles, but you can create your own when the kids start anticipating the image that follows the letter. “P” is for Penguin!
For a slightly older audience, try lolit Math Literature. This is a math training program that helps teach addition, subtraction, multiplication and division. The interface is fairly slick-looking and the questions go from very simple to fairly complex. Just what is 87+54, anyway?
Well, mes amis, it is once again closing time. I sincerely hope I have whetted your appetite for turning over your Linux system to the kids (at least every once in a while). Do come back soon. You are always welcome here at Chez Marcel.
Free DevOps eBooks, Videos, and more!
Regardless of where you are in your DevOps process, Linux Journal can help!
We offer here the DEFINITIVE DevOps for Dummies, a mobile Application Development Primer, and advice & help from the expert sources like:
- Linux Journal
- Be a Mechanic...with Android and Linux!
- New Products
- Users, Permissions and Multitenant Sites
- Flexible Access Control with Squid Proxy
- Security in Three Ds: Detect, Decide and Deny
- High-Availability Storage with HA-LVM
- Tighten Up SSH
- DevOps: Everything You Need to Know
- Solving ODEs on Linux
- Non-Linux FOSS: MenuMeters