ホーム » 2009 (ページ 27)

年別アーカイブ: 2009

2025年6月
1234567
891011121314
15161718192021
22232425262728
2930  

検索・リンク

Moodle講習会に参加

大学連携で県立大学を中心として整備をすすめている f-leccs.jp の 活動の一環として、LMS(Learning Management System) Moodle の講習会(県立大学開催、仁愛大学篭谷氏講師)に参加。 連携校の登録された先生であれば、講義の日程管理・配布資料・小テスト・評価管理 をWebインタフェースで自由に登録管理ができる。

参加する学生さんとしても、小テストでは携帯Web機能のモジュールも追加されているので、 多少の制限はあるけど、携帯で回答するなどもできるようになっている。 ただ、資料の準備には慣れも必要だし、一度頑張ってコンテンツを作っちゃえば、 使い回しもできるようになるんだし、最初のひと頑張りが大切かな。

予習ができなきゃね…

私自身は、ずいぶん前から、講義のあとの要点をまとめたメモを講義録として、 日記に記載してきている。 しかし、あくまでも講義の後。 大学は予習した上で授業に臨むのが前提だから、 講義録ではすでに遅れているんだよなぁ… さて、頑張って『授業の前』に Moodle 上でコンテンツを作らねば…

VOD化

f-leccs.jp で狙っているの講義へのネット技術の活用の1つには、 講義のVOD(Video On Demand)化もあげられている。 映像系の担当の方との雑談では、なかなか全員の人に認知してもらえるまでが大変そう…

VOD化といっても、常にビデオの専門家に来てもらうのはコストもかかる。 それに講義の話って、重要そうなネタを表現を色々と変えながら何度も話すことを 繰り返したりするから、映像的には動画がでかい+内容もかなり冗長ということで、 ケチくさい考え方の染み付いたサーバ屋の視点では、 『なんだかもったいないよぉ…』って気分。

それ以上に、ビデオに撮られること自体が恥ずかしい…って障壁の方が大きかったりして….

C言語からC++でオブジェクト指向

先週のC言語によるオブジェクト指向の導入に引き続き、 C++を実際に使ってみるようにと、ベースのプログラムを、 メソッド呼び出し表記に変えたり、コンストラクタを使うように修正したりしながら 説明を行う。

class Person {
private:        // private宣言で、クラス以外で使えない。
char name[ 10 ] ;
int  age ;
public:        // public宣言で、クラス以外でも使える。
void set( char s[] , int a ) {
// C言語なら、対象オブジェクトを明記したけど、不要となる。
strcpy( name , s ) ;
age = a ;
}
void print() {
printf( "%s %d" , name , age ) ;
}
} ;
void main() {
Person saitoh ;
saitoh.set( "T-Saitoh" , 44 ) ;
saitoh.print() ;
}
((上記の説明の後))
class Person {
:
Person( char s[] , int a ) {   // データ初期化⇒コンストラクタ
strcpy( name , s ) ; age = a ;
}
} ;
void main() {
Person  saitoh( "T-Saitoh" , 44 ) ;
:
}

アイディア草稿

今日は、創造工学のネタとするアイディアを自分なりにまとめて、草稿として 提出してもらう。グループになりそうなメンバーがいれば、予定者として記載するように指導。 グループを巡回していると、過去ネタとかぶっていたり、実現性が怪しかったり、 内容としてもうひと工夫が必要だったりと、問題はある状態。 しかし、「実現性」と「もうひと工夫」は、相反するネタであり、指導のさじ加減が微妙。 ネタは下記の通り。

  • 服のアバター自動合成
  • 携帯ネタ
  • 競技部門3人
  • 顔認識で自動扉
  • 画像付きインターフォン
  • GPSの位置比較でコミュニケーション
  • ブロックを画像認識して部屋のレイアウト設計?
  • RFIDで入出管理

PHP講習会/H8割り込み講習会

今年度の創造工学の活性化のために4年実験の第1テーマを導入教育につかうにあたり、 第1回目に、PHPなどのネットワーク系技術の講習会と、H8などを用いる際に必須の割り込みなどの理解を行うための講習会兼簡単な4EI実験として講義を行った。

PHP講習会

インターネット技術の基礎知識を理解してもらうために、PHPを用いて簡単な講習会を行う。 (斉藤担当)

  • 複雑な処理では、複数プロセスの協力も必要であることから、CGIの原理を説明をネタに、 プロセスが協力して処理を行うための問題点として、 SIGNAL,環境変数渡し,共有メモリ,パイプ,スレッドなどの用語も簡単に紹介する。
  • HTMLの簡単な説明と、サーバにページを登録し、簡単なHPを設置するまでを説明
  • PHPの簡単な例題を解説し、外部から渡される$_GET,$_POSTなどの変数を説明
  • 例題として、何らかの簡単な処理プログラムを作ってもらう
  • 最後にWeb系プログラムの必須のセキュリティネタとして、入力フォームにタグを埋め込む手法の問題点を1つだけ紹介。

H8割り込み講習会

H8などの組み込み系で何らかのシステムを作る場合には必須となる、割り込みなどの 概念の紹介として、割り込み関数の登録や割り込みが有効になるための設定などの 説明を行う。(担当高久)

組み込み系のC言語のプログラムを理解する際に必須となる、#pragma や、 volatile 宣言などの概念などの説明も行う。 割り込みとしては、時計やPWMによるサーボモータの制御も応用例として多いため、 タイマーA,タイマーWなどを例題として、解説を行う。

変数の取り扱い

今日は、変数の扱いの説明として、変数・関数と引数などを中心に話す。

変数の概念

  • 大域変数(global変数)
    • 大域変数は、どこからでも触れる変数で、極力使わない….など…
  • 局所変数(local変数)
    • forループなどのブロック内での変数宣言例など…
//大域変数を使うために起こるトラブル例
int  i ;
void foo() {
for( i = 0 ; i < 2 ; i++ )
printf( "A" ) ;
}
void main() {         // このプログラムは、AAAAと表示されない。
for( i = 0 ; i < 2 ; i++ )
foo() ;
}

関数との値の受け渡し

関数と呼び出し側の値の受け渡しということで、値渡し(Call by Value)・ポインタ渡し(Call by Pointer)などの解説。

基本的にC言語では、関数の実引数(real argument)が、仮引数(pseudo argument)に コピーされる値渡しが原則で、関数から複数の値の変化を知りたい場合に、 ポインタ変数のアドレスを使ったポインタ渡しを行うと説明する。

void foo( int *p ) {   // ポインタ渡しの例
(*p)++ ;
printf( "%d" , (*p) ) ;
}
void main() {
int a = 123 ;
foo( &a ) ;
foo( &a ) ;
}

関数の処理によって値が変化することを副作用と呼び、 副作用は自分の持っているものが想定外に変化するのであれば、 不気味な現象でもあり、極力副作用は小さい方がいい。 だからこそ、変化してほしい値だけをポインタで渡して書き換えてもらう….といった説明を行う。

演算子の前後の()について質問があったので、演算子の優先順位の説明を行う。 ついでだし、右結合・左結合といった話や、趣味の悪い「コンマ演算子」なども 雑学系のネタとして紹介する。

プロトタイプ宣言とプリプロセッサ

この話の中で「なぜ関数実体を読み出し処理より前に書くのか?」との質問がでる。
# 通常私のコーディングは実体を先に書くボトムアップ記述

基本的にコンパイルは、先頭から命令解析が行われるので、 関数の実体が先にあった方が、関数を呼び出す時に引数や帰り値が何なのか、 分かっていて都合が良いことを説明。 「トップダウン記述」であれば、呼び出し処理を先に書きたいけど、そういうときは プロトタイプ宣言が必要であることを説明する。

これに関連して、プログラム中の#行が、「プリプロセッサ行」であり、 「命令解析前の命令の書き換え処理」が行われると説明し、 "#include <stdio.h>" では、stdio.h というヘッダファイルを読み込み、 そのファイルには、printf(),scanf()のプロトタイプ宣言が書いてあることを説明する。

2009年4月19日 (第108回)

  • 英語の囃子 第7回 吉田先生、電子情報4年丸山さん
    eng090419.mp3

photo090419.jpg

電子情報系の資格試験情報をアップ

電子情報工学科にてチャレンジできそうな資格試験を集めてみました。 

恒例の

今年はT先生がネタにされました。 

0904171029_320x240.jpg

新入生歓迎会

皆さん芸達者やのぅ〜♪

0904171000_320x240.jpg

ネタ切れ学生さんのための「くじ引き一発芸」では、「中学校の校歌をうたってください」 というのもあった。恥ずかしがっている1年に「上級生の同じ中学卒も歌え!」と はやし立てられて、上級生も参戦。 しかし校歌を忘れてしまっている。

駄目だなぁ…と思っていたけど、自分自身の母校の校歌…. 味真野小学校は思いだせるのだが、武生第四中学校(現万葉中)が出てこない。 なんだっけとダメ元でWeb検索。すると、 武生第四中学校校歌が見つかる。

すっげーっと思ったんだけど、出てきた歌詞にまるっきり記憶がなく、 フレーズも出てこない。 おかしい….途中で校歌って変更になったっけ?(ふつーねーよなぁ…)

ループ処理とオーダ記法

ループ処理の時間

先週の、単純検索の処理時間が、 T(N)=Ta+Tb*N、 2分探索のループ回数が、 m=log(N)の説明に続き、 その処理時間は、 T(N)=Ta+Tb×log(N) であることを示す。

もう少し複雑になった事例ということで、2重ループを含む最大選択法による並べ替えは、 最内ループ回数が m=∑(i=1~N-1){ i }となることを示し、 最大選択法の処理時間は、 T(N)=Ta+Tb*N+Tc*N^2で示されることを説明する。


その他の公式

オーダ記法

前述の処理時間の式では、処理時間に関する定数が沢山でてくる。 また、Nが大きく変化した時の処理時間のおおよその予測の際には、 Nの次数の低い項は無視する場合が多い。

このためプログラムのアルゴリズムの効率(処理時間)を議論するときは、 Nが巨大になった時の最も値の大きい項の変化式の部分だけで、 大まかな処理時間の予測ができる。この式でアルゴリズムを表現したものを オーダ記法(ビッグオー記法)と呼ぶ。

よって、 単純検索は、、 2分探索は、、 最大選択は、で示されることを説明する。

処理時間の予測

2分探索法で、データ(N)が100件の時の処理時間が1msecであった場合、 データが1000件の場合どのくらいの処理時間となると予想されるか?

オーダ記法では、 は、 なので、 より、 (ただしlogの底は10とする)。 よって、

授業の最後に、複数の項のNの次数が微妙で増加速度の判断が困難な場合の オーダーを求める手法として、ロピタルの定理を用いた方法なども説明する。

システム

最新の投稿(電子情報)

アーカイブ

カテゴリー