こちらのページにて、「コンピュータを使わない、コンピュータとプログラミング入門#9」の予告と、予定している内容について簡単に紹介しました。 よろしければ、見ていただければと思います。
問題の分析には、現在ではUMLがあります。また、テキストでUMLの各種記述を行なう記法もあります。 では、テキストでのUMLを用いての仕様記述を考えているかと言うと、考えていません。 まず、文芸的プログラミングをベースに、特に「珠玉のプログラミング」における不変表明においてはVDMを参考にした記法が可能ではないかと考えています。 そのあたりはあり物を参考にできるのですが、問題はデータ構造です。UMLの場合、あくまで「オブジェクト」ですので、データ構造は書きやすいものとしてはレコードに制限されます。 対して、データ構造としては木、リスト、グラフ、スタックなどなどがあります。ここをうまく書ける方法はないか調べ、および検討しています。 木やリストの場合なら単純に a := [ a | a ] というような書き方ができます。 木とリストは区別したいところでもあるのですが、この時点ですでに悩んでいます。 書き方としては、a := [ h | a ] , h := a というような書き方もできないことはありません。 ただ、リストによって木を書けることも考えると、区別する必要があるのかという疑問もあります。 基本的なデータ構造は数が限られているので、a := tree と書いてしまうこともできないわけではないかと思いますが。
現在用意してあるいくつかの文書の中から、さらにその一部を抜き出したものを以下に示します。 疑似コード(案) この疑似コード(案)のペラに記載されている関数定義では、for、whileに相当するloopの機能の実装はできません。それは、ペラの内容がフル仕様ではないためです。 この例に限れば、次のように定義するのがフル仕様の一部となります。 loop : func [ a `in b] : 中身 ;| func [ a ] : 中身 ; ここで、"func" は関数定義であることを示しますが、その引数の違いにより、とくに"`in" というクオートされたリテラルの存在により、上の方はforに相当し、その不在により下の方のwhileに相当するものとなります。 もっとも、untilに相当するのはいまいちうまく書けません。 loop : func [ a `in b] : 中身 ;| func [ a ] : 中身 ;| func [ `until a ] : 中身; とは書けますが、この場合 "loop until 条件" となり、untilっぽさが薄くなります。 また、";|" は、ブロックに対しての "or" であり、この場合、引数の違いにより、3つのいずれかが選択され実行されます。 課題案 一応現時点で用意してある課題案です。内容のすべてをテキストにしているわけではありませんが、整理中、検討中を含め、概ねノートに手書きでは書き出してあります。 テキストサンプル テキストのラフですが、おおまかなイメージとして、課題のすべてをこのようなテキストとしてまとめるつもりです。 このテキストサンプルは本プロジェクトのリターンには含まれませんが、今後のプロジェクトのリターンに含めたいと考えています。
市教委、県教委の後援と言っても、このプロジェクトとはかするくらいの話題で、アンプラグド・プログラミング・パーティ@大月(ファンクラブ)の方に大きく関係します。 市教委、県教委にそちらでやっている「コンピュータを使わない、コンピュータとプログラミング入門」の後援を昨年から申請していました。 市教委からはこのような回答をいただきました。 【不承認の理由】 (全文): 「文部科学省の推奨しているプログラム教育の一部を否定し、特定の主義主張の浸透を図ることの目的とする事業の可能性があるため。」 さて、ここで問題になるのは「特定の主義主張の浸透を図ることを目的とする事業の可能性があるため」という部分です。要は、文科省の方針、指導要領はすくなくとも充分ではないと考え、本プロジェクトの絵にもあるようにデザインの部分を軽くは見ないという方針での申請でしたが、それへの回答が上記のようなものでした。 そこで、市教委に以下の書籍を貸し出し(本年1月ごろ)、特定の主義主張に当たるのかの判断をお願いしました: 1. “別冊サイエンス 74: コンピューター・ソフトウェア” 〔サイエンティフィック・アメリカン 編, 日経サイエンス社, 東京, 1985.〕2. “別冊サイエンス 82: コンピューター・レクリエーション I: 遊びの発想” 〔A. K. デュードニー 著, 山崎 秀記 監修, 日経サイエンス社, 東京, 1987.〕3. “別冊サイエンス 102: コンピューター・レクリエーション II: 遊びの探索” 〔A. K. デュードニー 著, 山崎 秀記 監修 , 日経サイエンス社, 東京, 1989.〕4. “ACMチューリング賞講演集” 〔赤 攝也 訳者代表, 共立出版社株式会社, 東京, 1989.〕5. “アルゴリズムとデータ構造” 〔N. ヴィルト, 浦 昭二・國府方 久史 訳, 近代科学社, 東京, 1990.〕6. “プログラミング言語の意味論入門”〔M. ヘネシー, 荒木 啓二郎・程 京徳 訳, サイエンス社, 東京, 1993.〕7. “文芸的プログラミング” 〔Donald E. Knuth, 有澤 誠 訳, アスキー出版局, 東京, 1994.〕8. “マインドストーム 新装版”〔シーモア・パパート, 奥村 貴世子 訳, 未来社, 東京, 1995.〕9. “珠玉のプログラミング 本質を見抜いたアルゴリズムとデータ構造” 〔ジョン・ベントリー, 小林 健一 訳, ピアソン・エディケーション, 東京, 2000.〕10. “わかりやすいUML入門”, 樫山 友一, 日野 秦臣, オーム社, 東京, 2000.11. “コンピュータを使わない情報教育 アンプラグドコンピュータ・サイエンス” 〔Tim bell, Ian H. Witten and Mike Fellows, 兼宗 進 監訳, イーテキスト研究所, 東京, 2007.〕12. “Begining Programming FOR DUMMIES 4th Ed.”, Wallace Wang, Wiley Publishing, Inc., Indianapolis, 2007. 13. ”プログラミング言語論”, 大山口 道夫, 五味 弘, コロナ社, 東京, 2008.14. “入門 データ構造とアルゴリズム” 〔Narasimba Karumanchi 著, 黒川 利明・木下 哲也 訳, オライリー・ジャパン, 東京, 2013.〕 その上で、「こちらの方針が特定の主義主張に当たるかどうか」の返答を求めました。 返答を簡単なものにするために次のものの根拠を挙げればいいという状況とし、その旨を文書にてお願いしました: * 教育委員会が特定の主義主張 (「そもそもものを考えるつもりがない」などなど) に基づいて行なった判断ではないことを示す根拠。 * 文部科学省の出している方針が、特定の主義主張に基づくものではないことを示す根拠。 * アンプラグド・プログラミング・パーティ@大月の基本方針などが特定の主義主張であるかもしれないと判断する根拠。 すくなくとも、2つめの根拠を示せれば、3つめについては疑問が自動的に出てきますし、3つめの根拠があれば、おそらく2つめに対しての疑問にもなるでしょう。 それに対しての回答は、「教育法などが、文科省の方針、指導要領に従って教育を行なう根拠となる」(要約)というものでした。また、貸し出した資料もほんのすこし読もうとはしたものの、「難しくて理解できない」旨の回答をいただきました。 こちらは内容を指摘して欲しいと要望したわけですが、市教委は論点をずらした回答としたわけです。 ここで重要なのは、そのような教育を行なう法的根拠と、教育の内容の妥当性はまったく別物というところです。 さて、市教委からは同時に以降は県教委にとありましたので、県教委に申請をいたしました。ここは、市教育の考えていたアクセス方法ではなかったようです。県教委の大月周辺を担当する県教委の事務所および委員と市教委の委員・職員、そして私という面子で、市教委の意見をこちらに納得してもらおうという意図であったようです。その場合、単純にこちらが話す時間が少なくなりますし、だったら県教委への申請に切り替えようと考えました。 それで県教委への申請をいたしましたが、県教委からは「申請を取り下げて欲しい」旨の連絡があり、返送されてきた書類にもその理由の記載はありませんでした。 市教委にしても県教委にしても、後援していただいたとしても、とくにこちらとして何かが変わるわけではありません。ただ一点、現在市立図書館のご厚意によりチラシを置いていただいていますが、本来は市教委、県教委、あるいはその他のどこかの後援などのあることが条件となっています。ご厚意に甘えっぱなしというわけにはいかないと考えての後援の申請でした。おっと、4月分のはまだお願いしていませんでした。ご厚意に甘え続けるのも気が引けており、チラシを置いていただく件については切り出し難い気分ではあります。 とくに活動報告というわけでもありませんが、アンプラグド・プログラミング・パーティ@大月(ファンクラブ)の活動の現状という点でご報告させていただきます。また、よろしければアンプラグド・プログラミング・パーティ@大月(ファンクラブ)へのご支援もいただければと思います。