1. ポインタや構造体など,プログラミングにとって重要な考え方を理解する。
2. ソフトウェア開発工程およびアルゴリズムの重要性を理解する。
3. 各種アルゴリズムの仕組みと特徴を理解する。
4. 課題や問題に対して各種アルゴリズムを駆使して解決することができる。
概要:
ポインタ,ユーザ関数,構造体と共用体,データ型と記憶クラス,ファイル処理等について,講義と実習を通じて学習する。小・中規模のプログラムを作成する課題を与える。課題を通じて基本アルゴリズムについても学習する。
プログラミング基礎で学んだ知識に加えて,C言語に関する文法を全て習得し,小・中規模のプログラムを作成できることを目標とする。
授業の進め方・方法:
前期は,C言語に関する文法(ポインタ,構造体,ファイル操作)を学習し,各節ごとに演習課題に取り組む。
後期は,基本的なアルゴリズムについて学び,演習課題に取り組む。
注意点:
課題の提出期限を必ず守ることが大切である。また,自分の頭で考えることが,アルゴリズム設計能力やソフトウェア作成能力の向上には欠かせない。この事を念頭に置いて,主体的に学習してほしい。
実習にあたっては,基本的にソフトウェア開発工程に沿って行うこと。課題内容をじっくり検討し,プログラムの設計図をきちんと書いてからコーディングを行うこと。作成したプログラムはしっかりと検証(テスト)を行い,要求された課題を十分に満たしているかどうか確認すること。
課題は必ず全て提出すること。期限までにどうしても完成しない場合は,どこで引っかかっているか担当教員へ事前に(期限前に)相談に行き,適切なアドバイスを受けること。
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
ポインタ |
ポインタの特徴と動作を理解し,適切に扱うことができる。
|
2週 |
ポインタ演習1 |
ポインタの特徴と動作を理解し,適切に扱うことができる。 メモリ空間の動的確保と可変長多次元配列を利用できる。
|
3週 |
ポインタ演習2 |
ポインタの特徴と動作を理解し,適切に扱うことができる。 メモリ空間の動的確保と可変長多次元配列を利用できる。
|
4週 |
ポインタ演習3 |
ポインタの特徴と動作を理解し,適切に扱うことができる。 メモリ空間の動的確保と可変長多次元配列を利用できる。
|
5週 |
構造体と共用体 |
構造体の特徴を理解し,適切なデータ操作ができる。 共用体の意味とメモリ領域の扱いを理解し,ビット単位でのデータ操作ができる。
|
6週 |
構造体と共用体 演習1 |
構造体の特徴を理解し,適切なデータ操作ができる。 共用体の意味とメモリ領域の扱いを理解し,ビット単位でのデータ操作ができる。
|
7週 |
構造体と共用体 演習2 |
構造体の特徴を理解し,適切なデータ操作ができる。 共用体の意味とメモリ領域の扱いを理解し,ビット単位でのデータ操作ができる。
|
8週 |
ファイル処理 |
テキストファイルとバイナリファイルの違いを理解し,適切に操作することができる。
|
2ndQ |
9週 |
ファイル処理 演習1 |
テキストファイルとバイナリファイルの違いを理解し,適切に操作することができる。
|
10週 |
ファイル処理 演習2 |
テキストファイルとバイナリファイルの違いを理解し,適切に操作することができる。
|
11週 |
前期総合演習課題1 |
これまでに学習した内容を応用し,課題の要求を満たすプログラムを作成することができる。
|
12週 |
前期総合演習課題2 |
これまでに学習した内容を応用し,課題の要求を満たすプログラムを作成することができる。
|
13週 |
前期総合演習課題3 |
これまでに学習した内容を応用し,課題の要求を満たすプログラムを作成することができる。
|
14週 |
前期総合演習課題4 |
これまでに学習した内容を応用し,課題の要求を満たすプログラムを作成することができる。
|
15週 |
前期期末試験の返却 |
前期期末試験の答案返却と解説
|
16週 |
|
|
後期 |
3rdQ |
1週 |
ソフトウェア開発工程の進め方 |
ソフトウェアを中心としたシステム開発のプロセスを理解している。
|
2週 |
アルゴリズムの基礎 |
アルゴリズムの概念を説明できる。
|
3週 |
アルゴリズムの基本データ構造と基本概念1 |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを理解している。
|
4週 |
アルゴリズムの基本データ構造と基本概念2 |
リスト構造,スタック,キューなどの基本的なデータ構造の概念と操作を説明できる。
|
5週 |
アルゴリズムの基本データ構造と基本概念3 |
リスト構造,スタック,キューなどの基本的なデータ構造の概念と操作を説明できる。
|
6週 |
アルゴリズムの基本データ構造と基本概念4 |
同一の問題に対し,選択したデータ構造によってアルゴリズムが変化しうることを理解している。
|
7週 |
後期中間試験 |
|
8週 |
後期中間試験の返却 |
後期中間試験の答案返却と解説
|
4thQ |
9週 |
データの探索1 |
整列,探索など,基本的なアルゴリズムについて説明できる。 種々のデータ探索法について理解できる。 同一の問題に対し,それを解決できる複数のアルゴリズムが存在しうることを理解している。
|
10週 |
データの探索2 |
整列,探索など,基本的なアルゴリズムについて説明できる。 種々のデータ探索法について理解できる。 同一の問題に対し,それを解決できる複数のアルゴリズムが存在しうることを理解している。
|
11週 |
ソートアルゴリズム1
|
与えられたアルゴリズムが問題を解決していく過程を説明できる。 時間計算量や領域計算量などによってアルゴリズムを比較・評価できることを理解している。 種々のデータソート法について理解できる。
|
12週 |
ソートアルゴリズム2 |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 時間計算量や領域計算量などによってアルゴリズムを比較・評価できることを理解している。 種々のデータソート法について理解できる。
|
13週 |
ソートアルゴリズム3 |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 時間計算量や領域計算量などによってアルゴリズムを比較・評価できることを理解している。 種々のデータソート法について理解できる。
|
14週 |
ソートアルゴリズム4 |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 時間計算量や領域計算量などによってアルゴリズムを比較・評価できることを理解している。 種々のデータソート法について理解できる。
|
15週 |
後期期末試験の返却 |
後期期末試験の答案返却と解説
|
16週 |
|
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
基礎的能力 | 工学基礎 | 情報リテラシー | 情報リテラシー | 同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを知っている。 | 4 | 後2,後3,後4,後5,後6 |
与えられた基本的な問題を解くための適切なアルゴリズムを構築することができる。 | 4 | 後9,後10,後11,後12,後13,後14 |
任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。 | 4 | 後9,後10,後11,後12,後13,後14 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 代入や演算子の概念を理解し、式を記述できる。 | 4 | 前14 |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 4 | 前14 |
データ型の概念を説明できる。 | 4 | 後5 |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 4 | 前14 |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 4 | 前14 |
主要な言語処理プロセッサの種類と特徴を説明できる。 | 4 | 後1 |
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。 | 4 | 後1 |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 4 | 前14 |
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。 | 4 | 前14 |
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。 | 4 | 前14 |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを実装できる。 | 4 | 前14 |
ソフトウェア | アルゴリズムの概念を説明できる。 | 4 | 後2 |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 4 | 後11,後12,後13,後14 |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 4 | 後9,後10 |
整列、探索など、基本的なアルゴリズムについて説明できる。 | 4 | 後9,後10 |
時間計算量によってアルゴリズムを比較・評価できることを説明できる。 | 4 | 後11,後12,後13,後14 |
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。 | 4 | 後11,後12,後13,後14 |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 4 | 後3 |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。 | 4 | 後6 |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。 | 4 | 後4,後5 |
ソフトウェアを中心としたシステム開発のプロセスを説明できる。 | 4 | 後1 |
計算機工学 | 整数・小数をコンピュータのメモリ上でディジタル表現する方法を説明できる。 | 4 | |
情報数学・情報理論 | コンピュータ上での数値の表現方法が誤差に関係することを説明できる。 | 4 | |
分野別の工学実験・実習能力 | 情報系分野【実験・実習能力】 | 情報系【実験・実習】 | 与えられた問題に対してそれを解決するためのソースプログラムを、標準的な開発ツールや開発環境を利用して記述できる。 | 4 | 前11,前12,前13,前14 |
ソフトウェア生成に利用される標準的なツールや環境を使い、ソースプログラムをロードモジュールに変換して実行できる。 | 4 | 前11,前12,前13,前14 |
ソフトウェア開発の現場において標準的とされるツールを使い、生成したロードモジュールの動作を確認できる。 | 4 | 前11,前12,前13,前14 |
フローチャートなどを用いて、作成するプログラムの設計図を作成することができる。 | 4 | 前11,前12,前13,前14 |
問題を解決するために、与えられたアルゴリズムを用いてソースプログラムを記述し、得られた実行結果を確認できる。 | 4 | 前11,前12,前13,前14 |
要求仕様に従って標準的な手法によりプログラムを設計し、適切な実行結果を得ることができる。 | 4 | 前11,前12,前13,前14 |