ホーム » スタッフ

スタッフ」カテゴリーアーカイブ

2020年10月
 123
45678910
11121314151617
18192021222324
25262728293031

最近の投稿(電子情報)

アーカイブ

カテゴリー

参照渡しを積極的に使う

オブジェクト指向のレポート課題を採点していると、若干きになることがあったので、補足説明。

複素数クラスのレポート課題で、add() などのメソッドが、私がサンプルコードで示したのがそうなっていたのが原因だと思うけど、以下のようなコードとなっている。

class Complex {
   // 略
public:
   void add( Complex z ) { re += z.re ; im += z.im ; }
   //        ~~~~~~~~~ 値渡し
} ;

処理速度の効率を考える場合は、以下のような参照型(参照渡し)を使うのが一般的。上記のような値渡しだと、機械語を生成する際には、実引数の複素数のコピーが行われるので、無駄な処理が発生しがち。参照型を使えば実引数をコピーする手間が不要なので、処理の無駄が省ける。(Complexのような簡単なクラスなら無駄というほどのものじゃないけど)

class Complex {
public:
   void add( const Complex &z ) { re += z.re ; im += z.im ; }
   //        定数型 ~~~~~~~~~~参照渡し
} ;

ただ、上記の参照型を使うと、addメソッドで、zの内部を書き換えるような間違った処理を記述してしまうと、add()の処理で実引数に副作用が発生する。このため、こういった書き間違いによる影響がないことを明示するために、上記のように、z に const 指定子を記載しておくのが一般的。const がついていれば、addメソッド内部で間違って、zを書き換えるような処理を記載しても、コンパイラが間違いを指摘してくれる。

斉藤研資料

キャンパスツアー2020-2日目

キャンパスツアーの2日目、展示の卒研室を入れ替えて発表です。

制御系研究室の説明

{CAPTION}

{CAPTION}

インターネット系の説明

{CAPTION}

{CAPTION}

電子情報4年のプログラムコンテスト参加チームの説明

{CAPTION}

フェイスガード増産中

3Dプリンタで印刷したフェイスガード、追加増産。

シールド部分のフィルムには、昔々のOHPシートを活用してます。

{CAPTION}

ちなみに、最近の学生には、OHPと言ってもまるっきり伝わりません。

PHPとセキュリティのレポート講評

5年生の前期実験で「PHPとセキュリティ」のテーマについて、レポートの採点を行った。

以下に、レポート記載での注意点や減点評価を行なったポイントをあげる。

レポートの記載書式について

  1. 電子レポート提出でも所属や報告者の記載をつけること。
    今回は、遠隔実験でPDFファイルのアップロード提出であったため、表紙のつけ忘れなどが見られた。印刷媒体で残す可能性を考慮し、文章内に所属・出席番号・氏名なりの記入は必須。
  2. 図番号・表番号を必ず引用すること。
    実験結果に図番号や表番号をつける習慣はみなさんついているが、本文中で必ず図番号や表番号を引用すること。前表によれば…はNG。「図1をみると…」「(表1参照)」などをつけること。図表は配置の都合で本文とは別のページに記載することもあるので、異なるページに配置されても、わかるように記載する必要がある。
  3. 章・節のインデントはしない。
    今回は減点対象としていないが、卒業論文や卒研中間報告では、節や小節でインデントをしないこと。
    特に、2段組みをする文書の場合、インデントが入るとただでさえ狭い1行が、スカスカになる。

    1. 論文書式ではダメな書き方
    この実験は...  □のようなインデントは不要!!
    ...であった。
    1.1 背景
    □□この問題の背景として...
    □□1.1.1 なんとかかんとか
    □□□なんとかかんとか
    

レポートの考察内容について

  1. PHPのプログラムの改良で、<input … maxlength=”xx”>とか、<input type=…> とか、<input … pattern=”xxx”>をとるといった考察があったが、これは不十分。例えば、Webページの HTML を、自分のサイトにコピーして、maxlenthやpatternを削除したページを作ってそこからPHPにデータを送ることで、相変わらずセキュリティの問題を引き起こすことが可能。HTMLのページを偽装しなくても、プログラムからphpに対して直接データを渡すこともできる。
    このため、送られてくる入力値のチェック(一般的にはサニタイジングと呼ばれる)は、php側でも十分に行う必要がある。
  2. password の管理については、/etc/shadow ファイルの話までしか調べていない考察があった。
    passwdコマンドは、SUID の説明と、その機能「一時的にpasswdコマンドの所有者rootの権限を借りる」の説明がないと減点とした。
    考察のヒントに記載した、自分のパスワードが変更できるのなら/etc/passwdへの書き込み権限があるはず…と同じで、自分のパスワードを変更可能なら/etc/shadowに書き込み権限がある…という話になってしまうから。

(追記)

レポートの採点結果つけたよ…とTeamsで伝えたら、ゾロゾロと自分の点数を聞きにくる人多数。いつも、レポート返却しても教室に放置されてるし、他の先生の評価で平均されるから、あまり気にしないと思ってた。

コロナ対策の食堂にて

対面授業も始まって、食堂も利用できるようになってきた。ということで、昼食を久々に食堂でとってみた。
{CAPTION}

{CAPTION}

ようこそ1年生

ようやく本格的な対面授業がはじまり、今まで入学式もなかった1年生の為にと、「ようこそ1年生」というイベントが行われました。
数人のグループで各学科の先生の所を訪問して、気軽な雑談でもいいし、真面目な質問でもいいという企画。
せっかくだし、写真大丈夫との確認して記念写真。
{CAPTION}

学生全員に布マスク配布

文科省から、学生全員に布マスク1枚の配布が届いた。アベのマスクよりはいい感じ?
学生さんも、マスク付けるのは習慣づいてて、マスクも潤沢だし不要かもしれないけど、マスクを忘れてきた時の為に、ロッカーに入れておくなりしておくのはいかが⁉︎

銀河の衝突シミュレーション(下條研)

流体シミュレーション(下條研)