ホーム » スタッフ » 斉藤徹

斉藤徹」カテゴリーアーカイブ

2021年4月
 123
45678910
11121314151617
18192021222324
252627282930  

最新の投稿(電子情報)

アーカイブ

カテゴリー

fukuikousen-bot の shorturl

福井高専HPの新規記事を Twitter につぶやく bot を動かしていたけど、 HP記事のURLがつぶやきにつかないようになっていた。
原因は、Perl の WWW::Shorten::TinyURL モジュールを使っていたけど、 ライセンスの関係などで、このモジュールが動かなくなっていたみたい。
Twitter の 140 文字制限があったから、TinyURL で 高専の記事 URL を 短いものにしていたけど、最近この制限も緩いし、高専の最新記事の タイトルもそんなに文字数が多くもないし、TinyURL など使わず、 そのままの URL でつぶやくようにした。

第32回高専プロコン2021(秋田)の要綱発表

第32回の高専プロコンの要項が発表となりました。

「集え!未来創造への限りなき想い」

参加にチャレンジしたい人は、連絡してくださぃ。

授業アンケート結果

年度末恒例の授業アンケートの結果。
コロナ禍の遠隔授業などもあったけど、どの科目も80ポイントは維持できました。



3EI実験はArduinoを1年間貸し出し

電子情報工学科3年の実験では、制御用小型コンピュータキット Arduino を使うテーマがあります。
コロナ感染予防の遠隔授業の中での実験として2020昨年度より、学生には Arduino の実験機材一式を貸し出して行いました。今年度も引き続き、最初の実験ガイダンスにて貸し出しとなりました。

{CAPTION}

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

専攻科2年のオブジェクト指向プログラミングの授業の1回目。

シラバスは、ここに示すように、最近のプログラミングの基本となっているオブジェクト指向について、その機能についてC++言語を用いて説明し、後半では対象(オブジェクト)をモデル化して設計するための考え方(UML)について説明する。

評価は、3つの課題と最終テストを各25%づつで評価を行う。

オブジェクト指向プログラミングの歴史

最初のプログラム言語のFortran(科学技術計算向け言語)の頃は、処理を記述するだけだったけど、 COBOL(商用計算向け言語)ができた頃には、データをひとまとめで扱う「構造体」(C言語ならstruct …}の考えができた。(データの構造化)

// C言語の構造体
struct Person { // 1人分のデータ構造をPersonとする
   char name[ 20 ] ;             // 名前
   int  b_year, b_month, b_day ; // 誕生日
} ;

一方、初期のFortranでは、プログラムの処理順序は、繰り返し処理も if 文と goto 文で記載し、処理がわかりにくかった。その後のALGOLの頃には、処理をブロック化して扱うスタイル(C言語なら{ 文 … }の複文で 記述する方法ができてきた。(処理の構造化)

      // ブロックの考えがない時代の雰囲気をC言語で表すと
      int i = 0 ;
LOOP: if ( i >= 10 ) goto EXIT ;
         if ( i % 2 != 0 ) goto NEXT ;
            printf( "%d " , i ) ;
NEXT:    i++ ;
      goto LOOP ;
EXIT:
      // C 言語で書けば
      int i ;
      for( i = 0 ; i < 10 ; i++ ) {
         if ( i % 2 == 0 ) {
            printf( "%d¥n" , i ) ;
         }
      }
      ! 構造化文法のFORTRANで書くと
      integer i
      do i = 0 , 9
        if ( mod( i , 2 ) == 0 ) then
          print * , i
        end if
      end do

このデータの構造化・処理の構造化により、プログラムの分かりやすさは向上し、このデータと処理をブロック化した書き方は「構造化プログラミング(Structured Programming)」 と呼ばれる。

この後、様々なプログラム言語が開発され、C言語などもできてきた。 一方で、シミュレーションのプログラム開発(例simula)では、 シミュレーション対象(object)に対して、命令するスタイルの書き方が生まれ、 データに対して命令するという点で、擬人法のようなイメージで直感的にも分かりやすかった。 これがオブジェクト指向プログラミング(Object Oriented Programming)の始まりとなる。略記するときは OOP などと書くことが多い。

この考え方を導入した言語の1つが Smalltalk であり、この環境では、プログラムのエディタも Smalltalk で記述したりして、オブジェクト指向がGUIのプログラムと親和性が良いことから、この考え方は多くのプログラム言語へと取り入れられていく。

C言語にこのオブジェクト指向を取り入れ、C++が開発される。さらに、この文法をベースとした、 Javaなどが開発されている。最近の新しい言語では、どれもオブジェクト指向の考えが使われている。

この授業の中ではオブジェクト指向プログラミングにおける、隠蔽化, 派生と継承, 仮想関数 などの概念を説明する。

構造体の導入

C++でのオブジェクト指向は、C言語の構造体の表記がベースになっているので、まずは構造体の説明。詳細な配布資料を以下に示す。

// 構造体の宣言
struct Person {      // Personが構造体につけた名前
   char name[ 20 ] ; // 要素1
   int  phone ;      // 要素2
} ;                  // 構造体定義とデータ構造宣言を
                     // 別に書く時は「;」の書き忘れに注意
// 構造体変数の宣言
struct Person saitoh ;
struct Person data[ 10 ] ;
// 実際にデータを参照 構造体変数.要素名
strcpy( saitoh.name , "t-saitoh" ) ;
saitoh.phone = 272925 ;
for( int i = 0 ; i < 10 ; i++ ) {
   scanf( "%d%s" , data[ i ].name , &(data[ i ].phone) ) ;
}

構造体に慣れていない人のための課題

  • 以下に、C言語の構造体を使った基本的なプログラムを示す。このプログラムでは、国語,算数,理科の3科目と名前の5人分のデータより、各人の平均点を計算している。このプログラムを動かし、以下の機能を追加せよ。レポートには プログラムリストと動作結果の分かる結果を付けること。
    • 国語の最低点の人を探し、名前を表示する処理。
    • 算数の平均点を求める処理。
#include <stdio.h>

struct Student {
  char name[ 20 ] ;
  int  kokugo ;
  int  sansu ;
  int  rika ;
} ;

struct Student table[5] = {
  // name ,      kokugo , sansu , rika                                          
  { "Aoyama" ,   56 ,     95 ,    83 } ,
  { "Kondoh" ,   78 ,     80 ,    64 } ,
  { "Saitoh" ,   42 ,     78 ,    88 } ,
  { "Sakamoto" , 85 ,     90 ,    36 } ,
  { "Yamagosi" ,100 ,     72 ,    65 } ,
} ;

int main() {
  int i = 0 ;
  for( i = 0 ; i < 5 ; i++ ) {
    double sum = table[i].kokugo + table[i].sansu + table[i].rika ;
    printf( "%-10.10s %3d %3d %3d %6.2lf\n" ,
            table[i].name , table[i].kokugo , table[i].sansu , table[i].rika ,
            sum / 3.0 ) ;
  }
  return 0 ;
}

パソコン周りの整理

埃まみれで、配線ぐちゃぐちゃ、過去の遺物の残骸だらけの、パソコン周りを久々に整理。雑多なコネクタ類は、ホワイトボード後ろにまとめた。 {CAPTION}

この写真は iMac だけど、この横には新しく入った(私にしちゃHigh Specの) Windows 10 のノートPC があり、これが当面のメインマシンになります。iMac は、この部屋のファイルサーバ状態だな。

{CAPTION}

やるぞ!とやったぁ〜!

電子情報工学科の5年生の皆さん、卒業おめでとうございます。

個人的には、式の後の学科での証書配布の席にて、以下のことを伝えさせていただきました。
会場では言葉足らずだったかもしれないので、こちらで改めて記載しておきます。

高専では、耳から聞いただけの知識ではなく実践することの大切さをわかってもらうために「できるとできたは違う」という言葉がよく使われます。ですが、会社に入ったら失敗することも多いだろうしそれを怖がっていてはチャレンジするモチベーションを失ってしまいます。だから私なりに「やるぞ!とやったぁ〜!」を加えてください。実践する勇気を持って失敗を恐れず「やるぞ!」を表明してください。あと、できたら「やったぁ〜!」の喜びをネットで伝えてください。 -以上-

令和2年度卒業式

{CAPTION}

{CAPTION}

{CAPTION}

{CAPTION}

{CAPTION}

{CAPTION}

{CAPTION}

HDMIスイッチャー入荷

色々な関連予算から購入したHDMIのスイッチャー入荷。配信で活用しよう。と言いつつ一番活用してくれそうな西先生にひとまずお預けとなりました。
{CAPTION}

Aruba 203H メモ