中学生にプログラミングを教えてみて。その2の続き


オブジェクトに触れてもらうことが最初の課題であるけれど、

プログラミングをする上で、条件分岐のif文と繰り返しのwhile文、

そもそも論で変数や値を整数でもつか実数で持つかという基本的なところを抜かすわけにはいかない。


ということで、

サンプルコードと一緒に変数や値の扱い方、ifやwhileに触れてもらったんだけど、

ここらへんは超苦戦するということはなく進めることができた。


苦戦するのはここから。

関数という中学数学ではじめて触れる関数とニュアンスが合っている様で異なっている様にも見えるあれ。


最初に出した例が悪かったんだけど、


function calc(a, b){
	var res = a + b;
	return res;
}

document.write(calc(3, 5)); //8と表示される
document.write(calc(6, 8)); //14と表示される

functionで囲った箇所の処理を何度も使いまわせる様にするんだよ

ということで計算をするという意味の関数を出したけど、


日常の癖でついつい出してしまった、

関数名がcalcで関数内の変数でresを使っている。


calcはcalculation(計算)の略で、

resはresult(結果)の略。


functionの後は自分の好きなように名前を決めることができるんだよ

と伝えるつもりだったが、


中学一年生にとって、calculationは習ってなかった。

function、varやreturnはプログラミング上、絶対に必要なものなので、

functionは機能という意味があって、とか変数を定義するときはvarを頭につけるんだよとか、

function内で計算結果を返すときはreturnを使うんだよと説明できるけど、


自由に決めることができる名前で、calcといった日常の癖をついつい使ってしまい、

calcがそもそも自由に決めて良いものなのかがわからなくなってしまった。


ここを改善するために、

次回以降は、


function tasu(a, b){
	var kekka = a + b;
	return kekka;
}

tasu(足す)みたいに、実際の処理をローマ字にしたものを指定する様にした。


関数名は動詞 + 名詞といったベストプラクティスがあるけれど、

ベストプラクティスに振り回されて、そもそもコードが書けないというのはもったいない。

ベストプラクティス - Wikipeida


ベストプラクティスは書ける様になってからいくらでも修正可能なんだし、

イメージしにくいものは極力さけ、書くことを楽しめる様にしよう。


といっても、

まだまだ課題だらけだけど…