シラバス
授業科目名 | 年度 | 学期 | 開講曜日・時限 | 学部・研究科など | 担当教員 | 教員カナ氏名 | 配当年次 | 単位数 |
---|---|---|---|---|---|---|---|---|
アルゴリズムとデータ構造1(旧-22) | 2024 | 前期 | 他 | 理工学部 | 田村 裕 | タムラ ヒロシ | 2年次配当 | 2 |
履修条件・関連科目等
本科目はカリキュラム改正を行いましたので、
「アルゴリズムとデータ構造」
のシラバスを確認してください。
このシラバスは,2023年度アルゴリズムとデータ構造1のものです。
授業で使用する言語
日本語
授業で使用する言語(その他の言語)
授業の概要
コンピュータを用いて情報処理するには、求める情報(問題の答え)を得るための処理手順だけでなく、処理の過程で必要となるデータを効率良く取り出し/書き込むためのデータの記憶方式が重要である。処理手順をアルゴリズム、データの記憶方式をデータ構造と呼ぶ。
この科目では、基本的なアルゴリズムとデータ構造について講義する。効率の良いプログラムを自作したい学生だけでなく、プログラムを評価したい学生にも必修の科目である。
本講義は基礎的な部分であり,より高度で具体的なデータ構造や多くのアルゴリズムについては、「アルゴリズムとデータ構造2」を続けて履修することが望ましい。
科目目的
効率の良いアルゴリズムやデータ構造を修得し,実際の課題への応用力を身につける.
到達目標
まず、整列(ソート)を例に,人の思考とプログラミングの違いを理解すること.
プログラムの基となるアルゴリズムとデータ構造の概念をプログラミング言語に依存しない形で把握し、アルゴリズムの計算量、プログラムの良さの評価基準、および基本的なデータ構造の特質を理解すること。
さらに、データとそのデータに対する操作が指定されたとき、それらの操作を効率良く実行する適切なデータ構造を設計できるようになると共に、それらの操作がどのような計算量で実行できるのかを評価できるようになること。
授業計画と内容
第1回 アルゴリズムとは1(エラトステネスのふるい)
第2回 アルゴリズムとは2(ユークリッドの互除法)
第3回 プログラムと計算時間
第4回 アルゴリズムと計算量
第5回 基本的なデータ構造1(リストとスタック)
第6回 基本的なデータ構造2(キューや木構造)
第7回 集合の表現法1(優先度付きキューと2分探索木)
第8回 集合の表現法2(平衡木やハッシュ)
第9回 整列(ソート)1(整列ソートとバブルソート)
第10回 整列(ソート)2(クイックソートとマージソート)
第11回 整列(ソート)3(ヒープソートとバケットソート)
第12回 整列(ソート)4(基数ソート)
第13回 文字列の検索
第14回 ブロックチェーン等関連した最近の話題
授業時間外の学修の内容
指定したテキストやレジュメを事前に読み込むこと/授業終了後の課題提出
授業時間外の学修の内容(その他の内容等)
授業計画から次週の講義内容が分かるので、教科書の対応する箇所を読み、疑問点を抽出しておく。また、授業時の演習問題を復習する.
授業時間外の学修に必要な時間数/週
・毎週1回の授業が半期(前期または後期)または通年で完結するもの。1週間あたり4時間の学修を基本とします。
・毎週2回の授業が半期(前期または後期)で完結するもの。1週間あたり8時間の学修を基本とします。
成績評価の方法・基準
種別 | 割合(%) | 評価基準 |
---|---|---|
中間試験 | 17 | 中間試験 |
期末試験(到達度確認) | 66 | 期末試験 |
平常点 | 17 | 平常点(各回の演習や宿題) |
成績評価の方法・基準(備考)
2/3以上の出席が必要.評価方法は,期末試験4/6、中間試験1/6、平常点(各回の演習や宿題)1/6
課題や試験のフィードバック方法
授業時間内で講評・解説の時間を設ける
課題や試験のフィードバック方法(その他の内容等)
アクティブ・ラーニングの実施内容
実施しない
アクティブ・ラーニングの実施内容(その他の内容等)
授業におけるICTの活用方法
実施しない
授業におけるICTの活用方法(その他の内容等)
実務経験のある教員による授業
いいえ
【実務経験有の場合】実務経験の内容
【実務経験有の場合】実務経験に関連する授業内容
テキスト・参考文献等
教科書:五十嵐健夫著、「データ構造とアルゴリズム」、(数理工学社発行 / サイエンス社発売)
参考書:茨木俊秀著、「アルゴリズムとデータ構造」、(昭晃堂)
浅野孝夫著、「情報の構造(上):データ構造とグラフアルゴリズム」、(日本評論社)
杉原厚吉著、「データ構造とアルゴリズム」、(共立出版)