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の分のみ未回答であったので回答した。
机のまわりにまた書類が溜まりはじめたので整理した。