><https://twitter.com/orange_in_spacehttps://pawoo.net/@orange_in_space
電卓は、初学者がいきなり作れたとしたらその人はもう残り全て独学でやっていけるくらい天性のプログラマだと思う・・・><
シャットダウンタイマーは作った
RADでぺたぺたして作れるUI、やはり電卓では。メモ帳でもいいけど。
だからオレンジは最初にC# (等のRAD環境)でGUIアプリ(例えば時計)を作る課題とかにして「普通のちゃんとしたアプリ(Windowsについてきてるようなやつ)」って自分でも作れるんだって体験させるべきってかなり前から言ってる><
CLIでなんか作るの、最初の一作は良いだろうけど、もう二作目からはTUIでキャラに見立てた文字が動くぐらいに進まないとモチベ維持できなさそう。
プログラミングスキルとプログラミング教育スキルの共通性を見いだせない人って、例えば既存のコードを一切お手本にせずに(もちろんやり方をググったりAIに聞いたりもせずに)、関数電卓では無い方の電卓アプリ(RPNを経由させるお約束な実装をしない電卓アプリ)を自作できるんだろうか?><
ていうか、プログラミングに必要な自問自答スキルと、プログラミング教育に必要な講師側の自問自答スキルがある程度共通しているという考え方自体も、プログラミングでも必要になる抽象化してモデルに落としこむスキルじゃね?><
自分が出来ることに関しての「なぜあなたはそれが出来るのか?」に「なんとなく」しか答えられない人はプログラミング出来ないでしょ?><プログラミング出来ない人を相手にプログラミングが出来る理由を教えられないことは、全く同じ構造の問題だよ><
だから、プログラミングに向いてない人にプログラミングを教えたり、メカ音痴のトラブルの解消(いわゆるエスパーサポート)なんかが苦手な人が普段プログラミングをどうやって行ってるのか、オレンジにとってはそれこそプログラミング出来ない人の考え方以上に謎かも><結局「自分はどうして出来るのか?」に向き合ってないって事になるでしょ?><
まさに日常的に意識せずに行っていることがなぜ自分は出来るのかという視点を持つこと自体がプログラミングに必要なスキルでしょ?><そこからさらに「なぜ自分はそういった視点で物事を考えられるのか?」というメタな視点を考えれば、結局のところプログラミングに向いてない考え方しか持ち合わせていない人にプログラミングに必要な考え方を教えること自体が、プログラミングと似たような構造をしていると見ることが出来るかも><
これはさらにメタに、この文章自体が「出来ない人に教える事が出来ない」という問題を解消するために必要な考え方とはなにか?>< という事に言及してる><マトリョーシカっぽさ><
最終的な望ましい状態があって,そのためには何をすればいいか,っていうの日常生活ならある程度できるのに,ことプログラミングとなると,文法の理解の浅さも相まって「順序」がめちゃくちゃになってしまう学生が多い.
これな...
これは例えだけど,目玉焼きを作りたかったら,フライパンを火にかける→油を敷く→卵を割り落とす...って手順であることは明らかなのに,かなり多くの学生が,火のついていないコンロに卵を割り落としたりする.
プログラミングじゃなくても、エアラインパイロットの養成はエアラインパイロットの考え方をする人に書き換える教育であるし、宇宙飛行士の教育もそうだし、軍人もそうであろうし、たぶん船乗りなんかもそうなんだと思う><(船舶の世界は全然わかんないけど)その世界での考え方に書き換える教え方をしなければ出来るようにはならない><
考え方を書き換えるつもりじゃなきゃ、そりゃ向いてる人(元からその分野の人々と似た考え方を持ってる人)しか出来るようにならないの当たり前かも><
テキシコーなんて番組タイトルからストレートにプログラミング『的思考』だし><
テキシコー | NHK for School https://www.nhk.or.jp/school/sougou/texico/
教える時に「その人の考え方を尊重する」という言葉を、その人のメンタルモデルを維持させて人格を弄らないという意味で見ていたら、それこそ向いてる人しか出来るようにならないかも><そうじゃなく、その人のメンタルモデルの目的には向いていない部分を、その人のメンタルモデルを土台にして伸ばす形で書き換えるつもりで教えなければ、向いてない人のままになっていつまで経っても出来るようにならないのは当たり前かも><オレンジが何度も紹介してるNHK eテレの学校向けのプログラミング教育番組(テキシコー)と科学教育番組(考えるカラス)は、考え方を教育してメンタルモデルを形成する方向で組み立てられてる><
出来ない人を出来るようにするのが教育であるし、プログラミングをする時の「なぜ自分はできるのに計算機は同じ事を実行できないのか?><」を自問自答して処理に分解していく事とまったく同じように、プログラミングを教える時にも「自分はなぜプログラミングが出来るのか?><」に向き合って、出来ない人との違いを細かく分解していかないと、出来ない人が出来るようには教えられない><教え子は自分では無いし、計算機も自分では無い><それぞれメンタルモデルが違う><
D.A.ノーマンが言う所の『学習された無力感』の一種かも感><
https://mstdn.nere9.help/@orange_in_space/99206866195387201
ていうか、むしろプログラマになれたかもしれない人にちゃんと教えなかったせいで苦手意識を植え付けて将来をつぶした可能性がある事例かも感><
心を壊すには十分な時間だとおもうよ.
その相手の学生さん,たぶん終わりごろには軽く病んでたと思う.
思考の /dev/null