本講義では、Pythonを用いて基本的なデータ構造とアルゴリズムについて学ぶ。
講義と演習(各100分ずつ)を通して、問題解決のためにプログラミングを用いる能力を養う。
本講義を履修することにより、以下の知識と能力を習得する。
1) 基本的なPythonの使い方の習得
2) 基本的なデータ構造とアルゴリズムの理解
3) アルゴリズムによる効率性の違いを理解
4) アルゴリズムを実装する力
Python、プログラミング、アルゴリズム
✔ 専門力 | 教養力 | コミュニケーション力 | 展開力(探究力又は設定力) | ✔ 展開力(実践力又は解決力) |
✔ 様々なアルゴリズムとそれをPythonのコードに翻訳する能力 |
各講義の1/2は講義形式で行い、残りの1/2は演習に充てる。
授業計画 | 課題 | |
---|---|---|
第1回 | ガイダンス Pythonの復習 (数、文字列、リスト、for文、if文) 演習 | Pythonの基本的な文法を理解する。 |
第2回 | 計算量とグラフ 演習 | アルゴリズムの計算量とグラフの表現を理解する。 |
第3回 | 深さ優先探索と幅優先探索 演習 | 深さ優先探索と幅優先探索を理解し実装する。 |
第4回 | 貪欲法 演習 | 貪欲法とクラスカル法を理解する。貪欲法を使って問題を解く。 |
第5回 | 最短経路問題 演習 | 最短経路問題とそのアルゴリズム(ダイクストラ法、ベルマンフォード法、ワーシャルフロイド法)を理解する。 |
第6回 | 動的計画法 演習 | 動的計画法を理解し、それに基づき問題を解く. |
第7回 | 最大フロー問題とマッチング 演習 | 最大フロー問題とそのアルゴリズムを理解する. |
学修効果を上げるため,教科書や配布資料等の該当箇所を参照し,「毎授業」授業内容に関する予習と復習(課題含む)をそれぞれ概ね100分を目安に行うこと。
特になし
Guido van Rossum: Pythonチュートリアル 第2版
Mark Lutz: 初めてのPython 第3版
毎週出題される演習課題によって評価
受講は経営工学系の学部生に限定する。
Pythonの基礎的な使い方の習得を前提とする。プログラミング基礎(経営工学)の履修を強く推奨する。
対面授業の際はPCを持参すること。
Google Colaboratoryで進めるため、個人のgoogleアカウント(無料)があることが望ましい。
講義資料はipynbファイルで配布する(利用方法等は初回講義で説明する)。