浄泉爺のブログ

浄泉爺の考え事を記録します(研究のこと、仏教のこと、教育のこと、ドローンとか)

自分のコンピュータとの関わりを振り返る(1)

こちらは、このブログを始めた頃に書いてそのまま下書きにあったもの。なぜそのまま下書きにあるのかよくわからないが、おそらくそれなりに力を入れた記事にしたかったのだろう。

 

適当に書き足して、公開してしまう。

 

2020年度は小学校でのプログラミング教育必須化という年になる。準備はできているのだろうか?以下の文部科学省のHPには詳細な情報があるので、興味がある方は見て見ると良いと思う。

 

www.mext.go.jp

 

ここでいうプログラミング教育は、所謂プログラマー養成ではなく、プログラミング的思考能力、言い換えれば論理的思考能力を伸ばす為のものである。手引きの第2版というのが出たようで、第1版に比べて、社会科や家庭科といった科目との連携も触れられていて、科目間の連携を考えたものになっている。これはとても良いことだと思うが、現場的にどういう対応がなされるかは注目したい。

 

プログラミングには論理力が必要である。これは間違いない。一方で、一般的な仕事も論理力が必要である。とても簡単な事だが、順番も大事だ。プログラミングを学ぶとそれがよく分かる。処理は順番通り行われ、順番を間違えると正しく動かない。トイレに行く前に手を洗うのと、トイレから出る前に手を洗うのでは結果が異なる。(これは、プログラミングが関係する授業で良く言っていた説明だが、わかってくれたのかどうか定かでは無い。)

 

さて、アプリ開発をしてみたいと思っておられる方は多いだろう。世の中には沢山の学習コースもあるようだ。それで実際にアプリ開発ができるようになった方もおられるのだろうと想像している。私は私の経緯しかわからないので、私が iPhone アプリを開発するに至るまで経緯を振り返ってみようと思う。

 

1. 小学校6年のころポケットコンピュータ、カシオPB-100が発売された

 

ja.wikipedia.org

 

なぜ、PB-100発売を知ったのかわからないが、あれこれ説得して親に買ってもらった。恐らく、任天堂のゲーム&ウォッチが流行っていて、その延長として興味をもったのだろう。任天堂ゲーム&ウォッチは確か買ってもらえなかった。友達がもっている物を遊ばせてもらっていた記憶がある。オクトパスが一番好きだった。

 

PB-100 ではBASIC言語が動いた。PB-100でのプログラミングの本が出たりしていたので、その内容を打ち込んで遊んだ。トランプゲームがお気に入りだった。狭い液晶画面だったが、楽しかった。また、プログラムを本に書いてある通りに打ち込むのだが、大抵間違える。間違えると全く動かないこともあるが、間違ったまま動く場合もある。その動きが面白く感じた。つまり、間違ってても動くんだという感覚。PB-100には拡張RAMパックというものがあった。それ無しでも動くプログラムは多かったが、多少凝ったものは、拡張RAMパックが必要となった。後で追加購入し、色々なプログラムを動かして遊んだ。当時、友達とこんなゲーム作れたらおもしろんじゃないか?と色々アイデアを出したりしていた。

 

2. 高校時代、PC-8001mk2

高校に入る頃、自宅には NEC PC-9801VX というマシンがあった。父が使っていた。DATABOX というデータベースソフトを使い、寺の門徒さんの名簿管理をしていた。当時は、5インチのフロッピーディスクが主流だった。または、カセットテープ。 

 

2. 大学時代、とにかくコンピュータ関係が面白かった

私が大学2,3年生の頃にパソコン用のC言語開発環境が一般的になってきた。大学では、SonyのNewsというUNIXワークステーションを使う事ができた(Sony がそのようなワークステーションを売っていたというのは、今考えると不思議な気もする)。また当時、私は富士通FM-TOWNS というマシンをもっていた。マルチメディアという言葉が流行った時代。その頃、 TURBO C というC言語の開発環境が発売された。確か、サザンパシフィックといった名前のメーカーだったか。富士通C言語の開発環境を発売した。LUCID C という名前であった気がする。TURBO C は比較的安価だったので、それを購入して遊び始めた。ただ、BASICはある程度かじっていたが、C言語はそのころ大学の授業で習い始めた頃だったので丁度良かった。そういえば、C言語の前にBASICに触れている。これはもしかしたら重要なのかもしれない。また、当時のマシンは速度が遅いため、C言語に加えて部分的にはアセンブラ言語での記述も必要だった。当時は、第一種情報処理技術者試験というのを受験し、合格したが、その中にCASLというアセンブラ言語があった。この手のことは驚くほどよく覚えているなと今自分でも驚いている。磁気テープがどうこうとか、当時も既に古い技術についての問題が多かったが、見た目に古いが原理的には何も変化が無いということを理解できた。それは今でも同じで、基本的には磁気テープだろうがUSBメモリだろうが同じだと思っている。(シーケンシャルかランダムアクセスかの違いはもちろんあるが。)

 

さて、C言語は授業で習いつつ実習もあったが、基本的には独学した。いまから30年前の事だ。次の本を二度ほど熟読した。

 

プログラミング言語C 第2版 ANSI規格準拠

プログラミング言語C 第2版 ANSI規格準拠

 

 

いまも全く同じ本が売られていることに今衝撃を受けているが、C言語というのはそういうものだ。これは、C言語を「作成した」2名による著書であり、当然であるが正確に書かれている。知り合いに、この本を2度熟読したというと、大抵笑われる。

 

記憶で書くが、最初の方には摂氏と華氏の変換プログラムがある。これはつまらなかった。その後の方では、所謂リスト構造の自作がある。C言語でよく話題に上るポインタを活用するのだが、ここでポインタについて完全に理解ができる。例題は恐らくほぼ全てやってみたと思う。面白かった。なぜ2度熟読したかというと、単純に面白かったからだ。

 

それから、これはラッキーだったが、授業で簡単なコンパイラを作成するものがあった。次の本を用いた。

 

翻訳系構成法序論 (ソフトウェア工学ライブラリ)

翻訳系構成法序論 (ソフトウェア工学ライブラリ)

 

 

PL/0 というコンパイラを作成するというマニアックな内容だが、とても面白かった。なので、私はある程度コンパイラの仕組みを知っている。同時に、その頃 FM-TOWNSLinux が移植された。これはラッキーだった。今でこそ、世間で広く使われている Linux の惣明期に触れられたことは大きい。その経験から、UNIX系OSのハンドリングが得意になったし、その内容に興味をもった。当時は、Linux は、まぁ素人が作ったモノだし、やはりBSDだよねみたいな感じもあった為、次の本を買って読んだりし始めた。FM-TOWNSでも確か NetBSD 辺りが動いて動かした気がする。

 

UNIX 4.3BSDの設計と実装

UNIX 4.3BSDの設計と実装

 

 

これはさすがに熟読はしなかったが、デバイスドライバの書き方などがある程度理解できた。OSはC言語で書かれてるんだということを知ったし、OSの再コンパイルや、C言語の一種であるGCC等のコンパイラコンパイルとか、色々な体験ができた。OSの再コンパイルなんて、当時は一晩では終わらなかった。

 

386BSDなんてものもあったような。そのようなシステムを make world するのが楽しかった。大学に、当時の DOS/V マシン(この響きが懐かしい)を買ってもらい、完全に自由に管理させてもらった。その時、ネットに接続(当時は 10BASE のイエローケーブルだった)に、変なノイズが乗ってネットが不安定になるということがあり、それが僕の管理しているマシンのせいだという事がわかった。当時の情報系の先生(今も現役でおられる)が、FreeBSDだったか、そのあたりのネットカードのデバイスドライバを書き換えて直してくれた。正直、おどろいた。

 

(2)に続く