情報フルエンシー(Pythonによるアルゴリズムと問題解決の技法)
共通 - 全学共通
GSD30020
コース情報
担当教員: 宮本 裕一郎
単位数: 2
年度: 2024
学期: 春学期
曜限: 月3
形式: 対面授業
レベル: 300
アクティブラーニング: あり
他学部履修: 可
評価方法
出席状況
授業参加
レポート
定期試験
定期試験期間中
小テスト等
詳細情報
概要
この科目はプログラミングの中級者を受講者として想定している. この科目ではアルゴリズムの実装を通して,問題解決の技法を習得することを目的とする. より具体的には,アルゴリズムとデータ構造の理解を目標として,高度なアルゴリズムの実装を学ぶ.単にアルゴリズムを実装するだけでなく問題を解決する力を養うため,近年盛んに行われているプログラミングコンテストの問題を題材に用いる. また,折に触れて,最適化や機械学習などの手法を具体的な問題に適用する方法を紹介する. プログラミング言語としては,科学技術計算モジュールが近年充実しつつあるスクリプト言語Pythonを用いる.そして,最適化や機械学習を含む,いくつかの科学技術計算モジュールの使い方も紹介する. この演習では高度なアルゴリズムの実装(プログラミング)を扱うため,何らかのプログラミングの経験者を受講者として想定している.ただしPythonそのものは初歩から演習するため,その経験は問わない. なお本科目は,全学共通教育におけるカリキュラム・ポリシーの4.にある,「データサイエンス」のカテゴリーに対応する.
目標
まず第一にスクリプト言語Pythonを使ってプログラミングできるようになることを目標とする.第二に,プログラミングコンテストの問題(のうちあまり難しくないもの)を自力で解けるようになることを目標とする.近年,先進的なIT企業はその採用活動においてプログラミング(コーディング)試験を課すようになってきているので,その程度の問題は解けるようになりたい.第三に,最適化や機械学習の科学技術計算モジュールを使えるようになることを目標とする.
授業外の学習
講義時間中に紹介する問題を解くことを予習・復習として課する.予習と復習を合わせて毎週平均190分程度の時間を要する.
所要時間: 190分
スケジュール
- ガイダンス,Pythonとは?とりあえずGoogle colabを使ってみる.
- 既存のモジュールを使ってみる.関数を定義して利用してみる.
- データを読み込み,書き出してみる.
- プログラミングコンテストの問題に挑戦してみる.
- 非常に簡単な問題を解いてみる.
- 計算時間を意識して簡単な問題を解いてみる.
- かんたんなアルゴリズムを用いて問題を解いてみる.
- グラフ探索アルゴリズムを用いて問題を解いてみる.
- 部分集合や順列の列挙を用いて問題を解いてみる.
- 動的計画法を用いて問題を解いてみる.
- 中くらいの難しさの問題を解いてみる.
- ネットワークフローを用いて問題を解いてみる.
- 少し難しい問題を解いてみる.
- 難しい問題を解いてみる.
教科書
講義中に随時紹介する.
参考書
書籍情報はありません。