実行委員からのメッセージ

U-20プログラミング・コンテスト実行委員からのメッセージを掲載していきます。


いきなり64ビット世代の未来

いきなり32ビット世代の私が最初に触ったコンピュータは1989年に発売された初代FM TOWNSでした。まだ16ビットのMS-DOSが全盛だったころに、メモリ搭載量が2MB〜ながらもインテル社の80386という最新の32ビットCPUを搭載し、理論上4GBのリニアアドレス空間が使えるとワクワクしました。

富士通からはフリーソフトウェアコレクションのCD-ROMが廉価で販売され、多くのホビーユーザが自作したゲームやツールなどが流通しました。今で言う同人文化の感覚です。その中でF-BASIC386のインタプリタが同梱されたゲームが存在していて、BASICという言語を勉強すれば自分のゲームが好きに作れるようになると気付きました。高校時代は放課後ゲームセンターに通って100円を入れてゲームをプレイしていましたが、代わりに自分でゲームを作って遊べば無限に遊べると思い、落ちモノゲームや爆弾ゲームなどをたくさん作りました。BASICからI/Oポートを直接叩くことができたので、ソフトウェアからハードウェアを制御できることを覚えました。またインタプリタだと処理が遅いけれどもコンパイラを使うと処理が速くなるということを体感しました。機械語も8086よりも先に32ビットの80386を勉強しました。8ビットや16ビットのCPUを私は使ったことがありません。

今のパソコンは64ビットに対応したCPUやOSが当たり前になっていて、4GB以上のメモリを搭載するのも普通になりました。昔は4GBのメモリ空間というと想像できないほどの広さという感覚でしたが、すごい時代になったものです。FM TOWNSの純正Cコンパイラとアセンブラはそれぞれ定価8万円で売られていたのですが、今の時代は無料で、しかもソースコード付きで開発環境をインターネットからダウンロードできます。WebブラウザとテキストエディタがあればJavaScriptでゲームプログラミングもすぐにできる環境です。

いきなり64ビット世代の若い君たちの今後の活躍を期待しています。

2012年2月1日 U-20プログラミング・コンテスト実行委員 竹迫 良範



私が中学生のころに「パソコン」が世の中に出始めました。私は弟の誕生日プレゼントの際に弟と親をそそのかして、PC-6001(当時「パピコン」という相性で呼ばれていた)というパソコンを買ってもらいました。
買ってもらった動機は、全くの興味本位です。

そして、私は、雑誌に載っていたゲームのソースコードをそのまま書き写して遊んでいました。そのうちにそのソースコードをじわじわと読み解いて(というよりは、なんかわかるような感じがするところを勘を使ってちょこちょこと変更して)ゲームを作り替えていきました。
変更していった動機は、全くの興味本位です。

高校生になって、ちょこちょことお金をためてポケットコンピュータを買いました。(と、ここまで書いて気がつきましたが、私、↓(2011/12/26掲載メッセージ)の平林さんと似たような子ども時代を送っていますね。。)ここでも、雑誌に載っているゲームや計算ユーティリティ的なソースコードを丸写ししてから変更、勝手に楽しんでいました。
これまた、ポケコンを買ったのは、全くの興味本位です。

そして、大学に入ってからもアルバイトしてMacを買ったり、就職してからも職場とは関係なしにコンピュータや電子ガジェットを買いまくって、その度にいろいろとプログラミングしたり、改造したりして楽しんでいました。今もしています。
それらすべてが、全くの興味本位です。

そして、その興味本位がずーっとつづいて、気がつけば、その興味が高じて、今は、それを中心にした仕事をしています。学校で習ったこと以外の興味本位で勉強したことを中心に仕事しています。これは、自分で言うのもなんですが、とても幸せなことだなと思います。

しかし、それで、このぐらいまで生きてきて、ひとつだけ心残りと言うか、若い頃にもっとやっておけばよかったなと思うことがあります。それが、コンテストへの応募です。
学校などで習ったのではなく、興味本位だけでコンピュータを触ってきたので、コンテストの募集を見つけても、「自分のような興味本位でやってる人間が応募してもいいのだろうか?」とか、「オレの作品を世の中の物差しで評価するんじゃない」という若気の至り(?)で、勝手に遮断していました。しかし、そのコンテストが終わって入賞した作品を見てみると、自分が作っているものと大して変わらない、もしくはオレの方がいい??(負け惜しみ)、、うむむ、出しときゃよかった、、とも思っていました。

そして、今、U-20プログラミング・コンテストの審査員をして強く思います。「あのとき出しておけばよかった」と、、、

腕試しにもなります。友達も増えます。世間が見えてきます。
さぁ、どしどし応募してください。

2012年1月19日 U-20プログラミング・コンテスト実行委員 古堅 真彦



「なんだこれ!!」体験を世界に。

私が中学生のときに、弟がTVにつないでBASIC言語でプログラムを記述して実行できるMSXという家庭用コンピュータでプログラムを作った。
私の名前を入力すると、「凡才」と表示。そして弟の名前を入力すると、「天才」と表示されるではないですか!! コンピュータは何事にも正確に計算結果を出すものと考えていたため、弟は「天才」で、自分は「凡才」、って一体どういうことなんだ???、「なんだこれ!!」。
その表示結果は、計り知れぬほどの衝撃であった。

そのときのプログラムが以下。
※注、こまかい部分は省略
INPUT A
IF A = "弟の名前" THEN
PRINT "天才"
ELSE
PRINT "凡才"
ENDIF

たったこれだけのプログラムで精神的に打ちのめされた「なんだこれ!!」体験。
あまりにもの衝撃に、その当時、家庭に1台しかなかったTVを占有することのない、ポケットコンピュータ(BASIC言語のプログラミング機能付の関数電卓)を買ってもらって、弟に対抗することにした。

「なんだこれ!!」。買ってもらって気がついた。それは単なるBASIC言語でプログラムできる関数電卓ではなく、数字の命令(アセンブラ言語、当時マシン語とよばれていた)で直接プログラミングでき、断然、実行速度が速い!!
でも、そのマシン語をちょっとでも誤ると、ポケットコンピュータは操作不能になってしまった。キーを操作しても、電源を切っても、うんともすんとも、なんともならない。俗にいう暴走状態である。これも「なんだこれ!!」体験。
コンピュータは、緻密にプログラムを組まないと、制御不能になってしまう。プログラミングには緻密さが要求されることを知った。
そんな中、当時流行っていたシューティングゲームもどきを作って、クラスメイトに遊ばせた。関数電卓でシューティングゲーム!「なんだこれ!!」をクラスメイトに体験させた瞬間だった。

その後、大学を出る頃、Linuxというオープンソースソフトウェア(ソースコードが公開されていて誰もが無償で利用可能なソフトウェア)があることを知り、「なんだこれ!!」体験。
そのまま、無償のソフトウェアが広がるその世界に、はまってしまった。そして、今度は、人に「なんだこれ!!」って思いを伝えたい思い一心で、オリジナルのオープンソースソフトウェアを作り上げ、世界に発信した。
ロシアとかルーマニアとか、フィンランド、ブラジル、タイ、ベトナム、香港とか、いろんな国の人々からメールが飛んできて、反響を実感。
その中でも、イタリア人の反応が、一番「なんだこれ!!」だった。「こんなソフトを作るなんてお前、天才!!」だって。

気がついたら、ソフトウェア開発を専門の職業とする社会人となり、激動のソフトウェア産業を支える立場になっていた。 そして、今ではU20プロコン審査で、「なんだこれ!!」体験。

ぜひ皆さんも、U20プロコンに応募して、皆に「なんだこれ!!」って言わせてみませんか?

2011年12月26日 U-20プログラミング・コンテスト実行委員 平林 俊一



これから、社会人になる方、特にIT産業に進む方へ、私がこれまで経験したこと、伝えたいことを述べます。

私はソフトウエア開発にたずさわって30年近くたちます。特にプログラムの作成、設計は大変楽しい作業でした。この楽しいというのは、ただ面白いというのではなく、辛いことや苦しいこと、悔しいことをくぐり抜け、やり遂げた充実感や達成感、知的興奮なども含んだ楽しさです。

プログラム開発は、作曲や描画に似ているという方がいらっしゃいますが、私は、料理作りに近いのではないかと思います。それは、創造的であり、知識・経験を必要とすること、特に食べる(使う)人を思って作るところが共通している部分かと思います。

近年、IT業界は若い人から敬遠されていると聞きますが、これほど楽しく、知的で様々な経験をさせてくれる職業はそうないと思います。難しい・辛いからこそ、やりがいがあり、一生をかけてやる仕事ではないでしょうか。

様々な経験をしたと書きましたが、例えばOS、翻訳、AIシステム、業務システム(会計、人事、製造、販売等)、レンズ設計、機会学習など様々な分野のプログラム開発を行いました。この間、常に求められたのは、新しいことを受け入れ自分を変えていくこと、学び続けることです。これらは社会で活動する、特にIT業界で仕事をするうえで常に求められます。若い皆さんには是非実践していただきたいことの1つです。

若い皆さんはこれから多くの壁や困難に立ち向かうことになります。このとき、真正面に問題と向き合い、自分なりに問題に対して解答をだし、業務を進めていくことを期待します。

2011年12月21日 U-20プログラミング・コンテスト実行委員 大崎 宏



私は幸いなことに、このプログラミングコンテストの創設時から関わっていました。昭和55年に「全国高校生プログラミングコンテスト」としてU-18でスタートしました。当時から高校生のプログラミング能力は素晴らしく、たった16kバイト位しかないメインメモリーのコンピュータを駆使して多くの優秀な作品の応募がありました。順位を付けるのに、現在と同様大変苦労していました。多くの参加者が高校卒業後もコンピュータに関わる仕事で活躍しているのを耳にすると、大変うれしい気持ちになります。

素晴らしい作品を創るのには、コンピュータの仕組みに興味を持つ事だと思います。どうして、この入力に対してこの出力が得られるのだろう?どのように処理されているのだろう?・・・・・ あとは、語学の上達と同様、良いプログラムを参考に、たくさんコーディングすることです。ディバックを終えて設計したどおりの処理が出来た時の喜びは、プログラムを書いた人のみが味わえる最高の醍醐味です。そして多くの人が、そのプログラムで生活が便利になれば、こんなうれしいことはないはずです。

このメッセージを読んでいる、U-20の皆さん、開発環境は充分備わっているはずです。最初は、画面に1行のメッセージを出力をするプログラムからでも良いです、ぜひスタートして下さい。また来年多くの素晴らしいプログラムに出会う事を期待しています。

2011年12月19日 U-20プログラミング・コンテスト実行委員 新井 誠



基本は変わらない

私は高校時代にFORTRANというプログラム言語を学びました。プログラムは紙テープ媒体に機械でパンチして作成し、それを入力しました。いつのまにか、文字コードを覚え、文法エラーの箇所を紙テープ上でも発見することができようになりました。
パソコンなどない時代で、ソフトウェアを自分で開発しないと汎用コンピュータはただの大きな箱でした。

大学時代はCOBOLを学びました。手続きに違いがあっても違和感はありませんでした。

教員になってPL/Iを学びましたが、これもまたスムーズに習得できました。

時代がかわり、パソコンが普及し始め、BASIC、c、Java、VB、c#等のプログラム言語に対しても楽しみながら学習することができました。

このようにさまざまなプログラム言語を習得してきましたが、新しいプログラム言語に関心をもちながら学習できたのは、高校時代にアルゴリズムをマスターしていたからだと実感しております。
どんなことでもいいから自分が考えたことをアルゴリズムにし、自分の好きなプログラム言語で表現することができたら、プログラミングが楽しくなるのではないかと思います。

今後もあっと驚くような作品の応募をお待ちしております。

2011年12月14日 U-20プログラミング・コンテスト実行委員 天野 光芳



知識は活用に意味あり

自分のおかれている状況の中で知識を獲得し,知識を自らの中に構成していくことが学習であるという考え方が注目されています。これは,プログラミングを知っているだけでは知識としての意味は無く,作りたいソフトを実現していく過程で,プログラミングの知識が活用されて初めて意味のある知識となり,自分の中で知識が有機的に構成されていくということを言っています。また,この知識の学習は,プロジェクトなどの共同体活動の中で,メンバー間の関わり=相互作用によって促進されます。

毎年,U-20プログラミング・コンテストで,優れたプログラム開発の成果であるソフトと優れたチーム作品を目にすることができ,そんな作品作りを通して,皆さんが意味ある知識を自らの中に構成し,自己実現するための知恵をもった人たちであることを実感しています。私にとって,そんな皆さんに出会える機会が,U-20プログラミング・コンテストであり,そんな出会いを教育者の一人として楽しみにしています。

2011年12月12日 U-20プログラミング・コンテスト実行委員 浅井 宗海



UNIX時間

コンピュータ上で時刻を扱う際、UTCの1970年1月1日真夜中を起点とした秒数である「UNIX時間」を使うことがあります。僕も先日、HOTP/TOTP というアルゴリズムを実装していて、この「UNIX時間」を扱いました。

「UNIX時間」は、UNIXというオペレーティングシステムが元となっています。もう、40年も経つんですか。

「UNIX時間」と言ったとき、関数 time(2) と「うるう秒」についてなどのうんちくを語ることもできると思いますが、本日は「UNIXとともにあった時間」、というような意味合いで話したいと思います。

本棚を探してみたら、石田晴久先生の共立出版 "UNIX" の初版11刷(昭和59年9月20日)が手元にありました。bit誌の連載をまとめたものです。昭和、ですか。当時の僕はUNIXに書籍で出会ったわけです。ちょうどコンテストに応募する皆さんと同じくらいの年頃のことです。

僕が最初にUNIX系のOSに触れたのはSony NEWSという機械でした。これは昭和で言えば昭和62年、もう少し後のことです。本棚にあった別の本、Kernighan & Ritchie, The C Programming Language (Second Edition)には「'88 Oct 電通大生協で購入」と書き込んであります。やるな、電通大生協。昭和の終わりのころのことです。こちらも、まだ皆さんは生まれていないころですか。
さて、UNIXとの出会いもそうですが、僕にとってはプログラミングは主に授業で習う科目、というものではなくて、自分の余った時間で自分なりに習得したものだったと思います。

「余った時間で好きなことをやる」もしくは「余った時間で欲しいものを作る」というのは、当時の僕だけでなく、今時分も、プログラミングをする生徒さん、学生さんも同じような感じかも知れません。UNIXが最初にベル研で開発された時のいきさつにも、そういう感じが強くあったように思われます。そして、UNIXに憧れてプログラミングを勉強した多くの人にも同様な共通の経験があったかと思います。

僕はそのころ、学校ではFORTRAN77を演習で勉強していた記憶があります。たしかコロナ社の教科書だったかな。学食の併設の売店でコーディングシートが売られていたと覚えています。「ベッセル関数を実装してプロッタで描画する」というような課題が出た際、想定された回答は学校のミニコンピュータとFORTRANを使うものでした。それを、当時「トランジスタ技術」で紹介されていた自作68000マイコンとFIG FORTHを使って固定小数点で実装して提出する、ということをやりました。おそらく、ただ単に「出された課題を解く」のではつまらない、というような思いがあったのでしょう。

でも、今思い返すと、なんですか、そういうことをされると受け取る方の先生は困りますよね。

電車に乗って上京し、秋葉原まで。万世橋の近くの店まで印刷物として出版されていた 68000 FIG FORTHを買いに行ったことを思い出します。印刷されたコードを入力して8インチのフロッピーディスクに書き込みました。当時、8インチのフロッピーディスクドライブがジャンクで出回っていたのです。パソコンはもっと性能の良い5インチあるいは3.5インチのフロッピーディスクでした。

「出された課題を解く」とか、「与えられた宿題をやっつける」というのではなくて、「余った時間で好きなことをやる」。僕の場合にはそれが電子工作やプログラミングだったと思います。そして、実機に触れることのない、UNIXの時間でした。プラトニックというんでしょうか。違いますね、はい。

さぁ、皆さんの「UNIX時間」はなんでしょう。何に挑戦しますか、どんなものを作りますか?

2011年12月7日 U-20プログラミング・コンテスト実行委員  g新部 裕



若者たち・若者の指導者たちへ

U-20プログラミング・コンテストを主催している経済産業省では、「職場や地域社会で多様な人々と仕事をしていくために必要な基礎的な力」を「社会人基礎力」として提唱しています。

この社会人基礎力は「前に踏出す力」「考え抜く力」「チームで働く力」という3つの能力に分類されており、このU-20プログラミング・コンテストには、まさしくこれらの能力が必要であると言えます。

制作し応募することは「前に踏出す力」、プログラムを設計/制作することは「考え抜く力」、団体で制作する場合は「チームで働く力」が、それぞれ必要になります。

このU-20プログラミング・コンテストに20歳以下の若者が挑戦することは、まさしく社会人基礎力を養う機会であります。

このU-20プログラミング・コンテストを通して、若者たちには社会へ出る準備をしてほしいと思いますし、若者たちを指導する先生方には、このU-20プログラミング・コンテストを教育の一環として活用してほしいと思います。

2011年12月5日 U-20プログラミング・コンテスト実行委員 生山 浩



時代は大きく変わりつつある・・・

今回は個人作品に光るものが目立ちました。また、全般的に、なんとなく作ったというのではなく、それぞれにうなずける動機があったという印象を持ちます。最終審査会における受賞者のプレゼンテーションを聞いていると、作品紹介や自己アピールがとてもよくできていました。「日本の若者も捨てたものじゃない!」と感じました。

今年は、東日本大震災という大きな出来事がありました。世界に名だたる経済大国日本にとっても大きな試練であることは言うまでもありません。日本の復興には、われわれの精神力や思いやりの気持ちが欠かせませんが、なにより、日本が元気になる、すなわち経済が活性化されることが必要です。日本では情報産業の振興が大幅に遅れています。その一方で、韓国やインドなどは情報産業を国策として推進しています。日本では優秀なソフトウェア技術者の育成が急務とされています。日本が復興してより豊かな国になるには、若いプログラマの力を結集し、日本の情報産業を振興しなくてはなくてはなりません。
10月5日に米国Apple社のSteven Paul Jobs氏が56歳という若さで逝きました。彼は次のようなことを言っています。

"You know, we don't grow most of the food we eat. We wear clothes other people make. We speak a language that other people developed. We use a mathematics that other people evolved... I mean, we're constantly taking things. It's a wonderful, ecstatic feeling to create something that puts it back in the pool of human experience and knowledge."

 直訳をすると、「ご存じのように、われわれは、自分たちの食べる物のほとんどを作ってはいません。われわれは、人の作った服を着て、人の造った言語で話し、人が創った数学を使っています…私が言いたいのは、われわれは常にモノを受け取っているということです。人間の経験と知識の泉になんらかのお返しができるようなものを作ることは、すばらしく、有頂天な気分になれるものです。」となるでしょうか。

 最後のフレーズ、"It's a wonderful, ecstatic feeling to create something that puts it back in the pool of human experience and knowledge."を受賞者のみなさんに贈りたいと思います。

2011年11月28日 U-20プログラミング・コンテスト実行委員長 小泉 力一