不定期戯言

戻る

« | 2021 | Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec | »

古いページ

2021.06.09 (Wed)

PyPENをDNCL2にもっと寄せるか

・Pythonではa<b<cのように比較演算子を続けることができる。Cでもエラーにはならないが,それはa<bかつb<cとは違う意味になるので初心者には厳しい。とりあえずPyPENもそれに合わせた変更ができることは確認したが,これをリリースするかどうかは悩みどころだなあ。

・今のところ代入は「←」で比較は「=」を標準にしているが,それぞれ「=」や「==」でも書けるようになっている。どちらを標準にするか,あるいは前者を廃止して後者のみにしてもいいのではないかと言ったことで悩んでいる。というのは,共通テストのサンプル問題が後者になっていて,DNCLの後継(仮称DNCL2)はそちらになるのではないかという話があるからだ。今まで作ったものを書き換えなくてはいけなくなるわけだが,それでも変更するメリットがあるのかもしれない。これはかなり大きい変更になるからオプション扱いは難しい…いや,パーサを2つ用意しておいて使い分ければいいのか?それはそれで動作確認が大変だが…。

コメント(0)

コメント投稿

日本語の文字が入っていないものは受け付けません。URL欄は使わないでください。

Name:
URL (NEVER USE):
Comments:

トラックバック(0)

トラックバック用URL: https://watayan.net/blosxom.cgi/informatics/202106090001.trackback

2021.05.25 (Tue)

PyPENで「〜個の〜」の副産物

・某解説動画を作っていたら,代入に「=」を使うとエラーになる部分があった。てっきり「代入の定義から間違って削っちゃったかな」と思って「←」に変更してやり過ごしたのだが,調べてみるとそういう事実はない。エラーになるのは「a=9個の0」というように「〜個の〜」を使っているところで,結局「〜個の〜」を演算子扱いしていることにより,「=」の結合規則(nonassoc)の影響を受けてしまったということらしい。「←」は演算子扱いしていないのでその影響は受けない。

・「=」などの比較演算子をnonassocにしているのは,たとえば「a==b==c」が「a==(b==c)」と解釈されて,「エラーにならないけど思ったのと違う挙動をする(Cっぽい感じ)」ことを避けて「エラーにする」ためだ。しかしPythonでは「a<b<c」のような比較が認められているのだから,それに合わせて「a==b==c」を「a==bかつb==c」というように解釈するのも一つの解決になる。そういう感じの比較クラスを作ってしまえば解決するような気がするのだが,どうしたものか。DNCL2ではこのあたりどういう扱いになるんだろう。

・そもそもは「=」が代入にも比較にも使えるとしてしまったことに原因があるので,比較は「==」でないとダメ,とするのもまた一つの解決になる。でもそれだとDNCL2と挙動が違ってしまう。

・もう一つ解決方法があって,「=」などの比較演算子よりも「〜個の〜」の優先順位を上げて,「a=4個のx=y」のような比較演算を使うときは「a=4個の(x=y)」というようにカッコを強制するというものだ。それなりに悪くない気はするが,「a=4個の1+2」にはカッコがいらないのだからちょっと気分が悪い。

コメント(0)

コメント投稿

日本語の文字が入っていないものは受け付けません。URL欄は使わないでください。

Name:
URL (NEVER USE):
Comments:

トラックバック(0)

トラックバック用URL: https://watayan.net/blosxom.cgi/informatics/202105250001.trackback

2021.05.22 (Sat)

高等学校「情報」実践事例集

・文科省から出された表題の事例集の中から,プログラミングに関するものを紹介する動画を作って再生リストにしてみた。例によって一発撮りで細かい編集はしていないので,動画としての出来はよろしくないが,それはそれ。

コメント(0)

コメント投稿

日本語の文字が入っていないものは受け付けません。URL欄は使わないでください。

Name:
URL (NEVER USE):
Comments:

トラックバック(0)

トラックバック用URL: https://watayan.net/blosxom.cgi/informatics/202105220001.trackback

2021.05.19 (Wed)

PyPEN大改造

・文科省のサイトで高等学校「情報」実践事例集が公開されたので,プログラミングのところをPyPENで実装してみようと思った。元ネタがPyPENのものは問題ないのだが,ライフゲームについてはなぜかうまくいかない。これは明らかにPyPENのバグなわけで…しかも先日気になっていたところと同じところに根がありそう。そんなわけで間に合わせ的にやってる前処理関数を全部廃止して,その代わりにマメにするべき処理をスタックに積むようにしてみた。これでだいぶ見通しは良くなったはず。なお,ライフゲームのプログラムはこんな感じ。たぶん実践事例集のプログラムは盤面初期化のときのhとwが逆になってる。

コメント(0)

コメントの受付は終了しました。

トラックバック(0)

トラックバックの受付は終了しました。

2021.04.11 (Sun)

今年度の環境

・LibreOfficeは7系が使いたいということで,ちょっと気が早いけど生徒の端末はBullseyeにした。いろいろ変わったけどまあそれも新鮮だ。しかし学校全体での動きもあるので,いくらかの部分はそれに合わせていこうと思う。Googleのアカウントを生徒に与えるということなので,Googleドキュメントをいくらか使っていければと思っている。それに合わせて授業スライドもGoogleスライドを使ってみることにした。過去の資産がそのまま使えないのは痛いが,どうせ毎年作り直してるんだし。moodleは例年の通り使っていく。

コメント(0)

コメントの受付は終了しました。

トラックバック(0)

トラックバックの受付は終了しました。

2021.04.04 (Sun)

《整数》個の《値》

・車の6ヶ月点検を待っている間に,PyPENに配列の初期化を導入しようと考えていた。「〜を〜で初期化する」としたいのだけど,配列の長さが指定できない。「〜個の〜で初期化する」として作りかけたのだけど,それだったらいっそ「〜個の〜」で配列を生成して,それを代入すればいいのではないかと考えた。そんなわけで実装してみた。

・しかし一つ問題がある。「a←10個のrandom()」とすると,全部同じ値になってしまうのだ。これを解決するには,あらゆる構文について値の評価をもっときちんと再帰的にやらなくてはいけない(はず)。それは大改造になるので,すぐには手をつけられない。しかしこれを直せば,いろんなことが簡単になるのだと想像する。

コメント(0)

コメントの受付は終了しました。

トラックバック(0)

トラックバックの受付は終了しました。

2021.03.19 (Fri)

情報処理学会全国大会

・一般セションでの発表は初めてだったりする。「Webブラウザ上のプログラミング学習環境PyPENを用いた授業の提案」ということで,資料はいつものところ。zoomの扱いには慣れていたつもりだったのだが,カメラをONにするのを忘れて講演に入ってしまったのが悔やまれる。

・やはり人前で発表すると,アイディアとかがもらえるのでありがたい。小さい課題もあれば大きい課題もあって,実現に近づけるのが楽しみである。私自身も他の人の発表に何件かコメントさせてもらったが,そういうものになっていたらいいな。

コメント(0)

コメントの受付は終了しました。

トラックバック(0)

トラックバックの受付は終了しました。

2021.03.13 (Sat)

CE159の発表を聞きながら

・wPENではブレークポイントを実装しているというが,行番号とかのところでは何も起きない。どうやってるんだろうと質問したら,ブレークポイントという命令を入れているのだという。なるほど,それはいいアイディアだ。そんなわけでPyPENにも「一時停止する」という命令を実装した。

コメント(0)

コメントの受付は終了しました。

トラックバック(0)

トラックバックの受付は終了しました。

2021.03.05 (Fri)

PyPENの改良(何度目だ)

・勤務校の講師のI氏から「《値》のところをカーソルで移動できるようにしたらどうか」と提案があった。なるほど,それができると生徒が間違ったところを消すことも少なくなるだろうし,キーボードでの操作にも慣れてくれるような気がする。そんなわけでCtrl+左右で移動できるようにしてみた。

・I氏は「提案するばかりで…」と言うのだが,そのおかげでいろいろ改良ができている。私は彼女を共同開発者だと考えている(一方的にだが)。

・ついでにループの「繰り返す」がない構文を標準にしてみた。というのは共通テストの試作問題が「増やしながら:」になっていたことに合わせてということでもあり,学年末テストでプログラムを手書きしていて面倒だと思ったからでもある。

コメント(0)

コメントの受付は終了しました。

トラックバック(0)

トラックバックの受付は終了しました。

2021.02.27 (Sat)

PyPENでWebフォント

・ふと思うところあって,M+フォントのスペース文字に小さい点を入れたものをWebフォント化してPyPENに導入してみた。どういう表示がわかりやすいのかイマイチ自信がないのだけど。

・「思うところ」というのはもなかこみフォントのことを思い出す機会があって,空白文字の個数をこれで解決すればいいかなと思った次第。全角空白をまだいじる必要があるかなとは思うけど,とりあえず公開。

コメント(0)

コメントの受付は終了しました。

トラックバック(0)

トラックバックの受付は終了しました。

古いページ