到達目標
・コンピュータの機能がハードウェアとソフトウェアの機能分担によって実現していることを理解する。
・五大装置それぞれの役割とこれらの間でのデータの流れを説明できる。
・プロセッサを実現するために考案された主要な技術を説明できる。
・メモリシステムを実現するために考案された主要な技術を説明できる。
・入出力を実現するために考案された主要な技術を説明できる。
・コンピュータアーキテクチャにおけるトレードオフについて理解している。
・コンピュータシステムにおけるオペレーティングシステムの位置付けを説明できる。
・プロセス管理機能や記憶管理機能などオペレーティングシステムが備えるべき機能を説明できる。
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
C言語記述・プログラミングの開発 | C言語の記述を把握しプログラミングの中で活用することができる。 | C言語の記述を把握している。 | C言語の記述を把握していない。 |
システムプログラミングの基礎知識 | システムプログラミングを行うための基礎知識を理解しプログラミングの中で活用することができる。 | システムプログラミングを行うための基礎知識を理解している。 | システムプログラミングを行うための基礎知識を理解していない。 |
メモリの利用 | メモリを利用するための知識を理解しプログラミングの中で活用することができる。 | メモリを利用するための知識を理解している。 | メモリを利用するための知識を理解していない。 |
学科の到達目標項目との関係
準学士課程の教育目標 (A)① 数学・物理・化学などの自然科学、情報技術に関する基礎を理解できる。
準学士課程の教育目標 (A)② 自主的・継続的な学習を通じて、基礎科目に関する問題を解くことができる。
準学士課程の教育目標 (B)① 専門分野における工学の基礎を理解できる。
準学士課程の教育目標 (B)② 自主的・継続的な学習を通じて、専門工学の基礎科目に関する問題を解くことができる。
教育方法等
概要:
システムプログラミング I で学んだコンピュータシステムの基本構成、OS知識をもとにコンピュータの性能を引き出すためのC言語のプログラミングを学ぶ。様々なシステムコール・関数を知り、動作を把握し、使い方の工夫をしながら自分の技術にしていくことが目的である。
授業の進め方・方法:
本授業はシステムプログラミングI の教科書の知識を確認しつつ、C言語のサンプルプログラムとその解説を配布しながら進める。授業の理解度やプログラミングの作成状況を確認しながら進めていくために。毎回簡単な小テストを授業の中盤以降に実施する。この小テストは各自のノートを参照しながら解答してよい(カメラなどで撮影された画像は除く)。
注意点:
著しく授業を妨害する行為(騒音や授業の内容とは関係のない内容の雑談等)、授業への参加姿勢の欠如が観察された場合には教室から退室させこの時の小テストおよび質問は評価に加えない。
[オフィスアワー]
水曜日15:30-17:00、金曜日13:00-17:00
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
後期 |
3rdQ |
1週 |
システムプログラミングの準備1 |
開発環境の準備、および開発手順を確認する。
|
2週 |
システムプログラミングの準備2 |
あえてエラーを起こすプログラムを記述しデバッグで調査する。
|
3週 |
システムプログラミングの準備3 |
プログラムを高速化したりCPU負荷を下げることの重要性について学ぶ。
|
4週 |
システムプログラミング入門1 |
構造体・共用体・ビットフィールドについて学ぶ。それらの知識から実数を2進数に変換するプログラムを作成する。
|
5週 |
システムプログラミング入門2 |
可変引数のプログラミングについて学ぶ。
|
6週 |
システムプログラミング入門3 |
さまざまな文字列処理関数の使い方を学ぶ。
|
7週 |
システムプログラミング入門4 |
アドレスとポインタの使い方、ポインタのポインタをどのような状況で使うのか学ぶ。
|
8週 |
中間試験 |
|
4thQ |
9週 |
メモリの利用1 |
静的なメモリの割り当て方を学ぶ。
|
10週 |
メモリの利用2 |
動的なメモリの割り当て方を学ぶ。
|
11週 |
メモリの利用3 |
mmap()の使い方を学ぶ。
|
12週 |
ファイル入出力1 |
ディレクトリ内容の読み出し方を学ぶ。
|
13週 |
ファイル入出力2 |
freopen()の使い方を学ぶ。
|
14週 |
ファイル入出力3 |
FIFOの使い方を学ぶ。
|
15週 |
ファイル入出力4 |
さまざまな文字入力を学ぶ。
|
16週 |
ファイル入出力5 |
ラージファイルの使い方を学ぶ。
|
モデルコアカリキュラムの学習内容と到達目標
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | 計算機工学 | 整数・小数を2進数、10進数、16進数で表現できる。 | 3 | |
整数・小数をコンピュータのメモリ上でディジタル表現する方法を説明できる。 | 3 | |
基数が異なる数の間で相互に変換できる。 | 3 | |
基本的な論理演算を行うことができる。 | 3 | |
基本的な論理演算を組合わせて、論理関数を論理式として表現できる。 | 3 | |
論理式の簡単化の概念を説明できる。 | 3 | |
論理ゲートを用いて論理式を組合せ論理回路として表現することができる。 | 3 | |
与えられた組合せ論理回路の機能を説明することができる。 | 3 | |
組合せ論理回路を設計することができる。 | 3 | |
フリップフロップなどの順序回路の基本素子について、その動作と特性を説明することができる。 | 3 | |
レジスタやカウンタなどの基本的な順序回路の動作について説明できる。 | 3 | |
与えられた順序回路の機能を説明することができる。 | 3 | |
順序回路を設計することができる。 | 3 | |
コンピュータを構成する基本的な要素の役割とこれらの間でのデータの流れを説明できる。 | 3 | |
プロセッサを実現するために考案された主要な技術を説明できる。 | 3 | |
メモリシステムを実現するために考案された主要な技術を説明できる。 | 3 | |
入出力を実現するために考案された主要な技術を説明できる。 | 3 | |
コンピュータアーキテクチャにおけるトレードオフについて説明できる。 | 3 | |
評価割合
| 定期試験 | 小テスト | 質疑応答 | 取組姿勢 | 合計 |
総合評価割合 | 60 | 35 | 5 | 0 | 100 |
基礎的能力 | 50 | 30 | 5 | ±40 | 85 |
専門的能力 | 10 | 5 | 0 | 0 | 15 |
分野横断的能力 | 0 | 0 | 0 | 0 | 0 |