ホーム » 2006 » 4月

月別アーカイブ: 4月 2006

2006年4月
« 3月   5月 »
 1
2345678
9101112131415
16171819202122
23242526272829
30  

最近の投稿(電子情報)

アーカイブ

カテゴリー

再帰呼び出しと処理速度(再帰方程式)

処理速度見積りの続きとして、再帰呼び出しが含まれるプログラムの速度見積りの方法。 階乗のプログラムを示しオーダを求める。 再帰方程式の意味を理解させるために、『ハノイの塔』の速度一般式を、 再帰方程式+数学的帰納法で一般式を求める手順を示す。 再帰による分割全検索のプログラムを示し、次の授業で説明を行う予定。

明日の3限目が授業交替により、すぐに次の授業。
# 準備不足は、去年のネタで補うのだ!: メモ… メモ…

# 授業交替の勘違いで10分ほど遅刻。学生に『校庭3周やな…』と言われる…
# そんなんしたら痩せれるやん…

Ajax グループの目標

Ajax グループの目標

卒研で Ajax を使ったアプリ作成を取り組んでもらっているが、 サイトを見ていたら、目標に近いサービスを発見。

C++によるプログラミング

先週までの他学科OB学生さんむけの、C言語の構造体を使ったOOPもどきの説明で、 用語(オブジェクト+メソッド=クラス、オブジェクトの具体化=インスタンス …等)を復習。

今日は OOP もどきから、C++文法に発展させる。 例題は、Complex ネタ。参照渡しなどの説明を適宜行いながら、 データの設計側と利用者側の分担が明確化できることのメリットを説明しながら行う。

class Complex {
private:
double re ;
double im ;
public:
void set( double r , double i ) {
re = r ;
im = i ;
}
void print() {
printf( "%f+j%f" , re , im ) ;
}
void add( Complex& z ) {
re += z.re ;
im += z.im ;
}
} ;

来週は演習室にて、今までのプログラムをプリント等で配布しながら、 課題に取り組んでもらう予定。

変数のクラスと数値の範囲

  • 変数のクラス(auto/static/const)の説明。
  • 変数名のルール( [a-z_][a-z0-9_]* ) LI 2の補数表現と unsigned/signed と数値の範囲
    short int で座標間距離などだと桁溢れする例や 2037年問題などを説明。

2^32 ≒ 4*10^3 は説明したけど、 数値の範囲 N = M * log2 のネタを話してない…

就職戦線3勝

4月よりエントリーしていた学生さんで、内定が続く。 SAくん、MSさん、AMくん、内定おめでとうございます。

5年交流会

他の学年は遠足ですが、5年生は自由な交流会。 サボりが多いかと思ったけど、9:00頃から体育館に20人ほどがあつまり、 さっそくドッジボールが始まる。ソフトバレーボールを使うとはいえ、 2個のボールを使うタイプのルール。1試合参加するがあっさり撃沈であった。

昼食は心和館の外でのバーベキュー。この頃にはさらに参加者も増え、 「野菜ばかりの焼きそばゾーン」ができたりと色々ありましたが、 楽しい交流会でした。やはり5年にもなるとクラスの結束が硬くて、いいですね。
# 最終的に約30名の参加でした。

2006-04-24-08.JPG

竹島問題の解説

竹島問題の解説

この数日、竹島をめぐって緊張が続いていますが、 この問題を解りやすく紹介しているページです。 以前 TV では、どっちが先に…という視点ばかりで、決着のでない話ばかりでしたが、 この記事では、第2次大戦後の日本が曖昧にしたままの外交上の失策が、 うまく説明してあります。

さすが元「NHK週間こどもニュース」のおとうさん!、解りやすいです。 この人の色々な解説本を読みたくなった。

処理速度とオーダ記法

最初にJABEE対象カリキュラムに入った4年生へということで、 環境生産システム学習教育プログラムの説明を行う。

次に先週の説明の続きとして、処理速度の見積りの考え方の説明。 新たに最大選択ソートのプログラムを示し、処理速度の一般式 を示す。他の一般式ということで、クイックソートは N*log(N) の含まれる一般式 として紹介し、処理速度の見積りを行う。

この見積りの概念より、処理速度に影響を与える、最大項といった説明を行い、 オーダ記法の説明に続ける。

いくつかの適当な一般式のオーダ記法を求める演習を行い、 ロピタルの定理を用いた、オーダ記法算出を示す所で時間切れ。

ポインタ渡しと構造体から隠蔽化へ

情報系学科以外の学生さん向けということで、構造体に慣れてもらう。 また、ポインタ渡しのプログラムの例を示しながら、 大域変数渡しの悪い点を対比的に説明する。 ポインタ渡しを構造体に適用する事例を説明しながら、 データに対する処理を記述するスタイルに慣れてもらう。

これらの構造体定義と構造体に対する手続き定義のスタイルから、 オブジェクトやメソッドといった用語を紹介し、 これらにより手続き隠蔽化とデータ隠蔽化といったブラックボックス化を説明する。

アロー演算子を使ったプログラム例を交えながら、次のステップに進む必要あり。 簡単な演習時間を設けないと、他学科学生さんは理解がふっ飛ぶだろうな…

電子情報では、関数スタイルは、void main() {…}
機械科では、main() { … return 0 ; }
みたい。エラーコードを返さない間違ったスタイルで教える私も手抜きだし、 void を教えず、return の値の意味を教えないのも手抜き。 ということで、return エラーコード の意味や void を説明する。

switch文、関数、変数

switch文の説明と、関数の説明を行う。 関数の説明では、仮引数と実引数の値のコピーによる値渡しなどを説明する。 変数の説明では、大域変数と局所変数を説明する。 特に大域変数で発生するトラブル等を交えて説明する。