特進コース2年生の「情報の科学」で、コンピュータサイエンスアンプラグド(CSアンプラグド)の応用を行いました。

今回行った内容は、ルービックキューブを使って、コンピュータのアルゴリズムを学びました。(アルゴリズムとは、問題を解決するための方法や手順のこと)

これまでいくつかのゲーム等によってアルゴリズム理解をやってきましたが、今回はアルゴリズムの理論を少しわかった上で、ルービックキューブを解いてみようということでした。

バラバラの状態を初期状態Sとし、回転方向を考えると、6面に対する時計回り・反時計回り・半回転,合計18通りを試すと新しい状態S1への移動し、それらは木構造(ツリー型)というような状態で進んでいき、最終的なゴールへの20手までを展開すると,必ず完成手順にたどり着くことがわかるということを頭で理解しながら、実際に完成させてみるということを行いました。

アルゴリズムとしては単純なツリー型の数学的要素を理解するには難しいようでしたが、一般的な3×3×3の正6面体のルービックキューブだけでなく、2×2×2の正六面体や、ピラミンクスと呼ばれるピラミッド型(正確には三角錐)のルービックキューブなど、多種多様なルービックキューブに悪戦苦闘しながら、生徒たちは楽しそうにアルゴリズムを理解しルービックキューブを解いていました。

(今回のワークはterabo.net ルービックキューブをアルゴリズムで解くということhttp://www.terabo.net/blog/solving-cube-by-algorithms/#comment-3955を参考にさせて頂きました)