BLOGブログ

IT研修

  • このエントリーをはてなブックマークに追加

プログラミングの「アルゴリズムとデータ構造」を学ぶには「Scratch」を使えば挫折が防げます

前回の、プログラミング言語を学ぶなら「アルゴリズムとデータ構造」から学ぶのが近道ですで述べたように、まず最初は「アルゴリズムとデータ構造」を理解する事が重要です。

では、実際に「アルゴリズムとデータ構造」を学ぶには、どのように学習をすればいいのでしょうか?

それには、「Scratch」というブロックをドラッグアンドドロップで組み合わせるだけでプログラミングができるものを使って学ぶ事が大変重要です。

「Scratch」とは何か?

Scratch」とは、米国マサチューセッツ工科大学 (MIT) 建築・計画スクール内に設置された研究所であるMITメディアラボが開発した、初心者が最初に正しい構文の書き方を覚えること無く、視覚的にプログラミングを学べるビジュアルプログラミング言語です。

Scratch

Scratch」では、特に8歳から16歳向けにデザインされていて、「旗がクリックされたとき」「10歩動かす」といった、色分けされたブロックを組み合わせるだけでプログラムを作る事ができるため、難解なコードを書かなくても、プログラミングに重要なアルゴリズムを学べるツールとなっています。

また、実際に作り上げたプログラムをステップで実行させ、その動きを見せる事で自分が書いたプログラムがどのように動くのかを理解させられるために、プログラミングの本質理解ができるようになっています。

「Scratch」で「アルゴリズムとデータ構造」を学ぶメリットは?

実は、アルゴリズムで基本となる処理には、順次処理、選択処理、反復処理の3つしかありません。

algorithm-pattern

順次処理とは、処理を記述した順番に実行する事を指し、選択処理とは、与えられた条件により処理の流れを変えて事項する事を指し、反復処理とは、与えられた条件が成立する間は処理を繰り返して実行する事を指します。

実は、世の中にある全てのプログラムは、この3つの処理を組み合わせて作られています。

そのため、この3つを組み合わせたアルゴリズムのパターンを覚える事が、プログラミングを理解する際に非常に重要なのですが、この処理をいきなりPHPやJava、Rubyといったプログラミング言語で覚えるというのは、アルゴリズムとプログラミング言語の両方に対する理解を行う必要があるため、IT初心者にとってはかなりハードルが高い話になってしまいます。

しかし、「Scratch」では、コードを書かずにブロックをドラッグ&ドロップするだけでプログラミングができるようになっていますので、このプログミング言語の部分を考える必要がありません。

Scratch」では、ブロックとして10のカテゴリーとして、動き、見た目、音、ペン、データ、イベント、制御、調べる、演算、その他が用意されています。

Scratch 001

それぞれのカテゴリーの中には、さらに10歩動かす、15度回す、スペースキーが押された時、というようなブロックが用意されています。
Scratch 005

Scratch 004

Scratch 003

Scratch 002

これを、ドラッグアンドドロップして組み合わせるだけで、「Scratch」はプログラミングを行なえます。

例えば、順次処理、選択処理、反復処理を想定して「Scratch」を実際に動かしてみます。

scratch algorithm

順次処理では、10歩歩くを3回繰り返しています。

Scratch move

そうすると、画面の猫が30歩進みました。

選択処理では、何もない時は10歩進みますが、端に当たると「壁や!」と叫んで180度反転して、10歩進むようにしました。

Scratch branch

反復処理では、10歩進むのを10回繰り返す、10歩動いたらすべてを止める、という形になっていますので、この通りに猫が動いて止まりました。

このように、「Scratch」ではドラッグアンドドロップするだけで作って様々なアルゴリズムの動作確認が簡単にできますし、そのために一行もコードを書く必要がないのです。

「Scratch」で「データ構造」も学べる

プログラミング言語を学ぶなら「アルゴリズムとデータ構造」から学ぶのが近道ですで述べたように、「データ構造」とは大量の「データ」を効率よく処理するための仕組になります。

こちらも、「Scratch」では、ドラッグアンドドロップして画面を作って行くだけで理解ができます。

例えば、ユーザーが入力した1,2,3という数値を合計する事を考える場合、数式は「1+2+3=6」となります。

この計算を行うためには、数値1,2,3を3回足し算を行なって合計を出す必要がありますので、考え方は以下のようになります。

Scratch addition

アルゴリズムでは、データを扱う場合(今回の場合には足し算をする)にその入力データをどこかに保存しておかないと、最初に入れた数字がわからなくなってしまいますので、この入力データを保存する箱が「データ構造」になります。

この箱のことを、プログラミングでは「変数」と言いますが、「Scratch」でこの数式を計算するためには以下のようになります。

Scratch 013

この「num」や「numlist」と書いてあるのが、「データ構造」である「変数」であり、ここにデータを入れて計算を行います。

Scratch」で、実際の入力を行なうと以下のようになりますが、入力する個数、入力されたデータ、合計値、何回繰り返したのか、結果がどうなったのかを視覚的に見る事ができます。

Scratch list

このように、「データ構造」に関しても「Scratch」を使って学ぶ事で、視覚的に理解をする事ができるのです。

視覚的に理解するメリットは大きい

このように、「Scratch」を使って「アルゴリズムとデータ構造」を学ぶと、ブロックを使って視覚的に理解をする事ができ、いきなりプログラミング言語で学ぶ際につまずく事態を避けて学習ができます。

この事から、「Scratch」はIT初心者の方が最初に「アルゴリズムとデータ構造」を学ぶのに最適なのです。

前編:プログラミング言語を学ぶなら「アルゴリズムとデータ構造」から学ぶのが近道です
中編:プログラミングの「アルゴリズムとデータ構造」を学ぶには「Scratch」を使えば挫折が防げます

ランキング

最近の投稿

アーカイブ

カテゴリー

RSS