【アルゴリズム学習に最適】VisuAlgo を紹介します!

わさび

こんにちは、シンガポール国立大学でコンピューターサイエンスを学んでいる わさび です!今日はアルゴリズムの学習について、初心者にも分かりやすく書いてみます!
アルゴリズムを可視化できるから、初心者にも分かりやすいよ!

ペンギンさん

アルゴリズムって?

アルゴリズムとは、数学、コンピューティング、言語学、あるいは関連する分野において、問題を解くための手順を定式化した形で表現したもの。

アルゴリズムと聞くと難しく思えて、身構えてしまいますが、とても単純です。

プログラムデータ + アルゴリズム

プログラムは、アルゴリズムとデータの集まりでできています!

僕は、分かりやすくするために次のように解釈しています。

問題解決の方法 = WHAT (何を) + HOW (どうやって)

 

 

例えば、「カレー」をつくりたいとします!

必要な具材は、じゃがいも、にんじん、たまねぎ、肉、カレールー…

この具材にあたるのが、WHAT (何を) 、つまり、「データ」になります!

では、この具材でどうやってカレーをつくればいいのか?

野菜を切ったり、鍋で煮込んだりします。

これが、HOW (どうやって) 、つまり「アルゴリズム」となるのです!

注意
これは僕の考えであって、アルゴリズムの定義は他にも存在します。

アルゴリズム学習の落とし穴

さて、アルゴリズム勉強しよう!となっても、簡単にはいきません…

実際に僕がアルゴリズムを勉強する過程で感じた「落とし穴」があります。

  1. 抽象的で難しい!
  2. 過程が見えない!

抽象的で難しい!

まず前提として、アルゴリズムを1から考えるのは非常に難しいです。

どうしても「仮説検証」が必要になり、抽象的になってしまうためです。

とりわけ、初心者が新しく「思いつく」ようなアルゴリズムは、すでに誰かに開発されています笑

では、「アルゴリズムを考える」とはどういうことなのでしょうか?

それは、誰かが開発した「データ構造」をいかに使用するかを考えることです!

データ構造
データ構造は、計算機科学において、データの集まりをコンピュータの中で効果的に扱うため、一定の形式に系統立てて格納するときの形式のことである。

過程が見えない!

「仮説検証」が必要と言いましたが、プログラミングとはトライ・アンド・エラーの繰り返しです。

アルゴリズムにおいては、「HOW」の部分を考えるため「途中経過」を考える必要があります。

そして、この「見えない過程」を考えることこそ、アルゴリズムの難しい部分なのです!

そして、この「抽象的で見えない!」という不満に対する解決策が「VisuAlgo」だよ!

ペンギンさん

VisuAlgo って?

 

VisuAlgo は、2011年にシンガポール国立大学計算機科学学部の教授である Steven Halim によって開発された、オンライン上でデータ構造やアルゴリズムを可視化することができるサービスです。ソートなどの簡単なものから、二分探索木やグラフなど複雑なデータ構造まで網羅しており、練習問題やテストを受けることも可能である。

シンガポール国立大学の教授ということですが、ステマではありません笑

授業形式で「データ構造」の説明を見ることもできますし、それぞれの機能を自分で試すこともできるので便利で分かりやすいです!

実際、僕の教授も「とりあえず、VisuAlgo見ておいて!」と言ったりします笑

日本語化にも対応しているので、日本語で学習することも可能です!

VisuAlgoを試す

まとめ

わさび

アルゴリズムを勉強すると、その他の問題に対してもどのように解決策を立てればいいか考えられるようになると思います!
レッツ、アルゴリズム!

ペンギンさん


にほんブログ村 海外生活ブログ 海外留学(アジア)へ
にほんブログ村