概要:
通年(第1〜4学期)開講
C言語の基本技術として、配列、関数、文字列、ポインタ、構造体を学習する。
授業の進め方・方法:
本講義は、1回当たり4単位時間連続して講義と演習を実施する。情報処理演習室で、初めに解説を行った後、プログラミング演習を行う。コンピュータ、ネットワークの利用についてはマナーを守ること。ホームルームからの移動は速やかに行い、遅れないようにすること。
注意点:
第1学期及び3学期に中間試験を行います。また、第1学期末及3学期に補講が入ります。
教科書を持参し、細部について参照ながら理解を深めること。また、教科書の授業内容の範囲を熟読し、復習しておくこと。
演習が時間内に終了しない場合もあり得るが、放課後などを利用して実施し、期限までに必ず提出できるようにすること。
課題レポートの提出期限は厳守すること。
プログラミングが得意な学生は、与えられた課題をこなすだけで満足せず、追加課題を教員に求めること。
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
ガイダンス 入出力の復習 |
シラバスから学習の意義、授業の進め方、評価方法を理解できる。 出力と変数、入力、条件分岐ついて、種々のデータに関するレポート作成ができる。
|
2週 |
関数:教科書第6-1節を学習する。 |
関数の呼び出しを含むプログラムを読めるようになり、関数の定義を自分で書けるようになる。
|
3週 |
関数の設計:教科書第6-2節を学習する。 |
教科書6-2節を理解し、値を返さない関数や仮引数を受け取らない関数を作成することができる。
|
4週 |
関数の応用:教科書第6章の例題をもとに関数利用時の注意事項や探索プログラムへの応用例を学習する。 |
配列を引数とする関数に関する注意点を理解するとともに、線形探索のアルゴリズムを理解し、プログラムを作成することができる。
|
5週 |
基本型:教科書第7章を学習する。 |
C言語に現れる様々な基本型の違いについて理解し、状況によって使い分けることができる。整数の2進表現について理解し、目的に応じたビット演算を行うことが出来るようになる。
|
6週 |
いろいろなプログラム:教科書第8章を学習する。 |
関数形式マクロや列挙体などを用いたプログラムを作成できるようになる。また、ソートや再帰などのアルゴリズムを理解し、実行結果を予想できるようになる。
|
7週 |
文字列の基本・文字列の配列:教科書第9-1節および第9-2節を学習する。 |
文字列や文字列リテラルの基本を理解し、プログラムを作成できるようになる。
|
8週 |
文字列の操作:教科書第9-3節を学習する |
文字列の長さを求める関数や文字列内の数字文字の出現回数を求めるプログラムについて理解し、実行結果を予想できるようになる。
|
2ndQ |
9週 |
|
|
10週 |
|
|
11週 |
|
|
12週 |
|
|
13週 |
|
|
14週 |
|
|
15週 |
|
|
16週 |
|
|
後期 |
3rdQ |
1週 |
関数に関するプログラミング演習:課題を課す |
与えられた仕様に基づき、関数の実装ができるようになる。
|
2週 |
文字列に関するプログラミング演習:課題を課す |
文字列を扱うプログラムに適語補充を行い、プログラムを完成できるようになる。
|
3週 |
ポインタ:教科書第10-1節および第10-2節(途中まで)を学習する。 |
メモリ空間上のアドレスを指すポインタの概念を理解し、アドレス演算子やポインタ型などを用いたプログラムの挙動を説明できるようになる。
|
4週 |
ポインタと関数・配列:教科書第10-2節(途中から)および第10-3節を学習する。 |
ポインタを引数として受け取る関数に関するプログラムの作成ができるようになる。
|
5週 |
文字列とポインタ:教科書第11-1節および第11-2節を学習する。 |
配列とポインタの共通点と相違点を理解し、これらを用いたプログラムの作成が出来るようになる。
|
6週 |
文字列を扱うライブラリ関数:教科書第11-3節を学習する。 |
文字列を扱う代表的なライブラリ関数に関する仕様を理解し、これらを呼び出すプログラムの作成が出来るようになる。
|
7週 |
構造体:教科書第12-1節(途中まで)を学習する。 |
構造体の必要性について理解し、目的に応じた構造体を定義できるようになる。構造体や構造体のポインタを引数に持つ関数の作成が出来るようになる。
|
8週 |
構造体:教科書第12-1節(途中から)および第12-2節をア学習する |
typedefや->演算子など、構造体を用いたプログラムの可読性を向上する方法を学び、これらを用いたプログラムが読めるようになる。また、構造体のメンバーに別の構造体を含むプログラムについて理解し、実行結果が予想できるようになる。
|
4thQ |
9週 |
ファイルの開き方・閉じ方 |
ファイル入出力関数を用いたファイルへの入出力のプログラムを指示に基づいて作成できるようになる。
|
10週 |
メモリの種類、スタックメモリ |
変数とメモリの関係を理解し、データの扱いについて理解できる。
|
11週 |
静的メモリ、動的メモリ
|
静的メモリを理解することにより、データのセキュリティの方法を理解でき、動的メモリの取得方法とその危険性の理解を理解できる。
|
12週 |
キャストの役割、enum, |
暗黙のキャストと明示的キャストの違い、ユーザ定義のデータ構造について理解できる。
|
13週 |
プリプロセッサ、defineマクロ、include |
実用的なプログラムを作成する上で必要となる知識を身につける。
|
14週 |
ifdef,コンパイラ,リンカ |
プログラムの作成から実行ファイルが作成されるまでの環境を理解できる。
|
15週 |
(定期試験) |
|
16週 |
試験返却 授業改善アンケートの実施 |
試験問題の解説を通じて間違った箇所を理解し,正しい解答を説明できる。また、授業改善アンケートを行う。
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 代入や演算子の概念を理解し、式を記述できる。 | 3 | |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 3 | |
変数の概念を説明できる。 | 3 | |
データ型の概念を説明できる。 | 3 | |
制御構造の概念を理解し、条件分岐を記述できる。 | 3 | |
制御構造の概念を理解し、反復処理を記述できる。 | 3 | |
主要な言語処理プロセッサの種類と特徴を説明できる。 | 4 | |
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。 | 4 | |
プログラミング言語は計算モデルによって分類されることを説明できる。 | 4 | |
主要な計算モデルを説明できる。 | 4 | |
ソフトウェア | アルゴリズムの概念を説明できる。 | 1 | 前1,前2,前3 |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 1 | 前1,前2,前3 |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 1 | 前1,前2,前3 |
整列、探索など、基本的なアルゴリズムについて説明できる。 | 1 | 前3,前4,前5 |
時間計算量によってアルゴリズムを比較・評価できることを説明できる。 | 1 | 前3,前4,前5 |
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。 | 1 | 前3,前4,前5 |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 1 | 前6,前7,前8 |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。 | 1 | 前6,前7,前8 |