アカウント名:
パスワード:
少年が自分で作ってみることのできるプログラムと,物心つく前から当たり前のように触れてきているプログラムとの差が,あまりに大きすぎる気がします。これじゃ,作ってみようという気持ちになれないんじゃないかな……。
大学の情報工学科でプログラミングを教えています。こういう学科なのでプログラミングに関連する講義や実習はそれなりに充実していますが、GUIを伴うプログラムの作成を教えている科目は一つもありません。現在、学科のカリキュラム委員会で講義のリニューアルを検討しているのですが、他に教えるべきことが沢山あるため、GUIの構成法などについてはいまのところ議題にあがっていません。これはうちにUI関連の研究者が一人もいないためで、もしかすると他の大学ではもっと現代的なプログラム作成をカリキュラムに取り入れているのかも知れませんが。
そういう私もGUIの作成経験なんてSmalltalkやJavaでちょっとしたおもちゃプログラムを書いたくらいしかありません。普段はMacで仕事していますが、30インチディスプレイのほとんどをターミナルエミュレータが占めている状態です。研究関連のプログラムは昔からのコマンドラインで十分ですしね。まあ、オープンキャンパス等で人目を引くデモができないのは何とかしたいところですが。
そのようなわけで、教える側がCUIに過剰適応(?)してしまっているせいか、なかなかGUIまで手が回らないのが現状です。学生の興味を引くという点では改善の余地はあると思います。
GUIの画面を作るだけなら、OSが豊富なAPIを提供してくれるのでたいして難しくないですね。ただ、一般的なデスクトップアプリケーションの作法なんかは勉強しないといけないですね。データの読み書きをどういうタイミングでするかとか、そのデータはどういうフォーマットにするかとか、標準的なメニューの構成と振る舞いとか。あとレイアウトの基本とか。
あるテキストボックスに何らかの文字が入力されていなければボタンを押しても意味がないという場合に、入力されるまでボタンをディスエーブルにしておくなんていうのは、普段GUIのアプリを作っている人には当たり前のことかもしれませんが、はじめは教わらないと分からない人も多いと思います。
GUIプログラミングは、イベントドリブンプログラミングとなり、演習用プログラムの逐次処理とは異なるので、そういう観点では教える価値があるのではないでしょうか。
>GUIプログラミングは、イベントドリブンプログラミングとなり、>演習用プログラムの逐次処理とは異なるので、そういう観点では教える価値があるのではないでしょうか。
イベントドリブンといいつつも、GUIは基本がシングルスレッド且つ同期処理なので、イベントドリブン自体はそんなに難しいとは思わないかな。しかし目的の動作を実現するために、膨大なAPIのどれとどれを組み合わせる必要があるのかとか、その時の落とし穴とかを調べるのがめんどい。
そういう意味では高い丸暗記&コピペ能力が求められるので、一般的なプログラミング能力とは異なる素質が必要だとは言えるかも知れない。
(そしてGUIから入った人の中には、丸暗記&コピペ能力『だけ』は非常に高いけれどそれ以外がまるでダメという人もいたりするから厄介だ。そういう人はなまじ見た目が派手なデモを作るのには高い能力を発揮するので、上司には非常に受けがいい。)
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
弘法筆を選ばず、アレゲはキーボードを選ぶ -- アレゲ研究家
近ごろの若者はかわいそう (スコア:3, 興味深い)
少年が自分で作ってみることのできるプログラムと,
物心つく前から当たり前のように触れてきているプログラムとの差が,
あまりに大きすぎる気がします。
これじゃ,作ってみようという気持ちになれないんじゃないかな……。
Re: (スコア:0)
GUIが当たり前の人がプログラミングを(自発的に)学習しようと思う理由なんてゲームを作りたいとかその辺のGUIゴリゴリ扱うものだと思いますが、実際にプログラミングの勉強を始めてみればやってることはわけのわからないコマンドを打ち込んでるだけ。いつまでたってもウィンドウの一枚も出てこない。それでいつの間にか飽きてしまうなんて人が多いのではないでしょうか?(私の周りに数人います)
CLIが当たり前の時代の人にとってはCLIのプログラミングが普通ですから違和感を感じないのでしょうが。
GUIみたいに「とっても高度なことやってるわりにわからないと実感しづらい」ことが増えている気がします。
ところで、CPUの動作が目で追えた時代があったと聞いたことがありますが、本当なんですかね?正直信じられないです(@21歳学生)
Re:近ごろの若者はかわいそう (スコア:3, 興味深い)
大学の情報工学科でプログラミングを教えています。こういう学科なのでプログラミングに関連する講義や
実習はそれなりに充実していますが、GUIを伴うプログラムの作成を教えている科目は一つもありません。
現在、学科のカリキュラム委員会で講義のリニューアルを検討しているのですが、他に教えるべきことが
沢山あるため、GUIの構成法などについてはいまのところ議題にあがっていません。これはうちにUI関連の
研究者が一人もいないためで、もしかすると他の大学ではもっと現代的なプログラム作成をカリキュラムに
取り入れているのかも知れませんが。
そういう私もGUIの作成経験なんてSmalltalkやJavaでちょっとしたおもちゃプログラムを書いたくらいしか
ありません。普段はMacで仕事していますが、30インチディスプレイのほとんどをターミナルエミュレータが
占めている状態です。研究関連のプログラムは昔からのコマンドラインで十分ですしね。まあ、オープンキャン
パス等で人目を引くデモができないのは何とかしたいところですが。
そのようなわけで、教える側がCUIに過剰適応(?)してしまっているせいか、なかなかGUIまで手が回らないのが
現状です。学生の興味を引くという点では改善の余地はあると思います。
Re:近ごろの若者はかわいそう (スコア:1)
GUIの画面を作るだけなら、OSが豊富なAPIを提供してくれるのでたいして難しくないですね。
ただ、一般的なデスクトップアプリケーションの作法なんかは勉強しないといけないですね。
データの読み書きをどういうタイミングでするかとか、そのデータはどういうフォーマットにするかとか、標準的なメニューの構成と振る舞いとか。あとレイアウトの基本とか。
あるテキストボックスに何らかの文字が入力されていなければボタンを押しても意味がないという場合に、入力されるまでボタンをディスエーブルにしておくなんていうのは、普段GUIのアプリを作っている人には当たり前のことかもしれませんが、はじめは教わらないと分からない人も多いと思います。
Re:近ごろの若者はかわいそう (スコア:1, 参考になる)
GUIプログラミングは、イベントドリブンプログラミングとなり、演習用プログラムの逐次処理とは異なるので、そういう観点では教える価値があるのではないでしょうか。
Re:近ごろの若者はかわいそう (スコア:1)
自分の知らないところで勝手にいろんなイベントが動いている。
どんなイベントが起きているのかを知っていればそれらを捕まえてそれなりの処理をさせることができるのですが、自分の知識では無理でネットで探してそのコードをコピペ。
それでもなんとなくやりたいことはできたからいいか、と。
で、よくわかっていないので意外なところで予想外の動作が起こっていてデバッグに苦労する。
VB.NETが無料で入手可能なので使ってみた。
ケアレスミスをかなり指摘してくれるようになっていてとてもありがたい。
というか、自分の不注意さを実感した。
プログラマーの質の低下をツールで補っているのか、便利ツールが質の低下をまねていてるのか。
私みたいなアマチュアにとってはありがたいツールですが。
Visualなんちゃらならコンポーネントを貼り付ける程度のGUIならなんてことないですが、問題はその先ですね。
Re:近ごろの若者はかわいそう (スコア:1, 興味深い)
>GUIプログラミングは、イベントドリブンプログラミングとなり、
>演習用プログラムの逐次処理とは異なるので、そういう観点では教える価値があるのではないでしょうか。
イベントドリブンといいつつも、GUIは基本がシングルスレッド且つ同期処理なので、
イベントドリブン自体はそんなに難しいとは思わないかな。しかし目的の動作を実現
するために、膨大なAPIのどれとどれを組み合わせる必要があるのかとか、その時の
落とし穴とかを調べるのがめんどい。
そういう意味では高い丸暗記&コピペ能力が求められるので、一般的なプログラミング
能力とは異なる素質が必要だとは言えるかも知れない。
(そしてGUIから入った人の中には、丸暗記&コピペ能力『だけ』は非常に高い
けれどそれ以外がまるでダメという人もいたりするから厄介だ。そういう人は
なまじ見た目が派手なデモを作るのには高い能力を発揮するので、上司には
非常に受けがいい。)