ホーム » 2006 (ページ 5)
年別アーカイブ: 2006
悪魔付き
3年の実験でパソコンが不調ということで、色々触っていると、 以前より微妙に調子の悪かったマシンを確認で触っていると、 「HD不調のはずだったのに私が触ったら電源さえ入らなくなる」、 「調子が悪いと起動しなかったマシンが本当に起動しなくなる…」、 といった調子で、3台連続して動かなくなる。 学生には「先生、悪魔つきなんやから、もう触ったらあかんて…」と言われる…はぁ…
# 電源故障やらHDD故障なので高久先生と一緒に、別の動かなくなったマシンの部品をよせあつめて修理に追われる…
JABEE中間審査終了
前回の審査でシステムの継続運用が重要との点を受け、中間審査をうける。 昨年の認証評価の後でもあり、ひとまず無事実地審査を終える。 3年後は、また審査となるが、改善のシステムの継続のためには、大変とはいえ必要だろう。 面談に協力してくれた専攻科学生さんには、ひとまず感謝。
機械語とライブラリ、OSとは
機械語ができるまで
先週のプログラムの実行方式の説明の続きとして、機械語ができるまでを説明。 高級言語→(コンパイラ)→中間コード→(リンカ)→機械語。 リンカの役割としてライブラリコードの組み込みも説明する。 ライブラリの実装方式として、静的リンク方式と動的リンク方式を解説。
OSとは
これまでの話の中にも何度もでてきた OS の役割を改めて説明する。 基本プログラム+開発環境+ユーザプログラムから成り、 OS によって、共通の操作性と資源(CPU,メモリ,時間,周辺装置等)の利用が 提供されている。 資源の利用では、ハードウェア保護や排他制御といった資源保護機能が大切な役割であることの説明。
時間が余ったので雑談として、携帯電話などの組み込み系では、資源保護機能が無いことを話す。 逆に資源保護が無いのなら、どうして携帯アプリがなぜ安全に動くのかを説明する。 i-mode+FOMA は、Java のおかげで危険を排除、au(BREW)は、安全確認したものだけをダウンロードできる…といった説明をする。
2分木と演算子データの扱い
2分木構造の応用のネタとして、2項演算子による式の表現を2分木を用いて行う方法を説明。
式の表現方法
式の表現方法として、中置記法、前置記法 (ポーランド記法) ) FN ポーランド記法の由来は、提唱者がポーランド人だかららしい。 /FN 、後置記法 (逆ポーランド記法) 特に、逆ポーランド記法等は、書き方自体が演算子の優先順位を含んでいる点や、 コンパイラを作成する時などの機械語生成が容易、スタックで実装が容易といった点を説明する。 逆ポーランド変換も基本情報処理の問題として定番なので、説明したいけど時間がかかるし データ構造とは離れるので、紹介のみ。 式の優先順位や右結合・左結合といった用語も説明する。
2分木で式を表現
最後に2分木で式を表現・生成し、 その値を実際に再帰呼び出しで値を計算するプログラム例を説明する。
struct Expr { int data ; // 数値データの場合は、left=right=NULLとする。 struct Expr* left ; struct Expr* right ; } ; // 数値の木を生成 struct Expr* Integer( int x ) { struct Expr* ne ; ne = (struct Expr*)malloc( sizeof( struct Expr ) ) ; if ( ne != NULL ) { ne->data = x ; ne->left = ne->right = NULL ; } return NULL ; } // 演算子の木を生成 struct Expr* Operator( char op , struct Expr* l , struct Expr* r ) { struct Expr* ne ; ne = (struct Expr*)malloc( sizeof( struct Expr ) ) ; if ( ne != NULL ) { ne->data = op ; ne->left = l ; ne->right = r ; } return NULL ; } // 木のデータを式として評価する int eval( struct Expr* e ) { if ( e->left == NULL && e->right == NULL ) { return e->data ; } else { switch( e->data ) { case '+' : return eval( e->left ) + eval( e->right ) ; case '*' : return eval( e->left ) * eval( e->right ) ; } } } // 動作確認 void main() { // e = 1 + 2 * 3 ; struct Expr* e = Operator( '+' , Integer( 1 ) , Operator( '*' , Integer( 2 ) , Integer( 3 ) ) ) ; printf( "%d\n" , eval( e ) ) ; }
雷
説明の途中で、余りにも雷雨が激しいので、雑談として落雷や感電の説明をする。 んで、真面目な授業のネタよりも、こういう雑談の方が学生さんはよく覚えているのが、 現実だったりする。 (人間の体内は手足間で平均500Ω程)
トラックバック SPAM が大量に…
気づくとトラックバック SPAM が大量に書き込まれていた。 対応も面倒だし、トラックバック機能を止める。
おもしろいアイディアだけど…
広告アイディアを、製品販売元とは関係なしにユーザが提案して、 広告を企業に『押し売り』しようという、ユニークなビジネスモデル。
だけど…
だけど、広告サンプルなのか本気なのかちょっと解らないけど、 物は???である。
- 007:背が伸びるつり革:身長の低い人向けの電車のつり革に、 専用の広告を…というアイディアなんだけど、 ある意味… 『チビにけんか売る気かぁ〜?』 というアイデアである。
- 006:このブツブツが目に入らぬか:盲人向けの道路の点字ブロックを ベネトンカラーのように配色し、広告ネタにしようというアイデア… だけど点字ブロックは、弱視の人が『黄色』で目立つ目印としても 利用していて、黄色以外だと視認性が落ちるという視点が抜けているんだなぁ…
ということで『押し売り』の名前通り、 相手にとっての視点が『びっみょ〜♪』に配慮に欠けている、変なサイトだったとさ。
表計算と電圧電流実験データ処理プログラム作成
表計算とプログラミング演習 を行うデータを使いながら実際に演習。 実験データ特有の有効数字などもネタに交えながら説明を行い、演習に取り組んでもらう。 時間内にレポートとして提出なので、 思ったより真面目に取り組んでくれたみたいで、成果があったように思う。
ブラウザ更新
正式版の Internet Explorer ver.7 日本語版 が公開された。 Firefox 2.0 と共に、色々と入れてみる。
Firefox 2.0 のインストール時間と比べて、IE7の遅いこと….