アルゴリズム再入門 研修コースに参加してみた

今回の研修参加レポートは ↓ です。
アルゴリズム再入門
はじめてプログラミングを学ぶ方には、アルゴリズムは苦手意識を持ちやすい分野ですが、今回のコースではとにかく苦手意識を持たないよう工夫が凝らされたコースでした!!
また、ここまで出来るようになればアルゴリズムの基礎はおしまい、というところを最後に紹介頂いたので、とても見通しが良くなりました!
アルゴリズムに苦手意識を持ってしまった方はもちろん、アルゴリズムをはじめて学ぶ方にもとてもオススメのコースです!
では、どんな内容だったのかレポートします!
もくじ
受講前提
特になし
受講目標
- フローチャートを描ける
- フローチャートを読める
- 代表的なアルゴリズムとデータ構造を理解できる
- 文書で与えられた問題をフローチャートに置き換えられる
講師紹介
講師はお馴染みの 矢沢 久雄 さんです。
お馴染みの「オヤジギャグにリアクションしてね」という つかみ でアイスブレイクしてスタートです。
皆さんの自己紹介
- Q. プログラミングの経験
- はじめても、少しだけも、それなりに、という方も均等にいらっしゃいました。
- Q. フローチャートを書いたことありますか?
- 少しだけという方が心持ち多かったです。
- Q. ユーグリッド互除法って知ってますか?
- あまり知らないという方が多かったです。
アルゴリズムとは?
まず冒頭から、矢沢さんから不安を解消するような話をされました。
「先輩たちがアルゴリズムを考えられるのは、知識や才能がある からではありません。やったことがあるから分かるのです。」
確かにそうですね。料理の手順などはじめからわかる訳ではなく、マネをしてみてやったことがあるから分かるものです。これだけでも初めから苦手に思う必要はないというのが伝わりました。
続いて、ウォーミングアップとして、コンピュータアルゴリズムとは違った「手順」を考える問題に取り組みました。
この問題を通じて、アルゴリズムを考えるコツを教えてもらいました。
- 1回でやろうとするのではなく、コツコツ繰り返す
- ステップごとに出来ること、出来る処理を考える (この場合、汲む、移す、捨てるしかない)
- 答えを急ぐのではなく、1回ステップを考えたら休憩して眺める (植木職人は何かのアクション毎に出来映えをみてお茶を飲む)
- 処理が終わるたびに値が変わるので、それに注目する
- 手順を減らしたほうが早い = 手順を減らせるように考える (今回は3Lから始めると8回だけど5Lから始めると回数を減らせる)
- スグには出来るようにならないので、毎日やることがコツ
[宣伝: 矢沢久雄さん著の計算ドリルのように毎日やるアルゴリズムドリル]
というわけで、各自で ↓ を考えてみました。(ご覧の皆さまもやってみましょう)
コンピュータのアルゴリズム
ここからはコンピュータアルゴリズム独特の話に移ります。
まず、どこまで知っておくと良いのかというお話で、基本情報技術者のレベルであれば、 たった10個を覚えるだけで良い のことです。
このコースでは、まずこの10個をやってみましょう。
コンピュータアルゴリズムのノリ
出てきました有名なやつです。
が、矢沢さんから衝撃の一言、「この3つ実用的なモノではないんです。あくまで、 コンピュータアルゴリズムのノリを掴む ことが重要なんです」
基本情報技術者の本を見るたび、これ何に使うんだろうなぁと毎回思ってました。。
コンピュータアルゴリズムのノリとは
- ユーグリッドの互除法 => 人間の勘ではなく明確な手順が必要
- 素数の判定 => 愚直に順番に割るしか無いけど、 コンピュータなら何万回でも出来る
- ただし、 何万回もしないよう工夫はしよう
- うるう年の判定 => 世の中のルールもアルゴリズム (聞いていると、法律もアルゴリズムなのかも知れません)
とのことでした。
フローチャートの描き方
「描き方そのものにはあまり学習する必要はありません。」
なるほど。。この図の5つの記号と3つの処理がわかれば良くて、アルゴリズムをフローチャートを使って、どうやって現せるのかのほうが重要とのことでした。
プログラムで表現できるのはこの、順次、分岐、繰り返し、3つしかないんです。
というわけで、フローチャートの描き方、以上!
実用的なアルゴリズム
ここからは残り7個のアルゴリズム、ノリではなく実際に使うアルゴリズムを紹介していただきました。
ソート
ここでポイントなのが、 ソートをトランプでやったこと でした。これはフローチャートやソースコードを見るより、直感的でとてもわかり易いものでした!
なお、ソートのアルゴリズムはデータベースの中の仕組みでも使われていますね!
サーチ
ここでもトランプを使いながらサーチを体験しました。
また計算量についてもお話があり、場合によって1回目で検索できたりするので、その比較は最大処理回数で比べるとのことでした。
ということで10個のアルゴリズムを体験できました!!
データ構造
10個のアルゴリズムを紹介し終わったところで、どのようにデータを置いておくとサーチなどがしやすくなるのか、データ構造のお話を補足的にいただきました。
最後に
まとめとして、矢沢さんの駆け出しのときのアルゴリズムの失敗談を紹介いただき、改めて、
「アルゴリズムはわからないのではなく、やったことが無いだけ」
このことを強調されました。何となくわかりにくそう、こんなの思いつかない、のように思うのではなく、今日のようにトランプでもなんでもやってみることが大事なのですね。
そして最後に、ここまで出来るとアルゴリズムの基礎は終了です! ということでバブルソートの演習をして、コースは修了しました!!
まとめ
アルゴリズム再入門ということで、10個のアルゴリズムとデータ構造を体験・演習しながら学べる内容でした。
また何より、マネしてやってみること、考えるコツなど様々に苦手意識を持たせず、できるかも楽しいかもと思えるよう工夫された内容でした!!
新人の方やプログラミングがはじめてということ方、アルゴリズムちょっと苦手だなぁと思う方には、オススメのコースです!
SEカレッジが気になった方はこちらからお気軽にお問合わせ下さい!
SEカレッジの詳細をご覧になりたい方はこちら!!

SEプラスにしかないコンテンツや、研修サービスの運営情報を発信しています。