到達目標
1.C言語でシステムプログラミングができる.
2.Linux kernelの基本が理解できる.
3.Ubuntuのファイルシステム,プロセス,ストリームに関するプログラミングができる.
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
評価項目1 | C言語でシステムプログラミングができる. | ポインターを多用するC言語のプログラミングができる. | ポインターを多用するプログラミングができない. |
評価項目2 | Linux kernelの基本を理解している. | Linuxのファイルシステムやプロセスを理解している. | Linux manualのsectionの番号 1, 2, 3の内容の区別がわからない. |
評価項目3 | Ubuntuのファイルシステム,プロセス,ストリームに関するプログラミングができる. | Ubuntuのファイルシステム,プロセス,ストリームに関するプログラミングができる. | システムプログラミングができない. |
学科の到達目標項目との関係
教育方法等
概要:
この授業では,Linuxのシステムプログラミングの学習が一人でできるようになることを目指す.使用する教科書は初心者向けのLinuxシステムの教科書なので,この教科書を1日も早く終了し,次のステップのUnix/Linuxの教科書に進むことができるようになることを期待している.授業では,学生が主体となり学習を進め,教員はできるだけ教科書以上の内容について時間を使う予定である.
担当教員はIBMでの長い実務経験を有している.
実務経験のある教員による授業科目:加藤は企業(IBM)でコンピューター・システムの開発を担当していた.その経験を活かしコンピューター・システムに関する授業を行う.
授業の進め方・方法:
授業では,指定した教科書を中心に学生が主体となって学習を進めて行く.教科書に出てくるコマンド入力やプログラムは学生が手を動かして入力するものとする.入力とその結果は課題として提出する.また,教科書の内容は,4人以下のグループに分かれて,お互いに教えあうようにする.
教員は,できるだけ,教科書よりもより高度なコード例を説明するように努力する予定である.
注意点:
作業を進めうるが,OSのバージョンアップ等で教科書通りに行かない可能性もある.適宜Googleを活用して問題解決をはかる必要がある.
評価方法の詳細:
教科書に関する発表やグループワークの結果,および課題提出の内容で評価を行う.
グループ発表 50%、課題提出内容 50%で評価する.
60点以上を合格とする。再試は行わない.
次回の授業範囲を予習し、教科書の該当範囲を事前に読んでおくこと。
授業の属性・履修上の区分
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
オリエンテーション |
ネットワーク接続試験を始める.PC(BYOD)を持参すること.
|
2週 |
仮想化のソフトウェアについて説明する.Virtualboxを Install する(1) Ubuntu をDownloadする. |
システムの仮想化について理解する. Virtualbox のインストールを完了する. Ubuntu を Download する.
|
3週 |
Windows Terminal, WSL2, Ubuntuをインストールする.
|
Windows Terminal, WSL2, Ubuntuをインストールする.
|
4週 |
Group1: 教科書Page 70までを発表する. |
コマンドを入力し,課題として提出する.
|
5週 |
予備 (先輩講話など) |
予備(講話に関する感想等)
|
6週 |
Group2: ストリームに関わるシステムコールについて発表 |
独自のcat プログラムが書ける.
|
7週 |
Group3: ストリームに関わるライブラリー関数について発表 |
straceを使いライブラリーがシステムコールをどのように行っているか説明できる.
|
8週 |
Group4: 「headコマンドを作る」について発表する. GDBの使いかたについて説明する. |
headコマンドプログラムが書ける.基本的なGDBが使える.
|
2ndQ |
9週 |
Group5: 「grepコマンドを作る」について発表する. 「Linuxのディレクトリ構造」について説明する. |
grepコマンドをC言語で書ける.
|
10週 |
Group6: ファイルシステムに関わるAPIについて発表する. |
簡単なmvコマンドが作れる.
|
11週 |
Group7: プロセスとハードウェアについて発表する.とくに仮想CPUと仮想メモリーについて説明する. |
プロセスと仮想メモリーとの関係が理解できる.
|
12週 |
Group8: プロセスに関わるAPIについて発表する. |
execlを使ったプログラムを書ける
|
13週 |
Group9: シグナルに関わるAPIについて発表する.
|
関数ポインターを使ったプログラムが書ける.
|
14週 |
Group10: プロセスの環境について発表する.
|
自プロセスの環境を表示するプログラムが書ける.
|
15週 |
予備 |
予備
|
16週 |
|
|
モデルコアカリキュラムの学習内容と到達目標
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
基礎的能力 | 数学 | 数学 | 数学 | 1変数関数のテイラー展開を理解し、基本的な関数のマクローリン展開を求めることができる。 | 4 | 前6,前7,前10,前11,前12,前13 |
専門的能力 | 分野別の専門工学 | 情報系分野 | 情報通信ネットワーク | ローカルエリアネットワークの概念を説明できる。 | 3 | 前6,前7,前10,前11,前12,前13 |
インターネットの概念を説明できる。 | 3 | 前6,前7,前10,前11,前12,前13 |
ネットワークを構成するコンポーネントの基本的な設定内容について説明できる。 | 3 | 前6,前7,前10,前11,前12,前13 |
評価割合
| 試験 | 発表 | 相互評価 | 態度 | ポートフォリオ | その他,成果物 | 合計 |
総合評価割合 | 0 | 50 | 0 | 0 | 0 | 50 | 100 |
基礎的能力 | 0 | 25 | 0 | 0 | 0 | 0 | 25 |
専門的能力 | 0 | 0 | 0 | 0 | 0 | 50 | 50 |
分野横断的能力 | 0 | 25 | 0 | 0 | 0 | 0 | 25 |