このトークでは、Pythonにおけるアルゴリズムとデータ構造の関係や動作の理解を深めるために、ハッシュテーブルのオープンアドレス法、チェイン法、そしてダイクストラ法について、簡単なデバッグ手法を用いて動作を可視化します。
参加者は、ハッシュテーブルの衝突解決戦略とグラフアルゴリズムの動作について、途中経過を視覚化する方法と、その表示を通してプログラムの内部でなにが起きているのか、体験を通して学べます。
ハッシュテーブルの可視化
・ハッシュテーブルの基本となる概念の紹介
・オープンアドレス法による衝突解決の説明、線形探索法を用いた実装例の紹介
・チェイン法による衝突解決の説明
・ハッシュテーブルの状態変化の可視化デモ
ダイクストラ法の可視化
・ダイクストラ法のアルゴリズムの解説
・コンソール出力を用いたダイクストラ法の途中経過の可視化手法のデモ
アジェンダ
1. イントロダクション: コンピューターサイエンスに触れてみよう
2. ハッシュテーブルのオープンアドレス法の説明と動作デモ
3. ハッシュテーブルのチェイン法の説明と動作デモ
4. グラフの種類と、ダイクストラ法の概要紹介
5. ダイクストラ法の途中経過をコンソールで可視化する方法の実演
6. まとめ、Q&A
書籍「独学コンピューターサイエンティスト」の翻訳をした際に、アルゴリズムの紹介をかなり分かりやすくステップバイステップで書いているにも関わらず理解が難しいところがいくつかあることに気がつきました。それは、時系列でのデータ変化と、データによって変化するプログラムの動作の関係が文章と絵だけでは掴みきれないことではないかと考えました。そこで補章を追加し、プログラミングの一般的なデバッグ手法であるprintデバッグを用いて「データ」と「動作」を可視化し、その時系列変化を追う方法を紹介することにしました。
デバッグ手法や、データ構造とアルゴリズムという題材は、例えば何らかのWebフレームワークを学ぶように触れることは実践の現場では少ないと思います。
このトークは、アルゴリズムとデータ構造の関係、そしてデバッグ手法を用いてアルゴリズムの動作とデータの状態に対する理解を深めることを目的としています。このトークを通して、アルゴリズムに対する苦手意識を減らし、プログラムの動作に対するデータ変化を追跡する手法を知ってもらいたいと思います。
Prior knowledges speakers assume the audience to have –とくになし
Audience experiment –Beginner
Language of presentation –日本語
Language of presentation material –日本語