Computer programming is a lot like chess. It is fairly simple to teach people the moves. But knowing how the pieces move isn’t the reason you can win. You have to understand how the pieces work together. It is easy to learn the mechanics of a for loop or a Java interface. But what makes programs work are algorithms. There are many books and classes dedicated to algorithms, but if you are a visual learner, you might be interested in a site that shows visualizations of algorithms called VisuAlgo.
The site is from [Dr. Steven Halim] and is meant for students at the National University of Singapore, but it is available “free of charge for Computer Science community on earth.” We suspect if any astronauts or cosmonauts wanted to use it in space, they’d be OK with that, too.
The animations and commentary take you through algorithms ranging from the common — sorting and linked lists — to the obscure — Steiner and Fenwick trees. Each animation frame has some commentary, so it isn’t just pretty pictures. The site is available in many languages, too.
Many of the animations allow you to set up problems and execute them using a C-like pseudo language. When it executes, you can watch the execution pointer and a box comments on the current operation. For example, in the linked list unit, you can create a random doubly linked list and then search it for a particular value. Not only can you see the code, but the graphical representation of the list will update as the code runs.
The site allows you to register for free to get additional features, but we didn’t and it was still a great read about many different data structures. Also, a few of the commentary slides require you to show you are actually a computer science professor — we assume there’s some copyright issue involved because it is only a few.
This site is a great example of how many free educational resources are out there on the web. It isn’t just computer science either. MITx — or more generally, edX — has some great hardware classes and many other topics






One thing I can say straight off is that students learn differently than people who learn at home. Hobbyists have the advantage of actually being interested, which is a quality a student may not enjoy. People have been teaching themselves electronics since the beginning, with analog projects–Heathkit models, BEAM robots, and ham radio sets–evolving into purely digital projects.
There is a product category within robotics kits that consists of “educational rovers” designed to be purchased in group lots by teachers so that each student or small group gets one. These rovers are either pre-built or mostly built—sure, you get to screw in motor mounts, but all the circuit boards are already soldered up for you, surface mount, no less. They come pre-configured for a variety of simple tasks like line following and obstacle avoidance. The 