科目ナンバリングI-SIS321J-01
科目コード543200
科目名データ構造とアルゴリズム
科目名(英語)Data Structures and Algorithms
学科スポーツ情報マスメディア学科
学年2年
学期後期
授業形態講義
必修・選択の別
単位数2
担当教員橋本 智明
開講の別単独開講


実務経験の有無
授業の概要
効率的なアルゴリズムを用いることで,無駄な計算を行わずにすみます.そこで,アルゴリズムやデータ構造の考え方を身につけると,効率的なプログラムを作成できるようになります.本授業では,様々なアルゴリズムの原理について学び,更にアルゴリズムをプログラムする実習を行うことでより実践力を身につけます.
DPとの関連性
.
体育学科のDPは下記のリンクを参照してください。
体育学科https://www.sendaidaigaku.jp/gakubu.html?post=786&name=taiiku
.
健康福祉学科のDPは下記のリンクを参照してください。
健康福祉学科https://www.sendaidaigaku.jp/gakubu.html?post=811&name=kenhuku
.
スポーツ栄養学科のDPは下記のリンクを参照してください。
スポーツ栄養学科https://www.sendaidaigaku.jp/gakubu.html?post=917&name=eiyo
.
スポーツ情報マスメディア学科のDPは下記のリンクを参照してください。
スポーツ情報マスメディア学科https://www.sendaidaigaku.jp/gakubu.html?post=1398&name=media
.
現代武道学科のDPは下記のリンクを参照してください。
現代武道学科https://www.sendaidaigaku.jp/gakubu.html?post=971&name=gbd
.
子ども運動教育学科のDPは下記のリンクを参照してください。
子ども運動教育学科https://www.sendaidaigaku.jp/gakubu.html?post=936&name=kdm
アクティブ・ラーニングについて
課題解決型学習(PBL)
反転学習
ディスカッション
ディベート
グループワーク
プレゼンテーション
実習
フィールドワーク
授業の一般目標
様々なアルゴリズムの知識を身につけ,効率的なプログラムを作成できるようになる.良いアルゴリズムを理解し,状況に応じて最適なアルゴリズムを選択できるようになる.
授業の履修目標
対象領域内容
認知的領域様々なアルゴリズムの知識を身につけ,良いアルゴリズムをとは何かを十分に説明できる.
情意的領域アルゴリズムをプログラミングで実装する演習・実習に積極的に参加できる.
技能表現的領域難易度の高いアルゴリズムをプログラミングで実装できる.
授業の到達目標
対象領域内容
認知的領域様々なアルゴリズムの知識を身につけ,良いアルゴリズムをとは何か基本的な内容を説明できる.
情意的領域アルゴリズムをプログラミングで実装する演習・実習に最低限参加できる.
技能表現的領域基本的なアルゴリズムをプログラミングで実装できる.
ルーブリック
評価項目評価基準
十分に達成し、極めて優秀な成績を修めている十分に達成している
【履修目標】
おおむね達成している最低限達成している
【到達目標】
達成していない
不可・放棄
様々なアルゴリズムの知識を身につけ,良いアルゴリズムのとは何か理解している.様々なアルゴリズムの知識を身につけ,良いアルゴリズムをとは何かを十分に理解し,他人に説明することができる.様々なアルゴリズムの知識を身につけ,良いアルゴリズムをとは何かを十分に理解している.様々なアルゴリズムの知識を身につけ,良いアルゴリズムをとは何か概ね理解している.様々なアルゴリズムの知識を身につけ,良いアルゴリズムをとは何か基本的な内容を理解している.様々なアルゴリズムの知識を身につけ,良いアルゴリズムをとは何か理解していない.
アルゴリズムをプログラミングで実装する演習・実習への参加アルゴリズムをプログラミングで実装する演習・実習に主体的かつ積極的に参加できる.アルゴリズムをプログラミングで実装する演習・実習に積極的に参加できる.アルゴリズムをプログラミングで実装する演習・実習に参加できる.アルゴリズムをプログラミングで実装する演習・実習に最低限参加できる.アルゴリズムをプログラミングで実装する演習・実習に参加できない.
アルゴリズムをプログラミングでの実装難易度の高いアルゴリズムを活用し,より高度なプログラミングを組める.難易度の高いアルゴリズムをプログラミングで実装できる.標準的なアルゴリズムをプログラミングで実装できる.基本的なアルゴリズムをプログラミングで実装できる.アルゴリズムをプログラミングで実装できない.
授業計画(全体)
様々なアルゴリズムについてその概要を説明した上で,実際にそのアルゴリズムを用いたプログラミングを行い,どのような仕組みでデータが処理され,出力されるのかを理解する.また,理解度を適宜チェックするために,適宜課題に取り組んでもらう.
授業計画(各回のテーマ等)
Noテーマ内容オンライン授業授業外学修時間数
1.オリエンテーション授業概要及びアルゴリズムとは何か説明する.シラバスを事前に確認し授業での学習内容を理解しておくこと.4時間
2.基本的なアルゴリズム(1)総和,2値のソート,条件判定について説明し,演習を行う.教科書の指定された箇所を読んで内容を把握すること.4時間
3.基本的なアルゴリズム(2)繰返しのスキップ,複数のrange,構造化プログラミングについて説明し,演習を行う.教科書の指定された箇所を読んで内容を把握すること.4時間
4.データ構造と配列について配列の概念,リストとタプルについて説明する.教科書の指定された箇所を読んで内容を把握すること.4時間
5.配列について要素の最大値,モジュールのテスト,配列の要素の並びの反転,基数変換について説明し,演習を行う.教科書の指定された箇所を読んで内容を把握すること.4時間
6.探索について線形探索,2分探索,ハッシュ法について説明し,演習を行う.教科書の指定された箇所を読んで内容を把握すること.4時間
7.スタックとキューについてスタックとキューについてについて説明し,演習を行う.教科書の指定された箇所を読んで内容を把握すること.4時間
8.再帰的アルゴリズムについて(1)再帰とは,再帰アルゴリズムの解析について説明し,演習を行う.教科書の指定された箇所を読んで内容を把握すること.4時間
9.再帰的アルゴリズムについて(2)ハノイの塔,8王妃問題について説明し,演習を行う.教科書の指定された箇所を読んで内容を把握すること.4時間
10.ソートについて(1)バブルソート,単純選択ソート,単純挿入ソート,シェルソートについて説明し,演習を行う.教科書の指定された箇所を読んで内容を把握すること.4時間
11.ソートについて(2)クイックソート,マージソート,ヒープソート,度数ソートについて説明し,演習を行う.教科書の指定された箇所を読んで内容を把握すること.4時間
12.文字列探索について単純法, KMP法,Boyer-Moore法について説明し,演習を行う.教科書の指定された箇所を読んで内容を把握すること.4時間
13.線形リストについて線形リスト,循環・重連結リストについて説明し,演習を行う.教科書の指定された箇所を読んで内容を把握すること.4時間
14.木構造について木構造について説明する.教科書の指定された箇所を読んで内容を把握すること.4時間
15.2分探索木について2分探索木について説明する.教科書の指定された箇所を読んで内容を把握すること.4時間
成績評価方法(方針)
授業での実習課題40%,定期試験60%
成績評価方法(詳細)
到達目標\評価方法認知的領域情意的領域技能表現的領域評価割合(%)
定期試験60%
授業内レポート
授業外レポート
演習・実技40%
授業態度
出席欠格条件
レポートの実施・返却(方針)
希望があればGoogle Classroomで各課題の結果等をフィードバックする.
履修上の注意(受講学生に望むこと)
・大学設置基準で求められている時間の授業時間外学修を行うこと。
・欠席は放置すると欠格になるので、やむを得ない事情で欠席した場合は原因の解消後に、許可を得て速やか再受講し,再受講レポートを提出すること.
・履修期間はもれなくGoogleClassroom及びMeet、大学メールを活用できることが履修の必須条件となります.
・課題は各学生が主体的に取り組むこと(指定の条件で取り組むこと).
・BYODを積極的に活用するため,充電をしておくこと.
・教科書は必須となります.
関連科目
プログラミング演習(含実習),情報システム演習(含実習),情報ネットワーク演習(含実習)
教科書
書名著者出版社出版年
01なし
参考書
書名著者出版社出版年
01Pythonではじめるアルゴリズム入門 伝統的なアルゴリズムで学ぶ定石と計算量増井 敏克翔泳社2020
オフィスアワー
火曜14:20-15:50
GCR
qlxm6yw
その他
※授業の実施状況に応じて,一部の内容をオンライン授業で実施する場合があります.
備考
感染症や災害の発生時の非常時には、授業形態をオンラインに変更する場合がありますので、
大学の指示に従い受講して下さい。