DNCLの論理演算の優先順位
CE研の休憩時間, 佐久間氏いわく 「DNCLの論理演算は仕様書によると優先順位なしで左から結合することになってるんだが, WaPENはどうなってる?」。 え,そうなの? たとえば「false かつ false でない」は 「(false かつ false) でない」になるからtrueにならなくてはいけないということだ。 なんとなく感覚的に「でない」の結合を強くしてしまっていたので,WaPENを修正。
CE研の休憩時間, 佐久間氏いわく 「DNCLの論理演算は仕様書によると優先順位なしで左から結合することになってるんだが, WaPENはどうなってる?」。 え,そうなの? たとえば「false かつ false でない」は 「(false かつ false) でない」になるからtrueにならなくてはいけないということだ。 なんとなく感覚的に「でない」の結合を強くしてしまっていたので,WaPENを修正。
情報処理学会全国大会の2日目。 今回は大会自体のテーマが教育なので, イベント企画をはしごするだけでもじゅうぶん面白い気がする。
パネルの最後に少し発言をさせてもらったが, 緊張してうまくしゃべれなかったので簡単にまとめてみる。
入試でやたらと難問を追求する方に走るのでなく, 押さえるべき要点を明確にする方向でいってほしい。 たぶん数学は「差」がつくようにということや, 出題自体の楽しさに引っ張られて難問が当たり前になってしまった。 生徒自身の思考力を超えて解答を書かせるために, 暗記に偏重(変調?)した指導や学習が広まってしまったように思う。 しかし,情報の入試でそのような難問を追い求めることにメリットはあるだろうか。 最低限のことを押さえることを要求するということなら, 今あちこちで行われている先進的な取り組みもその上の積み上げということで持続できる気がする。
一方で,Officeソフトの正しい使い方もどこかできちんと教えなくてはいけないとも思っている。 パソコンでの作業の多くがOfficeソフトであるという人は少なくはないように思うからだ。 本当はファイル管理をどうするかってこともやりたい気がするんだけど, でも正解なんてないしなあ…私もいまだに模索してるし。 ファイル管理をどうにかしないと困っちゃうってくらい, 生徒が作り散らかす状況ができたらいいなあ。
新井紀子氏の講演を聞きつつぼんやり考える。 『AI vs …』はまだ半分しか読めていない。
AIで何ができるかできないかということはわからないのだけど, 生徒が「読めてない」現実はあると思っている。 たとえばプログラミングの実習で,うまくできたかどうかは 彼ら自身が実行結果を確認することで自ら判定できると思っていた。 しかし実は生徒は結果が正しいかどうかが確かめられていない。
タートルグラフィックで正三角形を描こうとして60°回転すると失敗するのは児童自身がわかる。 しかしたとえば「整数を1つ入力してその約数を…」という課題に対し,
DEFINT A,BINPUT AINPUT Bみたいなことをやってしまう生徒が少なからずいる。 その1つ前の例題で,整数を2つ入力してどうのこうのというのをやったので, それと同じことをやればいいと思って入力を2つ書いてしまうのではないかと想像する。 結局パターンマッチングで処理してるのか,と思うとなんだかむなしくもなる。
愛用しているPebbleの時計バンドが切れた。 シリコンのやつなので,こういう日がくるかもとは思っていたが…。 そんなわけで近いうちに買いに行こう。 しばらくは前に使ってたソーラーの電波時計使うけど, ケータイからの通知が来る便利さは手放せない。
あるクラスで時間が1時間だけ余ったので, PenFlowchartを触ってもらって(授業はずっとWaPENで行っていた), 簡単なアンケートに答えてもらった。 たとえばPENやPenFlowchartについている「変数表示画面」については, あった方がいいという意見もなくてもかまわないという意見があり, 中には実行速度調整と抱き合わせで実装してほしいという声もあった。 何人かはPenFlowchartのフローチャート画面にある「カット&ペースト」を 探し当てて,これはWaPENにも必要だと強弁している。 予想した以上に,考えさせられる回答が多くあった。 さて,どこから手を付けようかな。
変数表示画面については,変数全部を表示するのは面倒なので, デバッガの「ウォッチ」みたいな感じで表示する変数を明示的に 指定させるのがいいんじゃないかと考えている。 また,配列については配列の表示と同じ形式でいいだろうとか。 でも,そもそも画面のどこに表示しようか。 現状でもフローチャートまでで精一杯なのに。
小学校のプログラミングどうのこうのの話になると, そんなことよりも算数や国語が…というような話をよく聞くが, そういう二項対立で考えるものではないように思う。 我々が小学校を卒業した後でコンピュータを使うようになってから 算数や国語について「後天的に」取得したものがあるのだが, それをどこでどういう風に獲得させるかを私は考えたい。 我々が「後天的に」身につけたそういったものを12年間も封じさせられて, 我々がやったのと同じようにいつか「発見」しなくてはいけないのかと思うと, なんだかガッカリする (それに甘んじるほど彼ら自身はのんきではないとは思うが)。
ということでイベントがあるらしい。 こちらは卒業式があるので行けないのだけど。 ビスケットを初めて知ったのは,PENを知ったのと同じときで, 2006年3月に行われた教育用プログラミング言語に関する ワークショップ だった。
思うところあって,変数の管理をすっきりさせつつある。 というのも,関数を定義して呼び出せるようにするために, ローカル変数とグローバル変数の管理をすることになりそうなので, 今のうちに扱いを簡単にしておきたいということなのだ。 多次元配列は結局配列の入れ子で実現することにしたが, 変数宣言不要モードで次元の違う配列呼び出しとかあったらどうしようとか, そういった面倒なところで考え込んでしまって作業が進まない。 変数宣言を必須にすれば話は簡単なのだけど, 今年度の教員免許更新講習で変数宣言不要モードのありがたさを知ってしまったからなあ。 次元の違う呼び出し・代入はエラーにしてやってもいいような気はしているのだけど。
授業で使っていて, 配列にまとめて値を代入するときのカッコとかが全角になってエラーになるとか, そういうのがたくさん発生しそうな気がしたので, そのあたりを広く解釈することにした。 あと,読点の有無もできるだけこだわらないことにした。 これでつまらないエラーはかなり減るだろうと思う。
『AI vs 教科書が読めない子どもたち』がまだ読めないままなのだが, ネットではこのテーマに関するいろんな話が飛び交っている。 前に何度か「解答読解」について書いたけど, 問題が読めない者が解答読めるわけがないことを思うと, より一層それが悪いことに思えてきた。