プログラミング教育

日本語でプログラムを書こう

~大学生からでは遅すぎるプログラミング教育

大岩元先生 元慶應義塾大学 環境情報学部

第5回 繰り返し命令を活用しよう

前回のプログラムに関する情報は、下記のサイトから得ることができます。慶応義塾大学SFCの情報処理の授業の教材として作られたもので、日本語でプログラミングを学ぶ環境と教材が全てそろっています。

 

◆Turtle Cafe

タートルと言霊で学ぶ論理思考とプログラミング

http://okaken.sakura.ne.jp/kotodama-in-sfc/TurtleCafeForKotodama2010/TurtleCafe/html4/index.html

 

変数を使った繰り返し命令

 

三角形や四角形を描くプログラムを見てみると、「線を描いて向きを変える」という命令が繰り返されていることがわかります。そこで、繰り返す命令が何回目を実行しているかを数える仕組みを作って、これを利用してプログラムを書いた方がわかり易くなります。

 

回数を記録しておくために必要な機能としてプログラミング言語には変数という機能が用意されています。変数はそこに書きこんだ数値を記憶しておき、それを読み出すことができる機能があります。この機能を使い、繰り返し命令を用いると、家を描くプログラムは次のように書き直すことができます。

 

※繰り返し命令を使って家を描く

※作成者 大岩 元

※作成日 2017年1月31日

 

※作成に必要なライブラリーを取り込む

TurtleLibraryを参照する。

 

※プログラムが動き出せる準備を行なう

ウィンドウを必期化する。

亀を新規作成して、亀太郎と名付ける。

ウィンドウに亀太郎を追加する。

 

※回数を数える変数を用意して繰り返しを可能にする

整数形を新規作成して、回数と名付ける。

 

※繰り返しの準備をする

回数に1を入れる。

 

※家の本体の壁を四角形で描く

回数 ≦ 4 である限り{

 亀太郎を100ドット進める。

 亀太郎を90度右に回す。

 回数に回数+1を入れる。※繰り返し回数を増やす

} を繰り返す。

 

※屋根を描くための準備を行なう

亀太郎を100ドット進める。

亀太郎を60度右に回す。

回数に1を入れる。

 

※屋根を三角形で描く

回数 ≦ 3 である限り{

亀太郎を100ドット進める。

亀太郎を120度右に回す。

 回数に回数+1を入れる。※繰り返し回数を増やす

} を繰り返す。

 

となります。これで、プログラム全体が何をやっているかがわかり易くなりました。

 

繰り返し命令は

 

[条件式]である限り{

処理

}を繰り返す。

 

という形式で表わします。条件式が成立(true)のした場合には、{ }内の処理が実行されます。処理が実行し終わると、もう一度条件式を調べます。不成立(false)の場合は{ }内の処理を実行せず、繰り返し命令の次に書かれた命令を実行します。詳しいことは、前記の教材の解説を参照してください。

 

つづく

 

プログラミングを学ぶのに役立つ本

『世界が変わるプログラム入門』

山本貴光(ちくまプリマー新書)

この本は、ゲーム作家で「哲学の劇場」も主催する山本貴光氏の著作であり、過去には馬場保二氏の共著で『ゲームの教科書』(ちくまプリマー新書)を出版しています。著者は本書の「はじめに」の中で既存の「プログラム言語の文法や使い方は教えません」と明言しており、「プログラムが作れるようになるためには、プログラム言語の文法を知っているだけでは足りません。むしろ、見通しの立て方や進め方、ものの見方が重要です」と書いています。これこそが、プログラミングをマスターする上で最も重要なことです。

 

第1章「プログラムを身につけるコツを少々」では「目標を設定しよう」がテーマで、第2章は「設計しよう-プログラムをプログラムする」が表題です。プログラムを作るための設計を、プログラムと呼んでいますが、このようなプログラムを専門的にはメタ・プログラムと呼びます。このような「メタ」な考え方は、2020年から日本で始まる次世代の教育の重要な概念です。

 

第4章「プログラムしよう」では、「まず日本語でOK」との表題が現われ、具体的にプログラムを作る作業が説明されています。そして付録にはプログラム言語ガイドとともに、この先に進むための本の紹介があり、山本氏による『デバッグではじめるCプログラミング』も含まれています。「入門」を終ったら、この本で具体的に一番標準的なプログラミング言語であるC言語でプログラムを書くことを学ぶのもよいでしょう。

 

日本語でまずプログラムを書くという開発方法は、大手の金融機関でも行なわれています。実際にコンピュータ上で動くプログラムの言語はCOBOLと呼ばれる言語ですが、その命令をまず銀行員が日本語で書き、それを「プログラマー」がCOBOLに翻訳する、という開発方式が、半世紀にわたって続けられてきているのです。

[出版社のサイトへ]

『ライト、ついてますか -問題発見の人間学』

ドナルド・C・ゴース、ジェラルド・M・ワインバーグ 木村泉:訳(共立出版)

プログラムの作成が「目標設定」から始まるが、これは言い換えれば、問題発見の過程とも言ってよいでしょう。本書の内容は、第1部「何が問題か?」、第2部「問題は何なのか?」、第3部「問題は本当のところ何か?」、第4部「それは誰の問題か?」、第5部「それはどこからきたか?」、第6部「われわれはそれをほんとうに解きたいのか?」と進みます。目標設定だけで、十分1冊の本を書く必要があるのが、プログラミングなのです。

[出版社のサイトへ]

『すべての人のためのJavaプログラミング 第2版』

立木秀樹、有賀妙子(共立出版)

現在最も広く使われているプログラミング言語のJavaを使いながら、プログラミングを深く学べる本です。私が本文で紹介したタートルグラフィックスを使って「オブジェクト指向」と呼ばれる現在の標準的なプログラミング方法を学ぶことができます。

[出版社のサイトへ]

『ソフトウェア社会のゆくえ』

玉井哲雄(岩波書店)

プログラミングの本ではありませんが、ソフトウェアと現代社会の関わりを、プログラムを産業として成り立たせる方法を研究するソフトウェア工学の立場から解説し、ソフトウェアに依存する現代社会の問題点を論じています。

[出版社のサイトへ]