アルゴリズム

科目基礎情報

学校 北九州工業高等専門学校 開講年度 令和04年度 (2022年度)
授業科目 アルゴリズム
科目番号 0122 科目区分 専門 / 必修
授業形態 単位の種別と単位数 履修単位: 1
開設学科 生産デザイン工学科(知能ロボットシステムコース) 対象学年 4
開設期 前期 週時間数 2
教科書/教材 【教科書】 「Pythonで学ぶアルゴリズムとデータ構造」、辻 真吾 (著)、下平 英寿 (編集)、講談社
担当教員 日高 康展

到達目標

1. 探索、整列など、基本的なアルゴリズムについて説明できる。
2. リスト、スタック、キューなどの基本的なデータ構造について説明できる。
3. 上記の各種アルゴリズムについて、C 言語でプログラミングできる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
基本的なアルゴリズムの理解探索、整列などについて、効率の良いアルゴリズムの説明ができる探索、整列などについて、アルゴリズムの説明ができる。探索、整列などについて、アルゴリズムの説明ができない。
基本的なデータ構造の理解リスト、スタック、キュー、木などのデータ構造の説明ができ、問題に応じて適切な構造を選択できる。リスト、スタック、キュー、木などのデータ構造の説明ができる。リスト、スタック、キュー、木などのデータ構造の説明ができない。
C言語によるプログラミング各種の問題について、適切なアルゴリズムを選択してC 言語でプログラミングできる。各種アルゴリズムについて、C 言語でプログラミングできる。各種アルゴリズムについて、C 言語でプログラミングできない。

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

学習・教育到達度目標 A① 数学・物理・化学などの自然科学、情報技術に関する基礎を理解できる。

教育方法等

概要:
ソフトウェアを開発するには, 問題を計算機上で実現できる形に直す作業(データ構造) と, それを実際に効率よく解く手順を作成する作業(アルゴリズム) からなる. その基本的な情報構造であるデータ構造とそれらに関連するアルゴリズムについての理解を主たる目的とする。
授業の進め方・方法:
実用的なプログラミングを作る時に必要となるデータ構造とアルゴリズムの原理について理解する. 座学で学んだデータ構造とアルゴリズムは、C 言語でプログラムを作成し動作を確認する。
注意点:
C言語を用いたプログラミングができることを前提とする。授業内で最低限の復習は行うが、基礎となる関連科目である「情報処理」および「プログラミング」の理解を深めておくことが重要である。

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

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

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 アルゴリズムとは、授業計画 授業計画について理解している
2週 C言語の復習、計算量 C言語の基本データ型と配列の説明ができる
3週 線形探索とそのC言語プログラミング 線形探索のアルゴリズムその計算量について説明でき、そのC言語プログラムが実装できる
4週 二分探索とそのC言語プログラミング 二分探索のアルゴリズムとその計算量について説明でき、そのC言語プログラムが実装できる
5週 単純選択法、単純交換法 単純選択法と単純交換法の二種類のソートアルゴリズムを説明できる
6週 単純挿入法 単純挿入法のソートアルゴリズムを説明できる
7週 ソートアルゴリズムのC言語プログラミング C言語を用いて各種ソートのプログラムを作成できる
8週 中間試験 1~7週までの内容を網羅した試験により、授業内容の理解の定着を図る。
2ndQ
9週 答案返却とその解説、再帰の復習 中間試験の内容を理解する。再帰アルゴリズムの考え方を説明できる
10週 線形リスト 線型リストについて説明できる
11週 線型リストのC言語プログラミング 線型リストをC言語で実装できる
12週 スタックとそのC言語プログラミング スタックについて説明でき、そのC言語プログラムが実装できる
13週 キューとそのC言語プログラミング キューについて説明でき、そのC言語プログラムが実装できる
14週 木構造 木構造について説明できできる
15週 木構造のC言語プログラミング 木構造のC言語プログラムが実装できる
16週 定期試験 9~15週までの内容を網羅した試験により、授業内容の理解の定着を図る。

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

分類分野学習内容学習内容の到達目標到達レベル授業週
基礎的能力工学基礎情報リテラシー情報リテラシー同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを知っている。3前3,前4,前5,前6
与えられた基本的な問題を解くための適切なアルゴリズムを構築することができる。3前3,前4,前5,前6,前10,前11,前12,前14
任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。3前3,前4,前7,前11,前13,前15

評価割合

試験演習・レポート合計
総合評価割合7030100
基礎的能力000
専門的能力7030100
分野横断的能力000