Algorithms for Visual Learners

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

A Blockchain, Robotics and AI Event in Vietnam

Blockchain Education Network Vietnam recently held an event titled “Building a Robotics & Artificial Intelligence Ecosystem with Blockchain”. The title alone has three of my favorite things in it, so when a client of mine asked me if I could put together a little hardware demonstration for the event, I jumped at the opportunity.

I also thought I’d take a moment to write about it, because I haven’t seen much coverage of emerging technology events in the developing world, and the fact is that there’s a consistently high level of interest. I’ve yet to go to an event that wasn’t filled to capacity, and I hope to share some of that enthusiasm with you.

Continue reading “A Blockchain, Robotics and AI Event in Vietnam”

Hack Your Own Computer Science Degree

We ran across something interesting on GitHub of all places. The “Open Source Society University” has a list of resources to use if you want to teach yourself computer science for free. We found it interesting because there are so many resources available it can be hard to pick and choose. Of course, you can always pick a track from one school, but it was interesting to see what [Eric Douglas] and contributors thought would be a good foundation.

If you dig down, there are really a few potential benefits from going to college. One is you might learn something — although we’ve found that isn’t always a given, surprisingly. The second is you can get a piece of paper to frame that impresses most people, especially those that want to hire you but can’t determine if you know what you are talking about or not. Lastly, if you go to the right school you can meet people that might be useful to know in the future for different reasons.

The Internet has really changed all of those things, you can network pretty easily these days without a class ring, and there are lots of ways to earn accredited diplomas online. If you are interested in what we think is the most important part — the education — there are many options for that too.

Continue reading “Hack Your Own Computer Science Degree”

Students Build Electromagnetic Egg Drop Stand

The Egg Drop is a classic way to get students into engineering, fabrication, and experimentation. It’s a challenge to build a container to protect a raw egg from cracking when dropped from various heights.

Here’s a way to add some extra hardware to use when testing each entry. It’s an  electromagnetic drop stand built by several students along with [Tom Jenkins]. The stand doesn’t require anything too exotic, and it allows students to drop their eggs in a controlled manner for a fair competition. Along the way, they learn about circuits, electromagnets, and some other electronic concepts.

If this sounds familiar, it is because it builds on the egg drop project from the Teaching Channel we talked about before. The materials for that lesson have the basic outline of the drop stand, but the video really helps kids visualize it and build it.

Continue reading “Students Build Electromagnetic Egg Drop Stand”

LEGO-compatible Electronics Kits Everywhere!

Within the last few years, a lot of companies have started with the aim to disrupt the educational electronics industry using their LEGO-compatible sets. Now they’re ubiquitous, and fighting each other for their slice of space in your child’s box of bricks. What’s going on here?

Raison D’Être

The main reason for LEGO-compatibility is familiarity. Parents and children get LEGO. They have used it. They already have a bunch. When it comes to leveling up and learning about electronics, it makes sense to do that by adding on to a thing they already know and understand, and it means they can continue to play with and get more use from their existing sets. The parent choosing between something that’s LEGO-compatible and a completely separate ecosystem like littleBits (or Capsela) sees having to set aside all the LEGO and buy all new plastic parts and learn the new ecosystem, which is a significant re-investment. littleBits eventually caught on and started offering adapter plates, and that fact demonstrates how much demand there is to stick with the studs.

Continue reading “LEGO-compatible Electronics Kits Everywhere!”

What’s the Best Way to Learn Electronics?

What’s the best way to learn electronics? It’s a pithy question to ask a Hackaday audience, most of whom are at least conversant in the field already. Those who already have learned often have just their own perspective to draw upon—how they themselves learned. Some of you may have taught others. I want to explore what works and what doesn’t.

Hobbyists Learn Differently Than Students

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.

Let’s face it, Arduinos lower the bar like nothing else. There’s a reason why the Blink sketch has become the equivalent to “Hello World”. Dirt cheap and easily configured microcontrollers combined with breakout boards make it easy for anyone to participate.

However, ask any true EE and that person will tell you that following wiring diagrams and plugging in sensor boards from Sparkfun only teaches so much. You don’t bone up on terms like hysteresis or bias by building something from uCs and breakout boards. But do you need to? If you are truly interested in electronics and learn by making those Adafruit or Sparkfun projects, sooner or later you’ll want to make your own breakout boards. You’ll learn how to design your own circuit boards and figure out why things work and why they don’t. I don’t need to tell you the Internet has all the answers a neophyte needs–but the interest has to be there in the first place.

What’s the Best Way to Learn in the Classroom?

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 Makeblock mBot is an example.

I think it’s part of that whole “learn coding” initiative, where the idea is to minimize the assembly in order to maximize the coding time. Insofar as soldering together a kit of through-hole components teaches about electronics, these bots mostly don’t do it. By all appearances, if there is a best way to learn electronics, this an’t it. However, regardless of what kind of project the teacher puts in front of the student, it still has to generate some sort of passion. What those robots provide is a moment of coolness that ignites the firestorm of interest.

I once led a soldering class that used Blinky Grids by Wayne and Layne as the focus. This is a fantastic kit that guides you through building a small LED matrix. It’s particularly cool because it can be programmed over a computer monitor with light sensors interacting with white and black squares on the company’s web site. When my students finished their grids, they all worked and had unique messages scrolling through. Now, that is a payoff. I’m not saying that any of those folks became hardware hackers as a result of my class, but it beat the hell out of a Christmas tree, am I right?

Getting back to that rover, what must be acknowledged is that the rover itself is the payoff, and that’s only as far as it goes if everyone loses interest. However, a lot of those rovers have expansion possibilities like bolting on another sensor or changing the method of programming–for instance, the mBot has both a graphic programming interface and can also be reflashed with a regular old Arduino bootloader.

Readers, share in comments your own perspective. How did you learn? How would you teach others?

Educational Robot for Under $100

While schools have been using robots to educate students in the art of science and engineering for decades now, not every school or teacher can afford to put one of these robots in the hands of their students. For that reason, it’s important to not only improve the robots themselves, but to help drive the costs down to make them more accessible. The CodiBot does this well, and comes in with a price tag well under $100.

The robot itself comes pre-assembled, and while it might seem like students would miss out on actually building the robot, the goal of the robot is to teach coding skills primarily. Some things do need to be connected though, such as the Arduino and other wires, but from there its easy to program the robot to do any number of tasks such as obstacle avoidance and maze navigation. The robot can be programmed using drag-and-drop block programming (similar to Scratch) but can also be programmed the same way any other Arduino can be.

With such a high feature count and low price tag, this might be the key to getting more students exposed to programming in a more exciting and accessible way than is currently available. Of course, if you have a little bit more cash lying around your school, there are some other options available to you as well.