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

科目基礎情報

学校 木更津工業高等専門学校 開講年度 令和03年度 (2021年度)
授業科目 データ構造とアルゴリズムⅠ
科目番号 0073 科目区分 専門 / 必修
授業形態 講義 単位の種別と単位数 履修単位: 1
開設学科 情報工学科 対象学年 3
開設期 前期 週時間数 2
教科書/教材 近藤 嘉雪著『定本 Cプログラマのためのアルゴリズムとデータ構造』SOFTBANK BOOKS、1998年、2916円(税込)
担当教員 SAPKOTA ACHYUT

到達目標

データ構造とアルゴリズムについて理解できる。
時間計算量と領域計算量について理解できる。
計算量を優先的に考えて、データを探索する方法を理解できる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1データ構造とアルゴリズムについて十分に理解している。データ構造とアルゴリズムについて理解している。データ構造とアルゴリズムについて理解してない。
評価項目2時間計算量と領域計算量を十分に理解している。時間計算量と領域計算量を理解している。時間計算量と領域計算量を理解していない。
評価項目3計算量を優先的に考えて、データを探索する方法を十分に理解している。計算量を優先的に考えて、データを探索する方法を理解している。計算量を優先的に考えて、データを探索する方法を理解していない。

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

教育方法等

概要:
本科目では、コンピュータアプリケーションにおける、時間計算量と領域計算量について理解し、計算量を優先的に考えて、データを探索する方法について学ぶ。
授業の進め方・方法:
科目「プログラミング演習ⅡA」と連動している。
注意点:

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

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

授業計画

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

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

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野プログラミング変数の概念を説明できる。4
データ型の概念を説明できる。4
代入や演算子の概念を理解し、式を記述できる。4
制御構造の概念を理解し、条件分岐を記述できる。4
制御構造の概念を理解し、反復処理を記述できる。4
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。4
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。4
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。4
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。4
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。4
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。4
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。4
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを実装できる。4
ソフトウェアアルゴリズムの概念を説明できる。4
与えられたアルゴリズムが問題を解決していく過程を説明できる。4
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。4
時間計算量によってアルゴリズムを比較・評価できることを説明できる。4
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。4
整列、探索など、基本的なアルゴリズムについて説明できる。4
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。4
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。4
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。4
リスト構造、スタック、キュー、木構造などの基本的なデータ構造を実装することができる。4
ソフトウェアを中心としたシステム開発のプロセスを説明できる。4
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。4
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。4

評価割合

課題グループワーク授業時間内の課題合計
総合評価割合503020100
基礎的能力2515545
専門的能力2515545
事前準備、想像力001010