chokudaiのブログ

chokudai(高橋直大)のブログです

「実践・最強最速のアルゴリズム勉強会」開催します!

実践・最強最速のアルゴリズム勉強会

AtCoderを利用した、実践アルゴリズム講座を開催します!

概要とかは上に書いてありますが、無料講座で、3/9(日)から5週連続で開催します!

教育関係のをやりたくて会社を立ち上げたのもあるので、こうして勉強会を開けるのは凄い嬉しいです!

どんなことをやるの?

アルゴリズムの勉強、というのは、理論を学んでも、実践までするのはなかなか難しいし、実際コードにする機会というのは、なかなか少ないんじゃないかな、と思います。

例えば、「クイックソート」とか「マージソート」とか、「バブルソート」とか、名前は知っていても、仕組みは知らない人が多いと思うし、知っていても実装したことがある人は少ないんじゃないかなー?と思ってます。

とまぁ、アルゴリズムって、「自分で実装が出来る」か、「中身はよく知らなくても、ツールとして利用できる」のどっちかの状態にならないと、仕方ないと思うわけですね。

そこで、今回注目するのは、「自分で実装が出来る」のところ。汎用性が高く、ある程度自分で実装するべき、探索や動的計画法をベースとして、「どう探索するか」「探索過程をどうイメージするか」「どう計算を工夫するか」に焦点を当てて、勉強会を進めていこうと思っています。

どう進めるの?

進め方は、以下の3つの繰り返しとなります。

  • 講義 これから練習するアルゴリズムの説明をします。
  • 実践 具体的な問題を見た上で、どう実装するかをソースを見せて説明します。
  • 演習 別の問題で、実際に自分で組んでみましょう!

講義、実践は自分が前で説明を行い、演習中は、手を動かす形になります。会場中を回りながら困っている人のヘルプに入るつもりですが、解らないことがあったら、手をあげて質問をしてもらえると楽で嬉しいです。

どんな人に来てほしいか

スケジュールが、こんな感じです。

  • 03/09(日)第 1 回 シミュレーションと全探索
  • 03/16(日)第 2 回 いろいろな全探索
  • 03/23(日)第 3 回 動的計画法とメモ化再帰
  • 03/30(日)第 4 回 動的計画法と計算量を減らす工夫
  • 04/06(日)第 5 回 難問に挑戦!

1日目は、競技プログラミングってどんなものかな?というのを触れながら、まず形式に慣れてもらう形になります。ここは、競技プログラミング経験のある人が来ても、ちょっと退屈になっちゃうかもしれません。

2日目は、深さ優先探索幅優先探索といった、全探索の手法の話をしていきます。競技プログラミング慣れしていない人は、ここから参加するとちょうど良いと思います。

3日目は、全探索が間に合わなくなった場合に、動的計画法・メモ化再帰で、計算量を減らす工夫について説明します。ここからは、愚直な実装では正解コードが書けなくなるので、難しくなってくるかもしれません。

4日目は、さらに難しくなった動的計画法の話と、その他のアルゴリズムの説明をします。今回はグラフを省こうと思っていて、探索のイメージから習得しやすい、二分探索や、尺取法、半分全列挙なんかをテーマに、計算量を減らす面白さを体感してもらえると良いな、と思っています。まだここもちょっと未定です。

5日目は、どれだけ難しくするかはまだ決めてません。4日目までの状況を見ながら、問題を選択するつもりでいます。これは演習が殆どになると思うので、少し経路が変わる毛色が変わるかもしれません。

はてなスターで誤字指摘するなら普通に教えてよ!!w

 

ここまで見て、好きな日に参加してもらうのが、一番良いと思います。とりあえず全部登録して、大変そうだったら途中でリタイア、でもいいと思います。(まずかったらワークスさんごめんなさい><)

ぜひお気軽に参加してもらえると嬉しいです!

最後に

競技プログラミングは、本当に面白いと思っていますし、普通のアルゴリズム教育とは、また違った視点でアルゴリズムが学べると思っています。少しでも興味がある方は、ぜひ遊びに来てくれると嬉しいです!