機械学習/Deep Learningが気になる人も要注目、「アルゴリズム」の基本が学べる無料の電子書籍150ページ:人気連載まとめ読み! @IT eBook(29)
人気過去連載を電子書籍化して無料ダウンロード提供する@IT eBookシリーズ。第29弾では「コーディングに役立つ!アルゴリズムの基本」10回分を1冊のPDFとしてまとめた。アルゴリズムとは何か? なぜ学ぶべきなのだろうか?
アルゴリズムとは? なぜ学ぶべきなのか?
アルゴリズムとは、問題を解く、課題を解決するための手順です。それを学ぶことで人は何を得るのでしょうか。
2008年8月から始まり2009年5月に終わった人気連載「コーディングに役立つ!アルゴリズムの基本」の第1回「いまさらアルゴリズムを学ぶ意味」で筆者は、下記のように述べています。
「IT技術者である読者の皆さんなら、普段から何げなく「アルゴリズム」という言葉はよく使っていることでしょう。しかしあらためて「『アルゴリズム』とは何か」と問われて、すぐに明快に答えられるでしょうか。
また、IT技術者であってもアルゴリズムをきちんと勉強した人は意外と多くないのではないでしょうか。大学で学んだ、入社後の新人研修で学んだという人もいるかもしれません。それでもしばらく開発の現場に出ているうちに忘れてしまった、という人もいることでしょう。
この連載ではアルゴリズムを学ぶ、または学び直すことで、プログラミングのスキルを深めていきます。アルゴリズムは学問として取り扱われることが多いですが、この連載では開発の現場に役立つスキルを身に付けることを目的とします。『アルゴリズムなんていまさら勉強する意味がない』と思った方。ひとまず、この第1回目を読んでみてください」
これは9年近くたった2017年6月現在でも通じることではないでしょうか。さまざまなプログラミング言語やフレームワーク/ライブラリ、開発/設計/運用手法のはやりすたり、スマホやSNS、クラウド、ビッグデータ、そして機械学習/Deep Learningの登場と目まぐるしい変化がありましたが、いつの時代も変わらず重要なのは、コンピュータに出す命令をどのようなアルゴリズムで実装、プログラミングするかです。
下記のように、昔からあるものから最近のものまで、さまざまなテクノロジーでアルゴリズムは活躍します。
- Linuxファイルシステム技術解説(2):ブロックアルゴリズムとB-Treeアルゴリズム
- デファクトスタンダード暗号技術の大移行(3):これだけは知っておきたいアルゴリズム〜共通鍵暗号
- いま再注目の分散処理技術(前編):GoogleのMapReduceアルゴリズムをJavaで理解する
- テキストマイニングで始める実践Hadoop活用(終):テキストマイニングの精度を上げる2つのアルゴリズム
- Mahoutによる機械学習の実際:Apache Mahoutの使い方:テキスト分類のアルゴリズムを活用する
- Google Carの自動運転技術大解剖(2):自動車を制御するロボットの思考と行動の仕組み――Google Carが現実世界を認識する際の3つのアルゴリズムと実用化への課題
コーディングに以外にも役立つ! 150ページの無料電子書籍
人気連載を1冊にまとめてダウンロードできる@ITの電子書籍。第29弾は、連載「コーディングに役立つ!アルゴリズムの基本」10回分を1冊のPDFとしてまとめました。
2008年当時流行した、「世界のナベアツ」という芸人(現在の芸名は「桂三度」)の持ちネタ「1から40までの数を数えていく途中で、3の倍数と3の付く数字のときだけアホになる」をコンピュータ上で実現するにはどうしたらよいかを皮切りに、フローチャートの書き方、データ構造、再帰的アルゴリズム、ソート、探索、データ圧縮といった基本的なアルゴリズム、最後にレコメンデーションのアルゴリズムまでを、JavaScriptと豊富な図版で学ぶことができます。
IT、つまりコンピュータが実生活に溶け込み、ビジネスを先導する昨今、アルゴリズムを学ぶことは、ITエンジニアはもちろん、コンピュータに関わって生活しているあらゆる人の助けになるはずです。連載の筆者も「アルゴリズムを学ぶことは、コンピュータ的な発想ができるようになるためのトレーニングなのです」としています。ぜひご一読ください。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
※@IT eBookシリーズについてはこちらをご覧ください。
Copyright © ITmedia, Inc. All Rights Reserved.