2015年6月29日月曜日

2015/06/28(日) da3 授業準備、ltp 調査報告書の点検

●da3 授業準備
続き。Javaプログラムの残り、穴埋めプログラミング用のファイル、実習・演習用紙、小テストなどを仕上げた。最後に演習問題を自分で解いてみた。問題をいくらか解きやすくするために穴埋めに若干の変更を加え、演習問題は完成とした。
資料を所定の場所に置いて、Yo先生にメールで連絡した。

振り返ってみると、クラスカルのアルゴリズムの実装は、作り始めの頃に考えていたものよりは凝った作りになった。辺を重みの小さい順に取り出す処理のために、java.util.PriorityQueueを使うはずが、気が変わってマージソートを書いた。頂点のグループ分けを管理する処理としては、きちんとしたunion-findアルゴリズムまでを実装するつもりはなかったのに、最終的にはきちんとしたものを作った。思いの外時間がかかった。例年通りプリムのアルゴリズムの実装だけにしておけばもっとずっと短時間で済んだはずである。上級問題のためにこれだけの時間をかけたのは我ながら度を超えて非効率であると思う。
しかし、ずっとクラスカルのアルゴリズムの実装を提供していなかったことが気になっていたので、それが解決したことは個人的には良かった。この準備作業の過程で勉強になったことも多かった。この回だけではなく他の回の資料を見直すきっかけにもなった。また、上級問題のみとはいえマージソートを穴埋め問題に含めることができるようになったことも良かった。さらに、自発的に興味を持ってグループ分け(同値類の問題)を調べようという学生はめったにいないであろうが、もしそういう学生にグループ分け処理の部分を読まれてもあまり恥ずかしくないものを作ることができた。総じて、これまで急場しのぎの繰り返しで作ってきた授業をいくらか質的に改善することにつながったと思う。
一方で、java.util.PriorityQueueのようにJavaのクラスライブラリにもともとある便利なクラスを紹介する機会を逸したことはもったいなかったかもしれない。これは結局のところ15回のうちの一回程度の上級問題でどうにかするようなことでもない。昨年度は第14回の落穂びろいで話をしたが、今年度はこの話題をもっとちゃんと取り上げるのもいいかもしれない。

●卒業研究の指導
Muさんにメールで連絡を入れたところ返信があった。詳細略。
卒研生全員に対して明日以降の卒研ゼミの日程についてのリマインダをMLを通じて送信した。今のところ欠席の連絡がないので、どうやら明日は久しぶりに卒研生全員が揃うようである。

●ltp 調査報告書の点検
メールで受け取った調査報告書のうち、明らかに執筆・提出要領をきちんと確認していないもの(結構多かった)を除いた27本をデスクトップPCにダウンロードした。モノクロプリンタでハードコピーを作り、一通り目を通した。いくつかには色ペンで添削した。添削を中途半端にしたものや、目を通しただけで何もしていないものもある。6/30(火)2限目には受講者にフィードバックする必要があるので、遅くとも当日の朝までに終わらせ、またダウンロードしなかったものについてもその旨を伝えるための資料なり成績確認システムなりの準備をしなくてはならない。未完了

●その他
備品管理用Excelファイルを更新した。書式に変更を加え、また故障したPC等の除却新プロジェクタの導入、旧カラープリンタの移動を反映させた。そういえば新カラープリンタにはまだ備品シールが貼られていないような気がする。確認するべきであろう。

2015年6月28日日曜日

2015/06/27(土) da3 授業準備

●基礎演習1 振り返り
出先でメール受信状況を確認していたらいろいろ流れてきたのが見えたので、あれこれと考えたことをEvernoteに書き留めた。

●書籍購入
書店で書籍3冊を購入した。うっかり領収書ではなくレシートをもらってしまったが円滑に清算できるであろうか。
あとで、書籍の明細書を作り、週明けすぐにレシートと一緒に学部事務室に提出できるよう準備した。また、予算管理用Excelファイルに購入データを入力した。


夜からオフィスに。


●da3 授業準備
続き
第13回のスライド資料とJavaプログラムを準備した。全体的に見直しを繰り返すと繰り返すたびに何かに気付いて修正するので面倒であったが、その分だけ質は向上したのではないかと思う。一度PriorityQueueを使ったときにfor-each構文を使うのをやめたが、これを配列とマージソートの組み合わせに変更したのでfor-each構文が使えるようになったことに気付くまでに時間がかかったのは不覚であった。
一度考えた演習問題用のグラフを再検討してさらにややこしくした。この変更によって、プリムのアルゴリズムとクラスカルのアルゴリズムの結果の違いが明確になるように演習問題を設計することができた。
グラフの図を含めてスライド資料は仕上げた。Javaプログラムのうちアルゴリズムの実装部分も仕上げた。Javaプログラムのうちグラフを作るメインルーチンや、小テスト、実習・演習用紙などが未完了

2015年6月27日土曜日

2015/06/26(金) 卒研ゼミ、C3PO合同ゼミ

●卒研ゼミ
9:30から定例のゼミを行った。出席6名、欠席2名(Muさん、Maくん)。
YaくんとKaくんそれぞれの進捗報告を聴いてコメントした。
また私から下記の件について連絡した。

   ・貸与ノートPCのWindows 10へのアップグレードは待つべきこと。
     ただし、すでに買い取った者は自己責任で可)。
   ・旧カラープリンタは除却予定であるので移動すること。
   ・ゼミナール室内の書籍は持ち出さないこと。
   ・今後の卒研ゼミの日程。金1・2を月5・金2に変更すること。
   ・月5はその前が詰まっているので開始時刻を16:20ではなく16:30にすること。

●今年度の備品の導入
各研究室用の新しい液晶プロジェクタ(EPSON EB-W28)が事務室に届いている旨の連絡を受け取っていたので、台車を取りに行くついでにこのプロジェクタを受領した。Naくんに手伝ってもらった。

このプロジェクタをすぐに開梱し、備品シールを貼ったのち、自分のノートPC hail (iiyama 11P1200-C-FFB)および発表用PC (EPSON Endeavor NY2300S)にHDMIケーブルで接続して動作を確認した。さすがに映像がはっきりしていて美しい。少し明るすぎて目に痛いような感じもした。

●旧備品カラープリンタの除却準備
卒研生みんなの手を借りてDocuPrint C830を旧Mゼミナール室に移動させた。このプリンタはあまりにも重いので、これを載せた台車を押すことすら卒研生にやってもらわなくてはならなかった。とにかくこれで机が一つ空いた。

●計算機環境の整備
ゼミナール室内の発表用ノートPC (EPSON Endeavor NY2300S)および録画用ノートPC (Lenovo ThinkPad X60)それぞれにおいてFirefoxのアップデートとWindows Updateを実行した。
議事録用ノートPC (dynabook)のLubuntuでアップデートマネージャを実行した。

●学生コンテスト企画
H社からこちらへのメール連絡がうまくいっていなかったことについて、H社から電話とメールで一回ずつ連絡があったのでそれぞれ応答した。

説明会の準備を行った。まず、Googleフォームで参加申し込みフォームを用意した。K'sLifeと電子メールの両方で1年次生から3年次生までの学部生を対象に告知を流した。メール連絡の中にはフォームのURLやチラシのPDF版のURLも入れておいた。K'sLifeでは連絡通知の文字数に制限があるため簡単な説明しか入れられなかった。
次に、チラシを1階と3階の掲示板に貼り付けた。昨年はH社からもらったチラシとは別に自作のポスターも用意して貼ったが、今回はそこまではしなかった。da1を通じて2年次生のほとんどにはチラシを配布済みであること、チラシのPDF版はメールで送信済みであることを考慮して、省ける労力は省いた。
また、館内教室等使用連絡書に記入して捺印入りハードコピーを学部事務室に提出した。CNCのWebサイトにアクセスして無線LANのゲスト使用を申請した。
あとは、次週7/01(水)のda3で告知してチラシをある程度撒くと一通りの準備は完了である。本当は3年次生全員にもチラシを配りたいところであるが、それだけの枚数は残っていない。

●卒業研究の指導
昼休みにMaくんに電話連絡し、午後のC3PO合同ゼミには出席することを確認した。

●C3PO合同ゼミ
3限目にS研との合同ゼミを行った。事情により15分間ほど開始が遅れたが、前半はNaさんとMaくんの進捗報告を聴いてコメントした。Maくんの報告は6/22(月)と同じで、そこからの進捗がなかった。後半はまずNaさんとMaくんの二人だけでデータベースのテーブル設計を検討してもらうのに30分間ほどを割いた。最後の15分間ほどで、二人からこのテーブル設計について説明してもらい、これについて今後の進め方をあれこれと話し合った。

●da3 授業準備
続き。第13回のスライド資料作りに着手した。
必須問題であるプリム(Prim)のアルゴリズムの実装についてはあらかたできた。スライドやJavaプログラムに書いた文言を、第11回においてダイクストラのアルゴリズムの実装を説明するのに使ったスライドや、第12回においてプリムのアルゴリズムを説明するために用意したスライドと合わせる作業が面倒であったが、これは一区切りついた。必須問題の2問目に昨日考えたグラフを使いたいが、このグラフを図に描いたりJavaプログラムに入力したりする作業が未完了である。
また、上級問題としてクラスカル(Kruskal)のアルゴリズムの実装を今回新規に用意する。こちらのプリムのアルゴリズムよりもスライドの枚数が多くなりそうである。
その他、小テストや実習・演習用紙も準備しなければならない。未完了

●その他
カラープリンタを動かしたあとの机、ゼミナール室の会議机、この会議机のそばに置いているキャビネットを雑巾で拭いた。演習1の際にはこのキャビネットを机の代わりに使っていたので、これが思いのほか汚かったのは衝撃的であった。

2015年6月26日金曜日

2015/06/25(木) da1 授業実施

●swB 授業処理
6/23(火)の授業中に、スライド資料の要改善点に気付いたので、忘れないうちにスライド資料の改訂を行った。
K'sLifeで受け取った2クラス分のレポートにマル・バツを付けた。

●ltp 授業準備
昨日6/24(水)のランチョンミーティングで出た話の通り、下記スライド資料2点を作成した。
  ・第1の課題は調査研究テーマの決定であったことの説明
  ・6/16(火)欠席者へのUSBメモリの配布

また、ExcelからWordへピボットテーブルおよびピボットグラフを貼り付ける手順をまとめたスライド資料に追加・修正する必要を感じたので、この作業も行った。このスライド資料の中でサンプルとして表示しているExcelファイルとWordファイルを過去のフォルダから探し出して、スライド中と同じ状態で表示するのが結構面倒であった。

計3点のスライド資料をDropboxに置いたのち、メールで他の先生方に連絡した。

●da1 授業実施
5限目に第11回を実施した。いつものように最初に小テストを実施し、正解を解説した。また、前回6/18(木)に誤って配った本来の第11回小テスト用紙をドリルとして配布した。次に、Windows 10のアップグレードは学部からの告知があるまで待つべきこと、学生コンテストへの参加を募集していることについて連絡した。残りの時間で講義を行った。

今回の講義テーマはインタフェースであった。例によって小テストの解説で時間を使いすぎたので最後のほうは若干駆け足気味になったが、スライド枚数が少ないこともあって一通りの説明をすることができた。
受講者がどれくらい理解してくれたかは来週の小テストおよび演習で確認することになるが、うなずきながら聴いている受講者が少なからずいたことや、授業中のクイズについて授業後に議論している受講者がいたことから、ちゃんと講義を聴いていた受講者には届いたのではないかと思う。

●da1 授業準備(次年度向け)
講義中にスライド資料の多少改善すべきところに気付いたので、忘れないうちに次年度用としてスライド資料を改訂した。

●da1 授業処理
小テストの受験状況にもとづいてK'sLifeの出席登録データを修正した。
小テスト答案に目を通し、採点に若干の変更を加えた。小テストの得点を評価用Excelファイルに入力し、成績確認システムにも載せた。
小テストの正解PDFファイルを授業用Webページに載せた。ドリルとして配布した本来の小テストの正解も一緒に載せた。

●学生コンテスト企画
夜にS先生からチラシの残部をいただいた。気持ちよくご協力いただいていることはありがたい限りである。

こちらからH社に6/22(月)昨日と2回メールで連絡した。これに対しH社から何の応答もないので、あらためて連絡を入れてみた。すぐに返信があった。何かの手違いであちらの返信がこちらに届いていなかったようである。説明会は7/04(土)午後に実施するということで問題ないとのことであったので、それで進める旨を返信した。つまり、進めなくてはならない。

●da3 授業準備
★クラスカルのアルゴリズムの実装
続き。ふと思いついて、辺を表すクラス GraphEdge にマークを付加する機能を追加した。これによって、メインルーチンを余計に複雑にすることなく、グラフ中のそれぞれの辺が最小全域木を作るために使用されたかどうかをマークとして記録することや、重み順に整列された辺の一覧に使用状況を付け加えて出力することができるようになった。やってみれば簡単なことであったが、こんな簡単なことを思いつかなかったのはやはり夜中に眠気をこらえながら働いたりするからではないかと思う。

★その他
プログラミング演習ではパッと見たくらいでは最小全域木を見つけられない程度に面倒なグラフを使うことが望ましい。しかも、解が何通りもあると採点のときに面倒であるから、一意に解が決まることが望ましい。そういうグラフを検討して紙に描き出してみた。

さて、そろそろプログラミング演習の素材は十分である。次にスライド資料を作らなくてはならない。

2015/06/24(水) da3 授業実施、学部・研究科の会議

●da1 授業準備
スライド資料PDF版および履修者名簿のハードコピーを作った。
新しい第11回の小テスト用紙3クラス分を印刷し、2クラス分は他の先生方に渡した。

●da3 授業準備
スライド資料PDF版および履修者名簿のハードコピーを作った。
小テスト用紙および実習用紙、演習用紙を印刷した。

●lt ランチョンミーティング
昼休みの会議に出席した。6/16(火)欠席者へのUSBメモリの配布や、第1の課題が調査研究テーマの決定であったことの説明について、6/23(火)の3クラス共通のスライドには入れておかなかったので、その部分のスライドを作って次回6/30(火)の資料の担当であるS先生に提供することを約束した。その他、あれこれと話しながら議事録を書いた。

議事録は、夜になってから整理した上でDropboxに置いた。

●da3 授業実施
3限目に第11回を実施した。いつものように、まず小テストを実施した。次に今回のプログラミング演習について簡単な説明を行ったのち、残りの時間は演習とその解答チェックに充てた。
演習のテーマは前回6/17(水)に講義した最短経路木の決定を行うダイクストラ法の実装であった。演習の直前に与えたヒントや、スライド資料に載せておいた疑似コードがあれば、必須問題はそれほど難しくないはずであったが、例によってそういうものをきちんと見ていない受講者や元々プログラミングそのものが不得手な受講者が一定数いるので、やはり全員がすんなり解答するというわけにはいかなかった。
結局、3限目終了後の休み時間いっぱいを使ってようやくほとんどの受講者の解答チェックを終えた。毎回程度の差はあれ似たような調子であるから、4限目の会議には遅刻してばかりである。そうかといって解答チェックを次週まで行うようにすることが常態化すると、受講者に緊張感がなくなって良くないと考えている。予習しておいてほしいところである。

貸与ノートPCを紛失したという受講者が1名いたので、演習中は自分が持ち込んだH26年度貸与ノートPC保守機をこの受講者に貸した。

●学部の会議
最近あまり会議が長引かないことが多かったが、今回はこれまでの中でも最短ではないかというくらいの時間で終わった。

会議の終わり近くで、事前に議題として挙げていなかった2件について私から話した。
一つは、新カラープリンタの導入に伴い不要になった旧カラープリンタを、物置と化している空きゼミナール室にまとめて置くことの提案であった。この提案は多少の議論めいたやり取りを経て了承された。
もう一つは学生コンテスト企画について7/04(土)に説明会を行う方向で調整中であることについての報告であった。特に異議は出なかった。

●研究科の会議
特に変わったことは何もなかった。

●今年度に導入された新しい備品カラープリンタの不具合
本日の会議のあと、複数の教員から新カラープリンタの両面印刷には何らかの不具合があることを聞かされた。別に私のせいではないと言いたいところではあるが、機種選定に係わったことや導入の取りまとめ役を担当したことから、他の先生方からは直接的に責任を追及する相手として認識されているようである。立場が逆であれば自分もその教員に苦情を入れたくなるであろうから、これは仕方がない。N学部長直々に笑顔で指示をされたことでもあり、不具合についての情報をとりまとめて業者なりメーカなりに苦情を入れることにした。その旨をメールで全教員宛てに連絡した。

●旧備品カラープリンタの除却準備
空きゼミナール室の中の様子を確認して、旧カラープリンタを置くべき場所を決めた。また、黙ってモノを置かれてもそのあとの処理がしづらいので、旧カラープリンタを置くときには「除却予定」などと書いた貼り紙をすること、そうしてもらえれば秋頃にまとめて除却申請を出すことなどをWord文書に書いてPDF化した。このPDFファイルを、前述の新カラープリンタ不具合に関する連絡と一緒にメール添付で教員全員に送付した。

自分のところの旧カラープリンタも空きゼミナール室に移動させたいが、自分一人では無理であるので、次の卒研ゼミの際にでも卒研生の手を借りることにする。

●学生コンテスト企画
前述の通り7/04(土)説明会について学部の会議で了承を得たことをメールでH社に連絡した。

2年次生への告知について、G先生とS先生に協力を依頼した。すでにH社からチラシ200部を受け取っていたので、そのうち60部ずつを両先生に渡した。これは明日のda1で各クラスの受講者に配布していただく。また、da1での告知に使う資料を用意した(後述)。

●da3 授業処理
本日の小テスト用紙の誤記について、授業中に受講者から指摘され、授業後にYo先生からもメールで指摘された。軽微な誤りであったので小テストの実施には問題がなかったのは幸いであった。次年度のために小テスト用紙に修正を加えた。
また、本日の演習の上級問題について、問題そのものに誤記などは無かったが、用意しておいた正解に誤りがあったことに自分で気付いた。これについても修正を加えた。
これらの更新されたファイルを所定の場所に置いて、その旨をYo先生に連絡した。

小テストの受験状況にもとづいてK'sLifeの出席登録データを修正した。
小テスト答案に目を通し、採点に修正を加えた。小テストと演習の得点を集計して評価用Excelファイルに記録し、また成績確認システムに掲載した。
小テストの正解を授業用Webページに掲載した。

●da1 授業準備
明日第11回に、連絡事項として下記2件を追加することにした。
   ・Windows 10のアップグレードをしばらく待つこと
   ・学生コンテスト企画についての告知
連絡用のスライド資料を作り、所定の場所に置いた。また、その旨を他の先生方にメールで連絡した。

7/02(木)第12回の資料を準備した。また、この回のスライド資料PDF版を授業用Webページに掲載した。

●da3 授業準備
★第12回の演習・実習用紙
続き。用紙を作った。いつもはこの種の用紙はOpenOffice.org 3.3 Writerを使って前年度の用紙を改訂するというやり方で用意するのであるが、今回は用紙の書式に大きな変更があったので、Microsoft Office Word 2013で白紙から作ってみた。セクション区切りがあれば同一文書内でもページの縦横を変えられるので都合が良かった。
完成したものを所定の場所に置いて、その旨をYo先生にメールで連絡した。

★第12回の講義資料
準備済みの第12回のスライド資料PDF版を授業用Webページに掲載した。

★クラスカル(Kruskal)のアルゴリズムの実装
続き。第13回のプログラミング演習の素材として、すでにヒープ (java.util.PriorityQueue) を使ったJavaプログラムを作成していた。しかし、6/22(月)の導入1の際にLAのHJさんにヒープについて尋ねたところ、やはりと言うべきか「ヒープよりもソートのほうがまだしも解りやすい」ということらしかった。
そこで、Javaプログラムからヒープを使っている部分を思い切ってばっさり捨ててしまい、マージソートを使って辺の配列を重み順に整列しておくように書き直した。効率について言えば、どのみち隣接行列から辺を抽出する処理のために時間計算量がO(n^2)となっているから、ヒープかマージソートかは気に病むようなことでもないと割り切った。クラスカルのアルゴリズムを実装したメインルーチンの解りやすさについて言えば、この書き直した版のほうが優れていると考える。

ただし、第13回の本題である最小全域木とは別に、マージソートの少しでも速い実装は、アルゴリズムの話として意味があるはずである。時間計算量や空間計算量が変わるほどではないが、マージ回数、マージ中のコピー量、マージのために要するメモリがいくらか少なくなるようにJavaプログラムを書いてみた。マージソートには慣れているつもりであったが、日付が変わって午前3時頃までだらだらと仕事をして眠気がさしていたせいか、最後のほうでは単純なミスを繰り返した。それでもとにかく一区切りをつけた。

●その他
会議のあと、G先生と話をする機会があったので、da1の小テスト用紙を間違えた件についてお詫びした。その前日のFD研修報告会のために睡眠時間を削っていたせいですよね、と笑って応じていただいた。これは、先週のFD研修報告会のために準備したことが当日の趣旨変更のために使われなかったので、G先生に「そういうことなら早く言ってほしかった」と軽く苦情を入れたことを指している。救われたような気分が半ば、却って心苦しい気分が半ばというところである。

2015年6月25日木曜日

2015/06/23(火) lt, ltp, swB 授業実施

●lt 授業実施
1限目に第10回を実施した。いつも通り小テストのあと講義を行った。今回のテーマはWorld Wide Webの基礎技術であった。スライド中の言い回しには、新1年次生には少し難しいかなと思える部分もあったので、ペンタブレットで適当に補足しながら進めた。スライド枚数が多くなかったので、こういう補足を入れたり、受講者がノートをとる時間を十分に確保したり、途中にアドリブであれこれとクイズを入れたりしても、授業終了のチャイムまでに講義を終了することができた。

●ltp 授業実施
2限目に第10回を実施した。1限目の始まる前に、昨夜添削した調査報告書を助手のMa先生に渡して点検をお願いしておいた。これについて2限目の始まる直前にMa先生に確認したところ、特に問題はないということであったので、提出者本人へのフィードバックもMa先生にお願いした。

授業ではまず、補足スライド資料を見せながら、この授業科目の評価方法をあらためて説明し、調査研究テーマが第1の課題であったこと、調査報告書は第2の課題であること、それぞれに25点が配点されているので第1の課題が終わっていない者は今からでも速やかに提出するべきことなどを説明した。受講者の反応を見ていると、やはりよく解っていなかった者も多かったようである。過去の課題報告メールの未提出者一覧表を見せたときの反応は前回よりも良かったような気がする。

次に、3クラス共通のスライド資料(前回とほぼ同じ)をざっと流した。また、前回欠席者を呼び出してUSBメモリを渡したり、紙で配ったチェックリストを受け取っていない者や失くした者に配ったりした。その後の時間は受講者の作業に充てた。

最後の20分間ほどで、ExcelからWordでピボットテーブルやピボットグラフを貼り付ける作業について、自力ではできない者を対象に説明した。資料は先週から授業用Webページに掲載しておいたので、それを見ながら自力でできた受講者も少なからずいたようである。その分、今回の説明では自力ではできない受講者に対する支援に集中することができたので良かったのではないかと思う。

●swB 授業実施
4限目・5限目に第10回(後半第3回)を実施した。特に変わったことは無かった。今回も前半第3回と比べるとはるかに円滑に進行した。いずれも授業終了時刻の10分間ほど前に終了した。

●業務
18:00からの会合に出席した。詳細略。

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

●lt 授業処理
小テストの受験状況にもとづいてK'sLifeの出席登録データを修正した。
小テスト答案に目を通し、採点に修正を加えた。小テストの得点を評価用Excelファイルに記録し、成績確認システムにも掲載した。もう少しで小テストの合計得点および出席回数が合格水準に届く受講者が1/4ほどいるようであった。
6/16(火)第9回のスライド資料PDF版を授業用Webページに掲載した。

●ltp 授業処理
出席メールの受信状況にもとづいてK'sLifeの出席登録データを修正した。
今日受信した課題報告メールを点検し、その結果を評価用Excelファイルに記録して、成績確認システムにも掲載した。
今回のスライド資料PDF版を授業用Webページに掲載した。

2015年6月23日火曜日

2015/06/22(月) 導入1, 演習1 授業実施、C3PO単独ゼミ

●学生コンテスト企画
続き。H社からの返信を受け取った。これによると説明会の実施日として7/04(土)を希望するとのことであった。教務課に電話をかけて当日の施設使用状況を確認した上で、午後のやや遅い時間帯に適当な教室を仮予約した。また、その旨をH社に折り返した。返信待ち

●物品購入
6/08(月)および6/11(木)に受領した書籍3冊について、Amazonの領収書ページのPDF版とそのハードコピーを作った。また納品書をScanSnapでPDF化した。これらの購入情報を予算管理用Excelファイルに記録した。領収書のハードコピーと納品書の原本をまとめて学部事務室に提出した。

●導入1 授業実施
3限目に第10回を実施した。出席13名、欠席1名。
前回6/15(月)にテーマ変更を指示した受講者の相方が今回は出席した。テーマ変更はやめて元のテーマに再び取り組むとのことであった。ただし、これまでの作業で作ったものはどういうわけか全て吹っ飛んだので最初から作り直すということであった。
この出席してきた相方というのが先週6/16(火)のltpを欠席していたので、そのとき配布し損ねたUSBメモリを渡した。
授業の最後に、あと3回で動画作品を完成させないと補習をやる羽目に陥るので留意すること、演習室からの退室時には消灯や戸締りを行い忘れ物のないよう心掛けること、Windows 10へのアップグレードは学部からの公式発表があるまで保留することなどを連絡した。また、基礎センから依頼されたアンケートを実施した。回収した回答は学部事務室に提出した。

●演習1 授業実施
4限目に第10回を実施した。出席10名、欠席なし。久しぶりに全員が揃った。
前回6/15(月)の終わり際に出題した演習問題4問目に取り組ませた。何名かには個別の質問に応じて指導した。また、授業時間の後半には受講者のうち2名と個別に面談を行った。
授業の最後に聴いたところでは1名のみが問題を解き終えたとのことであった。一応は動くようであるが、あとでこの受講者の書いたコードを見てみるとあちこち不備が見つかった。

●swB 授業処理
先週6/16(火)のレポートにK'sLife上でマル・バツを付けた。

●卒業研究の指導(C3PO単独ゼミ)
16:50から1時間ほど、Maくんの進捗報告を聴いて指導を行った。
また、来週からは月曜のこの時間帯に卒研ゼミを行う予定であるから、C3PO単独ゼミは今回で終わりである旨をMaくんに伝えた。

●就職活動の指導
C3PO単独ゼミのついでに、Maくんから就活の状況を聴いた。

●ltp 学生対応
MLへのアンケートの投稿1件を承認した。

●lt 授業準備
第10回のスライド資料をDropboxからコピーしなおした。内容を確認した上でPDF版およびそのハードコピーを作った。次の小テスト問題を見ながら、授業中に強調すべき点を確認して、ハードコピーの該当箇所に印を付けた。
授業用Webページに過去の模範例へのリンクを入れた。

●ltp 授業準備
第10回の補足スライド資料を用意した。また、クラス共通のスライド資料のPDF版およびそのハードコピーを作った。

●ltp 授業処理
導入1の空いた時間を使って先週6/16(火)の欠席者をリストアップした。彼らにはUSBメモリを配らなくてはならない。

夜に、受講者2名から調査報告書が早くもメール添付で提出されていることに気付いた。まだ明日修正を指示して再提出させても最初の〆切には十分間に合うの で、それぞれハードコピーを作り、これに修正すべき点を書き込んだ。2本のうち1本にはほとんど修正すべき点が見当たらなかった。

授業用Webページの先週第9回のスライド資料のPDF版を載せた。

●lt 授業処理
授業用Webページの先々週第8回のスライド資料のPDF版を載せた。

●進路指導Webサイトの更新
最近A先生からメールで流れてきた2社の求人資料4点をWebサイトに掲載した。

●演習1 授業準備
授業用Webページをようやく作った。中身はほとんどないが、研究室内サーバ dusk へのリンクを張ったので、各受講者が演習中に作ったコンテンツを閲覧しやすくなった。

2015年6月22日月曜日

2015/06/21(日) da3 授業準備

●ltp 授業準備(集計用紙システムの改修)
受講者が記入した内容をWebページとして閲覧するための機能を追加した。

●ltp 授業準備
各受講者の集計用紙への記入内容を点検し、奇妙なところのあるものについてはその受講者の学籍番号をメモにひかえた。

第10回のスライド資料を準備し、Dropboxにコピーを置いて、その旨を関係の先生方に連絡した。

●lt 授業準備
第10回の授業で使用する第9回小テストの用紙を3クラス分印刷し、2クラス分は他の先生方に渡した。

●da3 授業準備
第12回・第13回の資料の準備を行った。この2回のテーマは最小全域木である。いつもなら回の順に資料を作っていくところであるが、今度は第13回のプログラミング演習の素材となるプリム(Prim)のアルゴリズムおよびクラスカル(Kruskal)のアルゴリズムそれぞれの実装を先に検討し、これにつながるように逆算して第12回の資料を用意することにした。

★クラスカルのアルゴリズムの実装
毎年プリムのアルゴリズムは穴埋めプログラミングの問題として出していたが、クラスカルのアルゴリズムはこれまでJavaプログラムとして実装しておらず、出題もしていなかった。それがずっと気になっていたので、今年度は必須問題ではなく上級問題としてでもいいので出そうと考えて、今回初めて実装した。
この実装にあたっては、自分の腕試しを兼ねて、まずは処理の大まかな流れだけを念頭に置いて書籍を見ずにコードを書いてみた。次に動作を確認し、その上で複数の書籍と照合して、クラスカルのアルゴリズムの実装として間違っていないことを確認した。処理の大まかな流れは次の通りである。

1. 隣接行列から辺を見つけ出す。
2. これらの辺をヒープに入れる。
3. ヒープから辺を重みの小さい順に取り出しながら頂点の集合を結合していく。

一つ一つの辺をオブジェクトとして扱う必要があるので GraphEdge というクラスを作成した。グラフのインタフェース Graph に GraphEdge の配列を吐くメソッドを追加することも検討した。しかし、複数の回にわたって使う Graph に第13回でしか使わない GraphEdge を付けると、受講者への配布が無駄に面倒臭くなることに思い至ったのでやめた。

ヒープとしては java.util.PriorityQueue を使用した。このクラスを使うのも初めてであったので、最初は for-each 構文で要素を取り出すというコードを書いてしまい、この方法では優先度付きキューとしては働かないと気付くまでに時間がかかった。for-eachをやめてメソッドpollを使うことで解決した。
しかし、このヒープを使う部分を書きあげたあとで気付いたが、その部分の時間計算量が O(e log e) であったとしても、その前の隣接行列から辺を見つけ出す処理が O(n^2) であるから、実行効率の点ではあまり意味がない。「専門書でヒープを使っているからヒープを使った」というだけのことである(ただし、単にソートするとしか書いていない書籍も珍しくない)。
大方の受講者にとっては、これまで使用頻度の低かったヒープや、突然出てきたクラス PriorityQueue や、これを使うためのメソッド compareTo などは解りづらいであろう。クイックソートか何かの適当な整列アルゴリズムを使う形に書きかえるほうがよいかもしれない。そうかといって、ソートならヒープよりも劇的に解りやすいかと問われるとこれも疑わしい。
ヒープのままにしておくか、それともソートで書き換えるかについて悩んだが、とりあえずはヒープのままにしておいた。

また、頂点の集合を結合していく処理については、互いに素な集合の森 (disjoint set forest) だの同値類の問題だのunion-findアルゴリズムだのを調べたものの、結局最初に書いたままの工夫がなくて簡単なコードを採用した。頂点の集合全体を管理するためのクラス名前はIntGroupsとした。クラス名に複数形のsが付いているのが気に入らなくて、IntForestなど他の名前も考えたが、結局受講者にとっての解りやすさを考えてIntGroupsに据え置いた。

とにかくあれこれやってこの実装を完成させた。主要な処理部分のほかに補助的なクラスをいくつか要したので、プリムのアルゴリズムの実装と比べてコードの行数がかなり膨らんだが、なるだけ解りやすさを優先させた。しかし、前述の通り部分的には専門書からあまり離れないようにするために解りやすさを犠牲にしているので、全体としては中途半端な感じがする。

それにしても石畑清先生の「アルゴリズムとデータ構造」(岩波書店)は頼りになるとあらためて実感した。私が思いつく程度の疑問に対する答えは大抵これに載っていた。他のネタ本もWikipediaもその他のネット情報も活用したが、今回最も参照する頻度が高かったのはこの本であった。

★プリムのアルゴリズムの実装の見直し
昨年度までのJavaプログラムを見直した。
根本的な変更を行わず、第11回のダイクストラのアルゴリズムの実装に準拠するように軽微な変更を行ったのみで済ませた。

★第12回の講義資料
昨年度までのスライド資料の説明は簡潔であった。今年度はこれを大幅に変更し、多少ややこしくはなるが第13回のJavaプログラムにつながるよう実行手順の詳しい説明で置き換えた。スライド資料の枚数が増えた。資料を書いているうちに例題のグラフの変更すべき点に気付くことが何度かあり、そのたびに最初のスライドから全て見直しながら変更した。手間はかかったがそれなりの資料が出来上がった。

★第12回の小テスト
第11回のダイクストラのアルゴリズムの実装に関する小テスト問題を作成した。第11回の変更に併せてあちこちに変更を加え、正解プログラムの動作をEclipseで確認した。

★第12回の演習・実習用紙
未作成。前項までの時点で日付が変わって午前5時にもなろうかという頃であったので、この用紙の準備作業だけは後日に残した。
ここまでで完成したものを所定の場所に置いて、その旨をYo先生にメールで連絡した。

●進路指導Webサイトの更新
学外の合同企業説明会の日程を調べ、Webサイトに掲載した。

2015年6月21日日曜日

2015/06/20(土) 業務

午後遅いころにオフィスに。


●計算機環境の整備
★ノートPC hail の無線LAN優先順位設定
昨日のC3PO合同ゼミの際にS先生からWindows 8での無線LANの設定方法について情報をいただいていたので、実際に試した。研究室内の無線LANが最優先されるようになった。
それにしても、MicrosoftにはこういうことはGUIで簡単にできるようにしてもらいたいものである。

●業務
結構がんばった。詳細略。

2015年6月20日土曜日

2015/06/19(金) 卒研ゼミ、C3PO合同ゼミ、会議

●卒研ゼミ
9:30から卒研ゼミを行った。出席4名、遅刻2名(Naくん、Yaくん)、欠席2名(Muさん、Isくん)。
Maくんの進捗報告を聴いてコメントした。ほぼできあがったモックアップを持ってきたのは良かったが、スライド資料は全く無かった。研究室の内規に従ってスライド資料を作るべきことについては先週指導したが、例によって彼は自分が言われたことを忘れたようである。

卒研ゼミの枠を、現行の金曜1限目・2限目(厳密には9:30〜12:40)から、金曜2限目と月曜5限目に変更することを連絡した。
現行の枠はもともとMuさんの都合を考慮して設定したものであった。しかし、Muさんはここしばらく欠席が続いているし、朝の比較的早い時間帯は人が集まりにくい(今日も2名が遅刻した)。変更後の月曜5限目はMuさんにとっては不都合であるが、金曜午前中にも枠は残すので、Muさんの指導はそちらで行えば済むことである。
また、卒研ゼミを金曜のみとすると金曜にしかゼミナール室に来ないという卒研生もいるので、月曜と金曜に分けるとこういう卒研生がゼミナール室に顔を出す頻度が上がることも期待できる。
枠の変更は再来週6/29(月)からとした。卒研ゼミの次回は6/26(金)で、その次は6/29(月)、さらにその次は7/03(金)と続くことになる。

そのあとは多少の個別指導を行った。PHPにendifがあることを初めて知った。

●教員向けアンケート実施結果の説明会
先月やっていたWebアンケートの実施結果の説明会が今週3回開催された。その最後の回が本日昼休みであったので、これに出席してH堂の説明を聴いた。多少綺麗にまとめすぎたのではないかと思う部分もあるが、それなりに興味深かった。

●業務
宿題を提出した。
また、夜に少し実施した。詳細略。未完了

●C3PO合同ゼミ
3限目にS研との合同ゼミを実施した。先週は実施しなかったし、その前はNaさんが教育実習のため不在であったので、全員が揃ったのは3週間ぶりである。MaくんとNaさんのそれぞれの報告を聴いて、皆であれこれと議論した。

●学部再編に伴う授業科目割り当てに関する会議
C3PO合同ゼミの直後にTa先生から声をかけられた。私の担当科目が前期に偏っており、現在進行中の計画ではもっと偏るので、計画を変更できる今のうちに変更してはどうかというお話であった、教務委員のIs先生やその場に居合わせたS先生も巻き込んで、4名でしばらく検討した。結局、私の担当予定であった1年次前期科目の一つをS先生にお願いすることになった。最近いろんな人からいろいろと配慮していただいていると感じることが多い。


このところ睡眠時間を削ることが多く、ひどく疲れた。
会議のあと睡眠をとった。起きたのは20:40頃であった。

2015年6月19日金曜日

2015/06/18(木) da1 授業実施

疲れがたまりまくっている。昼過ぎまで自宅で休養した。


●da1 授業準備
スライド資料PDF版と履修者名簿のハードコピーを作った。

●進路指導Webサイトの更新
郵便で受け取った資料1点をScanSnapでPDF化してWebサイトに掲載した。
A先生からメールで受け取った求人資料をWebサイトに掲載した。

●da1 授業実施
5限目に第10回を実施した。
最初に小テストを実施しようとしたが、用紙を半分ほど配ったところで助手のK先生が教室に駆け込んできた。小テスト用紙が第10回ではなく第11回のものであるとのことであった。昨日印刷した際に、その原本として第10回の小テスト問題のハードコピーを使ったつもりが、前夜に作ったばかりの第11回の小テスト問題と取り違えたようであった。言い訳のしようがない凡ミスであり、先生方にも学生諸君にも申し訳ないことであった。急きょ小テストは中止して演習を開始し、K先生が印刷しなおしてくれた用紙を使って16:40からあらためて小テストを実施した。解説はなるだけ短時間で終わらせるように心がけた。ここまでで授業時間の半分以上を使ってしまった。
残りの時間で演習を行ったが、どうやら2問目が難しかったようで、受講者の半分ほどが6限目まで居残った。最後の1名が解答を終えたのは6限目の終わり頃であった。

●da1 授業準備(第11回)
第11回の小テスト問題はすでに受講者の目に触れてしまったので、次回6/25(木)第11回にこの問題をそのまま使うわけにはいかない。新しい問題を用意し、所定の場所に置いて、他の先生方にメールでその旨を連絡した。もとの問題はドリルにでも使っていただきたい旨を書き添えた。

●学生コンテスト企画
6/10(水)の打ち合わせの際に、学生向け説明会の日程について検討するという宿題を預かっていたことを思い出した。日程を検討し、その結果をH社にメールで連絡した。

●da1 授業処理
小テストの受験状況にもとづいてK'sLifeの出席登録データを修正した。
小テスト答案を採点した。小テストと演習の得点を集計して評価用Excelファイルに入力し、成績確認システムにも掲載した。
小テストの正解を授業用Webページに掲載した。

●da1 授業準備(次年度)
今回の演習は、小テストのトラブルのために若干余計に時間を喰ったにせよ、多くの学生が手こずって居残った。これは良くないので、演習問題のヒントを増やすことにした。第9回のスライド資料の最後のページにis-a関係の説明があり、スーパークラスとサブクラスのオブジェクトを配列の要素として混ぜて扱う例があったので、ここにfor文で配列の要素を処理するコードも書き加えた。また、良いコードと悪いコードの区別がつきやすいようにレイアウトを変更した。

●業務
宿題その他を行った。詳細略。

●ltp 受講者への連絡など
アンケート調査の集計用紙システムには、CSVファイルをダウンロードするためには回答の受信率および返信率がいずれも80%以上でなくてはならないという条件を設定していたが、この条件を撤廃した。こういうことをすると、CSVファイルをダウンロードしてしまった受講者はあとからアンケート調査を開始した受講者に回答しなくなるので、あとから調査を開始した受講者が困る恐れがある。しかし、見方を変えればこのような受講者は先に調査を開始した受講者の足を引っ張っていることになる。もう調査報告書の〆切が近いので、順調に調査を行ってきた受講者にいつまでも足止めを食わせておくわけにもいかず、今回の措置は仕方がない。
このことを含め、調査報告書の執筆に速やかにとりかかるよう受講者に促すため、K'sLifeに連絡通知を入力して明朝送信されるように設定した(と言っても入力したのは日付が変わって午前5時頃であった)。

●その他
N先生からメールで連絡があった。また仕事が増えるらしかったが、N先生に電話をかけたところ、その仕事はS先生に行ったということであった。いろいろとご配慮をいただいているのであろう。

自室内にあった紙ゴミの一部を束ねて廊下に出した。

6/17(水)のltランチョンミーティングの議事録を仕上げてDropboxに置いた。

2015/06/17(水) da3 授業実施、FD研修報告会は会議に変更

●da3 授業準備
スライド資料PDF版および履修者名簿のハードコピーを作った。
小テスト用紙、実習用紙、演習用紙を印刷した。

●da1 授業準備
明日第10回の小テスト用紙を3クラス分印刷し、2クラス分は他の先生方に渡した。

K先生から第10回のスライド資料の誤りを指摘されたので更新した。

●電子錠登録・登録抹消
教務課から一昨日と今日学生証再発行1件ずつの連絡を受けたのでそれぞれ処理した。
期限切れのまま放置していた登録データをまとめて抹消した。
Ap先生から登録申請を受け取ったので登録処理を行った。
退学者の登録データをまとめて抹消した。

●FD研修報告会の準備
今日は自分の当番が廻ってくるのでスライド資料を慌てて用意した。過去のスライド資料を流用したり、これまでにEvernoteに書き溜めた文章を貼り付けたりして、どうにか格好をつけた。

●lt ランチョンミーティング
昼休みの会議に出席した。議事録を書いた。整理してDropboxに置かなくてはならない。未完了
ついでにPB演習について話した。

●da3 授業実施
3限目に第10回を実施した。小テスト実施後に講義を行った。持ち込んだ平成26年度貸与ノートPC保守機の画面がブラックアウトしっぱなしであったので、すきあらば内職しようか(どうせそんなヒマはないのに)と思って持ち込んだ hail で急遽代替した。内職を企んだのが思わぬ幸いであった。
今回のテーマは最短経路問題とダイクストラ法であった。今年度は最短経路が何の役に立つのかという説明すら端折ってすぐに手順の説明に入った。そのおかげで、実習用紙に書き込むさまを書画カメラで見せながらじっくり説明しても、演習問題のための時間を十分に確保することができた。

●FD研修報告会
学部の将来計画に関する会議が行われたので、自分の当番は結局廻って来なかった。
会議の中ではPB演習のことも議題になった。あれこれ議論は出たが、結局いつもの面々は共同でPB演習を担当する形に落ち着いた。

●da3 授業処理
小テストの受験状況に基づいてK'sLifeの出席登録データを修正した。
小テストの答案に目を通して採点を修正した。小テストと演習の得点を評価用Excelファイルに入力し、成績確認システムにも掲載した。

Yo先生からスライド資料に誤りについて指摘をいただいたので資料の該当箇所を修正した。授業用Webページに掲載していたこのスライド資料のPDF版も更新した。

●ltp 授業処理
アンケート4件に回答した。
課題報告メール等の提出物について受講者の提出状況を確認し、評価用Excelファイルを更新して、成績確認システムにも反映させた。

●その他
卒研生のNaくんから頼まれていた書類に記入し、彼の机の上に戻して、メールでその旨を連絡した。

2015/06/16(火) lt, ltp, swB 授業実施

●swB 授業準備
K'sLifeに4限目・5限目のためのレポート受付を作成した。

●lt 授業実施
1限目に第9回を実施した。小テスト実施後、レポートの書き方やプレゼンテーションの要領について講義を行った。少し早めに終わった。

●ltp 授業実施
2限目に第9回を実施した。なるだけ調査の演習の時間を確保するよう心掛けた上で、最低限の説明やUSBメモリの配布などを行った。これからアンケート用紙の設計をしようという受講者も数名いるようで悩ましい。

●ltp 授業処理
課題報告メール等の提出物について受講者の提出状況を確認し、評価用Excelファイルを更新した。

●swB 授業実施
4限目・5限目に第9回(後半第2回)を実施した。4限目は前回同様に円滑すぎるくらい円滑に進んだ。5限目にも大きな問題はなく相応に円滑であった。

●業務
会合前の作業にあまり時間を割くことができなかったので心苦しい。18時から会合に出席した。宿題を一つ持ち帰った。詳細略。

●lt 授業処理
小テストの受験状況にもとづいてK'sLifeの出席登録データを修正した。
小テスト答案の採点を修正し、得点を集計して評価用Excelファイルに入力し、成績確認システムにも載せた。

●da1 授業準備
第11回のスライド資料と小テスト問題を用意した。

2015/06/15(月) 導入1, 演習1 授業実施

●ltp 授業準備
続き
昨年度の調査報告書チェックリストを改訂して今年度版を作った。調査報告書の構成を書いた部分は大幅に改訂した。さらに調査報告書の提出要領の説明を追加した。これら全部でA4版で4ページになったが、配布資料の枚数を増やすと扱いづらいので、2 upで両面印刷することにした。字が小さくて読みづらくなることにはこの際目をつぶった。3クラス分を印刷して、2クラス分は他の先生方に渡した。
受講者に配布するUSBメモリについて、サポセンにメールで明日当日の2限目開始直前に教室に持ってきてもらうよう依頼した。USBメモリに貼るラベルシールについては、各クラスの必要枚数より少し多いくらいを用意して、他の先生方にも渡した。
準備が一通り終わったのは夕方のことで、つまり直前であった。他の先生方にご迷惑をおかけした。

夜にS先生からメールで、「むやみに箇条書きにしない」というくだりの「むやみに」とはどういう基準で判断するのかという質問を受け取ったので、これに対する回答を検討した。
受講者の調査報告書を点検するのは各クラスの教員であるから、そのあたりの基準は最終的には各教員の裁量で決めることである。他の教員に対して「この基準でやってくれ」というものを示すのであれば、それはこちらの個人的な基準ではなく何かしらの根拠が必要である。そこで、自室やゼミナール室に置いているいろんな書籍をひっくり返して調べた。“箇条書きにするかしないか”についてはっきりした基準を示した書籍は意外に見つからなかったので、うまく回答をまとめることができず、結局夜中までかけて長文を書くはめになった。
その中に書いた私の個人的な基準を記録しておく。
箇条書きにする前に、それを地の文に書けないかを次の基準に照らして検討する。地の文に書いても大過なければ地の文に書く。
  • 箇条書きにすることによってその全体が視覚的に強調される。そうして強調するべき理由があるか。
  • 箇条書きにすることによって各項目の独立性が強調される。そうして独立性を強調するべき理由があるか。
  • 箇条書きの先頭に番号・記号を付けることで他から参照しやすくなる。そのような参照をするくだりが同じ文書の中にあるか。また参照する必要があるか。
あとで思いついたが、これにもうひとつ「項目の数があまりに多いときには地の文に列挙することを避けるべきである。そのときには表ないし箇条書きにすることをも検討する」という一文を付け加えても良さそうである。

ExcelとWordの使い方に関する資料のPDF版を授業用Webページに載せた。

●導入1 授業実施
3限目に第9回を実施した。出席12名、欠席2名。
欠席者2名のうち1名は前回に続けての欠席であった。授業時間中にこの欠席者の自宅電話および携帯電話にかけてみたが応答がなかった。この欠席者は2名チームの一人であり、チームのもう一人の受講者は制作作業に支障をきたしていた。仕方がないので、この受講者には一人チームでやってもらうことにして、テーマ変更を指示した。
他のチームでは特に問題は起きていないようであった。

授業終了後、演習室内に上着の忘れ物があったので、これを学部事務室に預けた。また、この忘れ物についてK'sLifeを通じて出席者全員に連絡した。

●演習1 授業実施
4限目に第9回を実施した。出席8名、欠席2名。
授業時間中に学生3名と面談し、修学指導を行った。
また、最後の20分間を使って、前々回に出題した演習問題の解答を解説した。単に正解を作りさえすればいいということではなく、プログラミング上の考慮点の説明を交えながらプログラムを書いて見せた。感心しながら聴いてくれた受講者もいたが、あとでファイルサーバに残った受講者のファイルを見たところでは、受講者のうち半分ほどは話についてこられなかったようである。

●C3PO単独ゼミ
16:50からMaくんの進捗状況を聴いて指導した。

●ltp 授業処理
アンケート1件に回答した。

これまでの提出物について受講者の提出状況を確認し、評価用Excelファイルを更新して、成績確認システムにも反映させた。

2015年6月15日月曜日

2015/06/14(日) lt, ltp 授業準備

オフにしたかったがあきらめた。
午前のみ自宅で休養し、午後からオフィスに。


●ltp 授業準備(集計用紙システムの改修)
スタイルの微妙におかしなところを直し、またInternet Explorerではうまく動かない問題に対応するために、jQueryの勉強をしながらシステムの改修を行った。強いて今やらなくてもいいことではあったが、最近はこういうキッカケがないとなかなか技術を学ぶことがないのであえて今やった。

なお、この改修作業にあたってはまず現に稼働しているPHPやJavaScriptのファイルをコピーして、そのコピーに対して作業を行ったつもりであったが、うかつなことにJavaScriptのファイルはコピーせずファイル名を変えただけで作業を行ってしまった。そのせいで改修作業中はシステムがうまく動かない状態になっていたはずである。これについてはその旨とお詫びを書いた。ついでであったので「このシステムについて」と「お知らせ」のページを作った。httpdのログを見た限りではこのせいで迷惑をした受講者が1名ほどいたようである。

●lt 授業準備
続き。第9回のスライド資料と小テスト問題を準備し、Dropboxに置いた。

●ltp 授業準備
続き。第9回のスライド資料と調査報告書のチェックリストを準備する作業を行った。スライド資料にExcelとWordの使い方の説明をどれだけ入れるかについては迷った。クラスごとに進捗状況が違うこともあるであろう。結局、その部分を別ファイルにまとめて、クラスの状況に応じて使ってもらうという形にした。その分、もとのスライド資料には調査報告書を執筆する上で特に注意してもらいたいことを書いたスライドを付け加えた。
調査報告書のチェックリストの見直しがまだ終わっていない。このチェックリストは印刷もしなくてはならない。また、USBメモリとラベルシールの準備もしなくてはならない。そういうわけで未完了

2015年6月14日日曜日

2015/06/13(土) da3, lt, ltp 授業準備

●da3 授業準備
続き。資料を完成させ、所定の場所に置いた。Yo先生にメールで連絡した。

●da3 授業準備(2016年度向け)
記憶が新鮮なうちにと思い、今年度の第6回第7回第9回の反省にもとづいて次年度の改訂案を簡単にテキストファイルに書いてみた。隣接行列の話をする第6回および第7回では時間が余ったので、隣接行列を使って到達可能な頂点を調べる方法を追加するという案を考えた。

PageRankの話を追加するという案も検討したが、これではかえって時間が足りなくなりそうである。第14回のネタには良さそうである。PageRankは昔勉強したのに、da3を担当した1年目か2年目の頃にアドリブでPageRankを説明しようとしてうまく説明できなかったことがあった。これを勉強しなおして今年度の第14回で取り上げるのもいいかもしれない。

●lt, ltp 授業準備
第9回の準備に着手した。スライド枚数をなるだけ減らす方向で作業を進めた。調査報告書のチェックリストも見なおして改訂したい。未完了


この週末に片付けなくてはならない仕事が山積みであるが、夜に目がつらくなったタイミングで仕事を打ち切った。

2015/06/12(金) 卒研ゼミ

●卒研ゼミ
9:30から卒研ゼミを実施した。出席6名、欠席2名(Muさん、Naくん)。
MaくんとKaくんの進捗報告を聴いてそれぞれにコメントした。
ゼミ後にもMaくんやKoくんに個別に指導するなどした。

11:00から卒業アルバムのための写真撮影を行った。例年この撮影では不自然な演技や普段やらないようなポーズを要求されるので、どうにも嫌で仕方ない。これも仕事の一環であるから一通りのことには応じるが、あまりに違和感を覚えることはなるだけやらずに済ませるようにしている。今回はゼミの模様を録画したいと言われた。どうも「楽しいグループワーク」を期待されているらしかった。すでに今日の進捗報告会を終えて機材もセットダウンしたあとであったので、準備がないことを理由に断った。
卒研生のなかにも嫌々撮られている者が少なくないようである。思い出すのは一昨年度の写真で、これは単なる集合写真であったにもかかわらず、ある卒研生はわざと視線をそらしていた。よほど一緒に撮られるのが嫌であったのであろう。こちらだって仕事でなければ誰がこんな罰ゲームをやるものか。

●da3 授業準備
第11回の資料を準備した。第11回はダイクストラ法の演習の回である。準備作業はもっと短時間でけりがつくかと思ったが、見直しを始めてみるとあちこち直すべきところに気づいた。未完了

2015/06/11(木) da1 授業実施

●ltp アンケート回答
受講者が実施しているアンケート全てに、自分でも回答してみた。特に設計に問題があると思うアンケートについては、回答に自分のコメントを付記した。

●ltp 学生対応
昨日連絡をくれた受講者が昼休みに来室したので対応した。集計用紙システムに入力したデータのうち、質問1の回答の8割がたが消失したとのことであった。原因を調べたところ、Microsoft Internet Explorer (IE)においてはテキストフィールドのonchangeがうまく発火しないせいであることが判った。テキストフィールドに限らずIEのonchangeには問題があるようであった。
この受講者にはMozilla Firefoxを使うよう指導し、その場でデータを入力しなおしてもらって、それでうまくいくことを確認した。また、集計用紙システムにはFirefoxを使うようにという注意書きを入れた。

こういう問題を避けるためにjQueryというものがあるのであろう。勉強しなくては。書籍は買ってあることでもあるし。

●今年度の備品導入
新プリンタの導入に関連して、S先生から旧プリンタの修理についての質問がMLを通じて流れてきたので、自分の知っている範囲のことを返信した。

また、Ta先生・S先生からは新旧プリンタはリプレースではないのかという質問も流れてきた。実は自分もリプレースと思っていたが、自分のところの旧プリンタは回収されなかった。過去の記録を調べてみたが除却申請を出した形跡はなかった(この日報に検索をかけてみてもそれらしい記載はなかった)。事務室に確認したところ、新プリンタの納期が不明であったので除却申請は出さなかったのであろうとのことであった。ここまでで判明したことを返信した。また、除却申請は個別に出してほしい旨の連絡をメールで全教員宛てに送信した。

●計算機環境の整備
★PCの保守
昨日Windows Updateを実行した hail およびH26年度貸与ノートPC保守機でもう一度Windows Updateを実行した。H27年度貸与ノートPC保守機でも実行した。
さらに、コマンドプロンプトで sfc /scannow を実行した。

★新プリンタのデバイスドライバの導入
6/08(月)にゼミナール室に設置された新カラープリンタのデバイスドライバをデスクトップPCにインストールした。また、このインストーラをファイルサーバに置いた。このことについて研究室Wikiに記載した。

●da3 授業処理
小テストの答案に目を通して採点を修正した。小テストおよび演習の得点を集計して評価用Excelファイルに入力し、成績確認システムにも掲載した。

●書籍購入
残りの2冊も受け取った。領収書等は未処理

●da1 授業準備
スライド資料PDFファイルや履修者名簿のハードコピーを作った。

●da1 授業実施
5限目に第9回を実施した。小テストの実施とその解説のために授業時間の半分以上を使ってしまった。また、スライド資料がなんだか説明しづらかったり、実習問題が多かったりしたせいもあって、授業時間が足りなくなった。講義の後ろのほうはやや駆け足になり、最後のスライド2枚は授業時間内に説明できなかった。この2枚は次回の小テストには影響しないところであるので、次回に廻すことにした。

●swB 学生対応
続き6/02(火)の口頭試問2次を受けなかった学生1名に対して口頭試問を実施した。

●da1 授業処理
小テストの受験状況にもとづいてK'sLifeの出席登録データを修正した。
小テストの答案に目を通し、採点に修正を加えた。小テストの得点を評価用Excelファイルに入力し、成績確認システムにも載せた。

●da1 授業準備(2016年度向け)
今日の授業で喋りづらかったところ、受講者の反応が悪かったところを記憶が新鮮なうちに改善するため、スライド資料の改訂を行った。最初に思ったよりも大きな改訂になった。

2015/06/10(水) da3 授業実施、学部の会議

11時過ぎにオフィスに。


●学生コンテスト企画
続き。自室にてH社の方々と打ち合わせを行った。11:30にご来訪の予定であったが、私が11時過ぎに自室に着いてみるとすでに部屋の前にてお待ちであった。打ち合わせでは今年度の実施方針の概略をうかがった。また、私が学部の会議で協力について了承を得ることになった。

後述の学部の会議ののち、協力につき了承された旨をメールにて連絡した。

●ltp 授業準備
集計用紙システムの学生データに2名分の漏れがあることに気付いたので、サーバ aurora のphpMyAdminから追加して、該当する受講者にメールでその旨を連絡した。

受講者1名からメールで連絡があり、集計用紙に入力したデータの一部が消失したので相談したいということであった。今日・明日にでも来室してもらいたい旨を返信した。

集計用紙システムに、回答データが入力されたテキストフィールドの色が変わるという機能を追加した。

●lt ランチョンミーティング
昼休みの会議に出席した。いつものように議事録を書いた。
来週の第9回はlt, ltpともに自分が準備を担当する。

●da3 授業実施
3限目に第9回を実施した。今回の小テストには手こずる受講者が多かったようである。
今回は深さ優先探索・幅優先探索のプログラミング演習の回であった。また、今回は前回の演習問題のチェックをも行うことにしていたので、教員側の負担はいつも以上に大きかった。助教のK先生はともかく、TA, SAの二人はよくやってくれたと思う。
受講者1名に第5回上級問題の解答について説明した。

●学部の会議
3限目の授業の撤収が遅れた上に、学生コンテスト企画の依頼文をコピーする作業を行ったので、会議には遅れて出席した。
会議の最後に学生コンテスト企画への協力について説明し、了承を得た。
会議は意外に早く終わった。

●da3 授業処理
第9回のスライド資料にあった演習問題の誤記を修正して、授業用Webページも更新した。
小テストの受験状況に基づいてK'sLifeの出席登録データを修正した。

●swB 授業処理
昨日6/09(火)の2クラスのレポートにK'sLife上で○×を付けた。

●計算機環境の整備
★PCの保守
デスクトップPC、ノートPC hail、H26年度貸与ノートPC保守機にWindows Updateをかけた。

●その他
自室内に段ボールなどの紙ゴミが溜まってしまってどうしようもない。一部をつぶして紙紐でくくって廊下に出した。

2015/06/09(火) lt, ltp, swB 授業実施

●lt 授業実施
1限目に第8回を実施した。今回も授業の最後にビデオ鑑賞があるので、そのための時間を確保することを考えながらスライドを順に片付けていったところ、最終的にはビデオ鑑賞が終わっても10分間ほど時間が余ってしまった。そうなるとあらかじめ判っていれば、もっと落ち着いてスライドをノートに写すための時間を確保しながら進行することもできたろうにと思う。

●ltp 授業実施
2限目に第8回を実施した。Excelでデータを処理してピボットテーブルやグラフを作る手順を説明したのち、アンケート調査を実施する演習の続きを指導した。
受講者にGoogleフォームのURLをメールで送付し、挙手の代わりにこのGoogleフォームでエントリするよう指示した。教員側はこのエントリ状況をGoogleスプレッドシートで見て、早いエントリから順に対応した。助手・TA・SAにはそれぞれタブレットを持ってきてもらい、Googleスプレッドシートの対応したエントリに自分の名前を追記するよう依頼したが、実際にはタブレットから書き込むことができなかった。仕方がないので私が口頭で対応状況を聴いてノートPCから対応者の名前を書き込んだ。この作業をしながら、受講者がMLに送ったアンケート用紙を承認するという作業も行ったので、なかなか大変であった。普通に挙手させるのとどちらが効率的であったろうか。
授業終了のチャイムが鳴った時点で助手・TA・SAには撤収を指示したが、私自身はそのあともしばらく教室に居残って指導にあたった。

●swB 授業準備
K'sLifeに本日授業を実施する2クラスのためのレポート受付を作成した。

●swB 授業実施
4限目と5限目にそれぞれ別のクラスで後半第1回にあたる第8回を実施した。授業自体には大した問題はなかった。特に4限目のcクラスでは非常に円滑に進行した。5限目のbクラスでも一部の学生の貸与ノートPCに不具合が見られたほかは円滑であった。しかし、1限目・2限目と合わせて4コマを喋りっぱなしであったから、5限目の最後の方はつらかった。

●swB 学生対応
5限目終了後、先週の口頭試問を欠席した学生1名から申し出があったので、今週6/11(木)6限目にあらためて口頭試問を行うことにした。

●業務
18時からの会合に出席した。詳細略。

●lt 授業処理
小テストの受験状況にもとづいてK'sLifeの出席登録データを修正した。
小テスト答案に目を通し、採点に修正を加え、得点を集計して評価用Excelファイルに入力し、成績確認システムにも掲載した。

●ltp 授業処理
出席メールの提出状況にもとづいてK'sLifeの出席登録データを修正した。
課題報告メールの提出状況やアンケートの実施状況を点検し、その結果を評価用Excelファイルに入力し、成績確認システムにも掲載した。

2015年6月9日火曜日

2015/06/08(月) 導入1, 演習1 授業実施

●今年度の備品導入
予定通り午前中にカラープリンタが設置された。設置担当の業者さんに手伝ってもらって古いプリンタを空席に移し、入れ替わりに新しいプリンタを置いた。その場でネットワークの設定をやってもらった上で、ノートPC nightfog にデバイスドライバを導入してテスト印刷を行った。

ちょうど卒研生のKoくんが来たので、彼のデスクトップPCにもデバイスドライバを導入させた。
デバイスドライバをファイルサーバに置いておくこと、自分自身のPC、他の卒研生のPC、共用のノートPCなどへ導入すること、研究室内Wikiに記録しておくことなどいくつかやるべきことがあるが未実施

●lt, da1, da3 授業準備(小テスト等の用紙印刷)
少テスト用紙や演習用紙の今週分をまとめて印刷した。
ltとda1の他クラス分は他の先生方に渡した。

●書籍購入
3冊のうち1冊が届いた。領収証等は未処理

●導入1 授業実施
3限目に第8回を実施した。出席13名、欠席1名。
メールやK'sLifeの連絡通知を確認するよう指示したのち、動画作品制作演習の続きを指導した。先週計画書を提出しなかった1チームからメールで計画書を受け取ったので、他のチームと同様にハードコピーを作って渡した。

●学生への修学指導
3限目の時間中、受講者のうち1名と面談を行った。詳細略。

●演習1 授業実施
4限目に第8回を実施した。出席8名、欠席2名。
先週の課題に引き続き取り組ませた。何人かはそれらしい解答を作ったが、十分とは言いがたかった。
貸与ノートPCからファイルサーバへのアクセスがうまくいかない受講者には nightfog を使わせた。
授業の最後にSPI選手権を受けるよう指示した。

●da3 授業処理
4限目の授業中にはあまり質問もなく余裕があったので、da3の4/22(火)第2回の小テスト答案に目を通し、採点に修正を加え、得点を集計した。

あとで評価用Excelファイルに入力し、成績確認システムにも掲載した。

●C3PO単独ゼミ
16:50から卒研生のMaくんに個別指導を行った。
いつも録画しているが、今回はLogicoolのソフトウェアの調子が悪かったのかウインドウが開かなかったので録画できなかった。

●lt 授業準備
スライド資料をDropboxからコピーし、PDF版とそのハードコピーを作った。
履修者名簿のハードコピーは余計に作ったものがあったので今回は作る必要がなかった。

●ltp 授業準備
助手、SAにメールで、可能ならタブレット等を持参するよう依頼した。

スライド資料をDropboxからコピーした。昨年度版にもとづいて今年度版の補足スライド資料を作った。これらのPDF版とハードコピーを作った。

Googleフォームや授業用WebページのURLを受講者に連絡するためのメッセージを作り、メールサーバに保存した。授業用ページを使わせるのは明日が初めてというわけではないが、先週もここのアクセスさせるだけのために結構な時間を割いたので、念のために記載した。

2015年6月8日月曜日

2015/06/07(日) 計算機環境の整備

朝から昼過ぎまで15時頃までオフモード。


●da3 授業処理
4/15(水)第1回の小テスト答案に目を通し、採点に修正を加え、得点を集計して評価用Excelファイルに入力した。まだ第2回から第5回までの小テストが未処理のまま残っている。

●lt, da1, da3 授業処理
各科目の小テスト用紙や演習用紙の印刷をするため、まずハードコピーを1部ずつ作った。明日印刷する。

da3の演習用紙の正解に入っている注釈が2014年度版のままであったので更新した。

●計算機環境の整備
★ファイルサーバ moonlight のメモリ増設
HP ProLiant MicroServer N54LにFreeNAS 9.3を導入して研究室内のファイルサーバ moonlight として運用している。かねてよりこのファイルサーバのパフォーマンスに不満があった。また、最近では複数のホストからNFSおよびCIFSでマウントしているディレクトリにファイルを書き込んだ際に何らかの遅延が発生しているらしかった。遅延を解消する設定を探してもみたが、FreeNASのGUIから通常の方法で設定できそうなオプションは今までのところ見つかっていない。
これらの問題を解決してファイルサーバの性能向上を図る方策の一つとして、MicroServerにメモリを増設することを検討した。これまではECCなしのメモリ8 GBを搭載して運用していた。RAIDZ2とは言え4 TB程度を運用するのに大量のメモリを要するとも思えないが、8 GBというのはFreeNASの推奨メモリ容量の最小値であるし、ECCなしというのも気になっていた。これを改善するためECC付きの16 GBのメモリを購入済みであったが、まだ導入していなかったので、本日これの導入を行った。
これで問題が解決するという見通しがあるわけではなく、どちらかと言えば藁にもすがる思いというところである。ただし、この藁の購入当時の価格は22,000円ほどであった。今Amazonの商品ページを見ると2万円を切っているので、余計に「高くついた」という思いがする。さておき買ってしまったものは有効に活用したい。

(1) 停止
まず、ファイルサーバにアクセスすることのある仮想サーバを全てサスペンドした。次に、FreeNASのGUIから設定をダウンロードして保存した。その上でFreeNASをシャットダウンし、MicroServerからケーブルを全て抜いた。

(2) メモリの交換
MicroServer前面のフタを開くと中にはホコリがたまっていたので、小型の掃除機でホコリを吸ったり、唾を飛ばさないように気を付けながらそっと息を吹きかけたりしながら、ネジやらケーブルやらを一つ一つ外してマザーボードを取り出した。メモリを交換して、元の通りにマザーボードを戻して、前面のフタを閉めた。MicroServerのマザーボードを取り出す手順は厄介でいつも緊張する。これが最後であってほしい。

(3) 起動
ケーブルを接続して電源を入れた。ファームウェアが16 GBを認識した旨を表示したのち、しばらくするとFreeNASが正常に起動した。

(4) 動作の確認
最初はFreeNASがHDDを全く認識していなかったので壊したかと焦ったが、もう一度停止して前面のフタを開いて中をよく見ると、ケーブルの一つが完全に挿しこまれていなかった。これを挿しこみなおした上でもう一度電源を入れたところ、FreeNASは問題なくHDDを認識して、メモリ容量が増えた以外は元通りになった。

(5) 再マウント
仮想サーバ aurora および dusk (いずれもCentOS 7)の稼働を再開した。そのままではNFSマウントが元通りになるわけではないようで、シェルから ls するとハンドルがどうとか表示されたので、 sudo reboot -n で再起動した。これで元通りにマウントされたことを確認した。
サスペンドしていた他の仮想サーバのレジュームし、正常にファイルサーバにアクセスできることを確認した。

(6) 増設の結果
ファイルサーバに ssh でログインして top を実行すると14 GBが未使用と表示されるので、やはり元の8 GBのままでも良かったのではないかという気はする。しかし、問題は実際にファイルにアクセスしているときの瞬間最大風速的なメモリ使用量であろう。しばらく様子を見ることにする。

★サーバの保守
仮想サーバ aurora, dusk, thunderhead, rainbow で sudo yum update を実行して再起動をかけた。

★PCの保守
H27年度貸与ノートPC保守機でFirefoxの更新およびWindows Updateを実行した。またコマンドプロンプトで sfc /scannow を実行した。

★その他
先月までMicroServerに挿していた安物のUSBメモリは、FreeNASが入ったままでWindowsマシンではパーティションがうまく認識されない状態になっていた。このUSBメモリをH27年度貸与ノートPC保守機に挿して、管理ツールの「ディスクの管理」でいじってパーティションを切り直し、FATでフォーマットした。

●卒研システムの保守
仮想サーバ daybreak (Windows Server)に導入されている卒研システムのバッチファイルは、生成したファイルをバックアップするために robocopy でファイルサーバにコピーするようになっている。この robocopy のオプションとして、ファイルのタイムスタンプの微妙なズレのせいで同じファイルを何度もコピーしなおすのを防ぐために、今までは /xn /xo を指定していた。しかし、これでは更新されたファイルもしなおされないという問題があった。例えば、毎月のログファイルは1日のぶんしかファイルサーバにはバックアップされていなかった。これを解決するため、オプションのうち /xn を /fft に変更した。バッチファイルを実行して動作を確認した。

2015年6月7日日曜日

2015/06/06(土) da3, da1 授業準備

昼過ぎからオフィスに。


●書籍購入
Webデザインの書籍3冊をAmazonに注文した。

●ltp 授業準備
集計用紙システムに若干の改善を施した。

●計算機環境の整備
★ノートPC nightfog の保守
Firefoxを更新した。
6/01(月)の演習1においてファイルサーバへのアクセスがうまくいかない受講者がいたので、この受講者に使わせるためのアカウントを作り、多少の設定作業を行った。

●da3 授業処理
5/27(水)に受講者1名からメールで受け取った5/13(水)第5回の上級問題の解答を検討した。動作のおかしいところが確認できたので、この受講者に説明するときのために手書きで簡単なメモを作った。

●da3 授業準備
第10回の資料を準備した。所定の場所においてYo先生にメールでその旨を連絡した。
準備作業はこれまでの回に比べると短時間でケリがついたが、それでもやはり簡単ではなかった。今学期にこれだけ苦労したのであるから、次年度以降はあまり変更せずに使いまわせればいいのであるが。

●da1 授業準備
第10回の資料を準備した。所定の場所において他の先生にメールでその旨を連絡した。
すっかり忘れていたが、昨年度の反省点に関する記録がいくつかあった。若干の改訂も施された状態であったが、それで十分というわけではなかったので、考えていたよりも改訂に時間を要した。そうは言ってもda3よりは簡単であった。

2015年6月6日土曜日

2015/06/05(金) 卒研ゼミ、C3PO合同ゼミ

●卒研ゼミ
9:30から定例の進捗報告会を実施した。出席5名、欠席3名(Muさん、Isくん、Naくん)。Muさん以外は無断欠席。
進捗報告はYaくんのみであった。Kaくんの報告も予定されていたが、これは次回ということになった。Yaくんは地道にPHPアプリケーションの学習に取り組んでいる。進捗は着実ではあるが時間がかかりすぎているように見受けられるので、今月中には学習にめどをつけるよう指導した。
そのあと、私からいくつかの連絡事項を伝えた。来週のこの時間には写真撮影の予定である。

●システム運用室会議
11:00からの会議に出席した。いつもは30分間もかからない会議であるが、今回はサーバの移行について議論があったので、1時間を若干超えた。

●C3PO合同ゼミ
13:00からS研との合同ゼミを行った。今回はNaさんが教育実習のため欠席であり、Maくんからのみ進捗報告があった。次回の2週間後にはHTMLで作ったモックアップを持ってきてくれることが期待される。
また、私から報告として、Googleフォームで作った簡単なシステムを来週のltpで使うことを説明した。その場で改善案をいただいて収穫があった。

●ltp 授業準備
集計用紙システムに若干の改修を行った。
授業用Webページから集計用紙システムへのリンクを張った。

自分の集計用紙にダミーのデータを入力し、CSVファイルとしてダウンロードして、これをExcelの使い方を説明する際のサンプルとして使うことにした。ダウンロードしたままのCSVファイルと、これをもとに作ったピボットテーブルや立体グラフを含むExcel形式のファイルを、一緒にzipファイルに圧縮して授業用Webページに掲載した。

受講者にGoogleフォームのURLを配布するときのために、受講者のメールアドレスの一覧を作った。MLを使って配布することもできるが、そうすると送ったメッセージの件名にヘッダが付くために他のメッセージの中に埋もれてしまうかもしれない。

●計算機環境の整備
★ファイルサーバ moonlight のNFS, CIFSにおける遅延について
続き。C3PO合同ゼミの際にS先生からmount.nfsにsyncというオプションがあるのではないかというヒントをいただいたので調べてみたが、これはどうやらサーバ側のオプションらしかった。

●da1, da3 授業準備・処理
授業用Webページに次回のスライド資料PDF版や小テスト正解を載せた。


夜はいつもより早めに切り上げてオフにした。

2015年6月5日金曜日

2015/06/04(木) da1 授業実施

あまり眠れなくて、早朝からオフィスに。


●導入1 授業処理
6/01(月)に、5チームのうち4チームの動画作品制作計画書をメールで受け取っていた。これらをPDF化し、授業用Webページに載せた。さらに、PDF版をプリンタ出力してA3版2ページのハードコピーを作り、チームごとに糊付けして一反木綿にした。4階演習室の各チームの机の上に置いた。

●セキュリティ管理方式の検討
学部の先生方に情報を寄せてくださるようお願いしていたところ、Is先生から1件ご連絡いただいていた。これを整理して人事部のIさんに送信した。

●ltp 授業準備
6/02(火)第7回から始まったアンケート実施について、各受講者が自身の回答実績を記録したり受信した回答を記録するための“集計用紙”を用意しなくてはならない。いろいろ考えているうちに、意外に簡単にAJAXで実現できそうな気がしたので、最近導入したCentOS 7ベースの仮想サーバ aurora の動作確認も兼ねて、Webアプリケーションとして aurora に作ることにした。

テーブル設計を考えて aurora のphpMyAdminでcreate tableを実行し、受講者データをインポートした。簡単なPHPスクリプトを書いてまずは一覧表を出力させてみたところ、文字化けが発生した。例によってPHPからMySQLに接続したときの文字コードが latin1 になっているの原因であった。PHPスクリプトの中で文字コードを指定すれば解決することは判っているが、あとで学生にそれについて指導しなくてはならないということも含めてどうも気にいらなかったので、PHPの設定で解決しないかといろいろ調べてみた。しかし収穫は無く、結局PHPスクリプトの中で mysqli::set_charset を呼ぶことにした。他にも、これまで使っていた mysql の代わりに今回初めて mysqli を使ったところ戸惑うことがいろいろあった。

セッションを使うPHPスクリプトを書いたところ、Webブラウザからのアクセスに応答しなくなる現象が起きた。あれこれ試した結果、どうやら session_save_path を呼んでセッション情報の保存先を自分のホームディレクトリ下に設定する処理のあたりで止まるようであった。最初はSELinuxを疑っていろいろと調べたが、どうもこれは違うようであった。
サーバ aurora のホームディレクトリの実体は別のファイルサーバ moonlight にあり、これを aurora はNFSでマウントしている。そのせいでホームディレクトリはローカルなファイルシステムと振る舞いが異なることがある。これが原因かもしれない。原因の確定には至らなかったが、とにかくホームディレクトリ下にセッション情報を保存する設定はうまくいかなかったので、この設定はあきらめた。その代わり /etc/php.ini を編集してセッションの有効期限の規定値を大幅に長くした。

必要に応じてMariaDBのテーブルを作り直したりしながら、PHP, JavaScript, CSSのコードを書いた。夜にはWeb版の集計用紙が完成した。K'sLifeにltp受講者宛ての連絡通知を入力し、明朝に送信されるよう設定した。
最初に考えていたほど簡単な準備作業ではなかったが、その過程で aurora, duak の要改善点が見つかったので良かった。

●計算機環境の整備
★ファイルサーバ moonlight の MyHome の設定
前述の通りPHPのセッション情報をホームディレクトリ下に保存する設定はうまくいかなかった。そこで、PHPスクリプトがWebブラウザからファイルを受け取ってホームディレクトリ下に保存する処理もうまくいかないのではないかと心配になったので、実際にコーディングして実行して調べてみたところ、ファイルの保存はうまくいくことを確認した。

ただし、このようなPHPスクリプトの実行が成功するためには、当該ディレクトリに Apache HTTP Server のプロセスが書き込みできるようにアクセスパーミッションをあらかじめ設定していおかなくてはならない。学生がサーバに ssh でログインして chmod するようなことは想定していないので、CIFS経由で作ったディレクトリやファイルに Apache HTTP Server からも書き込みができるような設定をしておくべきことに気が付いた。
ファイルサーバ moonlight のFreeNASのGUIから、CIFSの MyHome の設定に create mode および directory mode の指定を追加した。また、すでに存在する各学生のホームディレクトリについてはアクセスパーミッションを適当に変更した。

★サーバ aurora, dusk の設定
前述の通り aurora の /etc/php.ini を編集してセッションの有効期限の規定値を長くした。
サーバ dusk にも同様の設定変更を施した。

Windowsクライアントから書き込んだファイルが aurora からすぐには見えない現象や、逆に aurora で Apache HTTP Server が生成したファイルがすぐにはWindowsクライアントから見えない現象が起きることに気付いた。このとき調べた限りではこれを制御できるようなFreeNAS のオプションなどは見当たらなかった。増設用メモリを買ったきりそのままにしているが、やはり早々に増設作業をするべきか。

●da1 授業処理(前回分)
授業の直前になって、前回の小テスト答案をまだ処理していなかったことに気付いた。あわてて答案に目を通し、採点に若干の修正を加えて、得点を評価用Excelファイルに入力し、成績確認システムにも載せた。

●da1 授業実施
5限目に第8回を実施した。今回も小テストと解説で授業時間の半分ほどを使った。後半には演習を指導した。今回の演習問題には、小テストやスライド資料などにヒントがふんだんに盛り込んでおいたせいか、多くの受講者が授業終了時刻までに必須問題を解き終えた。数名が居残ったが、最後の1名も18:30頃には終了した。

●da1 授業処理(今回分)
K'sLifeの出席登録データの修正、小テスト採点の点検・修正、小テストおよび演習の得点の集計とExcelファイルへの入力、成績確認システムへの掲載などを行った。

●電子錠登録・登録抹消
Sa先生からの登録依頼1件と、教務課からの学生証再発行1件をそれぞれ処理した。

●進路指導Webサイトの更新
数日前にメールで流れてきた学内単独企業説明会の資料と、本日A先生から流れてきた求人資料を、いずれもWebサイトに掲載した。

●学生コンテスト企画
続き。H社から返信があり、打ち合わせの日時は6/10(水)午前と決まった。

●その他
室内に紙ゴミが大量にたまっており、ずっと未処理のままである。そのうちのわずかな割合に過ぎないが、四つほどの束を紙紐でくくって廊下に出した。

2015/06/03(水) da3 授業実施

●da3 授業準備
第8回のスライド資料PDF版や、実習および演習の正解PDF版のハードコピーを作った。
小テスト用紙を印刷した。
履修者名簿を印刷した。

●da1 授業準備
第8回の小テスト用紙3クラス分を印刷し、2クラス分は他の先生方に渡した。
また、余分に印刷した第7回の小テスト用紙を1/3ずつ他の先生がたに引き受けていただいた。

第9回の資料を準備し、所定の場所に置いて、その旨をメールで他の先生方に連絡した。

●lt ランチョンミーティング
昼休みの会議に出席した。いつものように議事録を書いた。
昨日第7回の講義は、他のクラスではやや時間が不足気味であったようである。スライド枚数はかなり絞ったので奇妙に思える。しかし、次回の小テスト問題は少し盛り込みすぎた感じもするほどであるので、これに備えて説明を手厚くしたり学生がノートをとるための時間を十分に確保したりということがあったのかもしれない。
演習においては、他のクラスでは受講者に挙手させる代わりにホワイトボードに学籍番号ないし座席番号を書かせているということであった。この話題は昨年度もあったが、自分のクラスでは相変わらず挙手させている。どうも授業中に教室内を受講者にうろつくような指示を出すことには抵抗を感じる。
集計用紙は各クラスで作るということであった。これの作成および印刷と、次回の小テスト用紙の印刷を忘れないようにしなくてはならない。

議事録は、あとで若干書き足した上でDropboxに置いた。

●da3 授業実施
3限目に第8回を実施した。いつものように小テストを実施したのち、Javaにおける2次元配列の宣言について少しだけ説明した。次に成績確認システムを設置した旨を連絡した。その上で講義に入った。
今回のテーマは深さ優先探索と幅優先探索であった。スライド資料で概念を軽く説明したのち、実習・演習用紙を配布して、 実習問題を解く過程を書画カメラで見せながら説明した。途中までやってみせて、部分的には受講者自身が考えるための時間を若干とったりはしたが、クイズ形式にして指名して答えさせることはしなかった。それでもかなり時間の時間を要した。演習のために確保できた時間は20分間弱にすぎなかった。演習の解答チェックは次回にも引き続き行うことにして、その旨を告知したので、特に不満の声は聞かれなかった。
前回の小テスト用紙と、第3回に回収した第2回の演習用紙を返却した。

成績確認システムのおかげで、受講者のうち1名から第6回の演習のチェック漏れについて指摘があった。その場ではそのときの演習用紙を預かった。

●da3 授業処理
小テストの受験状況にもとづいてK'sLifeの出席登録データを修正した。
小テスト答案に目を通し、採点に若干の修正を加えた。小テストと演習の得点を集計し、評価用Excelファイルに入力し、成績確認システムにも掲載した。
前述の預かった演習用紙も確認し、第6回の演習の得点を修正した。

●就職活動の指導
CSCからメールで本日の学内合同説明会について連絡が回ってきたので、自分の研究室の卒研生に転送した。

●卒業研究の指導
卒研生のYaくんから質問を受けたので指導した。PHPスクリプトの実行方法についてであった。

●産学懇談会の準備
N先生から電話で、1度目は7月のda3の実施予定について問い合わせを受け、2度目には部屋に呼び出された。要するに産学懇談会の前に実施される授業参観の対象(話のサカナ)としてda3はどうかという話であった。あまり良い考えのようには思えなかったので基礎演習1を提案したところ、N先生の部屋に集まっていたN先生、A先生や他の先生方による議論の結果、それに決まった。たまたまその時期における基礎演習1の担当教員はN先生とA先生であった。
こういう次第でN先生とA先生からは恨まれることになった。電話がかかってきたときに叩き切るべきであった。

●lt 授業処理
昨日第7回に実施した第5&6回小テスト答案および未処理であった第4回小テスト答案に目を通し、採点に修正を加え、得点を集計して評価用Excelファイルに入力した。評価用Excelファイルにおいて出席および小テストの合格水準までのノルマを表示する計算式を改善した。出席および小テストの状況は成績確認システムにも掲載した。これでようやく現在の状況に処理が追いついた。
成績確認システムについては、あらためて受講者宛ての連絡通知をK'sLifeに入力し、明朝送付されるよう設定した。

●ltp 授業処理
昨日第7回までに提出されたチェックリストや課題メールの合否や提出状況を評価用Excelファイルに入力し、成績確認システムにも掲載した。こちらもこれでようやく処理が追いついた。

昼休みのランチョンミーティングで聴いた、挙手の代わりにホワイトボードを使う話について、自分のクラスではGoogleフォームを使うことにした。この方法では、受講者には挙手の代わりにフォーム送信をしてもらい、教員側はスプレッドシートに溜まったデータを見ながら基本的には先着順に受講者への指導を行う。
スプレッドシートおよびフォームを作り、これらの表示や動作を確認した上で、Ma先生、TA、SAにフォームのURLをメールで送った。また、Googleアカウントを教えてくれるよう依頼した。

●学生コンテスト企画
昨年度と同じくH社からメールで連絡があった。まずは打ち合わせの日程調整とのことであったので、こちらの都合を返信にて回答した。

2015/06/02(火) lt, ltp, swB 授業実施

●lt 授業実施
1限目に第7回を実施した。チャイムに少し遅れて教室に到着したので、小テストの開始がいつもより1分間程度遅れた。
小テスト終了後に講義を行った。今回のテーマはデジタル情報の保護であった。自分で用意したスライド資料を使ったから、いつもより喋りやすかった。ノートをとる時間を十分以上に確保しながら進めていったら後のほうでは時間が不足しそうになって少し焦ったが、最後のビデオ鑑賞の終了と同時にチャイムが鳴った。

●ltp 授業実施
2限目に第7回を実施した。補足スライド資料を使って一連の課題の関係を再度説明したのち、3クラス共通のスライド資料を見せながらアンケートの実施要領を説明した。あとの時間は受講者の考えたアンケート用紙の設計を点検したり、受講者がMLに流したアンケート用紙を承認ないし却下する処理を行ったりした。点検待ちの受講者が多く、なかなかさばけなかったが、このあとに面談の予定があったので授業終了のチャイムと同時に打ち切った。

●学生への修学指導
昼休みに2年次生2名と面談した。3名に呼び出しをかけていたが、1名は来なかった。
5限目終了後、この1名をうまく捕まえることができたので、その場で簡単に面談した。

●swB 学生対応
2年次生1名が訪ねてきた。最終レポートの提出先を誤ってテーマAのほうにテーマBのレポートを送ってしまったとのことであった。幸いK'sLifeではテーマA, B双方の教員が双方のレポート受付を閲覧できるようになっているので、テーマAの提出済みレポートの中からこの受講者のレポートを探し、提出日時がテーマBの〆切前であることを確認した上でダウンロードした。

●lt 授業処理
小テストの受験状況にもとづいてK'sLifeの出席登録データを修正した。

●ltp 授業処理
出席メールの提出状況にもとづいてK'sLifeの出席登録データを修正した。
授業終了後もMLにアンケートが送られてきたので、順次確認して承認した。

●今年度の備品導入
新しい備品のカラープリンタがいよいよ導入されるとの連絡が入った。導入作業の日程について問い合わせを受けたので、6/08(月)午前にと回答した。

●swB 授業処理先週の最終レポート2次〆切までに受け取ったレポートをK'sLifeからダウンロードし、WordファイルとJavaソースファイルに分けた。JavaソースファイルはEclipseに入れて動作を確認し、パッケージ名の誤りなどのため動作しないものについては修正を加えた。いくつかのレポートには大きな不備があったので、授業中に助手のMa先生に点検してもらうことにして、要点検項目を列挙したメモを作った。

●swB 授業実施
5限目に第7回として口頭試問2次を実施した。レポートに大きな不備があった受講者に対してはメールでの再提出を認めた(ただし大きく減点)。授業時間いっぱいを使ってようやく口頭試問を片付けた。プログラムがちゃんと動かない事例も若干あった。来週から始まるG先生のテーマAで努力して、私のテーマBでの減点分を取り返すよう指導した。

最後の1名がたまたま昼休みの面談に来なかった学生であったから、前述の通りその場で面談した。

自室に戻ってから、口頭試問の記録を整理した。採点を完了するのは恐らく今学期末であろう。

●da3 授業処理
授業用Webページに成績確認システムを設置した。
評価用Excelファイルにこれまでの演習の得点を入力し、成績確認システムにも載せた。

●da3 授業準備
第9回のスライド資料PDF版を授業用Webページに載せた。
TA, SAも講義資料を参照することができるよう、認証の設定作業を行った。また、講義資料を参照することができる旨を当のTA, SAにメールで連絡した。

●その他
2限目の終了後、1年次生1名から、K'sLifeの保護者用パスワードの設定について相談を受けた。自分は回答できなかったので、自室に戻ったあと問い合わせ先を調べてメールでこの学生に連絡した。

2015年6月4日木曜日

2015/06/01(月) 導入1, 演習1 授業実施、C3PO単独ゼミ

●演習1 授業実施
新たな問題を用意した。これはPHPの配列とその処理に関するものである。PHP入門も何もなくいきなりこれをやらせるのは結構な難易度であろうが、他の授業でPHPを学んでいる学生もいるのでとりあえずやらせてみる。必要なサーバはこちらで用意しているので、その点についての学生の負担は軽いはずである。
これまでに出題した問題、新しい問題、サーバの使用方法を記載したスライド資料を作った。次年度にも使いまわせるように解答例を更新した上で、その実行結果のスクリーンショットをスライドに図として載せた。

●導入1 授業実施
3限目に第7回を実施した。5チームのうち4チームが作品制作計画書を完成させて提出したが、1チームは若干手こずっているようであった。
LAのHJさんにはPowerDirectorやAudacityの使い方を自習してもらった。あとで役に立つはずである。

●演習1 授業実施
4限目に第7回を実施した。新しい問題を出した。PHPスクリプトのテンプレートをサーバからダウンロードさせ、穴埋めしてサーバに置いて実行を確認するよう指示した。UNCにアクセスする方法が判らないというのはまだしも、パス名の読み方が判らない学生やURLの入力が未だにうまくできない学生が少なくないことには軽く驚かされた。

前回、受講者のうち1名は彼自身の貸与ノートPCからファイルサーバにアクセスすることができなかった。この受講者のアカウントを私が作り忘れていたことがあとで判ったので、授業後に作ったが、今回もやはりアクセスは失敗した。現象は、フォルダウインドウにUNCを入力すると認証ダイアログが開きはするが、ユーザ名とパスワードを入力するとハングアップしてしまうというものであった。別のPCでこの受講者のアカウントによるアクセスを試みるとうまくいくので、問題の原因は貸与ノートPCにあるのであろう。H26年度貸与ノートPC保守機でOmniPassのサービスを無効にしたときの現象と似てはいるが、彼の貸与ノートPCはH25年度のものであり、サービスの一覧を見てもそれらしいものは見つからなかった。何か怪しいソフトウェアが導入されてしまっているのではないかと疑うがハッキリしない。このままでは授業に差し支えるので、今後は別のPCを使わせることにする。

授業時間中に3名と個別に面談した。

●学生への修学指導
導入1終了後の休み時間に1年次生1名と、演習1終了後に3年次生2名と、それぞれ個別に面談した。詳細略。

●C3PO単独ゼミ
卒研生のMaくんの進捗報告を聴いてコメントした。短時間で終わった。
ついでに就職活動状況も聴いた。

●進路指導Webサイトの更新
郵送で受け取った求人資料をスキャンしてWebサイトに掲載した。また、その旨をA先生に連絡した。

●演習1 授業処理
今日の授業でうまくいかなかった点を踏まえ、スライド資料およびPHPスクリプトのテンプレートを更新した。

●電子錠登録・登録抹消
教務課から学生証再発行1件の連絡を受けたので処理した。

●lt 授業処理
4/21(火)第2回に実施した第1回小テストから、5/12(火)第4回に実施した第3回小テストまでの答案に目を通し、採点に修正を加え、得点を集計した。評価用Excelファイルを作り、小テスト得点および出席状況を入力した。授業用Webページに成績確認システムを設置して、そこに評価の現状を掲載した。

●ltp 授業処理
5/26(火)第6回までの演習課題について、報告メールの提出状況やチェックリストの提出状況を点検した。その結果を評価用Excelファイルに入力し、成績確認システムにも掲載した。

●lt 授業準備
スライド資料PDF版および履修者名簿のハードコピーを作った。
明日第7回に協力してくれるTAはいつものTAの代役であるので、この代役TA用に手引きのハードコピー1部を作った。

●ltp 授業準備
Dropboxからスライド資料をコピーして内容を確認し、PDF版とそのハードコピーを作った。自分のクラスで使う補足スライド資料を昨年度版をもとに用意した。

授業用Webページを更新した。

●その他
昨年度B4当時にgwの単位を取得した学生がM1になったので、教務課からメールで成績処理のため評点についての問い合わせがあった。当時の評価用Excelファイルを確認して返信した。

2015年6月1日月曜日

2015/05/31(日) da3, lt 授業準備

午後からオフィスに。


●da3 授業準備
第9回の資料を作った。
この回は第8回の講義に対応するプログラミング演習の回であるから、第8回の内容変更に伴い、演習用のJavaプログラムやスライド資料中の疑似コードについても昨年度版を全体的に見直して改訂した。
また、第8回の演習を第9回まで引っ張る可能性が高いので、第9回の演習はあまり時間をかけなくても解けるように工夫してみた。まず、1問目は(授業を聴いてさえいれば)あまり考えなくても解けるようにした。2問目については1問目がヒントになるようにした。

第8回の演習の上級問題について、正解の途中経過を書いていなかったので、ファイルに書き足した。

これらの完成した資料は所定の場所に置いて、Yo先生にメールでその旨を連絡した。

●学生への修学指導
自分がクラス担任になっている2年次生のうち3名との面談を6/02(火)昼休みに実施することにした。その旨の連絡通知をK'sLifeに入力し、各学生に明朝送信されるよう設定した。

●lt 授業準備
第7回のスライド資料と、第8回で実施する第7回小テストを作成した。
第7回のltには昨年度と違い10分間程度のビデオ鑑賞を追加することになったので、そのぶん講義がいくらか短くなるように留意した。昨年度の第7回の記録によると10分間ほど時間が余ったということであるから、今年度はそれにビデオ鑑賞を追加してもいくらか早めに終わるはずである。
完成した資料はDropboxに置いて、S先生とIn先生にメールでその旨を連絡した。

●その他
昼間に少しだけ学文祭の様子を見て回った。晴天で良かった。