新しいものを表示
orange さんがブースト

GUIではとかく「直感的で分かりやすい」という謂いがされるけど,それは本当は慣用的――つまり「以前に見た何かと同じやり方で使える」ということなわけだけど…

そもそも「以前に見た何か」がなければどのような画面が適切か,ということすら想像することができないわけで.スマフォのほうが今の学生には馴染みがあるのだろうけど,アレはアレで統一的なルック&フィールがあるわけではないし…八方塞がりだ.

で、実際にやらせてみればいいのかも>< ボタンを1個置かせて、clickのイベントに書かせて><
どこに書こうがそこが呼ばれたらそれが実行されるって学べる><(「同じ処理何回も書くのは面倒なんだけどどうすればいい?」とかは次に教えてあげればいい><)

1秒間隔に設定したタイマーが起こしたイベントとして(時計の文字を更新する)処理を今書いたけど、ボタンを押した時のイベントに書けばボタンを押したら更新されるし、もうちょっと高度になるけど、チェックボックスにチェックが入ったら(ifだ!><)にも出来るし・・・みたいな><

PCのGUIそのものに慣れてないのは確かにアレかも><;
同じ物しかの点は、特に作業の意図を教える時に、例えば時間の文字列じゃなくhogeって書いたらhogeが表示されるとか、曜日の文字列を取得してそれを使えば曜日が出るとか、「今やってる事が何なのか?」を中心に教えれば全く同じ以外の作業もできるようになるかも?><

orange さんがブースト

我々のように何年もPCの画面を眺めてきている人ならともかくとして,今の学生にはいきなりGUIアプリの画面設計しろと言ってもできないのよ.ボタンやテキストボックスの使い方すらままならない.

GUI部品の使い方を一つ一つ教えたりパターンを教えたりしてもなかなか身につかないんだよな.

orange さんがブースト

意地悪な言い方すると,やったところで示されたものと全く同じものしか作れないし,作ろうともしないし興味を持たないのが大多数だと思う.

そもそも個々のGUI部品の使い方すらままならない.

テキストエディタちょこっと弄るにしても、基礎的な知識は基礎的上にすぐ必要になりそうだし、つまりそれって基礎的なものを教えるチャンスかも><

例えば「場合によって色を変えたいんだけど、『場合によって』ってどう書くの?」って条件分岐を学ぶチャンス><

orange さんがブースト

サンプルコードとして公開されていたテキストエディタをちょこっといじって機能足すとかとっかかりとしてはよいよね。その機能の実装に関わるところで基礎が必要ならそれは勉強できるし、他は追々知っても知らなくてもまあ。プログラミングを教えるとか習得させるというお題を満たせるかはわからんけど。

しかも、オレンジが言ってる教え方だとその時点だと、条件分岐とか繰り返しとかそういう基礎的なものは全く教えてない><
なんだったら次に時計を改造する場面を用意して、そこでそれらが実用的に必要な状況を作ってあげればいい><
必要なのでそれらを何に使うのかよりわかる><

つまり、あなたがこの1時間でした事はプロのプログラマがWindows向けの商用ソフトウェアを作る時にした作業と同じであり、使用したツールも同じであり、なんだったらその完成したファイルをお友達に渡せば、お友達はあなたが作った時計を使用できますよって事><

ていうか、『最初に』C# を弄って1時間かからずに、例えばMSでも例にしてるデジタル時計をいきなり作るってした時に、C# が何であるかを理解している必要なんて無いかも><
その時教えないといけないのは、例えばタイマーというコンポーネントがイベントを発生させて呼び出された所に、ラベルってコンポーネントに「こう書いてね!」って文字列を送ったので表示される みたいな、各作業自体の意図かも><

そして全体としては、そんな超簡単な作業でWindowsの本物(=ワードやエクセルのような)のソフトウェアを作れてしまうし、今作ったツール(=VS)自体プロが使っている物であるという点かも><

orange さんがブースト

ただ手順を示してその通りやってウィンドウが立って動く,興味のない人は「ふーん」でおしまい.

で,後になって言うのだ「C#ってなに?」

orange さんがブースト

見た目分かりやすいやつから始めるのは悪いことではないし,むしろ私はそちらの方法論をとりたいのではあるが…

GUIだのなんだのは,「おきまり」が多すぎて,変数を宣言するとかループを作るとかメソッドを定義して使うとか,クラスを定義して使うとか,基本的なところをさえままならない人たちにやらせても何も身につかない「体験教室」になってしまいがちなのよ.

ていうか基礎からみっちりと!!!って発想で言っちゃったら、ゲーム作る事を学ぶにも「低レベルからまずやれ、ゲームエンジンなんて使うな(21世紀的BASIC使うのもこの例で言うゲームエンジンの方という意図) 最初は6502のマシン語からだ!」とかになってしまうだろうし、流石にそんな教えかたしてる人はいなさそう><

orange さんがブースト

加えて、そういう実演をするにもお約束コードが少なくて簡単にパラメータをいじれる方がよいということで、お手軽ライブラリを自作したらしい(多分DxLibみたいな感じ)

スレッドを表示

逆になってた><;
x「今度は3合目から、その次は5合目から歩いて登ろうか」

o「今度は5合目から、その次は3合目から歩いて登ろうか」

スレッドを表示
orange さんがブースト

こないだ聞いた話で、とりあえずプログラミングとはこういうことができて楽しいのだぞということを伝えられればいいやってことで、ゲームを子供に見せながら子供のリクエストに応じてその場で改造してみせた、というのがあったの思いだした。

登山に例えてもう一度さっきの話に戻すなら、ロープウェーで頂上の近くまで行って簡単に頂上にあげて「景色きれい!」を体験させて(C# でアプリ作らせる)、その上で「何でわざわざ徒歩であがってくる物好きがいるのか?」=楽しさを教えてあげればいい><

もしかしたら「じゃあ次は徒歩で登ってみるかも!!><」って思うかもしれない><

CやらRubyやらPythonやらで文字しか出ないわけがわからない物を作らされても「頂上はまだまだ先だ・・・ 登山なんて一部の登山家しかできない物なんだ」って思うだけかも><

だから、完成品に近い方から、つまり低レベルの方に向かって教えるのも大切で、C# でいきなり完成品のワードやエクセルのようなWindowsアプリを1時間もかからずに作れてしまえる経験をさせる事も大切って事><

高い山でも、ロープウェーやケーブルカーがある山なら手っ取り早く初心者でも比較的簡単に頂上に登れる><
そのあとで登山についで学んで「今度は3合目から、その次は5合目から歩いて登ろうか」とすればいい><

古いものを表示
:realtek:

思考の /dev/null