ホーム » 2010 » 4月 » 19

日別アーカイブ: 2010年4月19日

2010年4月
« 3月   5月 »
 123
45678910
11121314151617
18192021222324
252627282930  

最近の投稿(電子情報)

アーカイブ

カテゴリー

そろそろ体育祭

そろそろ体育祭。 担任クラスの4年も下の学年の指導とか頑張ってるみたい。 苦労はあるけど体育祭が終わった後の、達成感は大きいし、 後少し頑張って下さい。 1004191742_240x320.jpg

創造工学演習・導入実験

4年実験の最初の2回は創造工学演習の導入も兼ねて、 プロコンなどの参加に必要となりそうな子ネタ系の実験を行う。 ということで、私の担当は、PHPでの実験を行った。

まずは、インターネットの原理として、ブラウザのリクエストから、サーバからのHTMLが帰ってきて、 ブラウザが整形して画面表示といった基本を説明。 その後、CGIなどの原理を説明する。 この際に、実際にプログラムを作る場合には、 サーバ側のプログラム言語とブラウザ内で動くプログラム言語の違いとして、 Perl(CGI)、PHP、ServerSide-Java(Servlet)、ClientSide-JavaScriptの言語を紹介。 (そういえば、クライアント側言語としてのJavaを紹介し忘れてるなぁ…)

この後、PHPの基本文法を説明して、簡単なチャットプログラムを作ってもらう。 ファイル入出力は、簡単に説明できるようにということで、 file_get_contents() , file_put_contents() などを使ったもので説明を行った。

簡単なチャットができちゃったし、明日の後半(創造工学演習)では何を話そうかなぁ… 事例ということで、自分のドアの前の掲示板や自宅のリモコン制御環境の話を交えながら、 system() あたりで、別プログラムとの連携の話をしようかな….

変数と関数のデータ受け渡し

先週の制御構造の話の中で、説明できなかった、break , continue , switch-case 文について 解説を行う。break,continue では、forループのとび先などを交えて話した。

次に、変数の解説ということで、大域変数が原因で変になるプログラムの例として、 下記のようなネタを紹介しながら、大域変数が問題視される事例を紹介。

int i ;
void foo() {
for( i = 0 ; i < 2 ; i++ )
printf( "A" ) ;
}
void main() {
for( i = 0 ; i < 2 ; i++ )
foo() ;
}

この例を受けて、局所変数の重要性を説明し、 大域変数の寿命(起動から終了まで)、スコープ(プログラム全域)の話と、 局所変数の寿命(通常、ブロック突入から抜けるまで)、スコープ(該当ブロックの範囲内)といった 解説を行う。さらに、局所変数で static 宣言した場合の説明を行う。

次に、関数の引数の取り扱いということで、実引数・仮引数の値で一般的には、 『値渡し(Call by Value)』の原則を話す。この値渡しだけを使っていれば、 関数実行による呼び出し側への影響(副作用:side effect)を最小限にできることを説明する。 しかしながら、「大域変数は極力使いたくない」、「関数で共通に使うデータの受け渡し」 といった場合には、時として副作用も必要ということで、 ポインタを経由した書き換え『ポインタ渡し(Call by Pointer)』の話を説明する。

時間が中途半端に残ってしまったので、 C言語が、B言語→C言語→C++→Java/C#と発展していった経緯を紹介する。 特に、C++は、"Better C"(よりよいC言語)としても使われており、 今後の授業でも便利なC++の機能を織り交ぜて話をすることを前置きしておく。

話のネタで、C++の由来やC#の由来を雑談で話した。改めて、WikipediaのC#を見ると、 C#は「音楽の半音上げる」の意味や、「#は、++(改行)++の4つの+」の意味… とのネタが記載されている。ふーん….