Hands-On Advanced Algorithms – What does a Rubic’s Cube have to do with programming?
What is happening in Advanced Algorithms Honors course?
If you walk into our advanced algorithms class, you might be greeted by students playing the Rubik’s cube, assembling a (small) self-driving car, and maybe even playing on a chess board with 8 queens! What do all these have to do with algorithms?
“We use these fun and hands-on problems to motivate the use of advanced algorithms” says Dr. Baharav. “These algorithms are usually studied in depth as a second or third semester college course. At Kehillah, we introduce the concepts in this advanced class, and explore them by hands on programming.”
Consider the 8-queens problem as an example. We found two solution on a real physical board, and then developed an algorithm to find all 92 possible solutions. This algorithm was then extended to 10 queens on a 10×10 board, and beyond. From there, we moved to solving shortest path problems, followed by solving a maze, and our next challenge is a sudoku. Through these we covered enumeration, Breadth first, and Depth first algorithms.
The self-driving car is a parallel effort to introduce image processing algorithms in a friendly and practical way. The goal is to build a self-driving car capable of roaming Kehillah’s hallways.
So what about the Rubik’s cubes you ask? To start with, they are fun. But on a more serious note, we will revisit these later on this year, and talk about developing a language to characterize and solve these. “My plan is to solve the cube in less than 47 seconds!” says Ben Lipman, A senior student in the course. And in that, he refers to solving it by hand. Hopefully the algorithm will do it much faster.