学習目標 Ⅱ 実践性
学校目標 D(工学基礎) 数学,自然科学,情報技術および工学の基礎知識と応用力を身につける
学科目標 D(工学基礎) 数学,自然科学,情報技術および計算機システムⅠ・Ⅱ,オペレーティングシステムⅠ・Ⅱ,情報理論などを通して,工学の基礎知識と応用力を身につける.
本科の点検項目 D-ⅲ 情報技術を利用できる
学校目標 E(継続的学習) 技術者としての自覚を持ち,自主的,継続的に学習できる能力を身につける
本科の点検項目 E-ⅱ 工学知識,技術の修得を通して,継続的に学習することができる
学校目標 F(専門の実践技術) ものづくりに関係する工学分野のうち,得意とする専門領域を持ち,その技術を実践できる能力を身につける
学科目標 F(専門の実践技術) ものづくりに関係する工学分野のうち,情報工学実験,情報通信Ⅰ・Ⅱ,システム工学などを通して,得意とする専門領域を持ち,その技術を実践できる能力を身につける.
本科の点検項目 F-ⅰ ものづくりや環境に関係する工学分野のうち,専門とする分野の知識を持ち,基本的な問題を解くことができる
概要:
この授業では,1,2年で学んできたプログラミングの基礎知識を要する.
第1,2学年で開講されている「プログラミング」は,情報処理技術者としてソフトウェア開発を行うために必要なプログラミング技法を修得することが目的であり,第3学年の「プログラム設計演習」では,有用なアルゴリズムおよびデータ構造を学び,さらに何らかのプログラミング言語で実現することにより,計算の効率も含めて理解することに重点を置く.
授業の進め方・方法:
授業は各単元において,教科書と配布資料に基づき口頭説明した上,各自プログラムを実装する.適宜参考コードを示し,各自が書いたプログラムと比較し,理解を深める。
関連文書は実習室のPCで閲覧可とする.
不定期に提出が必要な課題を課すが,授業時間内に完成しない場合は自習時間を使って完成させること.
注意点:
プログラミング技術向上のためには,日頃の努力が必要である.したがって,不定期に出題される課題については,提出の要・不要を問わず,必ずすべて完成させるよう努力すること.
原則,実習室で授業を行うものとする.
基本的にプログラムは一人で組むが,相当考えても問題が解決しない場合は周囲の学生や教員と相談することが望ましい.当たり前のことだが,そこで教わったことは理解してかつ他の問題にも適用できるようにする努力が必要である.
提出が必要な課題において,不正コピーが見つかった場合は当該課題点を0にするなどのペナルティを与える.
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
各プログラミング言語の比較,基本事項の修得/基本的な知識/構文等,言語間の比較 |
新しいプログラミング言語の基本的な文法・ファイル入出力等について,コーディングまたは読解ができる.
|
2週 |
各プログラミング言語の比較,基本事項の修得/基本的な知識/構文等,言語間の比較 |
新しいプログラミング言語の基本的な文法・ファイル入出力等について,コーディングまたは読解ができる.
|
3週 |
各プログラミング言語の比較,基本事項の修得/基本的な知識/構文等,言語間の比較 |
新しいプログラミング言語の基本的な文法・ファイル入出力等について,コーディングまたは読解ができる.
|
4週 |
各プログラミング言語の比較,基本事項の修得/基本的な知識/構文等,言語間の比較 |
新しいプログラミング言語の基本的な文法・ファイル入出力等について,コーディングまたは読解ができる.
|
5週 |
各プログラミング言語の比較,基本事項の修得/基本的な知識/ファイル入出力・例外処理 |
新しいプログラミング言語の基本的な文法・ファイル入出力等について,コーディングまたは読解ができる.
|
6週 |
各プログラミング言語の比較,基本事項の修得/基本的な知識/ファイル入出力・例外処理 |
新しいプログラミング言語の基本的な文法・ファイル入出力等について,コーディングまたは読解ができる.
|
7週 |
各プログラミング言語の比較,基本事項の修得/基本的な知識/ファイル入出力・例外処理 |
新しいプログラミング言語の基本的な文法・ファイル入出力等について,コーディングまたは読解ができる.
|
8週 |
探索アルゴリズム |
基本的な探索アルゴリズムについて理解し,自力でコーディングできる.
|
2ndQ |
9週 |
再帰的アルゴリズム |
再帰的アルゴリズムについて理解し,自力でコーディングできる.
|
10週 |
再帰的アルゴリズム |
再帰的アルゴリズムについて理解し,自力でコーディングできる.
|
11週 |
簡単なソートアルゴリズム |
比較的簡単なソートアルゴリズムを理解し,自力でコーディングできる.
|
12週 |
簡単なソートアルゴリズム |
比較的簡単なソートアルゴリズムを理解し,自力でコーディングできる.
|
13週 |
計算量と安定性 |
時間計算量/空間計算量を比較し,各ソートアルゴリズムの特徴を捉える.
|
14週 |
シェルソート |
高度なソートアルゴリズムを理解し,自力でコーディングできる.
|
15週 |
シェルソート |
高度なソートアルゴリズムを理解し,自力でコーディングできる.
|
16週 |
(1~15週を通して、計画性やコミュニケーションをとることを求める) |
(1~15週を通して、計画性やコミュニケーションをとることを求める)
|
後期 |
3rdQ |
1週 |
マージソート |
高度なソートアルゴリズムを理解し,自力でコーディングできる.
|
2週 |
マージソート |
高度なソートアルゴリズムを理解し,自力でコーディングできる.
|
3週 |
クイックソート |
高度なソートアルゴリズムを理解し,自力でコーディングできる.
|
4週 |
クイックソート |
高度なソートアルゴリズムを理解し,自力でコーディングできる.
|
5週 |
クイックソート |
高度なソートアルゴリズムを理解し,自力でコーディングできる.
|
6週 |
連結リスト |
基本的なデータ構造である連結リストの仕組みについて理解し,自力でコーディングできる.
|
7週 |
連結リスト |
基本的なデータ構造である連結リストの仕組みについて理解し,自力でコーディングできる.
|
8週 |
連結リスト |
基本的なデータ構造である連結リストの仕組みについて理解し,自力でコーディングできる.
|
4thQ |
9週 |
連結リスト |
基本的なデータ構造である連結リストの仕組みについて理解し,自力でコーディングできる.
|
10週 |
スタック・キュー |
連結リストの,スタック・キューへの応用について理解し,自力でコーディングできる.
|
11週 |
スタック・キュー |
連結リストの,スタック・キューへの応用について理解し,自力でコーディングできる.
|
12週 |
木構造 |
木構造に関連する概念および実装方法について理解し,自力でコーディングできる.
|
13週 |
木構造 |
木構造に関連する概念および実装方法について理解し,自力でコーディングできる.
|
14週 |
木構造 |
木構造に関連する概念および実装方法について理解し,自力でコーディングできる.
|
15週 |
木構造 |
木構造に関連する概念および実装方法について理解し,自力でコーディングできる.
|
16週 |
(1~15週を通して、計画性やコミュニケーションをとることを求める) |
(1~15週を通して、計画性やコミュニケーションをとることを求める)
|