プログラミング入門

2003年度 秋学期
情報教育論
プログラミング入門
-「計算」に注目して考える-
環境情報学部2年
今越聡太郎
学籍番号:70240749
プログラミングとは?
プログラミングとは、「計算」と「命令」の連続である。
まず、命令とは・・・決まりごとのことです。
・drawLineとかけば線をひける。
・printfとかけば文字をシェルウィンドウに出力できる。
・setColorとかけば色を指定できる。
ここが苦手な人は“いない”のではないだろうか。
(苦手ではなく、使い方を知らない人、
もしくはこれらを覚える記憶力がない人はいるだろうけど)
プログラミングとは?
プログラミングの難しさは「計算」にあるのではないか?
■計算とは・・・算数や数学なのかな?
・1に2をたすと3になります。
・5を2でわると、あまりは1になります。
→このあたりは算数、数学と全く同じ!!
→計算が苦手な人も難しいと感じるかも・・・
■計算とは・・・算数や数学と違うところもあるはずだ。
・x=x+1(数学のように考えると、意味不明)
・tx=x[i]+d(そもそも数字がでてこないの?)
→プログラミング特有の考え方がある
それは、「代入」と「変数」である。
プログラミングとは?
世の中にはいろいろなプログラムがありますが・・・
どれも、たくさんの変数が代入を繰り返し、いろいろな役割を果たしている。
→水面下での変数の動きをとらえる目が必要
プログラムをゼロからつくるためには・・・
1.どんな変数が必要なのかを考える。
2.その変数をどのような式に当てはめるのかを考える。
これらができる力を養う教育が必要だと思います。
プログラミング入門Cの課題
プログラミング入門Cの課題を見てみる
毎年の返済額を入力して、何年で借金を返済できるかを計算するプログラムをつくる。
※実際には棒グラフで表示させるが、その部分は省略。
<プログラムの一部>
int z = 1000000; //zは借金残高 100万円借りたという設定
int h = Integer.parseInt(sfcInput()); //hは毎年の返済額(自分で入力する)
for(int a = 0; a < 20; a = a + 1){ //20年で返済する設定
z = z + z * 5 / 100 - h; //年利は5%
}
http://ipl.sfc.keio.ac.jp/text/prog-2003-9-c/main_p1_c3_s5.html
プログラミング入門Cの課題
このプログラムを作るために、考えなければならないこと。
1.最低限必要な変数を考えること
必要な変数1:借金の残高
必要な変数2:毎年の返済額
2.その変数をどのような式に当てはめるのかを考える。
来年の残高 = 今年の残高 + 今年の残高 * 年利率 / 100 - 返済額
これらを自分で設定できれば、プログラムをつくるために必要なことはクリアされる
→しかし、課題のページにこれらのことが全て書いてある
プログラミング入門Cの課題
現状のプログラミング教育の問題点
・与えられたパーツなどを使い組み立てる「作業」しかできない。
(もちろん、この能力も必要なものだと思っています。)
・自分でゼロからプログラムを作り上げることができる力を育てていない。
→これでは、課題はできてもミニプロでオリジナリティをだせない
だから、たまに課題でこれらの変数や式があらかじめ表示されてないも
のがでてくると、この分野が苦手な人は、急に難しい、苦手と感じてしまう
のではないだろうか?
おわりに
プログラミング教育のための、次のステップ
プログラミングには、コンピュータ上での作業以外でも、頭の中で考え
なければならないことがたくさんある。
コンピュータから離れてプログラミングを学ぶ機会も必要なのではない
だろうか。
指導案として
ゼロからプログラムを作ることを前提に・・・。
■どんな変数が必要なのか?
■どんな式が必要なのか?
これらを自分で導き出す力を育て、そこを評価しなければならない。