弁論大会(ディベート)
インフルエンザの影響で高専祭期間中を外しての異例の開催となった。 ディベートのテーマは以下のとおりであった。
- 総理大臣は国民投票で選ぶべきである。
- 体育祭は必要か?
- 実用的なのはハイブリッド車より電気自動車なのか?
- 愛する人の命より自分の命を優先か
体育祭の討論では『秋の土曜開催の提言』による肯定側立論は、 話し方も上手く最初の意見で聴衆から拍手が起こるなど、興味深かった。
担任クラスの3EIからは、片岡・笠嶋・阪井の3名が参加し 「愛する人より自分優先の否定側」にて議論を行った。 聴衆が3年までであり、本気の恋愛経験が少ないためか、討論では負けてしまった。 討論後の熟慮後の感想だが、「愛する」という言葉を「親子愛」に置き換え、 『自己優先=自分が親に見棄てられる』という論旨を織り交ぜると 有利に立てたのではないかと思った。
ホームルームでOB談話
ホームルームで、進路を決めるにあたっての意識を早い時期から持って欲しかったので、 簡単に連絡のできたOB2名(EI5期?新出氏、EI6期?橋本氏)にきてもらい、色々と話をしてもらった。 私自身もOBの3人目(EI16期)として、自分の話も少し交えながらとなった。
話をしてもらうために、 「学生時代にやっておけばよかったことは?」とか、 「進路を決めるにあたって、どういう考えをしたのか?」といったことを、 経験を踏まえて語ってもらった。 『大きな会社というものを知る意味で、就職で大企業がおすすめ』とか、 『英語が嫌いでも、最初は必要性が低くても、どうせいつかは必ず必要になる』といった 内容を語ってもらった。
「ほうれんそう(報告・連絡・相談)が、大切!」とか、「コミュニケーションの場という意味で、 意外と会社の『煙草部屋』は重要だったりする…」とか、真面目な話題に留まらないネタを、 うまく会社&仕事というネタにつなげながら、話をしてもらえたのはよかった…
不真面目に聞く学生も少なかったし、最後の質問の時間でも積極的な質問がでて、 最後にクラス代表が「ありがとうございました」の一言でしめてくれたりと、 こちらが指導しなくても「社会人」としてのマナーをきちんと持っていることが、 良かった。
歯みがきロボコン機械工業会さま車体
福井県機械工業会の方の参加予定の車体。 さすが金属加工はお手の物、NC工作機械などを活用して、 ちょっと重量級ではありますが、しっかりした車体となっています。
# この金属加工技術が、うちにも欲しい…
クランクの滑らかな構造が…NXTのモータではトルクがギリギリ。
歯のカーブに合わせた面構造のブラシ…
構造体の演習
プログラミング応用では、構造体を使ったプログラムの演習の時間とした。 課題のテーマは、構造体を使ってプログラムを作成する。 条件は、以下の通り。
- 構造体を使い、何らかのデータを入力し、何らかの処理を加えて出力する。
- データは、3要素程度のデータで、異なる目的の型であること。
できれば入れ子になった構造体の利用にチャレンジすること。 - プログラムは、データの入力、出力、何らかの処理は、別の関数で実装され、 引数を使った構造体の受け渡しをしていること。
プログラミングの好きな学生さんから、「構造体のnullチェックってできませんでしたっけ?」と 聞かれる。Java等の言語に慣れすぎていて、C言語をよく分かっていなさそう。Javaのデータが 参照(ポインタ)で実装されていることをちゃんと分かっているのかな? データの実体がどこなのかを分かっていなければ、たとえJavaユーザとはいえ、 コピーコンストラクタの意義を分からずに、はまるはず。
DarwinStreamingServerをインストール
ダメ元の科研費申請にて、他の大学の先生の共同研究者として、申請となった。 その中で、f-leccs と連動できるようなストリーミングサーバといったネタがあるので、 Mac OS X Server がほしいけど、ひとまず実験として、DarwinStreamingServer を試すことにした。
自宅サーバにて、参考記事を見ながらインストール作業を行う。 最初、パッチを見つけられなかったので、そのままコンパイルさせたら、エラー多発で動かなかった。 現時点では、ひとまず入れただけ。ポートを空けながら、実験をボチボチと行おう。 職場にてインストールしてもいいけど、ポート的な自由度が面倒だったので、自宅にて試すことにした。
どこかのt-saitohさんに…
週末に学生さんから職場宛にメールが届いていた。 「職場のメールじゃ土日は、携帯に!!」と伝えると、「送りましたよ!」との返事。 どうも職場のt-saitoh@ei…とID部は同じだろうと、t-saitoh@ezweb… 宛てに送ったらしい。 たしかに、t-saitohのIDは、パソコン時代からのお気に入りIDで、 @po.ttn.ne.jp やら、@auone.jp では、t-saitoh がうまく取れたけど、 いつもいつも"t-saitoh"が未使用ということは少ない。
基本原則、どこかでアカウントを申請する場合の優先順位、 "t-saitoh","tsaitoh","tsaitoh.net","tohrusaitoh",… あたりかな… ちなみに、http://tsaitoh.jp/ は、私じゃありません。 別人の"t-saitoh"は沢山いるので、ご注意を!!
プログラムの実行とメモリの利用
計算機システムの授業にて、先週のROM/RAMおよびブートローダの話の続きとして、 メモリ階層の話と、プログラムの実行方法について説明する。
メモリ階層
CPUの処理速度と主記憶の読み書き速度には差があり、CPUの方が速い。 このため、SRAM(半導体メモリによる高速・小容量メモリ)と、DRAM(電荷蓄積をつかった低速・大容量)を組み合わせて使い、SRAMによるキャッシュメモリをCPUとの間に置くことで、 よく利用するデータはSRAMによるキャッシュメモリに保存し、 必要に応じてDRAMによる主記憶に保存するようにすることで、 見かけ上、高速大容量のメモリがあるように見せることを説明する。 これに加え、補助記憶装置(ハードディスク)に、実行待ちのプログラムで一時的に 主記憶を使わないものは、ハードディスクに保存し主記憶を明け渡すことで、大容量の主記憶に 見せかける仮想メモリについて解説する。メモリ階層の最上部のレジスタも補足で説明する。
インタプリタ・コンパイラ
プログラムの実行方式として、インタプリタ方式とコンパイラ方式を説明し、 インタプリタ方式はすぐにプログラムの実行を始められるけど、いちいち命令変換が必要で、 処理効率が悪いことを説明する。コンパイラ方式は、手間をかけて機械語に変換するけど、 実行が始まれば余計な命令変換が不要で高速に実行できることを説明する。 また、インタプリタ方式は実行時にソースが必要となることから、処理内容が他の人に流用される危険性があることを紹介。
Javaによるバイトコードインタプリタ方式などの特殊な事例も紹介し、 その1つとしてMac OSが、68000⇒PowerPC⇒Intel とCPUが変わることで、 エミュレータなどが必要であったことを紹介する。
プログラムの実行までの説明として、コンパイラ・リンク処理などの流れを説明し、 中間コードやライブラリの考えを説明する。ライブラリの説明にあたり、静的リンク方式と動的リンク方式を説明し、メモリの有効利用やライブラリの修正の容易さを特徴としてあげた。
2009年10月25日(第135回)
- メールテーマ:最近一番驚いたこと
- 高専祭の反省
- ライブラボ第4回 「食肉加工食品 第1弾 サラミ」
たださんがサラミの食べわけに挑戦しました。
たださんが目隠しされてサラミを食べています・・・
SQLの説明
前回の講義では、SQLの名前だけだったので、SQLの文法と機能について解説を行った。
- データ問い合わせ(select)
- データ操作(insert/delete/update)
- データ定義(create table)
- アクセス制限(grant)
SELECT について、抽出カラムの指定、 FROM節による結合(直積)・自己結合、 WHERE節による抽出条件などを 文法や例を交えて説明する。副問い合わせを使う検索は、次回講義にて。
データ操作については、参考にしている教科書では、文法が明確に記載されていなかったので、 随時Webにて解説ページを参考にしながら説明する。
データ定義については、CREATE TABLEについて解説し、CREATE VIEWについては、 概念を説明し、外部スキーマの実装として簡単に紹介する。
アクセス制限については、Webでの実験環境でもSQLiteを用いているため、使えないこともあり、 概念だけを説明する。
SQLの文法を説明したあと、文法を逆手に取ったSQLインジェクションのテクニックを説明する。