ホーム » 2004 (ページ 8)

年別アーカイブ: 2004

2025年5月
 123
45678910
11121314151617
18192021222324
25262728293031

検索・リンク

構造体の説明

政治経済の先生が体調不良で欠席だったので、翌日がプロコンでプログラム応用 の授業ができない点もあり、代行授業。 避難訓練の予定もあるため、自習にはできない。

留学生が別授業であったため、早く進むこともできないので、 避難訓練のネタとして情報系の災害対策を少し話す。 その後は、構造化プログラミングの説明で『処理の構造化』を話した後、 構造体の説明として『構造体の入れ子』を説明する。

共有のあるポインタの問題点と、双方向リスト

リスト構造の一括 free のプログラムを示した後、ポインタの先に共有がある 場合の問題点として、破壊系リスト処理(nconcを例として示した)で、 後処理の一括 free の呼び出しの有無が判断が困難である事例をしめす。 ガベージコレクタ等の解説は、リスト構造全般の話が終了した時点で行う予定。

双方向リスト

単純リストが、可変長・次参照のみ、配列が固定長・ランダムアクセスである 点を強調する。この後で、エディタを作る場合の処理の特徴として、 前・次の参照、途中の挿入削除を説明する。この解決策としての双方リストの 説明を行う。

struct BDList {
struct BDList* prev ;
int            data ;
struct BDList* next ;
} ;
struct BDList* bdcons( struct BDList* p ,
int            x ,
struct BDList* n )
{ struct BDList* m ;
/* malloc行を穴埋めとして質問 */
m = (struct BDList*)malloc( sizeof( struct BDList ) ) ;
if ( m != NULL ) {
m->prev = p ;
m->data = x ;
m->next = n ;
}
return m ;
}
void main() {
struct BDList* top ;
/* 下記 top のイメージ図を示し */
top = bdcons( NULL , 1 ,
bdcons( NULL , 2 ,
bdcons( NULL , 3 , NULL ) ) ) ;
/* 双方向リストにするための以下2行を穴埋め質問 */
top->next->prev = top ;
top->next->next->prev = top->next ;
}

この後、双方向リストのプログラム事例として、後方 insert を 穴埋め形式で質問し、ポインタの繋ぎ換えをイメージ図で説明する。

授業方針説明と計算機の歴史

シラバスの提示として、授業内容の説明の後、最初の講義として計算機システムの 歴史の説明を行う。

配布資料 の最初として、計算機の歴史を説明。 WWI前の時代から第1〜4世代までを、演算素子の変遷、主要なコンピュータ、 OS、プログラム言語などを開発者名や雑学を交えながら説明を行う。

時間が残っていたので、次週予定のマイクロプロセッサの発達の歴史として、 i4004〜16ビットコンピュータ初期の頃までを解説。 中途半端なので来週はもう1度8ビットから説明を予定。

制御用小型コンピュータによる模型制御

H8/3664を使ってライントレーサを作ってもらう。 同一実験を本科3年を対象に予定しているが、専攻科学生には、 車体の設計・組み立てから制御まで全てを体験してもらう。

最初に実験配布資料を解説し、実験の目標を説明する。 専攻科生には、光センサーの値をA/D変換しながら、プログラムによる PWM で 速度制御までできることを期待。しかし、車体などのハードの数にも制限が あるので、3人グループに2つの車体材料を与える。 初日は、車体の組み立てと H8 の概論・プログラム書き込み手順の説明。

最終段階?

プロコン本番を週末に控え…の割に、彫り彫りチームは、まだ全体像の動作確認には 至らない。しかしセンサー系も含めほぼメドがたったかな。 QR コードのチームは、ほぼ全体像の動作も含め完成の様子。 入賞を狙えるほどの完成度ではないかも知れないが、 全体の動作が動くようになっている時点で、頑張った成果であろう。

新居浜豪雨?

主催者より、新居浜が台風の影響で JR が新居浜駅付近が運航中止状態らしい。 代行バスが出ているらしいが、帰りの列車が乗り会わせが困難となるかもしれない。 状況を調査しなければ….

構造体の説明

後期最初の授業ということで、後期前半の授業予定を話し、構造体の説明に入る。 今年の学生は、一応2年時に構造体については少し経験があるみたい。 進度を早め後期後半のグラフィックスの範囲に時間余裕を持たせることが可能かも。

しかし、来年度の工学基礎コースが動き出すと、1年時の情報系ボリュームが 落されることからも、元に戻るんだろうなぁ….

リスト処理関連の補講

追試にて制御構造の理解の怪しい学生を含め任意参加の補講を実施。 合計6名参加。

昨日の追試問題にて、制御構造理解が怪しいので、プログラム応用の 補講と同じように、追試問題のフローチャート記述をさせてみる。 どの学生も、フローチャートを上から書いていく。 2重ループの内ループを カタマリとみなし ながら、 ブロック毎にフローを書く といったことができない。 構造化プログラミング といった話しをもっと授業中に話しておくべきか….

このあと簡単なリスト構造の理解ということで、短いプログラムを 示しながらイメージ図を描きながら説明。 ポインタのコピー『場所の情報をコピーする』 といったイメージでなく、 『コピー元の変数とコピー先の変数をポインタでつなぐ』 といったイメージに捉えているために、リンク関係を理解していない様子。

プレゼンテーション審査用の原稿指導

プレゼンテーション審査の時の原稿に記載して欲しいポイントを説明。

プログラム応用の補講

プログラムに自信の無い人4名参加で補講を実施する。 午前中の2時間という限られた中で、順序を考えるテーマを厳選する。

UL

  • 2重forループの実行順序トレースが判っていない人もいる。 フローチャートとの対応の説明を行う。
  • さらに局所変数と関数間の値の受渡しの説明。
  • 配列処理が判らないというので、配列内の重複チェックを例に、 比較対象となる配列添字の変化を導き、ループにしていく手順を説明。
  • 最後に、複合の理解度確認として、2つの配列間で最も数値が離れている 組み合わせを求めるプログラムを作成させる。 (2重ループの作成、ループ内の絶対値処理と、最大値処理の組み合わせの理解)

リスト構造の追試

情報構造論の成績不振者(70点未満)を対象とした、追試。 昨年度の前期期末試験問題3つ、今回の試験問題の改良版1つで出題。 予告はしていたので、最大70点で追試結果を90%で評価。

昨年度問題で、配列を使った集合処理を出題したが、2重forループの 動作順序を理解していない学生が多い。追試対象者の半数がNG。

システム

最新の投稿(電子情報)

アーカイブ

カテゴリー