授業概要
|
|
本講義では、効率的なプログラミング設計の基礎となる「アルゴリズム」について、Pythonなどによる実装を交えて学ぶ。まず、アルゴリズムの意義を概観した上で、プログラミングの基礎である変数・配列・条件分岐などについて解説する。そのうえで、フローチャートと簡単なアルゴリズム、データ構造と計算量、探索やソートなどのアルゴリズムについて学ぶ。さらに、時間が許せば、受講者の興味に合わせて発展的なアルゴリズムを扱う。とくに、自らの手でアルゴリズムを実装し、計算速度がアルゴリズムによって大きく異なることを各自確認し、プログラムの効率化におけるアルゴリズムの重要性を体感することを目標とする。
|
|
|
知識・専門性の到達目標
|
|
基本的なアルゴリズムとデータ構造及び計算量に関する基本的知識を修得し、その要点を第3者に説明できる。【数理工学の専門性】
|
|
関心・態度・人格の到達目標
|
|
|
|
思考力・判断力の到達目標
|
|
基本的なアルゴリズムの流れ図とプログラム作成の基本的スキルを身につけるとともに、計算量を求める能力を獲得している。【情報分析力・課題解決力】
|
|
交感力・発信力の到達目標
|
|
|
|
「響学スパイラル」取り組み方法
|
|
数理科学の営みは、課題(問い)に対し、それが何であるかを研究考察(考動)し、問題として定式化して研究し一つの結論を得る(カタチにする)こと、それを吟味して新たな課題を見出す(見つめ直す)ことの繰り返してある。この授業の内容を題材に説明し、課題に取り組ませる。
|
|
|
授業における「アクティブな知」の要素
|
|
| |
授業形態
|
対象
|
|
A:課題解決型学習(PBL)企業、自治体等との連携あり
|
-
|
|
|
|
B:課題解決型学習(PBL)連携なし
|
‐
|
|
|
|
C:反転授業(知識習得を授業外で行い、知識確認等の要素を教室で行う授業形態)
|
-
|
|
|
|
D:討議(ディスカッション、ディベート等)
|
‐
|
|
|
|
E:グループワーク
|
‐
|
|
|
|
F:発表(プレゼンテーション)
|
‐
|
|
|
|
G:実習、フィールドワーク
|
○
|
|
|
|
H:双方向授業(ICT活用なし:対話型、リアクションペーパー等)
|
‐
|
|
|
|
I:双方向授業(ICT活用あり:クリッカー、タブレット、スマートフォン等)
|
‐
|
|
|
|
J:講義のみ
|
‐
|
|
|
|
|
‐
|
|
|
|
授業における「ICTの活用」について
|
|
| |
授業形態
|
対象
|
|
A:ノートPC必携
|
〇
|
|
|
|
B:講義資料や授業教材のオンライン配信
|
〇
|
|
|
|
C:レポート課題等のオンライン提出
|
〇
|
|
|
|
D:質問やレポート課題等へのフィードバックにおける学修管理システムの活用 (学修支援システム(Course Power)、Google Classroom、Teams等)
|
〇
|
|
|
|
E:オンラインメディアの活用 (e-Learning、edX、Coursera、JMOOC等のOpen Educational Resources)
|
-
|
|
|
|
F:Zoom、Google Meet等のミーティングツールの活用
|
-
|
|
|
|
|
-
|
|
|
|
予習 (事前学修)
|
|
| |
各授業
|
参考図書・資料を読んでおくこと。
|
|
|
[
130
]分
|
|
|
|
復習 (事後学修)
|
|
| |
各授業
|
参考図書・資料を読み返し、演習の流れ図を書いたり、扱ったアルゴリズムを実装すること。
|
|
|
[
130
]分
|
|
|
|
成績評価
|
|
| |
評価項目
|
評価項目の詳細内容
|
割合
|
|
課題提出(レポート)
|
到達度を確認するための課題
|
80
%
|
|
|
|
|
小テスト
|
各内容の理解度を確認するための課題
|
20
%
|
|
|
|
|
試験
|
|
0
%
|
|
|
|
|
実習・学外学修活動
|
|
0
%
|
|
|
|
|
その他
|
|
0
%
|
|
|
|
授業計画
|
|
| |
授業回
|
内容
|
|
1.
|
アルゴリズムの意義・基本的事項 -(予習(130分))参考図書・資料にあらかじめ目を通しておくこと -(復習(130分))参考図書・資料を見直すこと
|
|
2.
|
プログラミングの基礎:変数・配列・条件分岐① -(予習(130分))参考図書・資料にあらかじめ目を通しておくこと -(復習(130分))参考図書・資料を見直し、各自プログラミング環境を整えること
|
|
3.
|
プログラミングの基礎:変数・配列・条件分岐② -(予習(130分))参考図書・資料にあらかじめ目を通しておくこと -(復習(130分))参考図書・資料を見直し、簡単なプログラミングを動かすこと
|
|
4.
|
フローチャートと簡単なアルゴリズム① -(予習(130分))参考図書・資料にあらかじめ目を通しておくこと -(復習(130分))参考図書・資料を見直し、アルゴリズムを自由に実装すること
|
|
5.
|
フローチャートと簡単なアルゴリズム② -(予習(130分))参考図書・資料にあらかじめ目を通しておくこと -(復習(130分))参考図書・資料を見直し、アルゴリズムを自由に実装すること
|
|
6.
|
データ構造と計算量 -(予習(130分))参考図書・資料にあらかじめ目を通しておくこと -(復習(130分))参考図書(とくに、「アルゴリズムとデータ構造」(石畑))・資料を見直すこと
|
|
7.
|
探索アルゴリズム① -(予習(130分))参考図書・資料にあらかじめ目を通しておくこと -(復習(130分))参考図書・資料を見直し、アルゴリズムを自由に実装すること
|
|
8.
|
探索アルゴリズム② -(予習(130分))参考図書・資料にあらかじめ目を通しておくこと -(復習(130分))参考図書・資料を見直し、アルゴリズムを自由に実装すること
|
|
9.
|
探索アルゴリズム③ -(予習(130分))参考図書・資料にあらかじめ目を通しておくこと -(復習(130分))参考図書・資料を見直し、アルゴリズムを自由に実装すること
|
|
10.
|
ソートアルゴリズム① -(予習(130分))参考図書・資料にあらかじめ目を通しておくこと -(復習(130分))参考図書・資料を見直し、アルゴリズムを自由に実装すること
|
|
11.
|
ソートアルゴリズム② -(予習(130分))参考図書・資料にあらかじめ目を通しておくこと -(復習(130分))参考図書・資料を見直し、アルゴリズムを自由に実装すること
|
|
12.
|
ソートアルゴリズム③ -(予習(130分))参考図書・資料にあらかじめ目を通しておくこと -(復習(130分))参考図書・資料を見直し、アルゴリズムを自由に実装すること
|
|
13.
|
発展的なアルゴリズム -(予習(130分))参考図書・資料にあらかじめ目を通しておくこと -(復習(130分))参考図書・資料を見直し、アルゴリズムを自由に実装すること
|
|
14.
|
まとめ(これまでに学習したアルゴリズムの復習(要約))
|
|
|
|
留意事項
|
|
本講義の内容や評価方法は、学生の受講状況や興味・関心などにより変更の可能性があるため、基本的に講義に出席すること。 また、PCを講義に持参して、その場で実装することを強く勧める。
|
|
|
教科書 (購入必要)
|
|
|
|
参考図書 (任意購入)
|
|
| |
1.
|
|
|
|
|
|
書籍名
|
『Pythonではじめるアルゴリズム入門 伝統的なアルゴリズムで学ぶ定石と計算量 』
|
|
|
|
|
|
著者
|
増井敏克
|
|
|
|
|
|
出版社
|
翔泳社
|
ISBN(13桁)
|
9784798163239
|
|
|
|
|
|
参考図書に関する履修学生への連絡事項
|
本講義の内容に最も近く、将来的にプログラミングをする際に役に立つ教科書。購入を強く勧める。
|
|
2.
|
|
|
|
|
|
書籍名
|
『アルゴリズムをはじめよう』
|
|
|
|
|
|
著者
|
伊藤静香
|
|
|
|
|
|
出版社
|
インプレスジャパン
|
ISBN(13桁)
|
9784844332015
|
|
|
|
|
|
参考図書に関する履修学生への連絡事項
|
アルゴリズムの基本事項が丁寧に解説された教科書。
|
|
3.
|
|
|
|
|
|
書籍名
|
『アルゴリズムとデータ構造』
|
|
|
|
|
|
著者
|
石畑清
|
|
|
|
|
|
出版社
|
岩波書店
|
ISBN(13桁)
|
9784000103435
|
|
|
|
|
|
参考図書に関する履修学生への連絡事項
|
高度なアルゴリズムも含め、数理的な観点からも丁寧に解説された名著。
|
|
4.
|
|
|
|
|
|
書籍名
|
『アルゴリズムイントロダクション 第3版 総合版』
|
|
|
|
|
|
著者
|
T コルメン他
|
|
|
|
|
|
出版社
|
近代科学社
|
ISBN(13桁)
|
9784764904088
|
|
|
|
|
|
参考図書に関する履修学生への連絡事項
|
様々なアルゴリズムが網羅された、世界標準のMITのアルゴリズムの教科書。
|
|
5.
|
|
|
|
|
|
書籍名
|
『問題解決力を鍛える!アルゴリズムとデータ構造』
|
|
|
|
|
|
著者
|
大槻兼資
|
|
|
|
|
|
出版社
|
講談社
|
ISBN(13桁)
|
9784065128442
|
|
|
|
|
|
参考図書に関する履修学生への連絡事項
|
発展的なアルゴリズムが解説されており、プログラミング力を高めたい学生さんにお勧めの教科書(サンプル・コードはC++)。
|
|
|
|
その他 (配布教材等により購入不要)
|
|
|
|
参考URL
|
|
|
|
実務経験のある教員等による授業科目 (実践的教育を行う授業科目)
|
|
| |
実践的教育を行う授業科目の種別
|
対象
|
|
a.実務経験を有する担当教員による実践的な授業科目
|
〇
|
|
|
|
担当教員の実務経験(経歴・資格等)
|
|
|
|
金融機関で数理業務・研究開発(含、C++/Pythonによる数理モデル・統計手法などの実装)での勤務経験を有する教員。 経歴:2013-2018年 三菱UFJ銀行、2018-2020年 SMBC日興証券、2020-2024年 日本銀行
|
|
|
|
授業内容との関連性
|
|
|
|
実践的なプログラミングの経験を有する。
|
|
|
|
b.企業や自治体等、学外から実務経験を有する講師を招いて行う授業科目
|
-
|
|
|
|
学外講師の経歴・資格等
|
|
|
|
|
|
|
|
授業内容との関連性
|
|
|
|
|
|
|
|
c.企業や自治体等との連携により、学外でのインターンシップや実習、研修を行う授業科目
|
-
|
|
|
|
実習先・実習の目的
|
|
|
|
|
|
|
|
備考
|
|
|