l 情報科学Ⅱ

目次 情報科学 Ⅱ

  1. はじめに 9-23
  2. インターネットボット、ウェブロボット 9/30
  3. ジャバスクリプト入門1 JavaScript - Intro 10/7
  4. JavaScript - Sort 1 - 10/14
  5. JavaScrit - Array - 10/21
  6. 2001年宇宙の旅
  7. あたらしい通貨ビットコインが注目されたわけ
  8. 公開鍵暗号
  9. RSA暗号入門
  10. レポート提出方法

はじめに 9月23日

松山大学授業用メール

  1. 件名: 科目名「情報科学」が必ずはいった件名にする。例、「情報 科学 9月23日」。
  2. 本文: 「学籍番号と氏名」を1行目にいれる。

シラバス

アルゴリズム、プログラムによる社会変革の仕組み

授業の内容

    第1回目 イントロダクション
    第2回目 インターネットボット、ウェブロボットとは何か
    第3回目-7回目 JavaScript入門
    第8回目-9回目 テキストのゲームを製作する
    第10回目 JavaScript スキルテスト
    第11回目-12回目 人間のパターンを分類するアルゴリズムを利用す
    る映画、音楽業界
    第13回目-14回目 ウォールストリートとシリコンバレー
    第15回目 まとめ
    

リンク


インターネットボット、ウェブロボットとは何か 9月30日 金曜

ソフトウェア エージェント

ソフトウェア エージェント、 Software Agent とは計算機科学、Computer Science で使われ る用語である。

Software Agentは、コンピュータプログラムである。ユーザや別のプ ログラムから依頼を受けると代理人(代理プログラム) としてその依頼された内容を遂行する役 割を果たすコンピュータ プログラムである。

身近な例として、電話機で利用する Siri を取り上げて考えてみよう。Siriは、いわゆる Chatbotの一種でありアップル社の会話ロボットともいえる。

Siri

Siriは、アップル社の iOS, watchOS, macOS, tvOSの一部となっている。

人工無脳

chatterbot, talkbot, chatbot, Bot, chatterbox, Artificial COnversation Entity

音声あるいはテクストにより人との会話を導いてゆくことが可能なコ ンピュータ プログラム のことである。

チューリングテスト

これについては、後で述べる。


今日の課題: SiriなどのChatbotを使った面白いコンピュータとの会 話を試みてみよう。また感想を述べよ。 Apple社以外のChatbotの例としてあげると、Microsoft社には(ココヲ埋 メル)がある。


暗号化の種類

鍵交換アルゴリズムによる暗号化は、その暗号化するとき利用する数学的性質によって2つに分けられ る。

  1. DSA およびRSA暗号。これは、二つの大きな素数の積を因数分解すること が現実的には困難である事実に基づく。
  2. ECDSA およびEd25519。これは、楕円曲線の離散対数問題を利用する。

JavaScript Introduction part 1 - 10月7日 金曜

コンピュータ プログラムは、「命令」を並べてコンピュータに「実行」 させるためのある種のリストである。

プログラム言語では、これらの並べられた命令のそれぞれを「文(ステー トメント statement)」とよぶ。

JavaScriptでは、ステートメントは「セミコロン」で区切られる。

書き方の例1

      var nbox = 85503;
      var alto = 45716;
      var nwgn = 39435;
      var honda = nbox + nwgn;
    

JavaScript ステートメント

JavaScriptのステートメントのなかには、プログラム言語の世界で 「Value」とよばれるものがある。はじめにValueから説明する。

JavaScript バリュー Values

Valueには、2つの種類がある: 変らないvalueと変るvalue。変ら ない固定のvalue は、リテラル literalとよ ばれる。もうひとつの変化するものを、バリアブル variable とよぶ。

JavaScript リテラル Literal

数は、小数点ありと小数点なしの書きかたがある。

	  1.87
	  45716
	

ストリング 文字列は、ダブルまたはシングル クォート(引用符)で挟 んだテキストである。

      "N-BOX"
      'アルト'
    

JavaScript 変数 Variable

      var tanto;
      tanto = 70119;
    

プログラム言語で、変数 variable はデータ値をしまっておくた めに使う。

JavaScriptは、var キーワードを使って変数であることを宣言する。

等号は、値 バリューを変数 バリアブルに割り当てる(アサインする)ために使用される。

この例では、tantoは変数 バリアブルとして定義され、tantoには値バ リュー70119が割り当て(与え)られる。

軽自動車の販売台数の表からJavaScriptの変数定義と変数への台数 (バリュー)を割り当てるステートメントを書く。

今日の課題: 上の表をもとにして、下のJavaScriptを完成させよう。

      var nbox;
      var tanto;
      var alto;
      var spacia;
      var hustler;
      var nwgn;

      ...

      nbox = 85503;
      tanto = 70119;

      ...
      
    

今日の課題: SiriなどのChatbotによるコンピュータとの会 話についての感想を述べよ。 Apple社以外のChatbotの例としてあげると、Microsoft社には(ココヲ埋 メル)がある。Google社は、これまでのNexusに代わる新機種Pixelで Chatbotとして(ココヲ埋メル)を売り出している。


JavaScript Sort - ソート、分類 10日-14日

並び換え sort

ソートは、コンピュータにやらせる仕事のなかで最も多いプログラム のひとつであり、昔からさまざまなソートのプログラムが開発されてきた。

Bogosort アホソート、超オソソート、モンキーソートなどなどの別名あ り

並べ替えをやって、順序を調べできてなければ、また繰り返す、という操 作をソートが完了するまで続ける。

  while not isInOrder(check):
      shuffle(check)

bogosortの例

Resettacode.org からのコードで解説する。

Bogosort JavaScript
  v = [3,1,4,1,5,9];
  console.log(v);
  bogosort(v);
  console.log(v);

nodejs で実行する。

      $ nodejs bogosort.js
      [ 3, 1, 4, 1, 5, 9 ]
      [ 1, 1, 3, 4, 5, 9 ]
    

バブルソートの例

      $ nodejs bubblesort.js
      [ 1, 1, 2, 2, 3, 3, 3, 3, 4, 5, 5, 5, 6, 7, 8, 8, 9, 9, 9 ]
    

さまざまなソートを比較する

SORTING ALGORITHMS

練習問題: 2つの変数の値を交換(swap)する方法について考える。

第3の変数を使わずスワップする方法はあるだろうか?

ヒント


JavaScriptで「Hello World!」をお国の言葉で 10月21日

次のJavaScriptプログラムは、日本語で「Hello World」をコンソール画面に出力する。

sayHello("国名");の「国名」を12カ国から選ぶことができる。

      function sayHello(language) {
      var arrHellos = {
      "Chinese" : "你好世界",
      "Dutch" : "Hallo wereld",
      "English" : "Hello world",
      "French" : "Bonjour monde",
      "German" : "Hallo Welt",
      "Greek" : "γειά σου κόσμος",
      "Italian" : "Ciao mondo",
      "Japanese" : "こんにちは世界",
      "Korean" : "여보세요 세계",
      "Portuguese" : "Olá mundo",
      "Russian" : "Здравствулте мир",
      "Spanish" : "Hola mundo"
      };
      console.log(arrHellos[language]);
      }

      sayHello("Japanese");
    

練習問題:自分の好きな国の言葉でSayHelloが実行できるように、プログラム中の sayHello を修正してみよう。12カ国の中に自分の好きな国がないときはvar arrHellosの配列変数を修正する。

練習問題: 算数パズルを解いてみる。

このページにある花のパズルを解く。サテ答は、いくらか?


2016年度最終レポート提出方法