2021年度 学院等開講科目 工学院 経営工学系
プログラミング応用
- 開講元
- 経営工学系
- 担当教員
- 塩浦 昭義 / 清水 伸高
- 授業形態
- 講義/演習
- メディア利用科目
- -
- 曜日・時限
(講義室) - 月5-8 (西9号館311号室)
- クラス
- -
- 科目コード
- IEE.A230
- 単位数
- 110
- 開講時期
- 2021年度
- 開講クォーター
- 2Q
- シラバス更新日
- 2025年7月10日
- 使用言語
- 日本語
シラバス
授業の目的(ねらい)、概要
本講義では、Pythonを用いて基本的なデータ構造とアルゴリズムについて学ぶ。
講義と演習を通して、問題解決のためにプログラミングを用いる能力を養う。
到達目標
本講義を履修することにより、以下の知識と能力を習得する。
1) 基本的なPythonの使い方の習得
2) 基本的なデータ構造とアルゴリズムの理解
3) アルゴリズムによる効率性の違いを理解
4) アルゴリズムを実装する力
キーワード
Python、プログラミング、アルゴリズム
学生が身につける力
- 専門力
- 教養力
- コミュニケーション力
- 展開力 (探究力又は設定力)
- 展開力 (実践力又は解決力)
授業の進め方
各講義の2/3は講義形式で行い、残りの1/3は演習に充てる。
授業計画・課題
授業計画 | 課題 | |
---|---|---|
第1回 | ガイダンス・復習 (数、文字列、リスト) | 数、文字列、リストの使い方を理解する。 |
第2回 | 復習(for文、if文) | for文、if文の使い方を理解する。 |
第3回 | 文字列操作(文字列整形、パターンマッチ、正規表現) | 基本的な文字列操作ができるようになる。 |
第4回 | 平面幾何(線分の交差判定、点と直線の距離、凸包) | 凸包を計算をできるようになる。 |
第5回 | 乱数(一様乱数、正規分布への変換、乱数生成) | 乱数とは何かを理解する。 |
第6回 | 統計(データ処理、フィッティング) | データを読み込み統計的処理を行えるようになる。 |
第7回 | 計算量(オーダー表記) | 計算量とは何かを理解する。 |
第8回 | スタックとキュー(深さ優先探索と幅優先探索) | 深さ優先探索と幅優先探索の違いを説明できるようになる。 |
第9回 | ソートアルゴリズム(バブルソート、ヒープソート、クイックソート、マージソート) | ソートアルゴリズムの違いを説明できるようになる。 |
第10回 | バックトラック(Nクイーン問題、数独) | バックトラックの考え方を説明できるようになる。 |
第11回 | 動的計画法(ナップサック問題) | 動的計画法の考えかたを説明できるようになる。 |
第12回 | 最短経路問題(Warshall-Floyd, Bellman-Fordアルゴリズム) | 最短経路問題が解けるようになる。 |
第13回 | 線形計画法 | pulpを用いて線形計画問題を解く。 |
第14回 | トラベリングセールスマン問題 | トラベリングセールスマン問題が解けるようになる。 |
準備学修(事前学修・復習)等についての指示
学修効果を上げるため,教科書や配布資料等の該当箇所を参照し,「毎授業」授業内容に関する予習と復習(課題含む)をそれぞれ概ね100分を目安に行うこと。
教科書
特になし
参考書、講義資料等
Guido van Rossum: Pythonチュートリアル 第2版
Mark Lutz: 初めてのPython 第3版
成績評価の方法及び基準
到達度をレポートにより評価する。
関連する科目
- IEE.A207 : プログラミング基礎(経営工学)
履修の条件・注意事項
受講は経営工学系の学部生に限定する。
Pythonの基礎的な使い方の習得を前提とする。プログラミング基礎(経営工学)の履修を強く推奨する。
その他
対面授業の際はPCを持参すること.