(このページの"内容は試験等には出しません)

プログラムって何?

コンピュータに行わせる作業を小さな明確な作業の集まりで表したものだ。

プログラムを理解するために、ある作業の方法を他の人に説明する場合を考えてみる。どのようにすれば、誤りなく、また明確にある作業の方法を伝えることができるだろうか?

複雑な作業を一連のより単純な作業であらわすことができる。

step 例: 目玉焼きを作る
1
手順: たまごを一個用意する
2
フライパンを一個用意する
3
レンジを一個用意する
4
油を1cc用意する
5
フライ返しを一個用意する
6
おさらを一個用意する
7
レンジにフライパンを乗せる
8
レンジをONにする
9
温度が200度程度になるように調節する
10
油をフライパンに薄くのばす
11
卵のからを割って中身をフライパンに入れる
12
3分間待つ
13
レンジをOFFにする
14
フライパンの中身(目玉焼き)をフライ返しで皿に移す

数学的な計算も同じようにより単純な計算を組み合わせてあらわすことができる。たとえば3桁の数2つの足し算は、1桁の足し算を組み合わせた手順としてあらわすことができる。

step 例: 3桁の数字2つの足し算
1

1つ目の数   a b c
2つ目の数 + d e f
中間結果   h i  
結果を書く欄 w x y z

3桁の数を図のa,b,cとd,e,fの欄に書く

w,h,iの欄には0を書いておく

2
c + f をzに書く
3
z が10以上であればzから10を引いてzに書き直す。そしてiを1に書き換える
4
b+e+iをyに書く
5

y が10以上であればyから10を引いてyに書き直す。そしてhに1を書き換える

6
a+d+hをxに書く
7

x が10以上であればxから10を引いてxに書き直す。そしてwを1に書き換える

このように複雑な作業を、より単純な作業の組み合わせて表すことができる。

アルゴリズム、バベッジ、エイダ、チューリング

では、どの程度まで複雑な作業だったら、単純な作業の組み合わせで表すことができるだろうか? また複雑な作業を行うために最低限度必要な単純な作業は何だろうか?

数学的な作業を単運な作業からなる手順としてあらわす、というアイデアはとても古くからあった。アルゴリズムという呼称は、9世紀バクダッドの数学者、モハメド・イブン・ムーサアル・フワーリズミー(Abu Ja’far Muhammad. ibn Musa Al-Khwarizmi.)に由来する。代数学をalgebraと呼ぶのも、彼の著作Ilm al-jabr wa'l-muqabalah(約分と消約との学)が起源だ。

19世紀になるとバベッジという人が歯車からなる機械でアルゴリズムを機械的に実行することを思いついた。

バベッジと交流を深めた英国の女性エイダは、バベッジの装置がどのような問題に応用できるかを考察し、言語の処理を含むあらゆる問題解決に利用できる可能性があることを予想した。このことからエイダは世界最初のコンピュータプログラマとしても知られ、プログラミング言語Adaの名称は彼女に由来する。

その後チューリングという人が、どんな作業もできる万能の計算機は最低限度どのような機能をもっていればよいか、ということを数学的に示した。このような万能な計算機のことを「万能チューリングマシン」と呼んでいる。万能チューリングマシンは特別な機械ではなく、現在あるすべてのコンピュータは万能チューリングマシンの条件を満たしている。つまり、どんなに複雑な作業でもプログラムさえ与えれば実行させることができる。

コンピュータ分野のノーベル賞といわれる「チューリング賞」はチューリングに由来する。

基本はプログラミング

プログラムを与え得ればどんな作業でもできる、ということはコンピュータという機械の最大の特徴だ。コンピュータの応用では、ほとんどの場合この特徴が利用される。

しかし、自動者のエンジンのように決まり切った動作が必要な場合、あるいはエレベータのように、だいたい動作がきまっていてあまり変更の必要がないような場合、コンピュータが使われていてもコンピュータを操作する人がそばについている必要はない。つまりコンピュータは使われていても人間の仕事がない。

コンピュータを使う仕事は、なにかの形で常に新しい状況にあわせて新しいプログラムを作る必要があるような仕事がほとんどである。プログラミングはしたがって、コンピュータを応用する上でもっとも重要なスキルのひとつだ。

最近はソフトウエアが進歩して、プログラミングの形もどんどん進化している。昔は非常に面倒でたいへんな作業だったが、同程度のプログラムはどんどん簡単に作れるうようになってきた。しかし、機械に指示をあたえて後は機械に自動的に処理を行わせる、ということの難しさはまったく変わらない。本授業の目的はこのプログラミングを自由に行えるようになることだ。

Visual Basicとは

授業で使う Visual Basicとはどんな言語だろうか

Basic = Beginners All Purpose Symbolic Instruction Code

=初心者汎用型抽象命令コード

1960年代にタイムシェアリングシステム用に開発された

マイクロソフト社がパソコン用言語として販売することで広く普及した

WindowsやOfficeにはVBScriptが標準搭載されている。
Windows系サーバーではサーバープログラム言語のひとつとである。

おまけ

VB.netのプログラマーの需要は多い。 リクナビnextなどの転職情報サイトで必要経験と求人件数を調べると2013年10月時点では以下の結果が得られる。

プログラミング言語 求人件数
JavaScript 14件
Perl、PHP 61件
Objective-C 1件
C、C++ 90件
Java 141件
C# 39件
VB、VBA、Delphi 42件
Python 1件

Javaは優勢だが、VB.netはJavascript, Perl, C#と同程度に需要があることがわかる。VB指定の求人も多い。

仕事の内容は、製造業からwebサイト構築まで多種多様だ。時給も一般のアルバイトよりはずっとよい。