1: ミッドナイトエクスプレス(やわらか銀行)@\(^o^)/ 2016/06/11(土) 20:20:03.64 ID:atjY64cn0 BE:528692727-BRZ(11000)
MeiryoKePHP
今からプログラミングを学ぼうとする、それまでプログラミングに一切触れたことのない生徒に対して、
プログラミングを教える前に、次のようなテストを行った。

以下の文を読んで、正しい答えをチェックしなさい。

int a = 10;
int b = 20;

a = b;
aとbの新しい値は:

生徒は、全員プログラミングに触れたことがないが、少なくとも皆、=が数学では等号記号を意味することを知っているだけの
数学の基礎的な教育は受けているはずの者たちであった。

もちろん、プログラミングについて何も知らない人間なのだから、Javaのコードとして解釈した場合の代入の挙動を正しく
回答したことが正解になるのではない。=は変数の値を変更しないのかもしれない。代入だとしても、右から左ではなく、
左から右への代入かもしれない。代入ではなく、移動なのかもしれない。

この問題では、解答群の「新しい」という言葉の使用によって、値がなにか変化するものであると推測することを期待している。

どのような規則で回答するかというのは問題ではない。このテストでの評価は、ひとつの規則を、複数の似たような問題に
首尾一貫して適用できたかどうかをみた。つまり、=は値を交換するという規則を推測したとしたら、ほぼすべての問題に
対しておなじ交換の規則を適用した結果を回答した場合のみ、一貫したグループとした。問題毎に違う規則で答えたものを、
一貫していないグループとした。何も書かずに提出したものを、空欄グループとした。

割合としては、一貫したグループが44%、一貫していないグループが39%、空欄グループが8%であった。

既存のコンピューター科学者に意見を求めた所、空欄グループがもっともプログラミングの適正があるグループであろうと予想された。
「彼らは、理解していない問題に憶測で答えることを拒否する種類の人間なのだ」と。「したがって、もっともプログラミング適正があるに違いない」

しかし、結果は異なっていた。もっとも高成績のグループは、一貫したグループであった。一貫していないグループと
空欄グループに属する人間は、プログラミングの理解に苦しみ、試験の成績も低かった。

以下ソース
http://cpplover.blogspot.jp/2012/05/60.html
引用元: http://hayabusa8.2ch.net/test/read.cgi/news/1465644003/


4: アルゼンチンバックブリーカー(中部地方)@\(^o^)/ 2016/06/11(土) 20:21:06.04 ID:ZGuX+y5f0
両方20

6: 足4の字固め(SB-iPhone)@\(^o^)/ 2016/06/11(土) 20:21:20.40 ID:cO4QhU9q0
20と20

9: ドラゴンスクリュー(東京都)@\(^o^)/ 2016/06/11(土) 20:21:34.40 ID:yk31xjOk0
どっちも20

11: ジャンピングパワーボム(dion軍)@\(^o^)/ 2016/06/11(土) 20:23:06.77 ID:XhLDDGDE0
0徐ざんしてハングアップでもしてろ

12: タイガードライバー(四国地方)@\(^o^)/ 2016/06/11(土) 20:23:20.09 ID:iujHbGyq0
現在の値じゃなく新しい値ならメモリの許す限り無限に存在するだろ

14: 中年'sリフト(空)@\(^o^)/ 2016/06/11(土) 20:24:17.58 ID:45eN4yIE0
言語によるだろw

15: フォーク攻撃(大阪府)@\(^o^)/ 2016/06/11(土) 20:25:01.48 ID:vXLtsdNG0
結局何が言いたいんだ?

19: 河津掛け(dion軍)@\(^o^)/ 2016/06/11(土) 20:27:15.78 ID:Lp5fjMc20
>>15
記者「プログラミング理解できてる俺かっけー」
読者「」

17: ミラノ作 どどんスズスロウン(dion軍)@\(^o^)/ 2016/06/11(土) 20:25:51.80 ID:dIKcyTB/0
コンピュータ科学者は人間の推論能力をバカにしてるよね
何もわからなくても前後関係から「だいたいこのくらいが正解かも」
という妥当性の高いフェルミ推論ができる人はある程度存在する

21: ダブルニードロップ(dion軍)@\(^o^)/ 2016/06/11(土) 20:27:26.15 ID:2JP0zB1r0
え?わからなくていいから取り敢えずコピペしろってみんな言ってるじゃん

22: ムーンサルトプレス(庭)@\(^o^)/ 2016/06/11(土) 20:27:29.36 ID:Pjgt/l0m0
a = b = c = d ;
とか記述するやつ死ね
読みづらいんじゃ

29: タイガードライバー(庭)@\(^o^)/ 2016/06/11(土) 20:29:51.68 ID:DIUOZUO70
>>22
これと三項演算子はよく使う 空行の無いコード大好き

44: ムーンサルトプレス(庭)@\(^o^)/ 2016/06/11(土) 20:34:40.78 ID:Pjgt/l0m0
>>29
ムダに行を減らして可読性を低くするのはアカン
それだけで生産性がガクッと落ちる
ぜひともリーダブルコードという本を読んでもらいたい

86: ファイナルカット(大阪府)@\(^o^)/ 2016/06/11(土) 20:44:32.16 ID:Pp9X3C3F0
>>44
そんなもん読まんでも英語のように書けばいいだけ

23: キドクラッチ(庭)@\(^o^)/ 2016/06/11(土) 20:28:07.77 ID:bTz4nVzk0
なんつー無意味な

24: デンジャラスバックドロップ(catv?)@\(^o^)/ 2016/06/11(土) 20:28:48.92 ID:Lg7QuESM0
smalltalkみたいに←にすべき

25: ミラノ作 どどんスズスロウン(静岡県)@\(^o^)/ 2016/06/11(土) 20:29:33.22 ID:SnsTbJWE0
数学とは=の意味が全く違うんだろ
一番最初に覚えることをそんな自慢気に語らんでも

27: ジャンピングDDT(東京都)@\(^o^)/ 2016/06/11(土) 20:29:37.82 ID:qiZokgxQ0
英語話せる人にドイツ語見せて資質がどうのこうの言ってる感じ

30: 32文ロケット砲(神奈川県)@\(^o^)/ 2016/06/11(土) 20:30:11.23 ID:NF7LYbeI0
これがわかるのは素質の問題じゃないだろ、ルールを知ってるかどうかじゃん

31: 閃光妖術(新疆ウイグル自治区)@\(^o^)/ 2016/06/11(土) 20:30:11.34 ID:4db84hql0
なんで代入に等号を使うんだろうな
別のにすればいいのに

32: デンジャラスバックドロップ(catv?)@\(^o^)/ 2016/06/11(土) 20:31:10.68 ID:Lg7QuESM0
>>31
Wirth先生はそこら辺も考慮してPascalを作ったが

33: ジャンピングエルボーアタック(大阪府)@\(^o^)/ 2016/06/11(土) 20:32:04.71 ID:y8/04DkU0
n = n + 1
n - n = 1
0 = 1

35: キドクラッチ(dion軍)@\(^o^)/ 2016/06/11(土) 20:32:50.83 ID:+vg6JHXd0
代入はパスカル式の:=の方が良いよな。数学者が作っただけある。

38: シューティングスタープレス(大阪府)@\(^o^)/ 2016/06/11(土) 20:33:41.42 ID:x/FpJhCQ0
本文読めばわかるけどこの問題1つじゃ何の意味もないよ

39: 中年'sリフト(catv?)@\(^o^)/ 2016/06/11(土) 20:33:46.20 ID:qcAQigVa0
単にルール知ってるかどうかだけだな

41: 超竜ボム(庭)@\(^o^)/ 2016/06/11(土) 20:34:12.65 ID:7G8uBFuV0
そもそも代入を知らない人に対する質問だから
代入を覚えた時点でこの質問は無意味になる

46: フランケンシュタイナー(やわらか銀行)@\(^o^)/ 2016/06/11(土) 20:34:49.14 ID:/49fZuOa0
a = b ってどんな状況よ

55: 男色ドライバー(大阪府)@\(^o^)/ 2016/06/11(土) 20:36:57.14 ID:4tBky2qu0
>>46
数学的には等号であるが
プログラミング言語では一般的に代入を表す

66: フランケンシュタイナー(やわらか銀行)@\(^o^)/ 2016/06/11(土) 20:39:26.35 ID:/49fZuOa0
>>55
だからなんでそんなことするのかどういう状況なのよってこと
この3行だけなら int a = 10; が要らないじゃん

47: ジャンピングエルボーアタック(大阪府)@\(^o^)/ 2016/06/11(土) 20:35:05.46 ID:y8/04DkU0
ポインタの問題出せや

50: キドクラッチ(神奈川県)@\(^o^)/ 2016/06/11(土) 20:35:42.93 ID:tW1aJCw80
プログラムにおける=って
→の意味なんだね

53: イス攻撃(庭)@\(^o^)/ 2016/06/11(土) 20:36:48.75 ID:Bl6/yu9j0
>>50
どちらかというと←だけどな

58: エルボードロップ(catv?)@\(^o^)/ 2016/06/11(土) 20:37:22.73 ID:hJDeaONQ0
これで素質なんかわからんやろ

60: かかと落とし(やわらか銀行)@\(^o^)/ 2016/06/11(土) 20:37:43.12 ID:LJT+w0Sb0
イコールを代入記号にした最初のやつが悪いよなw

93: ファイナルカット(大阪府)@\(^o^)/ 2016/06/11(土) 20:46:02.20 ID:Pp9X3C3F0
>>60
=と==はお笑い

62: キャプチュード(京都府)@\(^o^)/ 2016/06/11(土) 20:37:56.76 ID:M8WQx3FW0
この問いに正答するぐらいでプログラミングが出来るなら苦労はしない
絶望的にセンスがない奴でもこれぐらいは分かるw

63: ダイビングヘッドバット(京都府)@\(^o^)/ 2016/06/11(土) 20:38:04.12 ID:ZsnqdPKI0
で、正解はなんなの
aはbでbは20?

148: 超竜ボム(庭)@\(^o^)/ 2016/06/11(土) 21:02:51.15 ID:7G8uBFuV0
>>63
正解はないよ
回答結果から3パターンに分類してその後の学習結果追ったってだけの話

65: 魔神風車固め(神奈川県)@\(^o^)/ 2016/06/11(土) 20:38:57.18 ID:ZVXGViqE0
たまーに疲れているときif文で代入使ってふぁ?ってなる

70: タイガードライバー(庭)@\(^o^)/ 2016/06/11(土) 20:40:32.66 ID:DIUOZUO70
>>65
定数を左側に書くと良い

81: ムーンサルトプレス(庭)@\(^o^)/ 2016/06/11(土) 20:43:24.43 ID:Pjgt/l0m0
>>70
それだと可読性が悪くなんるやで
最近のコンパイラはwarning吐いてくれるからチェックすればいいだけ
warningは全部潰すのが原則

97: ニーリフト(茸)@\(^o^)/ 2016/06/11(土) 20:46:47.82 ID:R+u03o6U0
>>81
定数を左に書く規格あった気がするよ
書き間違え防止で

154: ムーンサルトプレス(庭)@\(^o^)/ 2016/06/11(土) 21:06:44.13 ID:Pjgt/l0m0
>>97
規格であるのか?
高い安全性を保証するMISRA-Cでも記載なかったけど
社内のローカルコーディングスタイルではなくて?

73: ミッドナイトエクスプレス(空)@\(^o^)/ 2016/06/11(土) 20:41:37.05 ID:jDYpXbct0
確かCでは
変なことになるはず
int a = 10;
int b = 3;
int tmp = a;
b = tmp;
みたいに

80: 膝靭帯固め(千葉県)@\(^o^)/ 2016/06/11(土) 20:43:17.79 ID:mz8z46Xj0
>>73
なりません

104: マシンガンチョップ(庭)@\(^o^)/ 2016/06/11(土) 20:48:57.05 ID:EjbDuDXv0
>>73

#include <utility>
int a = 10;
int b = 3;
std::swap(a, b);

75: かかと落とし(やわらか銀行)@\(^o^)/ 2016/06/11(土) 20:42:03.78 ID:LJT+w0Sb0
知らないやつを集めて実験してるって書いてるやん
そもそも勉強できない奴ってこういうことが読み取れない国語力の問題らしいけどな

82: ヒップアタック(やわらか銀行)@\(^o^)/ 2016/06/11(土) 20:43:52.60 ID:tjRXr1xM0
両方とも0x0014

85: ジャンピングパワーボム(兵庫県)@\(^o^)/ 2016/06/11(土) 20:44:18.82 ID:qpv60Ss90
プログラミング学ぶ前なら
悩ませるだけの設問だな。困らせるなよ。

95: 張り手(東京都)@\(^o^)/ 2016/06/11(土) 20:46:23.39 ID:UBHCvKLg0
>>85
適性を本当に見れるなら、
適性ないやつの人生をムダにすること無く、
引き継ぎプログラマが苦悶することも少なくなるぞ

98: 超竜ボム(庭)@\(^o^)/ 2016/06/11(土) 20:47:20.73 ID:7G8uBFuV0
>>85
悩ませ困らせた上でどう回答するかを観察するための質問だから

89: ファイナルカット(関東・甲信越)@\(^o^)/ 2016/06/11(土) 20:45:09.29 ID:6JnHlfXfO
教育現場ならベーシックで十分
言語より構造やアルゴリズムを学ばせるべき

94: ウエスタンラリアット(チベット自治区)@\(^o^)/ 2016/06/11(土) 20:46:14.88 ID:T/GDra9m0
記事自体にプログラミングの適性が無い

99: イス攻撃(埼玉県)@\(^o^)/ 2016/06/11(土) 20:47:30.83 ID:zKFNHM260
if(a = 0)


動かねぇ!

107: デンジャラスバックドロップ(catv?)@\(^o^)/ 2016/06/11(土) 20:49:16.55 ID:Lg7QuESM0
>>99
意味は無いけど動くだろ

102: ダイビングヘッドバット(やわらか銀行)@\(^o^)/ 2016/06/11(土) 20:48:26.31 ID:g9A8x1Zt0
a=b
AにBを代入

108: ミッドナイトエクスプレス(空)@\(^o^)/ 2016/06/11(土) 20:49:24.53 ID:jDYpXbct0
10って何進数の10なんだよw

115: ファイナルカット(大阪府)@\(^o^)/ 2016/06/11(土) 20:51:18.92 ID:Pp9X3C3F0
>>108
断りなきゃ10進数

110: バーニングハンマー(神奈川県)@\(^o^)/ 2016/06/11(土) 20:49:33.77 ID:Ea2apsc30
a = b;
の次にコードが無いのであれば最適化でaもbも
スタック変数が開放されているから両方不定値

114: ヒップアタック(やわらか銀行)@\(^o^)/ 2016/06/11(土) 20:51:02.85 ID:tjRXr1xM0
10のつもりで010と書くとバグがわからなくなる世界

スポンサード リンク