Dr. Jason's blog

IT, Engineering, Energy, Environment and Management

講義: 情報教育の研究 2010-04

2010-11-25 | Informatics
 暫く blog の更新をさぼってしまった。
 書きたいことは色々あるが、まず、大学の講義「情報教育の研究」のたまっている分について記すことにする。


 「情報教育の研究」4回目の講義の概要は以下のとおり。

 今回のテーマは「基本原理について考える」。

 1) ハードウェア:CPUの振る舞い
 自分が、コンピュータのCPUになったつもりになって、一般に、CPUはどのように動作するのか、CPUを主語にして、CPUの振る舞いについて、各自、即興で説明を試みる。説明の中に、できるだけ、以下のキーワードを登場させるようにする。
  レジスタ
  キャッシュメモリ、メインメモリ、ハードディスク
  メモリ管理、入出力管理
  プログラム
  命令 または インストラクション、データ
 読み込み、書き出し、ロード、ストア、実行、演算
 実際に、他者にCPUの振る舞いを説明しようとすると、自分の理解が曖昧な部分が明らかになる。特に、自分が、CPUになったつもりで説明できるかどうかは、現在のコンピュータの動作について、基本的なことをちゃんと理解しているかどうかが問われる。

 2) ソフトウェア:プログラムとは?
 現在のコンピュータのソフトウェアは,ほとんどの場合、何らかのプログラミング言語で、個々の文法に従って、記述されている.
 プログラミング言語で記述された処理の固まりを
  コンピュータ・プログラム
 あるいは、単に
  プログラム
 という.

 3) アルゴリズムとデータ構造
多くのプログラムは,アルゴリズムの記述とデータ構造の記述から構成される.
 アルゴリズム 何をどう処理するか 
  アルバイとの作業マニュアルに似ている
  映画やドラマの脚本、台本のイメージ

 データ構造  処理対象のものはどういう性質でどう表現するか
  どのような属性、値を持っているのか
  SNSのプロフィールに似ている
  キャラクタの設定、衣装、小道具、セット等のイメージ

 プログラム = アルゴリズム + データ構造

 3) ソフトウェアの階層
 ソフトウェアには、「階層」(layer) がある。
 参考1: ソフトウェア・アーキテクチャの階層構造(www2.swc.toshiba.co.jpより)
 参考2: ソフトウェアの階層(www.soi.wide.ad.jpより)

 ハードウェアに近い、基礎となる層が、オペレーティングシステム(Operating System)、一番上の層がアプリケーション(Application).

4) プログラムの形式
 人間が読める(可読性)「プログラグラミング言語」でかかれたプログラムや(プログラムを収めた)ファイルを、
 ソースコード source code
 という.
 殆どの場合、ソースコードは、人間が「書く」つまり、プログラムの開発作業は、「ある言語」での「作文」あるいは、「執筆」の作業である。

 言語処理系で処理されて,コンピュータが直接処理できる「マシン語」に変換されたプログラムやファイルを
  オブジェクトコード object code
  実行可能ファイル executable file
 等という.

 5) 言語処理系
 プログラミング言語で記述された,プログラムを,コンピュータ上で動作させるための一連のソフトウェアを言語処理系という.
 人間が読める(可読性)「プログラグラミング言語」から,コンピュータが直接処理できる「マシン語」に変換処理する.
 翻訳的に一括処理するタイプの言語処理系:
   コンパイラ Compiler  … 資料や文章の編纂する人

 通訳的に逐次処理するタイプの言語処理系:
   インタプリタ Interpreter  … 通訳する人

 コンパイラ言語(一括処理)
  FORTRAN 数値計算,シミュレーション
  COBOL  事務処理
  pascal  教育,研究,開発ツール
  C    OS,基本ソフトウェア,汎用,組み込み
  C++   大規模ソフトウェア(最初は交換機のソフト)、グラフィック系のソフト
  Objective-C MacOS、iPhoneの開発言語

 インタプリタ (逐次処理)
  BASIC  教育,その他
  Ruby  汎用, Web 日本人のまつもとゆきひろ(松本行弘)氏による設計開発
  PHP   Web

 中間コードインタプリタ (一旦内部コードに一括処理する)
  Perl  汎用,ツール,ユーティリティ,Web
  Python 汎用,ツール,ユーティリティ,Web
  RubyのYARV Rubyの中間コードにコンパイルするバージョン
  Java  汎用,ビジネス(特に金融),組み込み


 [宿題]
 自分が、コンピュータのCPUになったつもりになって、一般に、CPUはどのように動作するのか説明できるようにする。CPUを主語にして、CPUの振る舞いについて、各自、自分の言葉で、説明できるように準備する。説明の中に、できるだけ、以下のキーワードを登場させるようにする。
  レジスタ
  キャッシュメモリ、メインメモリ、ハードディスク
  メモリ管理、入出力管理
  プログラム
  命令 または インストラクション、データ
 読み込み、書き出し、ロード、ストア、実行、演算



[参考書]

今日的な、コンピュータ・ソフトウェアについて、概観した良書。
200ページ足らずの本だが、内容は濃密。巻末の参考文献も良い。
ソフトウェア入門 (岩波新書)
黒川 利明
岩波書店



コンパクトにまとめられた大学学部レベルのソフトウェア工学の入門書。ソフトウェアの本質的な部分や、ソフトウェア工学の歴史的な流れについての概説が特に良い。さらに、モデリング、構造化、オブジェクト指向、CASEについて解説している。
ソフトウェア工学入門
河村 一樹
近代科学社




 
コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 講義: 情報教育の研究 2010-03 | トップ | 講義: 情報教育の研究 2010-05 »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

Informatics」カテゴリの最新記事