ゲームイベント内容セミナーの内容プログラムの正しさを数学的に証明する技術を体験するセミナーです。プログラミングやテストに携わる人が対象です。基本的なプログラミングの知識だけで理解できる構成です。話を聞くだけでなく、手を動かして体験していただきます。数学を使う部分はほとんどツールがやってくれるので、数学の知識不足を心配する必要はありません。テストケースの数が多すぎて網羅できないからです。ひとつの方法は数学を使うことです。数学は有限の記号と有限の手続きで無限を扱うことができるからです。初等幾何学には「二等辺三角形の2つの底角は等しい」という有名な定理があります。二等辺三角形の種類は無限にあります。この定理は無限にあるどのような二等辺三角形でも2つの底角は等しいと主張しています。このような証明ができるのが数学の力です。倍数のものだけとか、そういった制限はありません。無限のバリエーションを持つ図形に対して証明ができる幾何学と同じように、プログラムの正しさを証明することができる理論があります。クイックソートの発明や並行システムの理論で有名なホーアさんが発明したホーア論理というものです。これを使うと無限にあるテストケースをすべてテストしたのと同等の結果を得ることができます。このセミナーで紹介するのはこの技術です。数学の論文にも間違いがあることはありますし、ツールにバグがあることもあるでしょう。それでもテストと比較すれば圧倒的に高い精度でプログラムの正しさを確かめることができます。証明技術を学ぶ意義プログラムの正しさを証明する技術を学ぶと、加えて2つのよい効果が得られます。1つは仕様を明確にしたりテストの精度を高めたりする力がつく点です。証明というトレーニングで考える力や可能性に気づくセンスが鍛えられるからです。1つはプログラムがもっている性質を深く理解できるようになるという点です。直感的にしか理解していなかったプログラムの動きを数学的に分析できるようになると、正しさを支えているプログラムの性質に気づくようになります。このような経験と知識は普段のプログラミングにもよい効果を与えるでしょう。プログラムが持つ性質を深く掘り下げる例として、このセミナーでは2分探索の証明をゴールにします。これは挑戦的なゴールです。2分探索は決して簡単なアルゴリズムではありません。事実、アルゴリズムの教科書には間違ったコードが載せられていたという話があります。このセミナーの最終段階では、理論とツールの力を使って2分探索を徹底的に研究します。いう定理証明支援ツールを使います。ケプラー予想という数学の問題を証明するために使われたり、オペレーティングシステムの性質を検証するために使われたりと実績のあるツールです。ツールの効果は3つあります。1つ目はもちろん証明そのものを支援してくれることです。現在のツールはとても賢くなっていて、かなりの証明を自動で行ってくれます。2つ目は証明のチェックです。十分な数学的訓練を積んだ人でも間違うことはあります。ツールは数学の規則を正しく使っているかすべてチェックしてくれるので誤りを防ぐことができます。最後の3つ目は証明の管理です。証明するプログラムが大きくなってくると、証明しなければならない項目も増えていきます。紙の上で証明していると証明しなければいけない項目を見落とすことがあります。ツールは何をどこまで証明したのか管理してくれるので、このような見落としをすることはありません。プログラムの証明はツールと対話をするような感じで進みます。証明したいプログラムと仕様をツールに入れます。ツールに証明を指示すると「ここまでできました」と返ってきます。アドバイスを与えます。このように共同作業をして証明を完成させます。プログラムが間違っていると証明できない結果が残ります。これを分析するとプログラムの間違いについての情報が得られます。それを元にプログラムを修正して、証明できるまで繰り返します。時に分析は難しくなることがありますが、それを乗り越えると力がつきます。ループといった基本的なプログラミングの知識です。「~でない・かつ・または」といった高校で習う程度の論理の知識を仮定します。条件文やテストを書くときに使う範囲で十分です。PC使用するツール以下のサイトからダウンロードできます。メッセージにて配布します。全体的な流れを理解し実際に体験することを趣旨とするセミナーです。使い方を詳細に解説するものではありません。配布資料の公開は禁止です。までお気軽にご連絡ください。こちらのイベント情報は、外部サイトから取得した情報を掲載しています。掲載タイミングや更新頻度によっては、情報提供元ページの内容と差異が発生しますので予めご了承ください。最新情報の確認や参加申込手続き、イベントに関するお問い合わせ等は情報提供元ページにてお願いします。イベントをはじめようグループを作れば、無料で誰でもイベントページが作成できます。