ホーム » 2010 (ページ 23)

年別アーカイブ: 2010

2025年5月
 123
45678910
11121314151617
18192021222324
25262728293031

検索・リンク

情報構造論ガイダンス

4EIの授業と言うことで、情報構造論のガイダンスぅ~と思っていたけど、 担任クラスだしインターンシップの希望調査の説明を行う。 それと、体育祭の参加種目決めもできていないので、後半30分を明け渡し、 残った時間でガイダンス。

まずは、例年通りに「プログラムを作るために考慮すべき要因」を聞いてみる。 色々出てきたけど、この授業でのポイントは、「処理速度」「メモリ消費量」「プログラムの簡単さ」 が重要であることを示す。 簡単さの中には、「納期」といった重要性も関係することを話し、これらの3要因は、 「トレードオフ」の関係にあり、一つの要因を優先すると、他の要因に悪影響の出る関係を、 具体的に話す。そして、この授業では3要因を評価したうえで適切にアルゴリズムを選べるようになることが目標と解説する。

単純検索の処理速度の評価

まずは、速度の評価ということで、配列から特定値を検索する処理の説明を行う。

int search( int array[] , int size , int key ) {
   for( int i = 0 ; i < size ; i++ ) {
      if ( array[ i ] == key )
         return i ;
   }
   return 0 ;
}

このプログラムで、最悪のケースであれば、 式の処理回数は、「i=0」1回、「i<size」は N+1 回、「if(…)return」がN回となる。 これより、N件の場合の処理時間T(N)は、 T(N)=Ta+Tb×N で示される。

例えば、「データN=1000件の検索が0.01[sec]であった場合、N=10000件では、 何秒かかるか?」 そのまま前述の計算式を当てはめると、未知変数が Ta,Tbの2つであるため、時間を求めることはできない。 しかし、処理速度の見積もりでは厳密な値を知りたい訳ではない。 Ta は、Nが巨大な値では無視できるほど小さな値であることから、 0.01[sec]= Tb×Nで計算を見積もればいい。

次週は、このネタを2分探索法や、2重ループ処理に適用した場合の説明を予定。

プロコンアイデア:学研電子ブロックシミュレータ(ネタ)

1976年に学研から子供の電子回路の教材として、電子ブロックという製品があった。 正方形のブロックの中に、R,L,Cといった部品が入っていて、 ブロックを隣りあわせで配置すると、回路ができあがるというもの。 この復刻版が近年売り出されている
# 昨日、学研の「大人の科学」でみつけて、思わず通販購入してしまった。

んで、プロコンでこのシミュレータを作れないか?と考えた。 ブロックの配置をするだけのエディタを作り、 その結果に応じてSPICE(有名な電子回路シミュレータ)の結線データを出力し、 SPICEを呼び出す機能があれば、面白いはず。

オブジェクト指向のガイダンス

1回目の授業ということで、オブジェクト指向の概念や、テスト・レポート課題などの実施方法を 説明する。 今年度は、EI出身4名、M出身2名の計6名になりそう。 例年他学科出身の人だと、プログラミングの基礎が違うため、EIでの3,4年のネタから説明中。 しかし、2名だと質問にも適切に答えられそうだし、進度が早まるかも。

まずは、構造体の説明として、「プログラムを修正する」という視点で、 単純な配列の問題点を説明し、構造体へと発展させていく。 構造体基本文法と、要素の参照、入れ子などを説明する。 また関連として、構造化プログラミングとして手順の構造化・データの構造化を説明する。

構造体のポインタ参照などが説明で出てくるため、後半は 局所変数・大域変数・値渡し・ポインタ渡しを説明する。参照渡しについては時間切れ。

工業英語(野村・斉藤グループ)

工業英語にて、5EI学生が英語に触れる機会を増やすための、輪読形式にて和訳などを行う。 今年は、野村研とグループで実施となった。 前半が斉藤担当で、簡単な英文資料の和訳。 後半が野村先生担当で、実際の英語の論文で行う予定。

インターネットの知識

斉藤担当分では、インターネットの関連知識をネタに、輪読とする。 以下に示すような、Wikipedia の英文記事を、輪読形式で和訳。 だいたい6週間程度で10人なので、1週あたり3人程度の発表で、 2回ローテーションになるだろうか….

輪読の際の、実施方法は以下のとおりとする。

  • 第1週目(今日)は、3週分のネタ前半の担当決めと、内容説明。その後、各自輪読の準備
  • 自分の発表の際には次のような資料を準備すること。
  • 担当範囲の1文毎の英文と和訳文を交互に(or左右に)書く。
  • 文中の専門用語については、資料末に各自で調べた解説を簡単に記載する。
  • 評価は、輪読の際の和訳資料と、講義の中で指摘された訳の修正版の提出資料で行う。

創造工学演習・ガイダンス+アイデア検討

例年通り、何らかのコンテスト参加を目標に、ソフトウェアシステム構築に挑んでもらう。 高専プログラムコンテストや、その他のコンテストなどの事例を紹介しながら、 授業後半は、アイディアを考えてもらい、最終的にアイデア検討資料ということで、 1人1枚のレポート「マインドマップ形式or自由書式」にて記述。

六角形フィールドの取り扱い演習

高専プロコンの競技部門は、蜂の巣状の空間の陣取り合戦みたいなルールなので、 来週の演習(実験)では、このフィールドの取り扱いに慣れてもらうネタに、 取り組んでもらう予定。 ということで、案内資料に書かれているヒントを元に、 六角形フィールドを2次元配列に格納し、そのデータを表示するサンプルプログラムを 書いてみた。

演習(実験)時間には、このプログラムをベースに簡単な5目並べや、 適当に配置したコマで、閉じた空間をつくっているか判定するプログラムに 改良してもらう予定。実際に参加する人は、閉じた空間の面積を数える所まで、 直すことができないと難しいかな…

プログラミング応用ガイダンス

最初の授業ということで、授業の進め方などの説明と、導入部の制御構文の説明を行う。

例年のプロ応のやり方として、(1)基本、(2)ファイル、(3)構造体、(4)グラフィックスについて 説明することを説明し、その中で重要なポインタの概念の復習、関数の扱い、引数の受け渡し について理解を目標としていることを解説する。 また、教科書は2年の教科書を中心とし、年度当初に購入した教科書は、 自分で独学する人が読んでくれ…と伝え、実際に使うのは4年から。 テストの評価は、max(テスト,テスト*60%+レポート*40%)にて行うことを説明し、 十分に理解してテスト素点がよければ、レポート提出が無くてもOKであることを解説しておく。

制御構文

制御構文の説明として、簡単なプログラムの動作実行順序のトレースを踏まえて、 制御文の実行順序と、文の定義について説明する。 例年どおり、式;とか、while(式)文、{文…}といった文の定義を説明するけど、 何気なく構文図で説明となった。

int i ;
for( i < 0 ; i < 5 ; i++ )  // あえて{}は使わずに文の範囲を怪しく出題
if ( i%2 == 0 )
printf( "%d" , i ) ;
else
i++ ;
int i , j ;
for( i = 0 ; i < 2 ; i++ )
for( j = 0 ; j < 3 ; j++ ) {
printf( "%d" , i * j ) ;
if ( i + j >= 3 )    // 説明時に i+j>3 で一部説明間違いアリ。
break ;
}

初めての授業だからか、こちらの説明間違いがあった割りに、「質問は?」の際には なにも声が出なかったのに、終わった後で『break実行しないんじゃ?』、『1個命令抜けてます』 の指摘あり。 もっと気軽にツッコミいれてくれれば、ええよ。>ツッコミ者各位。

2010年4月11日(第159回)

  • メールテーマ:花見
  • 英語の囃子 第31回 吉田先生、電子情報5年丸山さん
    英語で浦島太郎を読んでみよう
    eng100411.mp3
photo100411.jpg

新しい情報処理センター端末…

新学期になり、総合情報処理センターの端末がすべて入れ替えとなった。 Windows XPベースから、シンクライアント型の Windows 7 の端末。 今日は、先生向けの利用講習会ということで、参加してきた。

シンクライアント型ということだけど、キャッシング用のHDDを持っているため、 さほど遅さは感じない。サーバのHDD容量も増えたため、1GB max までは 保存もあまり気にしなくていいようになった。 Office は、2007になっていたけど、この点は2003でも十分と思わなくも無い。 認証の方式などもLDAPベースになったようで、パスワードの変更方式がブラウザベースになったけど、さほど悩むほどではなかった。

初めての利用講習会ということもあり、BCPadでCのコンパイラに失敗したりというトラブルも あったけど、シンクライアントなんだしマスタマシンを触れば簡単に直るだろう。 何気に自宅サーバを接続したりしてみたり、その他モロモロをアクセスして、 Webフィルタの状況を確認。 2chが丸見えだったり GMail が切れてたりと問題もあったけど、 これらも授業開始の頃には直るでしょう。

2010年4月4日(第158回)

  • メールテーマ:うらやましかったこと
  • 英語の囃子 第30回 吉田先生、電子情報5年丸山さん
    英語で浦島太郎を読んでみよう
    eng100404.mp3

photo100404.jpg
スタジオの隣の誠照寺の桜は咲きはじめでした。

unix講習会7日目(apache2のインストールと設定)

ひとまずの目標となる、Webサーバを試すまでができるようにということで、 最終的に apache2 のインストールを例に説明を行った。

"aptitude install apache2" といったインストール作業をしめしながら、 動的ページのための環境として、CGI→PHP→Tomcatといったリクエストの頻度に 応じて言語を使い分ける話をしたあと、PHPを使いたいのであれば、 "aptitude install libapache2-mod-php5 php5" といったものを入れる必要があることを示す。

Debian での apache2 では、巨大な httpd.conf をメンテナンスしなくていいように、 ディレクトリ構造に工夫がされている。

/etc/apache2/site-available/* 利用可能なサイトの基本的な設定
/etc/apache2/site-enabled/*   実際に起動するサイト(site-availableへのリンク)
/etc/apache2/mods-available/* 利用可能なモジュールの設定
/etc/apache2/mods-enabled/*   実際に利用するモジュール(mods-availableへのリンク)
/etc/apache2/conf.d/*         各Webアプリ毎の設定ファイル

a2ensite,a2dissite,a2enmod,a2dismod コマンドで、サイトや機能を選ぶことを説明する。

設定ファイルがたくさん出てきたので、こういうファイルを探す方法を説明する。

(( 例 ))
# パッケージでインストールしたファイルで、hoge を含むものを検索
dpkg -S hoge
# /etc/の中から、ファイル名に hoge を含むものを見つけて表示
find /etc -name *hoge* -print

システム

最新の投稿(電子情報)

アーカイブ

カテゴリー