2012年11月30日金曜日

2012/11/29: 授業準備・実施・処理(da2, FK)

●授業準備・実施・処理(da2, FK)
・da2準備
結局、補足スライド資料を作った。直接アドレス指定法およびハッシュ法の考え方のごく基本的な部分だけを扱い、ハッシュ法が具体的にどのような方法かについてはの説明は3クラス共通のスライド資料のみとした。
用意した資料のうち学生に配布するものを授業用Webページに掲載した。
小テスト問題の誤りについて助手のK先生から指摘があったので、他の先生方に連絡した。

・da2実施
4限目に小テストおよび講義を実施した。補足スライド資料を使ってクイズを出しながら直接アドレス指定法やハッシュ法の話を進めているうちは学生の反応もまぁまぁであったが、補足スライド資料の最後に簡単なハッシュ関数を当てさせるクイズを出したあたりから怪しくなってきた。あとで考えると、何を関数と呼んでいるのかがわからなかったのかもしれない。関数にどのような入力をするとどのような出力があるかを表か何かにして示せばよかったのかもしれない。
3クラス共通スライド資料にはクイズにできそうな部分があまりなかったので、こちらがずっと喋り続けたところ、学生はみな眠そうにしていた。

5限目には演習を実施し、前回の残りを含め学生の解答をチェックした。
全員が時間内に終了した。

・da2処理
演習の得点を集計した。小テストの受験状況に基づいてK'sLifeの出席登録データを修正した。
小テスト答案の確認、小テスト得点および演習得点のExcelファイルへ入力などは未実施

・FK準備
昨日作った小テスト問題を修正し、正解を作成した。
小テスト用紙の印刷は未実施

●進路指導Webサイトの更新
学生の就職活動支援に関する資料を昨日・本日に1点ずつ受け取ったので、これらをWebサイトに掲載した。

●学生への指導
出席不良学生1名に指導し、その記録をK'sLifeに所見として入力した。
これで指導依頼のあった出席不良学生の2名いずれについても対応を完了した。

2012年11月29日木曜日

2012/11/28: 授業実施(gw)、会議

●授業実施(gw)
・gw
結局スライド資料は事前に用意しなかった。授業中にその回のお品書きを書いた程度のスライド1枚を作っただけだった。それでも、前回の残り、文字コードの簡単な説明、Wikiと正規表現の説明、次回から読ませる文献の配布だけでほぼ90分間を使い切ったので、授業としてはこれでよかった。

●学部および研究科の会議
4限目・5限目の時間帯に学部の会議と研究科の会議が続けて開催された。一言しゃべっただけであった。
会議終了後に事務室で歳末たすけあいの募金をしたついでにIs先生・Hさんと少しダベった。確かももいろクローバーZと農家を経済効果について比較検討したような気がする。

●授業準備(da2, FK)
・da2
助手・TAに明日の第10回の授業進行に関する指示をメールで送付した。
先週に続きA先生から依頼された告知をしなければならないので、第10回の資料に告知スライドを入れた。
前々回から、スライド資料のスライド切り替えのときに音を出すことを試している。明日の資料にも音を仕込んだ。
明日のテーマであるハッシュ法の説明の仕方について少し考えたが、やはり自分で補足スライド資料を用意しないと難しいように思う。しかし未準備

・FK
明後日の小テスト問題を用意した。概ねできあがったが、後半の正解をまだ作っていない。正解を作る過程で問題を変えたくなる可能性もあるので、明日中にやってしまわなくてはならない。未完了

●電子錠登録・登録抹消
In先生からの電子錠登録依頼があったので登録処理を行った。ついでに一昨日準備した登録削除処理も行った。
データの整合性チェックに引っかかった登録があったので、原因を調べて、正しいデータで登録しなおした。

●その他
上述の学部会議において、12/10(月)3限目の就職支援行事に参加するよう3年次生を指導するようにという依頼があったので、これについて3年次生にMLを通じて連絡した。
出席不良学生への指導依頼があり、自分の担当する学生は2名が該当していたが、うち1名はすでに修学の意向がないことを明らかにしているので、特に指導しない旨をK'sLifeに所見として入力した。

2012年11月28日水曜日

2012/11/27: 卒研ゼミ、授業準備(基礎2, gw)

●卒研ゼミ
Kくん、Sくんの進捗報告をそれぞれ聴いた。また、システムの動作も見せてもらった。口頭で報告を聴くだけでは気づかないことにも、実際の動作を見ると気づくことがあるので、それはそれでよかったが、この時期にあれこれ言ってもその全てに対応することはできないであろう。
卒論のテンプレートの今年度版をそろそろ用意しなければならない。

●授業準備(基礎2, gw)
・基礎2
CamStudioによる録画にPCの音を含める方法を検討した。結局、Windowsの「オーディオプロパティの調整」で設定を切り替えればいいことが判った。また、この切り替えが面倒なときのために、スピーカ出力をケーブルでマイク入力につなぐ方法でもうまくいくことを確認した。
オーディオの設定はなんだかわかりづらいので手書きで図解を描いてみた。これは学生にも説明しなければならないであろうから、あとでスライドとして図を作り直す必要がある。

・gw
Wikiの動作を解説するためのサンプルコードをJavaで作ろうとした。しかし、ちょっと書いてみたところで、準備の手間およびコードの解りやすさという二つの点から現実的ではないということに気づいて、この方針はあきらめた。Javaは学生にとっては最も馴染みのあるプログラミング言語ではあるが、こういう処理を簡単に書くには向いていない。
そこで、この話題に限ってはJavaではなくPHPを使うことにした。学習環境に関するアンケートのために作ったPHPベースのアンケートシステムからアンケート部分(フォーム処理部分)を抜いてWiki機能だけにし、BracketNameによるサイト内リンク機能やらWikiソース編集機能やらをくっつけて、Wikiとしてページの作成・編集・削除およびページ間のリンクはできるようにした。

PHPの実行環境が必要なので、自分用サーバthunderheadに授業用アカウントを作り、そのアカウントで読み書きできるフォルダを用意し、そのアカウントでは他のフォルダの読み書きはできないように調整した。また、念のため研究室外(廊下)からのアクセスを確認した。

昨日作った文字コード説明用サンプルコードの中でストリームおよび文字コードを扱っている部分と、今日作ったWiki内部処理説明用プログラムの中で正規表現の部分を、それぞれ空欄にして、演習素材はできあがりということにした。

来週からは論文の読解とプレゼンテーションの演習に入るので、読解対象の候補としてHI学会シンポジウムや情報処理学会研究会で見かけた論文の中から適当なものを3本見繕った。

昨日作ったサンプルコードと、今日作ったサンプルコード、論文3本をそれぞれ書庫ファイルにまとめ授業用Webページに掲載した。スライド資料は未作成。明日の2限目までに作る余裕があるであろうか。

●進路指導Webサイトの更新
昨日の資料を掲載した。

●AOスクーリングの準備
Y先生から、12/8のAOスクーリングについて、助手のU先生およびH先生が手伝ってくれる旨の連絡をメールで受け取った。お礼の返信をした。

●その他
I研の学生が実験協力の依頼をしにきたので対応した。

2012年11月27日火曜日

2012/11/26: 授業実施(演習2, 基礎2, PB演習)

●授業実施(演習2, 基礎2, PB演習)
・演習2
2限目はUくんの演習2を実施した。
今回は最初に携帯メールへの連絡テストを行った。あとはいつも通り彼まかせであった。何も相談や質問をしてこないが、先々週に用意したWikiサイトを使ってくれているようである。
最後に、次回は最初にいままでの進捗状況を報告するよう指示した。

・基礎2
3限目は基礎2を実施した。今回も学生に動画作品制作の準備の続きに取り組ませた。いつも欠席1名のところ、今回は欠席3名と少し多かった。寒くなってきて体調を崩すことも多いのであろう。
ときどき学生の様子を見ながら、演習室内に置いてあるPCのセットアップの続きを行った。未完了。

・PB演習
4限目・5限目はPB演習において、前回までに続き顧客役として進捗報告会およびレビューに参加した。6限目には終了ミーティングに出席し、同じく顧客役Nさんの報告に補足するために少しだけ発言した。

●授業準備(基礎2, gw)
・基礎2
自席のPCで、CamStudioでPCの音を録音するテストを行った。以前はできていたはずなのに、なぜか上手くいかない。

・gw
Javaの文字コードコンバータのShift_JISとWindows-31J (MS932)の違いを説明するためのサンプルコードを作った。

●その他
退学・除籍した学生の電子錠登録を削除するためのデータを作った。未処理。
求人関連の資料2点をメールで受け取った。進路指導Webサイトへの登録は未実施。

2012年11月25日日曜日

2012/11/25: 授業準備(FK, da2)

午後4時くらいから。

●授業準備(FK, da2)
・FK
Webで見つけたJavaScript版DES関数を使わせていただくことにして、11/19(月)に作ったデモページに導入した。ただし、そのままではUTF-8の日本語平文がうまく暗号化・復号化されないので、Base64関数も一緒に導入した。PHP版DESを扱う部分はそれが動く環境でのみ有効になるようにするなど、あれこれ微調整をやっていると結構時間を喰った。
これらの過程で、JavaScriptのescape/unescapeとencodeURIComponent/decodeURIComponentの違いを確認することができた。私のJavaScriptに関する知識はかなり古いので、こういう機会にちょっとずつ勉強しておかないと。

・da2
11/29(木)の第10回の準備をした。
第10回のテーマはハッシュ法である。Y先生の各種資料をDropboxからコピーし、小テスト解説用スライド資料および補足スライド資料を作った。今回の補足では英単語を掲載しているのみである。ハッシュ法はほとんど3クラス共通スライド資料のみを使って説明することになるので、あとでもう一度目を通しておく必要がある。
演習問題が昨年度から変更されていないことを確認した上で、昨年度のものをもとに今年度の演習用ファイルを用意した。

Y先生の補足説明の中に、ハッシュ法はda3でも扱う旨の記述があったので、そうではないことについてメールで連絡した。

2012/11/24: オフ

終日オフ。
合間にAOスクーリングの演習計画について再検討した。

2012年11月23日金曜日

2012/11/23: 業務

●大学業務
詳細略。

●その他
卒業後に就職が決まった学部OBの情報をメールでall宛てに送付した。

あとはオフ。

2012年11月22日木曜日

2012/11/22: 授業準備・実施・処理(da2, gw)

昼少し前からオフィスに。

●授業準備・実施・処理(da2, gw)
・da2準備
小テスト解説用スライドを作成した。
CSC委員のA先生から、学内行事について2年次生に告知することを依頼されていたので、告知用のスライド資料を作り、メールで他のA先生およびda2担当の先生方に送付した。

・da2実施
4限目・5限目に授業を実施した。今回は助手・TAがいないので自分一人で臨んだ。
今回のテーマは計算量および線形探索・二分探索であった。小テストの解説と計算量の説明までは、自分でも解説用・補足用のスライド資料を用意していたこともあって、特につまづくこともなく進めることができた。ただし、時間はやたらにかかってしまい、4限目はほとんどそれだけで使い切った。
5限目にようやく線形探索・二分探索の話に入った。こちらについては3クラス共通のスライド資料だけで説明した。事前の説明の計画が甘かったため、多少つまづいた感があった。例えば、このあたりで急にクイズを出さずに一人でしゃべり続けたので、学生の集中力が落ちたように感じた。線形探索はバリエーションも含めて3通りの方法を示したが、その3通りの違いを学生に対して視覚的に示すことができなかった。口頭と文字情報だけでは、学生に話が通じるかどうかかなり不安である。アドリブで作った二分探索の例があまり良くなく、探索範囲を二分する処理が一回だけで終わってしまった。
あまり準備に時間をかけずに授業を乗り切るスキルを身に付けようと思っている今年度であるが、まだまだのようである。

助手・TAがおらず、授業を一人で廻さなければならなかったので、演習の解答チェックのやり方はいつもとは変えた。まず、演習9-1~9-3については解答のチェックを次回にも行うことにした。ただし、演習9-2についてはほとんどの学生の解答をチェックした。また、演習9-4については授業中のクイズとその解説をもって解答のチェックに代えた。
次回は助手・TAと3人そろうので、演習9-1~9-3について解答チェックの続きを行う。

・da2処理
夜は、小テストの答案を採点し、得点をExcelファイルに入力し、成績確認システムに反映させた。小テスト受験状況に基づいてK'sLifeの出席登録データを修正した。小テスト正解等のPDFファイルを授業用Webページに掲載した。次回の演習9-1~9-3の解答チェックのため、今回の記録用紙のコピーを2部作った。

・gw準備
昨日作った次年度用サンプルプログラムに、昨夜自宅で改訂を加えたので、これをオフィスのPCのEclipseワークスペースに戻した。
過去の研究で作ったシステムの中に、Javaで書いたSemaphoreとBarrierがあるのを思い出したので、これを探してEclipseワークスペースに追加した。
Javaの標準クラスライブラリにもSemaphoreなどマルチスレッドや排他制御がらみのクラスがあるので、これについて軽く調べた。以前に買っておいた「Java並行処理プログラミング」という本は、買ったきりほとんど読んでいなかったが、ようやく役に立ちそうである。
ただし、あまり次年度の準備に時間を使ってばかりもいられない。

●その他
Sくんの卒業研究でのシステムテストに必要なので、K'sLifeにダミーの授業連絡通知を二つ作った。ついでにダミーの共通連絡通知も二つ作った。共通連絡通知のほうは本物が結構あるので、わざわざダミーを作る必要もないであろうが、同じような内容とレイアウトの通知があるほうが比較やデバッグに好都合かもしれない。

2012/11/21: 授業実施・準備(gw, da2)

●授業実施・準備(gw, da2)
・gw
授業の30分ほど前にオフィスに来て、学生への配布資料としてスライド資料およびサンプルプログラムのソースコードのハードコピーを2部ずつ作った。

2限目は授業第9回を実施した。今回のテーマは共有アプリケーションであった。その気になれば2回は引っ張れるネタであるが、用意したスライド資料とサンプルプログラムを見せながらさらさらと進め、最後の描画アプリケーションの動作確認だけを残して終えた。
学 生はマルチスレッドや排他制御などの並行処理に関する話は全くと言っていいほど知らないことが判った。排他制御くらいは学部の何かの授業で習うものと思っ ていたが、少なくとも必修科目では扱わないようである。次年度はこのあたりの説明をもっと厚くするほうがよいであろう。

他にもいろいろと改善すべき点に気付いたので、忘れないうちに次年度のシラバス案を作り、また今回のサンプルプログラムを手直しして次年度にすぐ使えるようにした。セマフォや生産者・消費者問題も扱おうと考えたので、これらについてのサンプルプログラムは今後用意する。

・da2
明 日の第9回の授業用スライド資料のPDF版およびハードコピーを用意した。演習および課題の問題を確認し、プログラミングを伴うものについては演習用ファ イルと課題用ファイルをそれぞれZIPでまとめた。昨年度の補足用スライド資料を手直しし、PDF版およびハードコピーを用意した。これらのうち、Web を通じて学生に配布するものは授業用Webページに掲載した。

第7回の課題レポートの〆切が今日19時であったので、K'sLifeで受け取った1本を採点し、その得点をExcelファイルに記録し、成績確認システムに反映させた。

●FD研修報告会
4限目に開かれた。今回は学生への就職活動指導に関する講演を聴いた。

●卒研指導
Sくんが昨日に続きPHPでLDAP認証をうまく実行できなくて悩んでいたので、一緒に試行錯誤して、どうやら解決した。

●進路指導Webサイトの更新
A先生から資料3点をメールで受け取ったのでWebサイトに掲載した。

●電子錠登録・登録抹消
G先生から2名分の登録依頼があったので登録処理を行った。

2012年11月21日水曜日

2012/11/20: 卒研ゼミ、授業準備(gw)

●卒研ゼミ、卒研指導
2限目はKくん・Sくんそれぞれの進捗報告を聴いた。また、課題管理表(Excelファイル)の更新を一緒に行った。

SくんからPHPでのLDAP認証がうまくいかないという相談を受けた。A先生からいただいた情報の中にスクリプトがあったので、それを渡せばいいかと思ったが、いただいたスクリプトはPerlで書かれたものであったので、PHPの場合については未解決である。

●公開授業参観のアンケート回答
昨日の公開授業参観について、アンケート用紙(Wordファイル)に記入して事務室にメールで提出した。

●授業準備(gw)
・gw
共有アプリケーション作成演習のため、サンプルプログラムとスライド資料を作った。午前3時半くらいまでかかった。

●その他
10/1にNorton 360の更新をしたところ、数日前にクレジット決済の引き落とし通知が届いた。清算のためそのコピーと更新完了画面のハードコピーを一緒に事務室に提出した。
先週のda2を欠席した学生が訪ねてきたので、配布資料を渡した。

2012年11月20日火曜日

2012/11/19: 授業実施(基礎2, PB演習)

●授業実施・準備(演習2, 基礎2, PB演習, FK, da2)
・演習2
2限目開始から30分間以上待ったが結局Uくんが来室しなかったので、公開授業参観に行った。

・基礎2
3限目は先週と同様に学生に作業の続きを指示した。
平行して演習室内のPCのセットアップを行った。学生が動画編集を始めるタイミングまでに完了させなければならないが、1台だけセットアップが未完了である。残作業のうち大きそうなものは、PowerDirectorの導入と、音声入力の不調の解決というところ。

・PB演習
4限目・5限目に顧客役として進捗報告会に出席した。
6限目に終了ミーティングに出席した。

・FK
2限目の公開授業参観でモノアルファベット暗号(単一換字式暗号)の問題が出題されていたのを見て、これはFKで暗号の話をするときにも使えると思った。そうかといって手作業での変換は結構時間がかかるので、JavaScriptでデモプログラムを書いた。併せてDESのデモプログラムもAJAXで書いたが、学部のWebサーバにはPHPのmcryptが入っていないために実行できないことが判明した。残念。JavaScriptによるDESの実装もWebで検索すれば出てくるので、こちらを導入するか、Webブラウザですぐに動かせるようになっているものをそのまま使わせることを検討する。

・da2
Dropboxから資料をコピーした。二分探索のJavaアプレットに昨年度から変更がないことを確認した。

●公開授業参観
2限目のA先生の公開授業を途中から参観した。たまたまFKで再来週取り上げる予定の暗号の話が出てきたので、そういう点でも参考になった。報告書は未執筆。

●その他
卒研生にそれぞれの卒研について未実施項目を確認するようMLで指示した。

2012年11月18日日曜日

2012/11/18: オフ

●学生への連絡
11/14(水)にUくんに11/19(月)の演習2をSPI対策に振り替えることをメールやK'sLifeを通じて連絡し、確認のため返信するよう指示していたが、返信がないところを見ると連絡を見ていないようである。仕方がないので振り替えをやめることにして、念のためUくんにはその旨の連絡をメールで送った。

●電子錠登録・登録抹消
電子錠再登録を実施した。

あとはオフ。

2012/11/17: 授業準備・処理(FK)

午後から。

●授業準備・処理(FK)
・FK
11/23(金)6限目の第9回のスライド資料を完成させ、そのPDF版を作った。パスワードつき圧縮の演習で使うダミーのデータファイルも用意し、スライド資料PDF版と一緒に書庫ファイルにまとめて、授業用Webサイトに掲載した。

11/16(金)第7回の小テスト答案に採点し、得点をExcelファイルに入力した。
FKについては、レポートの第2回、第3回が未採点なので、早々に処理しなくてはならない。

●その他
教務課Eさんから学生証再発行の連絡をメールで受け取っていたので、電子錠再登録用のデータを作った。未処理

2012年11月17日土曜日

2012/11/16: 授業準備・実施(FK)


●授業実施・準備(FK)
・FK
第9回のスライド資料の作成に着手した。スライド枚数をもっと減らしたほうがよさそう。未完成

FK大にて16時から第7回の授業を実施した。
まず小テストを実施し、簡単に解説したあと、前回の残りのスライドをざっと流し、今回の本題であるソーシャルメディアについて講義した。
今回のスライド資料は表紙込みでスライド24枚であったが、これを1時間強で片づけるのが大変であった。学生の興味を引き付けるために、実習と称してクイズやディスカッションのために時間を使ったり、時事ネタなどの余談を混ぜながらしゃべったりするので、スライドの枚数の割には時間がかかってしまう。今回は結局最後の15分間ほどはかなり駆け足になってしまい、学生にとってはつまらない授業だったであろう。スライドをもっと減らすことを心がけなくてはならない。今回に関して言えば、電子掲示板のくだりは丸ごと削ってもよかった。

学生2名から次回を部活で欠席する旨の申告があった。FK大のルールでは、このようなケースの処理は担当教員の判断に任せられているので、どうするか決めなくてはならない。昨年度はどうしていたっけな。

授業のついでに、作り直したAddress.exeおよびSocketClient.exeの動作を確認した。今度はちゃんと動いた。

2012年11月16日金曜日

2012/11/15: 授業実施(da2)

昼から。

●授業準備・実施・処理(da2)
・da2
第8回小テストの解説はしないつもりであったが、模擬テストと小テストを見比べて直前に気が変わり、1問目の分だけ解説用スライドを用意した。

4限目・5限目に第8回を実施した。
4限目はまずいつも通り小テストを実施し、1問目だけ解説したのち、すぐに模擬テスト(50分間、持ち込み不可)を開始した。昨年度と同様に、途中から時間を無為に過ごす学生が続出した。時間がもったいないので、最後の15分間は“持ち込み可”に変更し、資料を見たりPCを使ったりしても良いことにした。集中して勉強してくれたことと期待する。
模擬テストのあと、4限目の終わり20分間程度および5限目の前半50分間程度で、スライド資料を使って模擬テストの解説をした。
残り40分間程度で、ヒープの講義と演習を実施した。6限目開始までにほとんどの学生が、6限目に入って間もなく全員が、演習の解答チェックを終了した。

小テストの答案は模擬テストの間に採点してしまった。
夜は、小テストおよび演習の得点をExcelファイルに入力した。また、K'sLifeで受け取った課題の答案を採点し、この得点もExcelファイルに入力した。これらの得点状況は成績確認システムにも反映させた。
小テストの受験状況や演習の解答状況と、K'sLife出席登録データを照合し、K'sLife側に修正を加えた。
スライド資料や小テストの正解などのPDF版を授業用Webページに掲載した。

模擬テストの問題についていくつか学生から意見をもらったので、フィードバックということで他の先生方にメールで連絡した。私の書き方がまずかったようで、あまり歓迎されなかったようである。

●進路指導Webサイトの更新
メールで受け取った求人情報をWebサイトに掲載した。
昨日の会議で配布された資料にもとづいて、説明会や学生支援行事の日程情報を更新した。

2012年11月15日木曜日

2012/11/14: 授業実施・準備(gw, da2, FK)、会議

●授業実施・準備(gw, da2, FK)
・gw
2限目に第8回を実施した。
前回に続きHTTPを取り上げた。前回から間が空いたので、まずスライド資料を見せながらHTTPの基本的なルールをさらって、次に簡易Webサーバの実装の残 りを行った。学生がそれぞれ自分のEclipse環境に入力した簡易Webサーバを実行させ、Webブラウザでアクセスさせてみると、ちゃんと応答として Webページが出力された。
単に動いた動いたというだけでは面白くないので、簡易Webサーバのセキュリティホールを突かせてみようと、演 習用ツールの一つであるSocketClient.exeを使わせてみたら、どういうわけか学生のPCではSocketClientはエラーを起こして動 かなかった。仕方がないので自分のノートPCで動かして見せた。それでも、外部からの入力は必ずしもルールに従っているとは限らないので信用してはいけな いということは伝わったと思う。

授業後、SocketClientのソースコードを見直し、恐らくここが原因であろうと思しい箇所を修正した。SocketオブジェクトのメソッドConnectを呼ぶときに、引数をIPEndPointオブジェクトにして
    socket.Connect(new IPEndPoint(Dns.GetHostEntry(hostname).AddressList[0], port));
としていたが、これは奇妙なコードである。恐らくコーディング時にVisual Studioの補完機能に頼りすぎたのでこうなったのであろう。次のように変更した。
    socket.Connect(hostname, port);
自分のPCでは動作テストはできないので、来週もし可能なら学生に新しいSocketClientを試してもらうことにする。

・da2
明日の第8回では、4限目に小テストと模擬試験、5限目にヒープの講義と演習を実施する。
Y先生の用意された演習問題はヒーププログラムの穴埋めであり、限られた時間の中で解くのは難しそうに思えた。そこで、必須問題ではなく加点問題(da2の用語でいうと“課題”)にすることも考えて、Y先生にも相談した。しかし、穴の部分は学生に隠さず教えてしまい、プログラムの動作を確認させるほうが主眼であるということであったので、演習のまま出題することにした。

スライド資料のPDF版を作り、手持ち資料としてカラープリンタでハードコピーを出力した。
模擬試験を自分で解いてみた。
スライド資料に一通り目を通し、説明の仕方を考えた。ヒープの説明については昨年度のda3のスライド資料を流用することも考えたが、それだと限られた時間の中でかえって学生に詰め込むことになりそうなので、結局Y先生のスライド資料のみを使うことにした。

演習用ファイルを用意して授業用Webページに掲載した。
TA向けに資料一式を所定の場所に置いた。

・FK
明後日11/16(金)第7回のスライド資料PDF版のハードコピーをカラープリンタで出力した。

●会議
4限目・5限目の時間帯は学部の会議であった。
学習環境に関するアンケートの回答を集計したことを報告した。

●学生への連絡
3年次生に第3回就職ガイダンスおよびSPI対策についてMLを通じて連絡した。
Uくんには来週11/19(月)の演習2をSPI対策に振り替えることをメールで連絡した。

●その他
学内売店で発注しておいたボールペン替芯1箱が届いた。明日伝票を事務室に提出する。

2012年11月14日水曜日

2012/11/13: 卒研ゼミ、授業準備(FK, gw, da2)

●演習ツールの開発
C#版Address.exeに例外処理を強化する修正を加えて、一応の完成ということにした。
早速明日のgwで使用する演習用ファイルの一つに加えた。

●卒研ゼミ
2限目はKくんとSくんの進捗報告を聴いてコメントした。
スケジュールは大丈夫かな。

●業務
3限目。詳細略。

●授業準備(FK, da3, gw, da2)
・FK
寝かせていた11/30(金)第8回のスライド資料を確認し、特に変更しないことにした。また、この回の演習で学生にWikiページを作らせる予定なので、そのテンプレを作った。あまり楽をされても困るのではあるが、途方に暮れられても困る。スライド資料とテンプレを一緒に書庫ファイルにまとめ、Webサイトに掲載した。
11/16(金)第7回の小テスト用紙を印刷した。

・da3
次年度のシラバス案をExcelで作った。
今年度は期末テスト2回目を授業の第15回に実施したが、次年度は定期試験日に実施することにしたので、授業に1回分の余裕ができる。そこで、今年度は窮屈だった隣接行列の講義と演習を2回に分けて実施する計画にした。

・gw
明日の第8回について、まず演習の予行を軽くやってみた。次に、PowerPointでスライド資料を作った。また、演習用ファイルとしてAddress.exe, SocketClient.exeなどを用意した。これらを授業用Webページに掲載した。

・da2
明後日の第8回について、Dropboxの所定のフォルダからファイルを入手した。
Javaアプレットを動かしてみたところ、少し動作がおかしかったので、調べて修正案を作り、Y先生に連絡した。
スライド資料と模擬テスト問題はまだ開いてみた程度。

●その他
日曜に購入した書籍の領収書に明細をつけて事務室に提出した。

12月のAOスクーリングについてY先生に問い合わせた。自分がやることになっているはずなので、これまでにクリッカーの使い方を確認する程度のことはやっていたのだが、日が近づいてきているのに何も言われないので、自分の記憶に自信がなくなってしまった。Y先生の返信によると、やはり自分がやることになっているようである。

2012年11月13日火曜日

2012/11/12: 授業実施(演習2, 基礎2, PB演習)

●授業実施(演習2, 基礎2, PB演習)
・演習2
10:40開始なのだが大学に着いたのが11時だった。20分間の遅刻。U君に申し訳ないことをした。
中身はU君の作業の続き。ときどき様子を訊いて、一つ二つ簡単に助言した。自由に使えるWikiのサイトがあるといいかと思い、FKのために用意したPukiWikiサイトのコピーを自分の研究用サーバthunderheadに作り、URLをU君に知らせた。

・基礎2
学生の作業の続き。最初と最後にチームごとに会議をするよう促したほかは、ときどき様子を見ながら演習室内に置いているPCのセットアップの続きを行った。来週には動画編集に使えるPCセット3台ができあがりそう。

・PB演習
今回も顧客役として学生の7チームと個別に会議を開いた。
終了後はスタッフ会議で状況を報告した。

●演習用ツールの開発
C#版Address.exeを少し改訂し、あるIPアドレスから作ったIPHostEntryオブジェクトのプロパティHostNameだけを参照してホスト名の一覧を作っていた処理を、プロパティAliasesも参照するように変更した。それでもnslookupと同じ結果は得られないが、これは仕方がないか。

2012年11月11日日曜日

2012/11/11: オフ

オフ。

2012/11/10: 授業処理・準備(da2, FK)

オフィスに3泊4日目。
昨日FKに行く前に一度シャワーを浴びるために自宅に帰っただけ。
今夜は帰って寝る。

●授業処理・準備(da2, PB演習, FK)
・da2
採点済み小テスト答案に一通り目を通した。助手のK先生が採点の精度を上げる努力をしてくださっているようで、ここ数週間は採点に修正の必要がないのがありがたい。
K'sLifeで受け取った第4回および第5回の課題レポートに目を通し、採点した。
小テスト、演習、課題の得点をExcelファイルに入力し、成績確認システムにも反映させた。

・PB演習
Web顧客役からの報告がMさんからMLに流れてので、これの補足を当日のメモに基づいて書き、MLに流した。

学内売店で名刺ファイルを購入し、これまでに顧客役として学生との名刺交換で受け取った名刺を整理した。

・FK
11/30(金)5限目の第8回の準備をした。この回ではWikiページの作成を演習課題として取り上げる予定である。
昨年度は@WIKIを使用した。今年度はアンケートシステムを流用することも考えたが、これはWikiエンジンとしてもう少し整備が必要である上に他のシステムとの統合も考えると全く間に合わないので、この案は放棄して、シンプルにPukiWikiを使うことにした。ダウンロードし、多少の設定をすると、あっさり動いた。FrontPageに各学生のページへのリンクを並べ、さらにサンプルのページをいくつか作って、演習素材としての準備は完了した。
第8回のスライド資料を作った。演習に時間を回したいのでスライドの枚数を抑えた。スライド資料のPDF版も作った。あとは圧縮して授業用Webサイトにアップロードするだけであるが、まだ時間的余裕があるので少し寝かせることにした。

メールで受け取った第1回レポート課題の採点をして、Excelに得点を入力した。
第2回レポート課題の採点もするつもりであったが、その時点ですでに22時を回っていたので、これは後日のこととした。

●電子錠登録・登録抹消
昨日データを作った再登録処理を実施した。

2012年11月10日土曜日

2012/11/09: 授業準備・実施・処理(FK, da2)

●授業準備・実施・処理(FK, da2)
・FK
第6回ではWorld Wide Webについて説明し、HTMLにも少し触れて簡単なWebページを作らせる。せっかくなので、作ったWebページをクラス内で共有するためのアップローダ(Webページ提出システム)を用意した。これはAOスクーリングの際に作ったものの流用である。
11/2(金)に成績確認システムとWebページ提出システムの統合版の開発に着手していたが、今回はこの統合版が間に合いそうにないので、急きょ若干手直ししただけの流用版を用意した。そのため、この流用版にはログイン機能がなく、ユーザは学籍番号・氏名・削除パスワードを入力しなければならない。今回に限れば大きな問題にはならないであろうが、今後別の授業でも同じような仕組みを使いたいので、統合版の開発は進めなくてはならない。

いつも通りJRでFK大へ移動し、16時から授業を実施した。
本日のテーマはWorld Wide Webであった。Webブラウザの使い方などは今さら説明する必要もないので、Webはクライアント・サーバ型であるという話をおさらいしたのち、演習用ツールとしてC#で作った簡易Webサーバプログラム、TCPクライアントプログラムを使ってHTTPの働きを確認させた。また、HTMLファイルを見よう見まねで改造して自己紹介ページを作らせ、上記のアップローダに提出させた。
このようにPCを使った演習を盛り込んだところ、次の(1)~(4)のような問題が発生したために予想以上に時間がかかってしまい、スライド資料の最後のほうにあったWebアプリケーションの説明はできなかった。

(1) 以前作っておいたC#版Address.exeを今回使ったところ、他のPCからはreachableではないIPアドレスを表示するようになっていた。一つのPCが複数のIPアドレスを持つことがあるので、そういうケースもありうることはかねてより予想してはいたが、油断して対策していなかった。痛恨である。
(2) Internet Explorerでアップローダにアクセスすると、提出操作をしてもその提出したHTMLファイルが一覧に現れなかった。これについては、IEを再起動するか、Firefoxを使うよう指示した。
(3) アップローダの表示は放っておくと自動更新しない。しかし、学生にとっては自動更新してくれる親切なシステムが当たり前であるようで、とまどっていた。これについては、自動更新ではない旨を説明した。
(4) メモ帳でHTMLファイルを編集するとファイルの先頭にBOMが入るので、このHTMLファイルをアップローダで提出するとアップローダのHTML5検査に引っかかってアップロードが失敗するようになっていた。これについては、もともと学生にはHTMLファイルの編集にはTeraPadや秀丸を使うよう指示していたが、一部の学生がメモ帳を使っていた。秀丸を使ってBOM抜きで保存しなおした。

Webアプリケーションの説明は次回に回した。(1), (2)についてはいずれ他の授業でも同じことが問題になるので、夜にオフィスに戻ってから解決策を作った(後述)。

復路のJR車内で小テスト答案を採点し、適宜コメントを付けた。オフィスに戻ってから、小テストの得点をExcelファイルに入力した。

・da2
小テストの受験状況および演習の解答状況と、K'sLifeの出席登録データとを照合し、K'sLife側に若干の修正を加えた。
授業中に注釈を入れたスライド資料のPDF版を用意し、小テスト解答とともに授業用Webページに掲載した。
11/6(火)に作った、11/8(木)第7回用の手持ち資料は講義用スライド資料を6枚1ページにしたものであったが、過去の回では9枚1ページにしていた。これらの手持ち資料はJABEE審査用資料として保存する必要もあるので、第7回の分についても授業後ではあるが9枚1ページで作り直した。他の資料と一緒にファイルに綴じた。

●学習環境に関するアンケート
I先生に拡大教授会での報告の手順等について相談していたところ、T先生から回答があったので、次のようにすることにした。
1) 集計結果をメールでallに送信する。
2) 拡大教授会(11/14)に報告事項として挙げる。報告資料はなし。
3) あとは回答作成者におまかせ……。
Excelファイルをzipで圧縮してまとめたものを用意し、1)を実施した。事務室に2)の旨を連絡した。

●学生への修学指導
欠席の多い学生1名の自宅に電話し、本人に指導した。その旨をK'sLifeに所見として入力した。
これで、教務委員から指示されている当面の修学指導は完了した。

●進路指導Webサイトの更新
A先生から求人情報2件をメールで受け取ったのでWebサイトに掲載した。

●電子錠登録・登録抹消
教務課Eさんから学生証再発行1件の連絡をメールで受け取ったので、再登録用のデータを作った。再登録は未実施。

●演習用ツールの開発
上記の(1), (2)について次のようにして解決策を用意した。

(1) C#版Address.exe
一つのPCに複数のIPアドレスがある場合、および一つのIPアドレスに複数のホスト名が関連付いている場合を考慮して、Address.exeを大幅に作り直し、全てを一覧表示するようにした。ただ一覧にするだけだとどれを使えばいいのかわからないので、IPv4かIPv6か、クラスA~Eのどれかなどを一緒に表示し、なおかつ演習で使う可能性が高いものほど上に表示するような仕組みを入れた。これは次年度のswBにも使えそうである。

(2) アップローダ(Webページ提出システム)
提出済みファイル一覧データを吐いているスクリプトに、エンティティヘッダとしてCache-Control: no-cacheを出力する処理を追加した。

2012年11月9日金曜日

2012/11/08: 授業準備・実施(FK, da2)

●授業準備・実施(FK, da2)
・FK
11/09(金)第6回の小テスト用紙を印刷した。
11/16(金)第7回のスライド資料を作成し、圧縮して授業用Webサイトに掲載した。

・da2
小テスト解説用スライド資料および補足スライド資料を作成した。

4限目・5限目に授業を実施した。やけに欠席が多かった。
本日のテーマは二分探索木であった。4限目は、小テストの実施と解説のあと、スライド資料を使ってじっくり二分探索木について説明した。学生にとっては二分探索木の概念よりも中順による探索のほうが呑み込みにくいようであった。
5限目は、最初にヒープを少しだけ説明し、あとは演習の時間とした。二分探索木からキーの最小値を求めるプログラム(左へ左へと探索)を作るのに手こずる学生が多かったので、5限目が残り30分間程度になったところで最大値の場合について書いてみせてヒントとした。ほとんどの学生が5限目終了時点で解答を終えた。時間がかかった学生でも18:30頃には終わった。

●卒研ゼミ
3限目はKくんとSくんの進捗報告を聴いてコメントした。

2012年11月8日木曜日

2012/11/07: 補講日

2限目はUくんの演習2の予定であったが、彼の事情により実施なし。

●授業実施・準備(基礎2, PB演習, FK)
・基礎2
各チームの作業を進めさせた。最後のほうでチーム内の話し合いの時間を作り、進捗状況の確認および計画書への進捗割合の記録をさせた。

・PB演習
Mさんと一緒に顧客役を務めた。
終了後は懇親会に参加した。

・FK
11/9(金)の第6回で使用する小テストを作った。当日までに用紙を印刷する。
第7回・第8回のスライド資料案を作った。未完了
演習の準備はもともと構想していたものを用意するのは難しそう。やはり学園祭期間中に何もできなかったのは痛かった。

●その他
要提出の書類3通に必要事項を記入した。
授業で使う貸与ノートPCにアップデートをかけた。

2012年11月7日水曜日

2012/11/06: 学会仕事

●学会仕事
査読完了。

●授業準備(da2)
・da2
11/8(木)第7回の準備をした。
スライド資料およびJavaソースファイルの最新版をDropboxからコピーし、昨年度との違いを確認し、それを踏まえて演習用ファイルおよびJavaアプレットを準備した。手持ち資料としてスライド資料のPDF版を作り、カラープリンタでハードコピーを作った。また、資料一式をWebサイトの所定の場所に置いた。

2012年11月6日火曜日

2012/11/05: 学会仕事

午後から。

●学会仕事
査読続き。

●授業準備(da2)
・da2
TAのFくんから休みの連絡があった。
今月の助手・TAの出勤・休みの予定を整理し、念のため二人にメールで連絡した。
また、二人とも休む回(11/22)の計画を検討した。

●学生への修学指導
ずっと欠席している学生の自宅に電話し、お母様と話した。その学生の状況をK'sLifeに所見として入力し、教務委員および教務課にメールで連絡した。

2012年11月5日月曜日

2012/11/04: 学会仕事

●学会仕事
査読続き。さっぱりはかどらず、途中から他の仕事に逃避した。
今日中に完了させるつもりだったが、まだ半分も読めない。

●授業準備(swB)
・swB
次年度の授業の計画を検討し、今年度のサンプルプログラムに改訂を加えて次年度版として用意した。

●その他
Kくんの卒業研究について少し指導した。
演習用ツール(C#プログラム)の使い勝手に若干の改善を加えた。
学園祭最終日も一人模擬店巡り。タピオカドリンク、抹茶とお菓子のセット、おでん、団子、ライスバーガー、お好み焼きを購入した。

2012年11月4日日曜日

2012/11/03: 学会仕事

午後からオフィス。

●学会仕事
査読の続き。

●その他
今日も一人模擬店巡り。皿(見た目に同じなのに1000円のものと800円のものの二つが重ねて置いてあった。悩んで1000円のほうを選んだ)、焼き餃子、ドーナツ、地鶏を購入した。

2012年11月3日土曜日

2012/11/02: 授業準備・実施・処理(FK)

●授業準備・実施・処理(FK)
・FK
小テスト用紙を印刷した。
先週の第4回から出席している受講者2名について、教育実習期間中の欠席、小テスト、レポートの扱いを検討した。欠席は出席扱いとし、小テストは“なかったもの”として満点を減らして計算し、レポートは〆切を来週とすることにした。

JRでFK大へ移動し、16時から第5回を実施した。前回BCCのデモンストレーションを実施しなかったので、授業の最初に最初にGmailから受講者全員のメールアドレスにBCCで送信してみせるところを実演した。その後は小テストの実施、解説、講義といういつもの流れで授業を進めた。
今回のテーマは電子メールのメッセージの書き方であった。メッセージの件名の書き方、本文冒頭のあいさつや名乗りの書き方については実習を通じてしっかり説明した。例によって後半は時間が足りなくなって実習問題を一つ飛ばすことになったが、それでも強調しようと思って準備した箇所は一通り説明することができた。
授業直前や授業中に上記の受講者2名に教育実習期間中の各種の扱いを口頭で伝えた。

帰りのJR車内で小テスト答案を採点した。
オフィスに戻ってからExcelファイルに小テストの得点を入力した。

夜は、以前から検討していた成績確認システムとWebページ提出システムの組み合わせに着手した。まだ始めたばかりで未完了。来週の第6回に間に合えば、学生に実習で作らせたHTMLファイルをこのシステムで提出させたい。

●伝票処理
10/18に納品された無線LAN子機の伝票が届いたので、コピーをとって事務室に提出した。また、金額等を予算管理用のExcelファイルに入力した。

●進路指導Webサイトの更新
Webサイトに掲載されている資料を閲覧するためのリンクラベルは、今までではテキストのみで「求人票」などと表示しているだけであった。これにいかにも資料っぽいアイコンを追加すると分かりやすいのではないかとかねてから思っていたが、ずっと後回しにしていた。ふと思い立ち、思い立ったが吉日ということで早速追加した。
まずアイコン画像を3種類作り、16×16のPNGファイルにした。これがリンクラベルの一部として表示されるようにPHPスクリプトを変更した。Webサイトがちょっとだけ格好良くなったような気がする。

●その他
査読論文を少し読み進めた。
今日から日曜までキャンパス内で学園祭の模擬店が開いている。今日はもち、みかん、ジュース、佐世保バーガー、サーターアンダーギーなどを買った。

2012年11月2日金曜日

2012/11/01: 授業準備(FK)

午前はのんびり。午後からオフィスに。

●進路指導Webサイトの更新
CSCからメールで受け取った学生支援行事の日程表と求人情報の一覧表をWebサイトに掲載した。
3年次生と4年次生にそれぞれメールで告知を流した。

●授業準備(FK)
・FK
第6回のスライド資料を用意した。昨年度のものの簡単な改訂で済ませるつもりであったが、例によって結局かなりの手間をかけてしまった。もっとも、進行が昨年度と違っており、第6回は昨年度のもののままではずいぶん時間が余るはずなので、内容を盛らざるを得なかった。

HTTPの説明をするために、一昨日昨日でgw用に作った演習用ツールを流用して実習課題で使わせることにした。このツールを使うと、Webブラウザの代わりにWebサーバにHTTP要求を送信することができる。
同じくgw用にJavaで書いた簡易Webサーバプログラムも流用したかったが、FK大のPCでJavaプログラムを動かすのはちょっと厄介かもしれない。そこで、パッと作れるかと思ってC#でWebサーバプログラムを書き起こしてみた。これも結局パッとは作れず、満足できるレベルになるまでに2時間以上かかった。しかし、C#と.Net Frameworkでのソケットプログラミングをさらに勉強できたのでよしとする。

HTMLの説明はむしろ簡単に済ませることにした。資料や演習素材はAOスクーリングのときのものを流用して、比較的簡単に用意することができた。HTMLでWebページを書かせる課題は定番として用意したが、HTMLはすでに知っているという学生も結構いそうなので、あまり時間をかけないような課題にした。

スライド資料、演習素材を一通り完成させ、圧縮してWebサイトに掲載したときには、日付が変わって午前3時を過ぎていた。

また、明日の第5回の小テストを用意した。用紙の印刷は出発までに行う。

●その他
ノートPC2台にいろいろな更新をかけた。
昨日の演習用ツール(C#プログラム)に、送信データの改行コードを指定する仕組みを組み込んだ。

2012年11月1日木曜日

2012/10/31: 授業実施・処理(gw)、卒研中間発表会

●授業実施・処理(gw)
・gw
昨夜用意したJavaのWebサーバプログラムおよびC#の演習用ツールの動作をオフィスのPCで確認し、授業用Webページに掲載した。また、配布資料としてWebサーバプログラムのソースコードのハードコピーを用意した。
ソケットプログラミングに関するスライド資料を点検して若干の修正を加え、PDF版を作って授業用Webページに掲載した。また、配布資料として縮小PDF版のハードコピーを用意した。

2限目に授業を実施した。まずスライド資料でJavaによるソケットプログラミングを説明した。次にWebサーバプログラムのソースコードを頭から1行ずつ解説しながら学生にEclipseに入力させた。これが半分弱のところで時間切れになったので、残りは次回に解説する。

受講生2名に訊いてみると、うち1名は別の授業でRubyによるWebサーバ作りをやったことがあるということであった。この学生が言うには、復習になるしJavaプログラミングの勉強にもなるので今回の内容に不満はないとのことであったが、全体として同じことの繰り返しになるようではよくないので、あとの展開をもう一度検討しておく必要がある。
どうもgwの計画は悩ましいが、1年目の授業であるので多少探り探りなのは仕方ない。

授業中の演習において "~\r\n" という文字列リテラルを入力する箇所があったが、受講者の使っているMacBookのEclipseにおいてはバックスラッシュの入力がうまくできないようであった。検索すると[Option-¥]で解決するような話も出てくるが、自分自身はMac OSでプログラミングをしたことがないので、それで対処できるのかどうかわからない。とりあえずの回避として "~" + (char) 0x0d + (char) 0x0a として入力させた。

授業後、スライド資料に授業中の板書の一部を反映し、授業中に見つけた不備を修正した。また、上記の文字列リテラルの入力について、Webサーバプログラムのソースコードにコメントとして記載した。
これらの改訂版は、後述の演習用ツール(C#プログラム)とともに授業用Webページにあらためて掲載した。

●卒研中間発表会
3限目にKくん、Sくんの中間発表を聴いてコメントした。
スケジュールは厳しくなってきているが二人とも頑張っている。

●C#によるソケットプログラミング
gwのために用意した演習用ツールは、他の授業や研究においてもテストツールとして使えそうなので、プログラム内部の様子が頭に入っているうちに完成度を上げておくことにした。

.Net FrameworkのクラスSocketやTcpClientには接続状況を示すプロパティConnectedがあるが、接続が切れても送信処理をするまではこのプロパティの値は更新されないため、ただプロパティを参照しただけではその時点の本当の接続状況は知りえない。これがプログラミング上ちょっと面倒の種になった。DelphiのClientSocketだったら、切断したことはOnDisconnectイベントですぐに判るのに。
いろいろ試したところ、ブロッキングモードで動かしているのにメソッドReceiveないしReadが何も受信せずに戻ったら、接続は切断されていると見なして良さそうであることに気付いた(すっかり失念していたが、冷静に思い起こせばJavaのReaderも同様である)。
そこで、Socketのラッパークラスを作り、受信用メソッドの中でメソッドReceiveを呼び出して、Receiveが何も受信せずに戻ったときには自動的にメソッドShutdownおよびCloseを呼び出すようにした。このやり方なら、受信待ち中に切断が起こったらすぐにConnectedの値が更新されることになる。このラッパークラスとBackgroundWorkderを組み合わせたところ、演習用ツールはほぼ満足できるレベルの使いやすさになった。
思いのほか時間はかかったが勉強になった。swBのツールも、Windows XP以降に対応していないDelphi 6からC#に移植することを兼ねてから検討していたが、今回の件で移植できる見通しが立った。

この他に、受信データを表示するときのエンコーディングを受信処理後に変更する仕組みなどを作った。残作業としては送信データの改行コードを指定する仕組みの作成がある。

●その他
K'sLifeの試験実施調査に対してda2の分のみ未回答であったので回答した。
机のまわりにまた書類が溜まりはじめたので整理した。