到達目標
1. システムコール、カーネル、ファイルシステム、ドライバなどの各ツールの機能を理解し、ユーザが作成したアプリケーションの命令語がこれらを通じて実行を行う手順を理解する。
2. プロセスの状態遷移と割り込み、競合状態を回避するセマフォなどの技術、記憶階層や再配置のメモリ管理技術、このようなOSが効率よくリソースを割り当て、マルチプログラミングを実現するための基盤技術を理解する。
3. プロセスの競合状態、リエントラント性などOSの技術を理解してプログラム作成することができる。
4.企業の開発現場の技術を理解することができる。
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
評価項目1 | カーネルの機能を理解し、アプリケーション開発に応用できる。 | カーネルの機能を理解できる。 | カーネルの機能を理解できない。 |
評価項目2 | マルチプログラミング、プロセスの競合状態、リエントラント性などOSの技術を理解してプログラム作成することができる。 | マルチプログラミング、プロセスの競合状態、リエントラント性などOSの技術を理解できる。 | マルチプログラミング、プロセスの競合状態、リエントラント性などOSの技術を理解できない。 |
評価項目3 | 副業先生による授業:クラウドサービスなど現在の企業現場の手法によりシステム設計・開発ができる。 | 副業先生による授業:クラウドサービスなど現在の企業現場の手法によりシステム設計・開発を理解することができる。
| 副業先生による授業:クラウドサービスなど現在の企業現場の手法によりシステム設計・開発を理解することができない。
|
学科の到達目標項目との関係
教育方法等
概要:
現在のOS(オペレーティングシステム)は、以前アプリケーションであったものがOSの標準機能となっており、アプリケーションとの境界を判断するのが困難な状況である。本授業では、OSの根本的な部分つまり「狭義のOS」に注目する。「狭義のOS」は、どのようなコンポーネントから構成され、それぞれどのような機能、技術があるのかを理解する。カーネルがどのようにして効率よくリソースを割り当て、マルチプログラミングを実現しているのかを理解する。授業内容は公知の情報のみに限定している。
本授業では、上記内容の本校教員の授業に加えて、企業の現場で活躍している技術者(副業先生と呼んでいる)を招き、授業を行う。企業の開発現場の技術を修得する。
授業の進め方・方法:
本校教員のOSの授業および企業の現場の技術者(副業先生)による現場の技術によるシステム開発の講義と分けて実施する。
本演習科目は学修単位(2単位)の授業であるため、履修時間は授業時間60時間と授業時間以外の学修(予習・復習、課題・テスト等のための学修)を併せて90時間である。
自学自習の成果は 定期試験によって評価する。
注意点:
副業先生2名による評価40%、本校教員による評価60%。副業先生は課題により評価、本校教員は定期試験(筆記)で評価する予定。
授業内容により評価割合や評価方法を変更する場合がある。
授業の属性・履修上の区分
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
後期 |
3rdQ |
1週 |
副業先生1による授業 ▪️クラウド概要 ・クラウドの市場とプレイヤー ・クラウド以前のITシステムの構成 ・クラウドを利用したITシステムの構築 ・クラウドとAIの親和性 ・クラウドとAPIエコノミーの関係
|
クラウドの概要を説明できる。
|
2週 |
副業先生1による授業 クラウド機能実習 ・コードによるシステム構築のデモ ・画像認識、文字解析、Chat-BotなどのAI機能のデモ ・Deep LearningなどのAIモデルのプログラムのデモ ・API経由によるサービスコールの仕組みのデモ ・クラウドによる顔認識、オブジェクト認識、人物比較機能のAPIコールによる動作確認の実習。
|
クラウド機能実習概要を説明できる。
|
3週 |
副業先生1による授業 クラウド開発PJ実習 ・クラウド以前のITシステムの開発手法の説明 ・クラウドを利用したITシステム開発手法の説明 ・Agile/UX/Scrum開発における成果物の説明 ・ユーザーのイメージ(ペルソナ)の作成 実習 ・サービスの絵コンテ(ストーリーボード)の作成 実習 ・スケジュール(スプリント計画)の作成 実習
|
クラウド開発PJ実習概要を説明できる。
|
4週 |
副業先生1による授業 クラウドWebサービス開発演習 ・WebサービスにおけるAPIコールの概要説明 ・Restful APIの説明 ・クライアント側の実装テンプレート説明 ・JavaScriptからのAPIコールの疎通確認を行う。
|
クラウドWebサービス開発演習ができる。
|
5週 |
副業先生2による授業 ハードウェア構成の変遷について
|
ハードウェア構成の変遷について説明できる。
|
6週 |
副業先生2による授業 各現場で使われている⾔語について ハードウェアの開発フロー ソフトウェアの開発フロー |
ハードウェア、ソフトウェアの開発フローを説明できる。
|
7週 |
副業先生2による授業 グループワーク ‧バックログを上げる 発表 グループワーク後の業務について |
グループワークについて説明できる。
|
8週 |
副業先生2による授業 特有の現場における開発 ‧PSなどのゲーム機など⺠⽣系 ‧⾞系 ‧システム系 |
特有の現場における開発について説明できる
|
4thQ |
9週 |
本校教員による授業 オペレーティングシステムとは、 狭義のOSの位置づけ、マイクロプログラミング(ファームウェア) APIの実行概要
|
狭義のオペレーティングシステムの役割について説明できる。
|
10週 |
本校教員による授業 カーネルの構成とその動作 プロセス管理の概要 プロセスモデル、プロセス、軽量プロセス(スレッド)
|
カーネルの構成とその動作が説明できる。プロセス管理の概要を説明できる。
|
11週 |
本校教員による授業 プロセスの状態遷移 プロセススケジューリング 優先度順、ラウンドロビン、ダイナミックディスパッチング
|
プロセスの状態遷移を説明でき、各プロセススケジューリングを説明できる。
|
12週 |
本校教員による授業 クリティカルセクション 競合状態 排他制御、Lock/unlockを使う方法、セマフォを使う方法 デットロック |
クリティカルセクションを説明でき、競合状態が発生してしまわない手法を説明できる。
|
13週 |
本校教員による授業 割込み処理 メモリ管理 記憶階層、メインメモリへのプログラムの配置、論理アドレスと物理アドレスの変換方法(ベースアドレス方式、セグメント方式、ページング方式) 仮想記憶概要 |
記憶階層について説明できる。プロセスに割り当てられるメモリ領域の構成を説明できる 論理アドレスと物理アドレスについて説明できる。
|
14週 |
本校教員による授業 プログラム管理 テキストエディタ、リンカ、ローダによるソースファイル、オブジェクトファイル、実行形式ファイルの作成 リエントラントなプログラム ファイルシステム FATファイルシステム、iノードファイルシステム |
ローダの機能を理解し、シンボル、ライブラリおよび各種プログラムの特徴を総合的に理解することができる。 FATファイルシステム、iノードファイルシステムを説明できる。
|
15週 |
学年末試験 |
|
16週 |
試験答案返却・解答解説 |
・間違った問題の正答を求めることができる
|
モデルコアカリキュラムの学習内容と到達目標
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | 計算機工学 | コンピュータを構成する基本的な要素の役割とこれらの間でのデータの流れを説明できる。 | 5 | |
コンピュータアーキテクチャにおけるトレードオフについて説明できる。 | 3 | |
コンピュータシステム | ネットワークコンピューティングや組込みシステムなど、実用に供せられているコンピュータシステムの利用形態について説明できる。 | 4 | 後9 |
デュアルシステムやマルチプロセッサシステムなど、コンピュータシステムの信頼性や機能を向上させるための代表的なシステム構成について説明できる。 | 4 | 後9 |
システムプログラム | コンピュータシステムにおけるオペレーティングシステムの位置づけを説明できる。 | 4 | |
プロセス管理やスケジューリングなどCPUの仮想化について説明できる。 | 4 | |
排他制御の基本的な考え方について説明できる。 | 4 | |
記憶管理の基本的な考え方について説明できる。 | 4 | 後4 |
評価割合
| 試験 | 発表 | 相互評価 | 態度 | ポートフォリオ | 課題 | 合計 |
総合評価割合 | 60 | 0 | 0 | 0 | 0 | 40 | 100 |
基礎的能力 | 30 | 0 | 0 | 0 | 0 | 20 | 50 |
専門的能力 | 30 | 0 | 0 | 0 | 0 | 20 | 50 |
分野横断的能力 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |