システムプログラミングⅠ

科目基礎情報

学校 徳山工業高等専門学校 開講年度 平成31年度 (2019年度)
授業科目 システムプログラミングⅠ
科目番号 0092 科目区分 専門 / 必修
授業形態 講義 単位の種別と単位数 履修単位: 1
開設学科 情報電子工学科 対象学年 3
開設期 後期 週時間数 2
教科書/教材 C の絵本,( 株) アンク、翔泳社(教科書)プログラミング言語C 第2 版、B.W. カーニハン他、共立出版(参考書)
担当教員 浦上 美佐子

到達目標

1.プログラミングの基本的な要素について(変数の概念、データ型の概念、制御構造の概念など)理解できる。
2.プロシジャ(または、関数、サブルーチンなど)の概念を深く理解し、これらを含むプログラムを設計することができる。
3.与えられた問題に対して、それを解決するためのソースプログラムを設計し、C言語で実装し、結果を考察することができる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1プログラミングの基本的な要素について(変数の概念、データ型の概念、制御構造の概念など)深く理解し、説明できる。プログラミングの基本的な要素について(変数の概念、データ型の概念、制御構造の概念など)理解し、説明できる。プログラミングの基本的な要素について(変数の概念、データ型の概念、制御構造の概念など)理解できない。
評価項目2プロシジャ(または、関数、サブルーチンなど)の概念を深く理解し、これらを含むプログラムを記述できる。プロシジャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。プロシジャ(または、関数、サブルーチンなど)の概念を理解できない。また、これらを含むプログラムを記述することができない。
評価項目3与えられた問題に対して、それを解決するためのソースプログラムを設計・実装し、結果を考察することができる。与えられた問題に対して、それを解決するためのソースプログラムを設計・実装することができる。与えられた問題に対して、それを解決するためのソースプログラムを設計および実装することができない。

学科の到達目標項目との関係

到達目標 B 1 説明 閉じる

教育方法等

概要:
4年の「システムプログラミングII」に続く科目である。2つの講義で、ユーザ( プログラマ) の視点から特定のオペレーティングシステムを深く理解し、機能を使いこなせるようになることを目的としている。前半となる3年では、まず、システムプログラミングに必須のC 言語の学習から始める。次に、C 言語を用いたUNIX システムプログラミングを学ぶ。
授業の進め方・方法:
講義では、理論や概念だけでなく、実際に動作している具体的なオペレーティングシステムのシステムコールを詳しく解説する。
具体的なオペレーティングシステムとしては UNIX(MacOS) を用いる。学習内容は、実際に UNIX コマンドやプログラムミングを通して動作を確認することが可能である。宿題や演習で実際のシステムを用い学習した内容を確かめることにより、より確実な知識とする。
注意点:
定期試験は主に学習シートの例題、演習課題、確認テストから出題する.
定期試験は、教科書および講義ノートの持ち込みを許可している.なお,授業参加状況を確認するために、講義ノートの確認を不定期に行う。
事前事後学習として、授業中に配布した学習シートによるプログラム作成演習を計約15時間行う。
関連科目:【本科】基礎プログラミング(1 年)、プログラミング(2 年)、システムプログラミングII(4 年)、オペレーティングシステムI、II(4,5 年)

授業計画

授業内容 週ごとの到達目標
後期
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

評価割合

試験課題レポート理解度小テスト講義ノート合計
総合評価割合60201010100
基礎的能力000
専門的能力60201010100
分野横断的能力00000