音声データ

横軸を時間、縦軸を音波の振幅ととると、 音波はアナログの波形として描かれる。

PCM (Pulse Code Modulation)
音声アナログデータをディジタル変換する方法。

PCM 音源化の手順

  1. 標本化: 波形を時間間隔で区切る
  2. 量子化: 振幅の高さを間隔で区切って整数化する
  3. 符号化: 得られた数値を 2 進数化する

アナログ波

サンプリング

データの量子化

データの符号化

画像データ

画像のディジタル化についてまとめる。

画像データのディジタル化

  1. 標本化: 画面を縦横に分割する (単位は 1 [画素])
  2. 量子化: 色と濃淡で数値を決定
  3. 符号化: 得られた数値を 2 進数化する

カラーでは、光の 3 原色 RGB (Red, Green, Blue) を 8 [b] で表す。

画像の単位

画素(pixel, dot): 分割した画像の最低単位

dpi (dots per inch)
1 inch あたりの画素数
フルカラー
24 [b]、 2 8 × 2 8 × 2 8 = 16,777,216 色

フルカラーは写真印刷も自然。

画素

画素数が異なる場合の見え方の違いについて見ておこう。

細かい画素数 荒い画素数

システム

系統立てて物事を見る方法のこと。 異質の機能どうしを軸として、要素を引き出す。 この軸を引数(argument) と呼ぶ。 要素と要素をつなぐ線が関係 (relation) である。 このシステムを集合 S とし、引数 A、関係 R とすると、 S = {A, R} と書ける。

カオス

システム化されていない状況はカオス状態 (混沌) である。 システム化するためには、システムアプローチという手順で行う。

システム化

分解過程
構成要素で分ける
統合過程
構成要素を関係で結ぶ

DFD, E-R 図の作成などがこのアプローチを用いて作成される。

システムの種類

Balding の 8 つのレベルについてまとめる。

  1. 静的構造のレベル: フローチャート、地図
  2. 時計仕掛けのレベル: closed system, 内部要素だけで完結
  3. 温度調節器のレベル: open system, 内部要素 + 温度(外部要素)
  4. 細胞のレベル
  5. 植物のレベル
  6. 動物のレベル
  7. 人間のレベル
  8. 社会組織のレベル

モデル化: 8 のレベルの対象業務を 1 のレベルで表現すること。

応用数学の用語

応用数学で計算機と関係あるものをまとめる。

数値解析 Numerical Analysis 計算機を使って、漸化式で段階を踏んで繰り返し計算し、収束解を求める方法。
数式処理 関数とグラフ、微分方程式、代数計算、データ解析、工学など、計算機を利用し た数式処理システム、アルゴリズム、その応用などのこと。
グラフ理論 点 (node) と線 (edge) の概念でできる図形をグラフ (graph) と呼ぶ。 グラフの特徴を調べる数学理論。計算機でのデータ構造やアルゴリズムの研究に応用されている。
最短経路問題 グラフ理論で、重みのついたグラフの 2 つの点を結ぶ線の中で、 最小の重みを持つ経路を求める問題。バス停を点、路線間の所要時間を重みとしたときの最短経路など。

情報理論

情報を物理学における統計力学とからめて議論した分野がある。

情報理論 Information Theory
Shannon の「通信の数学的理論」により始まった。 情報の通信とは、ある地点での情報を別の地点で再現することであると提唱した。 50 ページほどの論文である。概念を導入しながらなので、そこそこ読みやすい。
ブラックホールの物理でも情報エントロピーを議論する。
オートマトン automaton
「自動化人形」、同じように入力された情報について、 出力の情報が関数により異なる仕組みのこと。 このとき、関数は状態の違いで変化するため、出力の情報が異なってくる。
命題
記号論理学、数学で使う。誰が読んでも意味が明瞭であるような、端的な文章の こと。
符号理論 Coding Theory
情報を符号化して通信するときの効率性、信頼性の評価をする理論のこと。
形式言語
記号を導入し、それらを規則化する。規則化された記号の集合のこと。
計算量
プログラムの実行開始から終了までのアルゴリズムの性能比較により判断される。 小さいアルゴリズムのほうが優れている。

通信や制御に関する用語

通信や制御に関する方法や物理的な装置についてまとめる。

フィードバック制御
装置の出力結果を常時検証し、入力値を変化させながら、目標値とフィードバック値の値が同じになるように出力を制御する方式
フィードフォワード制御
予測情報から動作の開始前に出力計算を予測し、調整する方式
センサ
温度、圧力、光(電磁波)、ガスなどを検知し、電気信号に変換する装置
アクチュエータ
油圧シリンダやターボモータなど、エネルギー供給を受けて機械的な仕事に変換する装置

流れ図 flowchart

ある処理について整理して順序立てて考えるときに用いる。 説明するときに利用されており、JIS X 0121 という規格を用いて書かれることが多い。

アルゴリズムを図形化して表したもの。映画館の切符販売を例にとってみよう。

例えば 0 から N までの数値を表示して終るものは次のように書かれる。

データ構造とデータ型

データ構造: データの保有に体系化を形式を持ち込むこと。 プログラムやアルゴリズムそのものの効率化と関係する。

データ型の種類

単純型整数型
実数型
文字型
論理型AND, OR, NOT で使う真 (true), 偽 (false)
列挙型変数が取る値の列挙
ポインタ型記憶装置のメモリのアドレス情報と一緒にされた値を格納する方法
配列型データ全体を一つの要素に格納する。2 次元配列は 2 次元表形式。
レコード型各項目の要素をフィールドと呼び、全体を 2 次元表形式で表したものをレコードと呼ぶ。

データ構造の種別

データの要素を構成する構造についてまとめる。

リスト構造 list線型 linear配列と同じ
片方向 onewayポインタをヘッド (ルート) とし、 次のデータのポインタがあり、ポインタをたどって順にデータを追う仕組み。
双方向 前に戻れるポインタもついているデータ構造
木構造二分木ルートを先頭に、 枝わかれしていくデータ構造のうち、枝が 2 つまでのもの
二分探索木 ルートから葉へ向かってデータ要素を探すアルゴリズムのこと
スタック構造 stackLast in First Out (LIFO), 後入れ先出し法。
キュー構造 queue First in First Out (FIFO), 先入れ先出し法。待ち行列。

アルゴリズム

問題解決のための処理手順のこと。 一般にはいくつか考えられるが、 よいプログラムは効率のよい、他人に分かりやすいアルゴリズムで書かれている。

構造化定理

構造化プログラミング: プログラムは

の組み合わせで記述できる。

アルゴリズムの例

プログラム言語

プログラム言語のまとめ。

汎用プログラム言語低水準言語機械語2 進数に基いた処理
アセンブラ命令に表意記号を使った言語
高水準言語別表参考計算機のハードウェアに依存せず記述できる言語
第 4 世代言語ソフトウェアパッケージ 4GL を使ってユーザ利用可能
スクリプト言語 (エンドユーザ言語) 別表参考 表計算、文書、図形、データベースなどのマクロ、OS のバッチ処理において、処理手順を示したソースコード
特殊問題向け言語数式処理FORMAC
シミュレーションGPSS
統計処理SPSS
構造解析COGO

高水準言語

COBOL汎用コンピュータ向け事務処理言語
Pascal構造化した記述ができる言語
CUNIX やソフト開発に使われる構造化言語
C++C をオブジェクト指向にした言語
BASICPC 向けインタプリタ型言語
Visual Basic Windows で視覚的に見やすいプログラムできる Basic 言語
Java オブジェクト指向型の言語でハードウェアや OS に依存しない (マルチプラットフォーム型)
Postscript プリンタ用の言語でページ単位で記述するページ言語
PL/1事務処理、科学技術計算向け言語
Pascal教育用の構造化言語
Fortran科学技術計算向け言語

オブジェクト指向:データの処理目的から辿ってプログラムを組み立てる方法

言語プロセッサ:高水準言語を機械語に変換するソフト

インタプリタ一行一行解釈して実行するプログラム
コンパイラ一括して機械語に翻訳するプログラム
ジェネレータ 指定されたパラメータから目的とするプログラムを自動生成するプログラム
クロスコンパイラ 実行する機種と異なる機種で開発させたプログラムを、 機種の異なる機械語に変更するプログラム

スクリプト言語

文書作成、表計算、batch などのテキスト。

JavaScriptHTML 用スクリプト言語Netscape Communications, SunMicrosystems
VBScriptスクリプト言語Microsoft
Perlテキスト検索、レポート作成用, C 言語に似ており、CGI スクリプトとして使われる
PHP動的に Web ページを作成する。データベースとの連携が可能。
JSPJava Server Pages, JavaScript や VBScript を HTML に記述し、Java Servlet として動的に Web ページを作成。JavaBeans を呼び出せるので、Java のミドルウェアがつかえる。
ASPActive Server Pages, Microsoft の Web サーバでデータベースと連動して動的な Web ページを作成Microsoft 用
Pythonオブジェクト指向。システム管理、デスクトップアプリケーション、サーバアプリケーションGuido van Rossum の開発
Ruby日本語処理にすぐれたオブジェクト指向のプログラム言語。まつもとゆきひろ

プラグイン:ブラウザソフトに機能を追加するソフトウェアの総称, Shockwave など

Java:Sun Micorsystems 社の開発したプログラミング言語、機種依存性がない

CGI: Web サーバ上で別のアプリケーションプログラムを実行するためのインタフェース

マークアップ言語

テキストファイル形式で、 tag と呼ばれる記号を使用して、 レイアウトや制御を記述する言語。LaTeX や HTML がある。

SGML 電子文書を標準化するための言語, テキスト形式に加えて書体情報や文書情報をマークで指定する国際規格のある言語。ISO が規定。HTML のもとになったマークアップ言語で仕様が決まっている。
HTMLWeb ページの記述言語で SGML から派生。WWW で使用される。文書記述向け。SGML の機能で、Web ページ作成に必要な機能を取り出して標準化した言語
XMLeXtensive Markup Language, HTML から拡張し、自分で定義する tag を作成できる。表計算に採用。GML の利用を容易にすることを目的として設計された言語。

Web ページ: リンク機能を持ったハイパテキストの電子文書

ソフトウェア開発用言語

SDLSimple DirectMedia Layer, ゲームなどのマルチメディアソフトウェアの開発で、API (グラフィック、サウンド) を提供するライブラリ
ADLArchitecture Description Language, ソフトウェアのアーキテクチャ、システムアーキテクチャを記述する、開発者と発注者とのやりとりに使う