Course Objectives
1.プログラミングの基本的な要素について(変数の概念、データ型の概念、制御構造の概念など)理解できる.
2.プロシジャ(または、関数、サブルーチンなど)の概念を深く理解し、これらを含むプログラムを設計することができる.
3.授業毎に与える課題に対して、それを解決するための方法を設計し、C言語でソースプログラムを実装し、結果を考察してレポートを作成することを、授業時間と事前事後学習の時間内に実施することができる。
Rubric
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
プログラミングの基本的な要素理解 | プログラミングの基本的な要素について(変数の概念、データ型の概念、制御構造の概念など)深く理解し、説明できる。 | プログラミングの基本的な要素について(変数の概念、データ型の概念、制御構造の概念など)理解し、説明できる。 | プログラミングの基本的な要素について(変数の概念、データ型の概念、制御構造の概念など)理解できない。 |
プロシジャの概念理解 | 関数、サブルーチンなどの手続きの概念を深く理解し、これらを含むプログラムを記述できる。 | 関数、サブルーチンなどの手続きの概念を理解し、これらを含むプログラムを記述できる。 | プロシジャ(または、関数、サブルーチンなど)の概念を理解できない。また、これらを含むプログラムを記述することができない。 |
ソフトウェアの設計と実装 | 与えられた問題に対して、それを解決するためのソースプログラムを設計・実装し、結果を考察することができる。 | 与えられた問題に対して、それを解決するためのソースプログラムを設計・実装することができる。 | 与えられた問題に対して、それを解決するためのソースプログラムを設計および実装することができない。 |
Assigned Department Objectives
Teaching Method
Outline:
この科目は4年次の「システムプログラミングII」の前段階の科目である。「I」と「II」の2つのシステムプログラミングに関する科目で,システムプログラムのユーザ( プログラマ) の視点から特定のオペレーティングシステムを深く理解し,機能を使いこなせるようになることを目的としている。前半となる3年では,システムプログラミングに必須のC 言語の学習を行う。与えられた問題をC 言語で開発できる知識と技能を身につけ,4年次の「システムプログラミングII」においてC言語を用いたLinuxシステムプログラミングを行うための準備と位置付けている.
この科目は,企業で実際にプログラム作成に関わる実務を担当していた教員が,その経験を生かして,プログラミング言語の使用に関して講義形式や演習形式で授業を行うものである.
Style:
各回の授業では,前半に,前回講義の小テスト形式による理解度確認,講義形式による課題の解説を行い,後半にプログラミング演習を行う.演習を通じて,学習した内容を確かめることにより,より確実な知識とする.
プログラミング演習が完成しなかった分が次回までの宿題になる。また,毎回作成したプログラムを提出することにより習熟度をチェックする.
定期試験は主に学習シートの例題,演習課題,確認テストと類似の内容を出題する。定期試験では,教科書や提出した課題の持ち込みを許可する場合がある.不定期に,定期試験で持ち込みを希望する講義ノートやファイリングされた提出プログラムの提出を実施する.
事前事後学習として,授業中に配布した学習シートによるプログラム作成演習を計約15時間行う.
Notice:
関連科目:【本科】基礎プログラミングⅠ(1 年),基礎プログラミングⅡ(1年),基礎プログラミング演習(1年),プログラミング言語(2 年),プログラミング(2 年),システムプログラミングII(4 年)
最終成績評価式:期末試験40%+中間テスト20%+確認小テスト20%+課題20%
Characteristics of Class / Division in Learning
Course Plan
|
|
|
Theme |
Goals |
2nd Semester |
3rd Quarter |
1st |
C言語入門、文字、文字列とprintf 【事前事後学習の内容(1時間)】学習シート |
Java との実行方式の違いと基本事項を学ぶ.実行を実際に試してみる.[ 演習:hello world]
|
2nd |
演算子 【事前事後学習の内容(1時間)】学習シート |
様々な演算子を学ぶ。[ 演習:数値、代入、インクリメント、比較、論理演算]
|
3rd |
演算子とデータ型 【事前事後学習の内容(1時間)】学習シート |
データ型の概念を説明できる。また、型変換、演算子の優先順位、優先順位表の見方を学ぶ.[ 演習:型変換、sizeof 演算、優先順位]
|
4th |
制御文 【事前事後学習の内容(1時間)】学習シート |
制御構造の概念を理解し、条件分岐および反復処理を記述できる.Java と共通のif、for、while、do-while、switch、break、continue を復習する.[ 演習:switch、入れ子ループ]
|
5th |
配列 【事前事後学習の内容(1時間)】学習シート |
配列と文字列について学ぶ. 演習:文字列操作関数の作成]
|
6th |
ポインタ 【事前事後学習の内容(1時間)】学習シート |
ポインタについて学ぶ.[ 演習:swap 関数]
|
7th |
ポインタと配列 【事前事後学習の内容(1時間)】学習シート |
ポインタ演算について学ぶ.[ 演習:文字列操作関数のポインタ版]
|
8th |
中間テスト(理解度確認テスト) |
第1回~7回までの理解および基本的なC 言語プログラムが書けるかの理解度確認テストを確認する(中間試験は実施しない)
|
4th Quarter |
9th |
関数 【事前事後学習の内容(1時間)】学習シート |
引き数、戻り値、変数のスコープ、プロトタイプ宣言、main 関数について学ぶ.[ 演習:echo コマンドの作成]
|
10th |
【事前事後学習の内容(1時間)】学習シート |
ファイルと標準入出力を学ぶ. 演習:cat コマンドの作成]
|
11th |
ファイル入出力関数 【事前事後学習の内容(1時間)】学習シート |
様々な高水準入出力関数を紹介する.[ 演習:cat コマンドの改良、cpコマンドをの作成]
|
12th |
構造体 【事前事後学習の内容(1時間)】学習シート |
構造体について学ぶ.[ 演習:座標データを扱うプログラムの作成]
|
13th |
構造体ポインタ、構造体配列 【事前事後学習の内容(1時間)】学習シート |
構造体のポインタと配列について学ぶ. 演習:構造体配列として成績表を表現する]
|
14th |
動的なメモリ管理 【事前事後学習の内容(1時間)】学習シート |
malloc 関数を用いて、線形リストの表現方法を学ぶ. 演習:ソートされた線形リスト]
|
15th |
試験 |
学習したC言語文法などを使用できるようになったか確認する.
|
16th |
試験問題解説 |
試験の解答と解説を行う.
|
Evaluation Method and Weight (%)
| 試験 | 理解度テスト | 理解度小テスト | 課題 | Total |
Subtotal | 40 | 20 | 20 | 20 | 100 |
基礎的能力 | 0 | 0 | 0 | 0 | 0 |
専門的能力 | 40 | 20 | 20 | 20 | 100 |
分野横断的能力 | 0 | 0 | 0 | 0 | 0 |