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