><https://twitter.com/orange_in_spacehttps://pawoo.net/@orange_in_space
完成品から部品にたどって必要なものを考えていって、その必要なものが「そういえばそれ、完成品で既にあるかも!><」ってなったらそれを使えばいいし、そこが底かも><(駄洒落かも><)
たとえば求める条件の記述が、状況によって「カードが昇順に整列されている」で十分なこともあれば、整列や大小関係とはどういうことなのか記述する必要もあるかもしれないし、そういった「設計をこれでよしとする(メタな)条件」が明示されてほしいという感じだろうか
その設計が何から成っているのか(記述の最小粒度)が提示されていないから、「まだやるの?どこまで掘り下げるか聞かされてないんだけど……」というゴールの見えない感が出てしまうのでは
未発見のものでありまだ作られてないものなんだから、最初にも何もまだ存在しないかも><; プログラミングで「プログラミングって完成品のソースコードがあれば作らなくてもいいんじゃね?」「そうだね!>< でもそのソースコードが無いのでどうやって作ろうか?って考えてる時に完成品があればって言ってもしょうがないかも!><;」みたいな話かも><;
「それ最初に言えや」みたいな
たとえるなら、文法を提示されていない言語でコンパイラと闘っているような
たぶん「情報の後出し感」がそうさせるのではという考えです
意識し活用できるかは別として、まず情報開示を行ってから始めましょうという気持ちが強い
「前提条件を後出し」じゃなく、必要な前提条件を見つけ出す作業こそが設計なんだよ><って言いたいしそれを教える感じかも><
「前提条件を後出ししてくるの反則やろ……」みたいな気持ちになる
オレンジがしそういう方法で色々教えた時の感覚では、ほぼ全ての人がそういうの苦手っぽいかも><; なんかものすごく「(あん? うっせーな・・・)」を感じる><;
私が割と自己完結的に考えがちなのでそういうインタラクティブな思索が苦手だというだけの話だったかもしれない
1対1で具体的に何かを教えてあげる時であれば、どこまで分解するかとかも「という事はそれをするにはどうすればいい?><」みたいに聞いてあげる事で、ちょうど必要な部分まで掘り下げるお手伝いが出来るかも><
これ、ちょっと考えてみたけど、最少単位が一通りわかってないと「どこまで分解するか」とか「何へと分解するか」みたいなのがわかってないとどうすればいいんだ……みたいな感じになるので、やはりメンタルモデルかなぁという気持ちになった(個人の感想)
この話を続けると「だからこそエアバスの思想の方が正しい!!!><」にも繋がるすごく汎用的な話かも><
目の前でやらせてみて一挙手一投足に「なんで今そうしたの?><」って問い詰められていけば、嫌でも自分が具体的に同士てるのかに気づけるかも>< ものすごくものすごく嫌がられるけど><;
で、一対一で教える場合であれば、「小さい順に並び替えるにはどうしたらいい?>< 普段どうやって並べ替えてるの?><」って細かく問い詰めていく感じにオレンジは何らかの説明する時はしてるかも><
たぶん学生にそれをさせると「小さい順に並び替える」と一行書いてオシマイになる.むしろそれが普通の感覚で,「小さい順に並び替える」を具体的に詳細に日本語表現しろ,となるとプログラミングに匹敵する難しさがあるように思う(まぁ,その究極的な表現方法がプログラミング言語であるとも言えるんだけど).
例えばソートでも、「プログラムとして書けなくてもあなたは数字を並べ替える事が出来るんでしょ?>< 普段どうやってるのかそのまま説明してみて?><」って聞いてみると「なるほど!」ってなるかもしれない><(ソートの説明ではそれをした事無いけど><)
プログラミングであり設計って、自分が自然に行ってしまう事を「具体的にどうやっているのか?>< なぜ私はそれを行えるのか?><」って考えるのも重要だし、一対一で教える時であれば、そのままの問いかけをするのってかなり有用かも?><(でも学校の先生は1対1で教えるわけではないからそんなの無理そう・・・><)
思考の /dev/null