かけ算の順序の昔話

算数教育について気楽に書いていきます。

さくらんぼ計算,改善した書き方

 さくらんぼ計算について,ここ数日,メインブログの記事をリンクするツイートを見かけました。記事というのは,さくらんぼ計算 - わさっきさくらんぼ計算 (2015.02) - わさっきとです。
 それらほど,読まれてはいませんが,さくらんぼ計算,加法方略の発達モデル,Fuson (1992) - わさっきでは,国内外の文献を1つずつ紹介していまして,その種の計算を学術的に(算数・数学教育学において)どう認識しているのかの一端を知ることができます。書誌情報は次のとおりです。

  • 湯澤敦子, 日野圭子: 児童の加法・減法の方略の進展を促す指導について研究―学年が進んでも素朴な方略を使い続ける児童の考察から―, 日本教育科学学会研究会研究報告, Vol.28, No.5, pp.19-24 (2014). https://doi.org/10.14935/jsser.28.5_19*1
  • Fuson, K. C. (1992). Research on learning and teaching addition and subtraction of whole numbers. In Leinhardt, G., Putnam, R. and Hattrup, R. A. (Eds.), Analysis of Arithmetic for Mathematical Teaching, Routledge, pp.53-187. isbn:0805809295 http://books.google.co.jp/books?id=Vyl42R9JV1oC&pg=PA53

 それぞれから,図を切り出しました.前者はp.23,後者はp.89です。
f:id:takehikoMultiply:20181116125202j:plain
f:id:takehikoMultiply:20181116125211j:plain
 「forward up-over-ten」の図の位置づけについて,メインブログより取り出しておきます。

(略)左下の「forward up-over-ten」について,描き方は異なりますが,やっているのは「さくらんぼ計算」と同じです.そして「L IV」はレベル4のことで,1位数(9まで)のたし算の方略の中で最高レベルに位置づけられています.

さくらんぼ計算,加法方略の発達モデル,Fuson (1992) - わさっき

 ただし解答をする子どもたちが,赤丸を描いたり,丸囲み数字を使って分解・合成を表したり,しているわけではありません。それぞれの著者による「見やすさ」です。
 ところで1枚目の画像の中に,「念頭操作」という見慣れない語があります。少し検索すると,啓林館のサイトがヒットしました。

 そこで取り上げられている内容も,1年で学習する,繰り上がりのあるたし算です。さくらんぼの絵は,ありません。


 前掲のブログ記事でも書きましたが,1年の段階では,6+4=10など,和がちょうど10になるものは,「繰り上がりのある加法」として考えるのではなく,「6と4で,10」のように覚えます。10までの数について,2つの数(正整数)に分解したり,合成したりすることを学んでおき,「繰り上がりのある加法」に活用するわけです。
 10までの,数の合成と分解について,Rubyワンライナーを書いてみました。出力は90行になります。

$ ruby -e '2.upto(10){|c|1.upto(c-1){|a|b=c-a;puts"#{a}と#{b}で,#{c}";puts"#{c}は,#{a}と#{b}"}}'
1と1で,2
2は,1と1
1と2で,3
3は,1と2
2と1で,3
3は,2と1
1と3で,4
4は,1と3
2と2で,4
4は,2と2
3と1で,4
4は,3と1
1と4で,5
5は,1と4
2と3で,5
5は,2と3
3と2で,5
5は,3と2
4と1で,5
5は,4と1
1と5で,6
6は,1と5
2と4で,6
6は,2と4
3と3で,6
6は,3と3
4と2で,6
6は,4と2
5と1で,6
6は,5と1
1と6で,7
7は,1と6
2と5で,7
7は,2と5
3と4で,7
7は,3と4
4と3で,7
7は,4と3
5と2で,7
7は,5と2
6と1で,7
7は,6と1
1と7で,8
8は,1と7
2と6で,8
8は,2と6
3と5で,8
8は,3と5
4と4で,8
8は,4と4
5と3で,8
8は,5と3
6と2で,8
8は,6と2
7と1で,8
8は,7と1
1と8で,9
9は,1と8
2と7で,9
9は,2と7
3と6で,9
9は,3と6
4と5で,9
9は,4と5
5と4で,9
9は,5と4
6と3で,9
9は,6と3
7と2で,9
9は,7と2
8と1で,9
9は,8と1
1と9で,10
10は,1と9
2と8で,10
10は,2と8
3と7で,10
10は,3と7
4と6で,10
10は,4と6
5と5で,10
10は,5と5
6と4で,10
10は,6と4
7と3で,10
10は,7と3
8と2で,10
10は,8と2
9と1で,10
10は,9と1

 ここで,Rubyワンライナーをシェル関数にしておきます(bashzshで動作確認済み)。

$ upto10 () { ruby -e '2.upto(10){|c|1.upto(c-1){|a|b=c-a;puts"#{a}と#{b}で,#{c}";puts"#{c}は,#{a}と#{b}"}}'; }

 そうすると,「upto10 | sort -n | less」というコマンドで,数の小さいものから並べ替えて*2出力したものを見ることができます。「upto10 | grep 8 | sort -n」を実行すると,8が被加数・加数・和のいずれかに来るものを,並べ替えて出力します。

*1:「2018年」と書かれていますが,J-STAGEでの公開年と思われます。https://doi.org/10.14935/jsser.28.5_Programを見ると,発表は平成26年4月6日に行われています。

*2:sortコマンドに-nオプションをつけておかないと,「10は,1と9」が先に出力されてしまいます。