シラバス
授業科目名 | 年度 | 学期 | 開講曜日・時限 | 学部・研究科など | 担当教員 | 教員カナ氏名 | 配当年次 | 単位数 |
---|---|---|---|---|---|---|---|---|
アルゴリズムとデータ構造演習 | 2024 | 後期 | 月4 | 理工学部 | 福永 拓郎 | フクナガ タクロウ | 2年次配当 | 2 |
科目ナンバー
SE-IG2-8A02
履修条件・関連科目等
Cプログラミング初級・中級・上級演習、数理情報学1、数値計算1を授業開始時までに学修していることが望ましい。また、数理情報学2を並行して履修、もしくは学修済みであることが望ましい。
授業で使用する言語
日本語
授業で使用する言語(その他の言語)
授業の概要
数理的な諸問題に対するアルゴリズムを適切なデータ構造を用いたプログラムとして実装することを学ぶ。演習で扱う問題は、数理情報学2で学習する内容を中心に取り上げる。プログラミングには、Python言語を用いる。Python言語については、演習の前半で基本事項を学び、さらに個別の問題に対するプログラムの実装を通して理解を深める。
科目目的
数理的な計算問題に対して、様々なアルゴリズムを適切なデータ構造を用いて実装する方法を学ぶこと。
到達目標
代表的なアルゴリズムを、Python言語を用いたプログラムに実装できるようになること。
授業計画と内容
第1回 Python言語の基礎: 変数、配列、入出力
第2回 Python言語の基礎: 条件文、反復文、関数
第3回 Python言語の基礎: ライブラリ
第4回 探索
第5回 貪欲法
第6回 グラフアルゴリズム
第7回 到達度確認
第8回 再帰・分割統治法1
第9回 基本的なデータ構造
第10回 分割統治法2
第11回 ベクトル・行列の計算
第12回 動的計画法1
第13回 動的計画法2
第14回 到達度確認
授業時間外の学修の内容
授業終了後の課題提出/その他
授業時間外の学修の内容(その他の内容等)
数理情報学2などで取り上げたアルゴリズムをプログラミングの課題で取り上げるので、事前にアルゴリズムの動作について復習し十分理解しておくこと。
授業時間外の学修に必要な時間数/週
・毎週1回の授業が半期(前期または後期)または通年で完結するもの。1週間あたり4時間の学修を基本とします。
・毎週2回の授業が半期(前期または後期)で完結するもの。1週間あたり8時間の学修を基本とします。
成績評価の方法・基準
種別 | 割合(%) | 評価基準 |
---|---|---|
中間試験 | 25 | Pythonの基本的な文法を理解していること。指定されたアルゴリズムを理解し、適切なPythonプログラムとして実装できること。 |
期末試験(到達度確認) | 25 | Pythonの基本的な文法を理解していること。指定されたアルゴリズムを理解し、適切なPythonプログラムとして実装できること。 |
平常点 | 50 | 授業への出席状況と、授業中に出された課題への取り組みにより評価する。 |
成績評価の方法・基準(備考)
課題や試験のフィードバック方法
授業時間内で講評・解説の時間を設ける/授業時間に限らず、manabaでフィードバックを行う
課題や試験のフィードバック方法(その他の内容等)
アクティブ・ラーニングの実施内容
実施しない
アクティブ・ラーニングの実施内容(その他の内容等)
授業におけるICTの活用方法
その他
授業におけるICTの活用方法(その他の内容等)
計算機を用いてプログラムの作成を演習課題として行う。また、作成したプログラムの動作確認を、オンラインジャッジを利用して瞬時に行いフィードバックスする。
実務経験のある教員による授業
いいえ
【実務経験有の場合】実務経験の内容
【実務経験有の場合】実務経験に関連する授業内容
テキスト・参考文献等
資料を配布する。参考書については必要に応じて授業中に紹介する。
その他特記事項
参考URL
https://researchmap.jp/takuro_fukunaga/