ZACKY's Laboratory 強み x 教育 研究室 Page Topへ

コンピュータシステム / Computer Systems

関連記事

授業の概要 / Course Description

本授業では,コンピュータがどのように動作するのか,コンピュータシステムを支える基盤であるオペレーティングシステムやプログラミング言語処理系がどのような働きをするのかを学習します。

【到達目標 (Course Objectives)】

  1. (基礎知識) コンピュータの基本構成やオペレーティングシステム,プログラミング言語処理系に関連する専門用語とその意味を対応させて説明できる。
  2. (直観的な理解) コンピュータの基本構成やオペレーティングシステム,プログラミング言語処理系に関連する基礎的な概念や原理について,例示や図示をしながら説明できる。また,これらの分野に関連する専門用語同士の関連を説明できる。
  3. (能動的・自立的な学習) コンピュータシステムの学習に関して受け身ではなく能動的・自立的に学び続けることを選択できる。
  4. (上位科目との関連) コンピュータアーキテクチャや組込みシステムとの関連について説明できる。
  5. (システムプログラミング) オペレーティングシステムとプログラミング言語処理系を用いて,与えられた課題を解決するシステムプログラミングを行える。

【学位授与方針DPとの関連 (Relation to Diploma Policy)】

I. 知識・理解

  • オペレーティングシステムとプログラミング言語処理系に関する基礎理論及び基礎知識を修得する。(到達目標1,2に対応)

II. 技能

  • コンピュータの基本構成について理解し,プログラムの動作を説明することができる。(到達目標2に対応)

III. 思考・判断・表現

  • コンピュータの原理及び構成等に基づき、問題解決に必要なシステムプログラミングを行うことができる。(到達目標5に対応)

IV. 関心・意欲・態度

  • 修得した知識や技能をコンピュータの設計等に応用することができる。(到達目標3,4に対応)

教科書 / Textbooks

授業中に必要な資料を配布します。詳しくは第1回オリエンテーションでアナウンスします。

参考書(図書館蔵書には○) / References (Available in the library: ○)

【コンピュータの基本構成と動作原理】

○プログラムはなぜ動くのか 第2版 矢沢久雄著 日経ソフトウェア ISBN: 978-4822283155

プログラムはなぜ動くのか

○コンピュータはなぜ動くのか 矢沢久雄著 日経ソフトウェア ISBN: 978-4822281656

コンピュータはなぜ動くのか

【プログラミング言語処理系】

○コンパイラの構成と最適化 中田育男著 朝倉書店 ISBN:4254121393 (新版あり,新版は図書館蔵書ではない)

○プログラミング言語処理系 佐々政孝著 岩波書店 (絶版)

プログラミング言語処理系

○コンパイラ 中井 央著 コロナ社 ISBN: 978-4339027082

コンパイラ

○コンパイラ : 原理・技法・ツール A.V. エイホ [ほか]共著 サイエンス社 ISBN:9784781912295 (新版あり,新版は図書館蔵書ではない)

【オペレーティングシステム】

○モダンオペレーティングシステム 第2版 A.S. タネンバウム著 ピアソンエデュケーション (絶版)

モダンオペレーティングシステム

授業計画・内容 / Class schedules and Contents

以下の授業計画は授業改善のため変更される可能性があります。第1回オリエンテーション等でのアナウンスに注意してください。

  1. オリエンテーション,コンピュータの基本構成と動作原理 (事前学習)
  2. コンピュータの基本構成と動作原理 (ワークショップ)
  3. コンピュータの基本構成と動作原理 (ふりかえり),C言語のアセンブリ言語コード化 (事前学習)
  4. C言語のアセンブリ言語コード化 (プログラミング演習/ワークショップ/講義)
  5. C言語のアセンブリ言語コード化 (講義),コンパイラの基本構成/解析部 (事前学習)
  6. C言語のアセンブリ言語コード化とコンパイラの基本構成/解析部 (ふりかえり)
  7. インタプリタ (プログラミング演習/ワークショップ)
  8. まとめとふりかえり (プログラミング言語処理系)
  9. オペレーティングシステム(OS)の基本構成1,マルチタスク1,排他制御とデッドロック (事前学習)
  10. 排他制御とデッドロック (プログラミング演習/ワークショップ)
  11. アドバンスト・トピック (講義)
  12. メモリ管理,マルチタスク2,OSの基本構成2 (講義)
  13. ふりかえり
  14. システムプログラミング (講義/ワークショップ/プログラミング演習)
  15. まとめとふりかえり (全体)

成績評価の方法 / Assessment Method

成績評価の詳細を第1回オリエンテーション等で説明します。

  • 到達目標1 (基礎知識): 試験 (Examination) 30%
  • 到達目標2 (直観的な理解): 試験 (Examination),レポート (Reports) 30%
  • 到達目標3 (能動的・自立的な学習): 積極的な授業への参加 (Class Participation),レポート (Reports) 20%
  • 到達目標4 (上位科目との関連): レポート (Reports) 10%
  • 到達目標5 (システムプログラミング): 演習課題 (Exercise) 10%

履修上の注意 / Remarks

  • 本授業では,1年次第1学期科目の計算機演習Iと1年次第2学期科目の計算機演習IIで学習するC言語プログラミングの知識を前提としています。適宜復習してください。
  • 本授業では,2年次第1学期科目の形式言語とオートマトンと関連がある内容を扱います。履修しておくと,理解が深まるでしょう。
  • 3年次第1学期科目のコンピュータアーキテクチャ,ソフトウェア設計・同演習,情報メディア工学実験III,3年次第2学期科目のディジタルシステム設計,集積回路設計,プログラミング・同演習,大学院科目のソフトウェア工学概論,組込みソフトウェア,ソフトウェア検証論は,本授業の内容と関連が深いです。これらの科目の履修を予定している場合には,本授業を履修すると理解が深まるでしょう。

担当者からのメッセージ / Message from the Instructor

技術が急速に進化する現代では,みなさんが大学を卒業して社会に出ても学び続ける必要があります。今までは「教わる」つまり授業を受身で聴いていただけだったかもしれませんが,今後は自分で能動的・自立的に「学ぶ」という姿勢に変える必要があります。本授業では,そんな能動的・自立的な学びの習慣をつけることを支援していきます。

その目的で,本授業ではワークショップ方式を取り入れています。たとえば第2回のワークショップでは,コンピュータがどのように動作するのかを,手を動かしながら「体感する」グループワークを行います。これにより,単に講義を聴くだけではなかなかわからない直観を得ることができます。

コンピュータシステムに対する直観があると,専門用語や概念を自分の言葉で説明できるようになり,深い理解に結びつきます。コンピューータシステムを中身がよくわからないブラックボックスとして扱うのではなく,きちんと理解して活用できるようになるでしょう。

みなさんの探究心や知的好奇心がわき自ら調べだすような,能動的・自立的な学びを始めるきっかけになる楽しい授業でありたいと思っています。

キーワード / Keywords

コンピュータの動作原理 (How a computer works),プログラミング言語処理系 (programming language processor),コンパイラ (compilier),インタプリタ (interpreter),オペレーティングシステム (operating system),システムプログラミング (system programming)