到達目標
1.プログラミングの基本的な要素について(変数の概念、データ型の概念、制御構造の概念など)理解できる。
2.プロシジャ(または、関数、サブルーチンなど)の概念を深く理解し、これらを含むプログラムを設計することができる。
3.与えられた問題に対して、それを解決するためのソースプログラムを設計し、C言語で実装し、結果を考察することができる。
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
| プログラミングの基本的な要素について(変数の概念、データ型の概念、制御構造の概念など)深く理解し、説明できる。 | プログラミングの基本的な要素について(変数の概念、データ型の概念、制御構造の概念など)理解し、説明できる。 | プログラミングの基本的な要素について(変数の概念、データ型の概念、制御構造の概念など)理解できない。 |
| プロシジャ(または、関数、サブルーチンなど)の概念を深く理解し、これらを含むプログラムを記述できる。 | プロシジャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | プロシジャ(または、関数、サブルーチンなど)の概念を理解できない。また、これらを含むプログラムを記述することができない。 |
| 与えられた問題に対して、それを解決するためのソースプログラムを設計・実装し、結果を考察することができる。 | 与えられた問題に対して、それを解決するためのソースプログラムを設計・実装することができる。 | 与えられた問題に対して、それを解決するためのソースプログラムを設計および実装することができない。 |
学科の到達目標項目との関係
教育方法等
概要:
4年の「システムプログラミングII」に続く科目である。2つの講義で、ユーザ( プログラマ) の視点から特定のオペレーティングシステムを深く理解し、機能を使いこなせるようになることを目的としている。前半となる3年では、まず、システムプログラミングに必須のC 言語の学習から始める。次に、C 言語を用いたUNIX システムプログラミングを学ぶ。
授業の進め方・方法:
講義では、理論や概念だけでなく、実際に動作している具体的なオペレーティングシステムのシステムコールを詳しく解説する。
具体的なオペレーティングシステムとしては UNIX(MacOS) を用いる。学習内容は、実際に UNIX コマンドやプログラムミングを通して動作を確認することが可能である。宿題や演習で実際のシステムを用い学習した内容を確かめることにより、より確実な知識とする。
注意点:
授業参加状況を確認するために、講義ノートの確認を不定期に行う。
関連科目:【本科】基礎プログラミング(1 年)、プログラミング(2 年)、システムプログラミングII(4 年)、オペレーティングシステムI、II(4,5 年)
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
後期 |
3rdQ |
1週 |
C言語入門、文字、文字列とprintf |
Java との実行方式の違いと基本事項を習う。実行を実際に試してみる。[ 演習:hello world]
|
2週 |
演算子 |
様々な演算子を学ぶ。[ 演習:数値、代入、インクリメント、比較、論理演算]
|
3週 |
演算子とデータ型 |
データ型の概念を説明できる。また、型変換、演算子の優先順位、優先順位表の見方を学ぶ。[ 演習:型変換、sizeof 演算、優先順位]
|
4週 |
制御文 |
制御構造の概念を理解し、条件分岐および反復処理を記述できる。Java と共通のif、for、while、do-while、switch、break、continue を復習する。[ 演習:switch、入れ子ループ]
|
5週 |
配列 |
配列と文字列について学ぶ。[ 演習:文字列操作関数の作成]
|
6週 |
ポインタ |
ポインタについて学ぶ。[ 演習:swap 関数]
|
7週 |
ポインタと配列 |
ポインタ演算について学ぶ。[ 演習:文字列操作関数のポインタ版]
|
8週 |
関数 |
引き数、戻り値、変数のスコープ、プロトタイプ宣言、main 関数について学ぶ。[ 演習:echo コマンドの作成]
|
4thQ |
9週 |
中間試験 |
第1回~8回までの理解および基本的なC 言語プログラムが書けるか確認する。
|
10週 |
ファイルとストリーム |
ファイルと標準入出力を学ぶ。[ 演習:cat コマンドの作成]
|
11週 |
ファイル入出力関数 |
様々な高水準入出力関数を紹介する。[ 演習:cat コマンドの改良、cpコマンドをの作成]
|
12週 |
構造体 |
構造体について学ぶ。[ 演習:座標データを扱うプログラムの作成]
|
13週 |
構造体ポインタ、構造体配列 |
構造体のポインタと配列について学ぶ。[ 演習:構造体配列として成績表を表現する]
|
14週 |
動的なメモリ管理 |
malloc 関数を紹介し、線形リストの表現方法を学ぶ。[ 演習:ソートされた線形リスト]
|
15週 |
期末試験 |
学習したC言語文法などを使用できるようになったか確認する。
|
16週 |
試験問題解説 |
試験の解答と解説を行う。
|
モデルコアカリキュラムの学習内容と到達目標
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 電気・電子系分野 | 情報 | プログラミング言語を用いて基本的なプログラミングができる。 | 3 | 後1,後9,後15,後16 |
情報系分野 | プログラミング | 変数とデータ型の概念を説明できる。 | 3 | 後2,後3,後5,後6,後7,後13,後14 |
代入や演算子の概念を理解し、式を記述できる。 | 3 | 後2,後3 |
制御構造の概念を理解し、条件分岐や反復処理を記述できる。 | 3 | 後4 |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 3 | 後8,後10,後11,後12 |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 3 | 後1,後9,後12,後13,後14,後15 |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 3 | 後1,後9,後12,後13,後14,後15 |
評価割合
| 試験 | 課題レポート | 講義ノート | 合計 |
総合評価割合 | 75 | 20 | 5 | 100 |
基礎的能力 | 0 | 0 | 0 | 0 |
専門的能力 | 75 | 20 | 5 | 100 |
分野横断的能力 | 0 | 0 | 0 | 0 |