System Programming I

Course Information

College Tokuyama College Year 2022
Course Title System Programming I
Course Code 0058 Course Category Specialized / Compulsory
Class Format Lecture Credits School Credit: 1
Department Department of Computer Science and Electronic Engineering Student Grade 3rd
Term Second Semester Classes per Week 2
Textbook and/or Teaching Materials C の絵本,( 株) アンク、翔泳社(教科書)プログラミング言語C 第2 版、B.W. カーニハン他、共立出版(参考書)
Instructor Takayama Yasuhiro

Course Objectives

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

Rubric

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

Assigned Department Objectives

到達目標 B 1 See Hide

Teaching Method

Outline:
 この科目は4年次の「システムプログラミングII」にの前段階の科目である。「I」と「II」の2つのシステムプログラミングに関する科目で,システムプログラムのユーザ( プログラマ) の視点から特定のオペレーティングシステムを深く理解し,機能を使いこなせるようになることを目的としている。前半となる3年では,システムプログラミングに必須のC 言語の学習を行う。与えられた問題をC 言語で開発できる知識と技能を身につけ,4年次の「システムプログラミングII」においてC言語を用いたLinuxシステムプログラミングを行うための準備と位置付けている。
 この科目は,企業で実際にプログラム作成に関わる実務を担当していた教員が,その経験を生かして,プログラミング言語の使用に関して講義形式や演習形式で授業を行うものである。
Style:
 各回の授業では,前半に,前回講義の小テスト形式による理解度確認,講義形式による課題の解説を行い,後半にプログラミング演習を行う。演習を通じて,学習した内容を確かめることにより,より確実な知識とする。
プログラミング演習が完成しなかった分が次回までの宿題になる。また,毎回作成したプログラムを提出することにより習熟度をチェックする。
 定期試験は主に学習シートの例題,演習課題,確認テストと類似の内容を出題する。定期試験では,教科書や提出した課題の持ち込みを許可する場合がある。不定期に,定期試験で持ち込みを希望する講義ノートやファイリングされた提出プログラムの提出を実施する。
 事前事後学習として,授業中に配布した学習シートによるプログラム作成演習を計約15時間行う。
Notice:
関連科目:【本科】基礎プログラミングⅠ(1 年)、基礎プログラミングⅡ(1年)、基礎プログラミング演習(1年)、プログラミング(2 年)、システムプログラミングII(4 年)
最終成績評価式:定期試験(期末試験のみ実施,中間試験は実施しない)40%+理解度確認テスト20%+確認小テスト20%+課題20%

Characteristics of Class / Division in Learning

Active Learning
Aided by ICT
Applicable to Remote Class
Instructor Professionally Experienced

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
Subtotal40202020100
基礎的能力00000
専門的能力40202020100
分野横断的能力00000