Archive for the ‘日記’ Category

出さないで良い課題は最初から出さない

火曜日, 4月 21st, 2015

m_201504210439495535d495a47a3 m_201504210442125535d524ca5f8

教員の立場になって大勢の学生を見て愕然としたのが「課題を出さない学生の多さ」。昔からなのか私が教員なってからなのか分かりませんが、多分、昔からそういう学生はいたんでしょう。ただし、昔はそういう学生に対して「不可」にするだけで良かったのが、そういう学生へのフォローをするのが当然(それも教育の範疇)という方向に流れ過ぎているのかなーと。いろんな人が居ていいんですが、できない学生に対して単位出す(ように頑張らせる)のはどうなのかなー。学生にも面と向かって言ってますが、大学卒業すること自体にはそれほど価値ないです。その過程や結果を活かして何するか、が大事なわけで。

加えて私自身の無理矢理やらせるというのは性に合わないこともあって、課題出さないとか欠席するとかに対して1回ぐらいは突っつくかもですが、基本的には「来る者拒まず去る者追わず」。年次指導とか研究室学生とかだともう少し動くけど、やっぱりデフォルトは「学生からの能動的なアクションへの対応」かなぁ。能動的じゃないところに無理矢理やらせても効果が薄いだろうというのもあるし。

ということで、個人的には「興味を持てるような課題」を用意するのが精一杯の努力のつもりです。面白くない課題だというなら、ごめんなさい。精進します。

課題の工夫しどころ?

土曜日, 4月 18th, 2015

またまた木曜日のお話。

プログラミング1の聴講(&サポート)しようと参加してたのですが、1週目は無しでした。あれ、そうなの。学科カリキュラム的にはプログラム1とソフトウェア演習1で1セットな授業という認識だったんですが、いつからか割と独立した講義になってるらしい。1週目はプリンタの使い方とか含めてソフトウェア演習だけを2コマ連続でやるというのがここ最近(?)の通例らしいです。

それはそれで良いと思うんですが、ブラウザの使い方からあれこれやるってのも「?」な気が。と思ったら、「あれこれwebページ検索したり閲覧してる人?」と聞いても殆ど手を上げず。(質問の仕方が抽象的すぎる気もするけど)え、そうなの?? そうだとしてもスマートフォンなり何かで検索したことはあるだろうから、「演習としてあーしてこーして」ということをするよりは(達成させたい目標に沿った)課題を与えた方が良さそうな気はするな。ま、ブラウザの使い方とかはその日で終わって、2週目からはUnix演習に入るっぽいですが。その割に2年次になってもUnix環境/操作に慣れてない学生多いんだよな。あれは何故なんだろう。演習内容の問題?課題の問題?それ以外?


高校にも情報」導入されて、高校教諭だけじゃなく周りの環境含めて熟れてきてるんじゃないのと思ってたのだけど、ざっくり指導要領解説を眺めると「薄く広く」あれこれ取り上げる形になってるのね。「高校生」に教えるなら検索エンジンとかwebサービス/アプリをツールとして使う技術(プログラミング的思考を含む)を教えるだけでも良さそうなんだけど。一応 p.5 には

(1) 情報活用の実践力について
課題や目的に応じて情報手段を適切に活用することを含めて、必要な情報を主体的に収集・判断・表現・処理・想像し、受け手の状況などを踏まえて発信・伝達できる能力

と書かれてて「そうだよな」と思うのだけど、それ以外にもあれこれ掲げ過ぎてるという印象。バス型とかそんな話必要なんだろうか。

PD2の当面の目標はツールとして発想法を体験すること

金曜日, 4月 17th, 2015

プロジェクトデザイン2の1回目が昨日終わりました。目標としていることは設計という意味でのデザインする力を身につけることで、その元となる「素材」をまずは洗い出す力(=発想法)を身につけようと。その導入として1つ目のツールゼロ秒思考の赤羽さんが提唱する所のメモ書きをやってました。去年から導入していますが、これ、毎日1枚でも良いから継続して続けると大分違いが出てくるはずなので去年の受講生も思い出して今からでもやると良いでしょう。

シンプルにその良さを例えると、「何度も書いてるうちに同じことを書いてることに気づく、そのうちそのことは書くまでもないぐらい体系化された知識として身につき、俯瞰できるレベルが上がる」といったところ。四則演算とか考えるまでもないぐらい使えるのと同様に、頭に思い描いている想像していることを記号化する練習すると、そういう効果が得られますよ、といったところ。赤羽さんの主張とは違いかもしれませんが、私の解釈ではそうです。

どんなテストで失敗したのか分からないと改善しづらい

水曜日, 4月 15th, 2015

もともと教育を想定したサイトではないので仕方ないかもしれないですが、paizaさんのお話。paizaさんは「paizaは、コードを書いて書類選考なしで面接に進める、まったく新しいカタチの転職サービスです。」なので、あくまでも求人を想定したコーディング力評価が趣旨とのこと。触ってみて感じた面白い点は、事前に明確に確認できる単体テストは2件程度、事前ににサイト上で単体テストできるのは1件程度という点。それ以外のテストは明確な入出力が用意されませんが、提出されたコードに対して10個程度のテストが自動で評価され、採点されます。これらの明示的に出て来ないテストについては「文章で書かれてる仕様から読み解く」形で対応する必要があります。

それはそれで良いし、用意されてるお題について複数のテストをやって点数付けするのも良いのですが、失敗した後で良いからどういうテストで失敗したのか教えて欲しいな、と。求人目的であっても「その人のスキル上がることが期待できる(よね?)」なら、失敗したテストを採点後に通知することには意味があると思うのだけど、何故やらないのだろう。

この間書いた盤面ゲームに昨晩トライしてみた所、中身は「リバーシ作れ」。う、めんどくさい。あれこれ試行錯誤しながらやった結果、


<平均>
問題集計 受験者数: 1,193人
正解率: 78.1% 平均回答時間: 101分33秒 平均スコア: 73.04点

<當間スコア>
受験結果 受験言語: Python 回答時間: 155分29秒 獲得ランク: Cランク スコア: 28点

という悲しい結果に。テスト10件中通ったのは4件のみ。しくしく。どんなテストで失敗したんだろう。という思いと、制限時間付きでリバーシ作らせるなよという思いで半々です。しくしく。綺麗に書くとかあまり考えず、取りあえず動けば良いかの方針で書いた結果、Pythonで約140行程度で書けました。例外処理はあちこちにでてきますが、ルール自体はシンプルなゲームだし。

盤面を「黒をB、白をW、開いてるマスをN」で表現してるとすると、「裏返すかどうかを判定したい方向の盤面データを取得して、置いた石がBなら「BW+B*」で裏返すかどうかを判定」とかしてみたんだけど、微妙にスマートじゃない気もするし、何か想定外の誤判定してしまいそうな気もする。けど、明示的に用意されてたデータでは正しく処理できたんだよな。

ということで気持ち悪いので失敗したテスト教えてください〜。というリクエストは送ってみました。多分教えてくれないだろうなとは思いつつ。

tnalさんと同じ40歳のエンジニア14人が正解している問題です。

月曜日, 4月 13th, 2015

初心者でもほぼ無料でPythonを勉強できるコンテンツ10選で見かけたpaizaって、コードのテストまでしてくれる問題集サービスだったのね。前に名前だけ聞いたことあって放置してましたが知りませんでした。

あまりPython歴長くないですが、ググりながらぽちぽち試してたらランクBに。それは良いとして

A003:盤面ゲーム
(想定回答時間 120 分、制限時間 6 時間)
受験者数: 1,185人 正解率: 78.1% 平均回答時間: 101分40秒 平均スコア: 73.02点

は時間的にちょっとめげる。CodeIQとは違って問題チラ見もできず。いや、点数気にしないなら(覗く=問題確認含めた回答時間開始になって時間カウントされる)覗けば良いんですが。あと Python 2.x 系なのもちょっと残念か。

ということで、(問題さえ準備できるなら)Jenkins + Python 3.xなテスト環境作れば良いんですかね。いくつかググった感じでは「nose (単体テストツール), unittest-xml-reporting (Jenkinsとの連携用), coverage (カバレッジ計測?)」あたりが鉄板らしい。

と、調べるだけの簡単なお仕事。学生にwebサービス構築の勉強兼ねて準備させよっかなー。

授業開始

土曜日, 4月 11th, 2015

m_201504101009485527a16cb88ca m_2015041009394155279a5d1cfa4 m_2015041009461455279be6e7f20 m_2015041009503855279cee1c772

学科システムのメンテが入ってたこともあって一日遅れの話になりますが、新入生イベントや授業仮登録が一段落して前期の授業が開始。自分担当の範囲では2年時対象の実験1と、次年度に向けての1年次対象プログラミング1(やソフトウェア演習1)あたりが関係してくるか。

実験1は全助教が関わっていて週毎にテーマが代わり、ほぼ毎週レポートが課されるために大変といえば大変。でもそれだけ手や頭を動かすので楽しめる人は楽しめるだろうとも思います。私が学生として受講してた時も手を動かすのが面白かったし。

1週目のテーマはスクリプトプログラミングという名目で、中身はシェルスクリプト。どちらかというとログファイルを対象として grep, cut, sed とかする過程を見せることで「便利なコマンド」や「正規表現」体験させることと、「(再現しやすくするために)グラフ作成は手動ではなくて自動化」しようという意図で伝えてます。

具体的な課題は「Apacheサーバのaccess_logから1日あたりのアクセス数カウントしてみよう」、「error_logからerrorを含む行だけを抜き出してみよう」といったところ。オマケとしてnakarx/ieで収集してるツイートから mention 関係を Graphviz で可視化してみる、なんてのもデモしながら(解説しながらコーディング)やってみたり。どちらかというと「書けるように」の前に「読めるように」、の精神で。コード例も考え方の例も学生にはテキスト化されたものを渡してあるので、後はそれを付き合わせて解読してね、と。そんなこんな感じでやってみてます。

あまりにも疲れたので晩ご飯は外食で。少し回復〜。

エンターテイメントを支援する

木曜日, 4月 9th, 2015

m_2015040909491355264b1911c6a

週ゼミはもうちょいじっくり話したかったけどゲームAIな講演会入れてたこともあって手短に終わり。思ってた以上に泥臭い所もちゃんとやってて面白かったのだけど、明日の実験準備もあって終了後に懇談会やれないとか、ちょっとあちこち消化不良か。

明日企業説明会をするらしく、今日はついでに事例紹介をということで来られてたのですが、企業説明会では全く出て来ないであろう話が豊富で楽しかったです。(作成する方の)ゲームクラスタとか人工知能に興味ある学生あたりが来るかなと思ってたんですが予想以上に少なく。AIに興味あるって言ってた新入生もちらほらいたんだけど、ちょっと残念。ま、告知タイミング&方法にも問題あったのは確かだし、仕方ないか。

発表資料や関連リンクは一通りここにあるのでそこを見ると良いでしょう。ざっくりいうとタイトル通り「GAを使ってパズル問題自動生成してるよ」なんですが、人間にとって良質の問題を作るための泥臭い努力が随所に見られました。交叉/突然変異時の例外処理とか、難易度の妥当性を確認するために手筋を体系化してチェックしてるだけじゃなく、実際に人間に解いてもらってどのぐらいスコアが適切かとか。GAでパズル作るというだけなら似た話はいくらでもあります。例えば昔の実験3/4で「GAで数独問題作成する」とかやってる学生もいました。ただここまで本気で取り組んでる例は少ないんじゃないかな。

一方で、「作成する人の支援」とか「解く人への支援」はそこまであまり手を入れてはいないっぽい(やってはいるけど、ぐらい)。勝手な個人的な考えですが、エンターテイメントは「どう人間を楽しませるか(e.g., どうやったら手筋に気付くか、どうやったら教えすぎずに済むか、どうやれば共に向上していけるか)」が一番面白い部分だろうと思ってます。ちなみにここで言うエンターテイメントは広義で使ってて、スポーツでもゲームでも読書でも勉強でも、楽しんでやろうとする物事全てを想定してます。いつかはAIが勝つならAIに楽しませてもらえば良いじゃない(言い過ぎ?)。

熱量が必要な会議

水曜日, 4月 8th, 2015

m_201504080710555524d47f880d8

今日の午後は丸々会議で、午前中はその準備という。実験準備したいのだけどまだやってないなー。

あれこれ会議やその準備に時間かかってるのは「編入生の単位認定」があるからで、過去に前例がある大学/短大/高専あたりからの編入学だとあまり問題にならないのだけど、全くの新規の大学だったり、久しぶりに来た所だとシラバス大分変わってて科目割り当てし直しが必要だとかで結構なコストが割り割かれます。それが1教員で済むわけでもなく、割り当て結果について妥当かどうかを学科会議で全教員がチェックするので「1科目毎にチェック」とかしてると報告するだけでも時間かかるし、怪しい箇所は突っ込み来るわけで、追加/変更/削除とあれこれ出てきました。チェック漏れもあるので助かります。ということで単位認定は適切にやってますよというお話。多めに単位認定したかったのだけど結果的には従来通りの単位数になってるかも。

昨日の授業登録時点で渡してた内容から大きく変わった学生もいるので、早めに学生へ連絡。頑張って登録調整期間中に調整対応してください。

新入生歓迎LT大会 2015が始動しはじめたらしい。4/25(土)なのね。

P.S.
明日は(講演会) AIのパズルへの応用紹介があるようです。

授業登録システムが初めて導入された年度はほぼ全員が登録できなかった

火曜日, 4月 7th, 2015

m_201504070959195523aa772db78 m_201504071012585523adaa7091d

  • (仕事できる場所で)ピザ食べたい、Mou行くか→定休日
  • そういや近くにカフェできてるっぽいな→家過ぎてやってるかどうかも分からずスルー
  • この道は方角的に330だから平日やってるっぽい喫茶店入って見るか→営業中のノボリ出しつつ準備中
  • 久しぶりに卓行くか→定休日

ということでpippiに落ち着きました。美味しくて満足できたんだけど、何か違う。。

琉大で授業登録システムが稼働したのは2005年度。たまたまこの年度の年次指導だったということもあって思い出深いのですが、システムにアクセスしても繋がらないまま予定していた時間が過ぎてしまうという自体に。後で分かった話ですが、作った人(企業なのか学生なのかは知らない)は「ぽちぽち手動での動作確認」ぐらいしかしてなくて、同時でないにしても学部生だけで総数5000人ぐらい?がアクセスすることを想定した負荷テストをしてなかったというオチ。あらら。結局その時は「学内アクセスに限定(多分、当時はまだryukyu-apが無くて、他学部はPC教室でのみ入力だったかも)」みたいな形で対応になったのかも。具体的な対応策はうろ覚えですがひたすら苦労させられたという記憶だけは根強く残ってます。正直あの時の学生は変な所で苦労させられて大変だっただろうな。

システムがどういう風に運営保守されてるか分かりませんが、今年も結構なダメダメ具合だったらしい。「らしい」というのは私自身が昨晩使ってた分には「ちょっとレスポンス遅いな」ぐらいだったんですが、ユーザによっては既にアクセスできなかったとか、今朝の時点では11時頃まで復旧できてなかったとかで状況が良く分からないから。いや聞けば良いんだろうけど、このタイミングで聞きにいっても邪魔なだけだし。スペック追加した環境を用意したのか、復旧後は「大分レスポンス待たされるけど一応繋がる?」ぐらいにはなってたっぽい。いや、この調子だとまた落ちるんじゃないかとも思うんですが。

そんなこんなで負荷テスト/リカバリテスト/スケールアウト(じゃなくても良いけど負荷分散)できるかは重要だね、というお話。(だったのか)

第三者が再現しやすいマニュアル

月曜日, 4月 6th, 2015

毎年恒例のインストール大会が午後過ぎからありました。午前は一般的な懇談会で、昼過ぎは(補習必要かのチェック)数学プレースメントテストがあって、そこからPC受け取りしてからなので始まったのは2時過ぎてたんじゃないかと。私が初めて年次指導担当した頃は教員が主体でやってたはずですが、暫くしてからサーバ班and/orシステム管理チームが、そしてここ最近はそことも離れて「やりたい人(というか長田研主催っぽい)」がやる感じにシフトしつつあるらしい。それでも綺麗にマニュアル化するところまでやってくれてるので、トラブル等何かあった時のアフターケアしやすいのがGood。毎年アップデートが必要だけど、それ以上の効果が出ているんじゃないかと。今回インストール大会を覗きに行った雰囲気では比較的スムーズに進んでるようだったし、ボランティアで手伝いに来てる先輩方も多数いたので任せっきりにしちゃいました。

という具合に綺麗なマニュアルというのは「第三者が再現できるか否か」というのが一つの目安。マニュアルの目的にもよるけど、卒業研究(やその前にやる学生実験レポート)等で求める報告書も、「目的を示せ」「手順を示せ」「結果を示せ」というのはこのぐらい第三者が見ても分かるものを要求しているつもりです。どうも「レポート」とカタカナ語で書くと「感想文」と勘違いしてる人もいるっぽいのが気になるので、個人的には「報告書or論文」と言い直すことが増えつつあるかな。研究ノートでは綺麗に整理までされてなくても良いけども、それなりに再現できるぐらいのメモ書きにはなってて欲しいです。理想論だけどね。

さて、そろそろ実験準備せねば。

あ、(講演会) AIのパズルへの応用紹介なんてのがあるらしいです。正直どういう人なのかは良く分かってないので面白いかどうかは謎ですが、興味ある人は覗いてみてください。