データ構造とアルゴリズムI

科目基礎情報

学校 木更津工業高等専門学校 開講年度 令和07年度 (2025年度)
授業科目 データ構造とアルゴリズムI
科目番号 j0200 科目区分 専門 / 必修
授業形態 講義 単位の種別と単位数 履修単位: 1
開設学科 情報工学科 対象学年 3
開設期 前期 週時間数 2
教科書/教材 柴田 望洋著『新・明解C言語で学ぶアルゴリズムとデータ構造第2版』SB Creative、2021年、ISBN: 978-4-8156-0978-8
担当教員 SAPKOTA ACHYUT

到達目標

MCC: VD2-ソフトウェア: アルゴリズム
評価項目①:計算量によってアルゴリズムを比較・評価できることを説明できる。
評価項目②:探索アルゴリズムの概念を理解し、与えられたアルゴリズムが問題を解決していく過程を説明できる。
評価項目③:コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを理解し、基本的なデータ構造の概念と操作を説明できる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目①時間計算量・空間計算量の概念を理解しており、複数のアルゴリズムを計算量の観点から的確に比較・評価できる。時間計算量や空間計算量の考え方を理解し、典型的なアルゴリズムの効率を比較する際に、計算量の大小をもとにおおよその性能を説明できる。アルゴリズムの違いを計算量に基づいて説明することができない。
評価項目②基本探索アルゴリズムの動作原理を正確に理解しており、手続きの各ステップを明確に説明できる。 基本的な探索アルゴリズムの概要を理解しており、代表的な例において処理の流れを概ね説明することができる。探索アルゴリズムの基本的な動作原理を理解しておらず、処理の流れや手順を正しく説明することができない。
評価項目③探索アルゴリズムとデータ構造の関係を理解し、問題の特性に応じた適切なデータ構造を選択できる。基本的な探索アルゴリズムとデータ構造の関係を理解し、典型的な問題に対して適切なデータ構造を選択できる。探索アルゴリズムとデータ構造の関係が十分に理解できておらず、問題に応じた適切なデータ構造を選ぶことができない。

学科の到達目標項目との関係

準学士課程(R5までのDP) R5までDP_4 情報技術の修得

教育方法等

概要:
アルゴリズムとデータ構造の基本概念を学び、時間・領域計算量の考え方や探索手法を通じて、効率的な問題解決力を養う。探索アルゴリズムとデータ構造の関係を理解し、最適な手法を選択できる力を身につける。
授業の進め方・方法:
【授業のすすめ方】
授業では代表的な例を教員が解説し、演習問題に取り組むことで理解を深める。
【評価方法】
試験:80%, 課題: 20% 
注意点:
オフィスアワーとして月曜日16時20分から17時として設定しているため、理解できない内容があれば質問に来ること。また、オフィスアワー以外の時間であっても事前にOffice Teamsのチャットなどにより連絡しても良いです。

授業の属性・履修上の区分

アクティブラーニング
ICT 利用
遠隔授業対応
実務経験のある教員による授業

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 データ構造とアルゴリズムとの紹介 データ構造とアルゴリズムの概要のついて理解できる。
2週 計算量(1) データ構造とアルゴリズムにおける時間計算量と領域計算量について理解できる。
3週 計算量(2) 応用現場の視点から時間計算量と領域計算量について理解できる。
4週 計算量(3) 応用例による時間と領域計算量のトレードオフについて理解でいる。
5週 探索(1) 計算量を考慮し、データを探索できる基礎的方法について理解できる。
6週 探索(2) 計算量を優先的に考えてデータを探索するために、配列の中でデータを格納する適切な場所を計算できる。
7週 探索(3) 計算量を優先的に考えてデータを探索するために、配列の中でデータを格納する適切な場所を計算する様々な方法について理解できる。
8週 まとめ 週1から週7の内容について理解を深める
2ndQ
9週 探索(4) 計算量を優先的に考えて、課題に応じて適切な方法を用いて、配列の中でデータを格納し、探索できる。
10週 探索(5) 計算量を優先的に考えてデータを探索するために、配列とメモリアドレスを用いた方法について理解できる。
11週 探索(6) 計算量を優先的に考えて、メモリアドレスのみを活用してデータを格納し、探索できる方法について理解できる。
12週 探索(7) 計算量を優先的に考えて、メモリアドレスのみを活用してデータを格納し、探索できる方法について理解できる。
13週 探索(8) 探索(6)の内容の数学的背景と展開について理解できる。
14週 探索(9) 探索(6)の方法の計算時間の最適化について理解できる。
15週 まとめ 前期の内容を全体的まとめて、理解できる。
16週

モデルコアカリキュラムの学習内容と到達目標

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野ソフトウェアアルゴリズムの概念を説明できる。3前1,前8,前15
与えられたアルゴリズムが問題を解決していく過程を説明できる。3前8,前15
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。3前8,前15
時間計算量によってアルゴリズムを比較・評価できることを説明できる。4前2,前3,前4,前8,前10,前15
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。4前3,前4,前8,前10,前15
整列、探索など、基本的なアルゴリズムについて説明できる。3前5,前6,前7,前8,前9,前10,前11,前12,前13,前14,前15
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。3前9,前10,前11,前12,前13,前14,前15
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。3前10,前11,前12,前13,前14,前15
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。3前11,前12,前13,前14,前15
リスト構造、スタック、キュー、木構造などの基本的なデータ構造を実装することができる。3前12,前13,前14,前15
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。3前2,前3,前4,前8,前9,前10,前15
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。3前2,前5,前6,前7,前8,前10,前15

評価割合

試験課題合計
総合評価割合8020100
評価項目①25530
評価項目②401050
評価項目③15520