放送大学全科目感想 010 コンピュータとソフトウェア(’18)

  • 情報コース
  • テレビ科目
  • 辰己丈夫先生(放送大学教授)
  • 中谷多哉子先生(放送大学教授)
  • 白銀純子先生(東京女子大学准教授)
  • 難易度 ★★☆☆☆
  • おすすめ度 ★★★★☆

ソフトウェアの動作する仕組みを、ハードとソフトの両方の視点から学ぶ。3人の講師で、話題はPCの分解から簡単なアルゴリズムやプログラミング、データベース、開発の考え方など多岐にわたる。広く浅くという感じで、トピックごとの難易度は高くない。個人的には第8-9回目のプログラミング入門が素晴らしいと感じた。

第1回

全般的ガイドとコンピュータの構造について。聞き手は河原さん(アナウンサー?)。

この授業では一般的にコンピュータについて知ってほしいことを扱うらしい。

ソフトウェアが起動する仕組みから。今日は中谷先生の担当。ソフトウェアはなぜハード「上」で動くというのか、それは階層構造があるから。OSIレイヤーみたいなのが出てきて、ハード→OS→アプリの順に上に上がっていく。先生、AndroidをiOSより先に言ってるから、Android派だな。OSはソフトウェアとハードウェアの間に入ってハード資源を使う役割を果たす。

ソフトウェアを使うにはインストールする必要がある。インストールとは導入する、記憶させること。スマホもそう。スマホってソフトウェアってパッケージ化されてるんかな。PCだとファイル群をコピーしてレジストリ登録して。。が一連の手続きだけどスマホだとどうなってるのかな?

中谷先生って間とノリツッコミが独特。説明はすげーわかりやすい

下部構造へ。ハードウェアの説明になった。OSはソフト→ハードの命令の翻訳を担当する。ソフトウェアからハードウェアに直接データを送ればいいではないかと思われるが、そうもいかない。ソフトウェアにハードウェアの全ドライバを実装しないといけない。しぬ。

白銀先生と一緒にコンピュータを分解・組み立てするパートになった。マウスコンピュータのやつだ。まず静電気を放電(やったことなかった。やばい)。PCを自作する利点とは何か。まず自分の希望に合わせてパーツをカスタマイズできること。次に部品ごとに交換ができること。HDDはよく壊れるのでHDDだけ取り換えればいいとか。中谷先生は自作派ではなかったらしい。

マザボに電源をつなげて、HDDを取り付け、SATAケーブルでつないでる。CPUにはファンも付ける。グリースを塗るのは実はCPUのファン側には穴がたくさん開いてるのでそれを埋めるためらしい。マザボには全部どこに電源をつければいいか書いてある(これもよく知らんかった)のでこれを見ていけば簡単に作れるらしい。そのあとメモリを取り付けてる。最後にビデオカード(実は使ったことない)。蓋にCPUファン用の穴がついてる(これも見たことない)。うちのPC古いので、そろそろドスパラで部品そろえて自作しなおしたくなったな。

次に稼働させる段階の話。スイッチって0-1を示してたのか!!0がOFF、1がONってわけだ。OSを入れたUSBメモリを指して電源を入れた。電源ボタンは0-1を組み合わせている記号がついてる(これもそうか!)。電源を入れると表示されるBIOSはBasic Input Output Systemの略(だったのか)。CMOSってのは何の略なんだろうな。CPUはi5らしい(4年前だしな)。メモリ8GB(4年前としては多め)。ESCキーを押すと画面戻るとか、いろいろ細かく教えてくれてる。最後にUSBからWindowsインストールしてる。USBからだとはやいな!

最後にコンピュータの部品の説明と仕組み。メモリの仕組みになって突然難しい図になった。主記憶装置とメモリ、周辺機器の関係図。さてこの図だとソフトウェアがどこにあるかわからない。先生の定義だと、ソフトウェアとは、プログラムとデータから構成されるものだという定義になった(これ卒論で使えそうだ)。データ伝送路というもので周辺装置、CPU、メモリがつながっている。伝送路の速さにも性能は依存する。具体的には16-32-64bitアーキテクチャのこと。ああそっか64ビットのアドレスを保持できることが前提じゃないと、広大なメモリ領域とか、計算の基本単位とかが保障されないもんな。

第2回

辰己先生とネットワークの基礎について学ぶ。

原則、コンピュータ同士は電線でつなぐ。それもそうか!?光ファイバーだって、電線だもんね。

糸電話を始めた!しかも辰己先生の自作!さて、コンピュータの通信では、両者がかなり離れている。なので、送信と受信のタイミングを相手に伝えないといけない。また、送信と受信のチャネルを分けないといけない。それに、1対1とは限らない。3人かもしれない。そしたら、だれがだれに話したかわかるようにしないといけない。すると宛名をつけて、他の人宛のメッセージは無視しないといけない。ということを3つのコップのある糸電話とか、1人2つコップのある糸電話を使って説明してくれた(これも自作)。

AさんとBさんの会話を第三者Cさんに聞かれないようにするには?それぞれA-B B-C C-Aの3本の線を繋げばいい。これが4人だと4*3/2=6本。5人だと5*4/2=10本。6人だと15本。ということでnの2乗のオーダーで増えていくので大変。

通信はホスト同士で考える。6台のホストは、1本の線を中心において、そこにみんなが接続していくようにするとすっきりする。これをバス型という。ホストの場所のことをMACアドレスという(そういう定義だったのか!?)。MACアドレスを宛先に入れて、自分宛て以外のメッセージは無視するようにすればいい。

自分宛てのメッセージを待つ方法をCSMA/CD方式という。バスを共有している場合、2人がずっと通信していると、バスを占領して全員が通信できなくなる。占領する度合いをトラフィックという。スイッチングHUBを使うと、他の人のところに通信がいかないようになるので、問題が解決する。ハブは、MACアドレスを見て通信を振り分ける。ただし、インターネット宛になると話が変わってくる。

インターネットの話に変わった。インターネットはネットワーク同士をつなぐ約束事(プロトコル)の集合のこと。以前はThe Internetと言われてたが、最近では一般名詞になって小文字になった。

サーバと中継機器。この人たちは常に動いていないと困る。動いていないということは、道路や信号が止まっているようなものだと思う。先生は、サーバーが落ちるというのは、ネットワークが圏外になってるようなものという表現を使った。クライアント、サーバーの性能を比較すると、動画やゲームを動かすクライアントに比べて、サーバーの性能はあまり必要ない(計算量が少ない)。だから、パソコンでサーバーを立ち上げるのは性能的には簡単。

通信プロトコルの話。通信のルールのことをプロトコルという。プロトコルは上位・下位の層があるという。どういうこと?例えば切符を買うときのプロトコルでは、文字は下位、切符の買い方は上位、みたいな感じ。

何か話をすることを考える。言語は?日本語。手段は?電話。何の話をする?服装の話。この3つについて、どれか1つだけ独立に変えることができる。例えば言語だけ英語にするとか、電話をLINEみたいなアプリに変えるとか。これがプロトコルの層という話になる。どれか1つを変えても、他の層に影響を与えない場合、多層構造であるといえる。あーそういう観点無かった。一つ層を変えたら全部変わるもんだと思ってたわ。

おなじみOSI参照モデルが出てきた。例えばスマホがwifi→モバイルネットワークになっても、上層部は何も変わらないじゃない?たしかに!!インターネットは3-4のネットワーク、トランスポート層だったはず。

インターネットについて。通信単位をパケットという。データをパケットに分割して順番をつけて送信する。メリットは、トラフィックを長く占有しないことと、データの一部が無くなっても再送することができること。結構データが切れることは多いけど、再送にはどんな仕組みがあるんだろうな。あんまり機能してない気もするけど、、

IPアドレス。電話番号のようなものという定義になった。IPアドレスはMACアドレスのように機械出荷時のとき固定するわけではなく、動的に変わることがある。だから電話番号ってこと。IPアドレスは42億しかなくて足りないんで、IPv6にするって話だけどあんまり普及してない気がする。実際どういうところでv6になってるのかよく知らんなあ。

第3回

インターネットについて。ソフトウェアの科目にしてはネットワークの話多いね。今日は辰己先生。

封筒を使ってパケットをシミュレート。OUJの文字を送る。裏面にASCIIで表した数字が書いてある。手が込んでるなー。封筒に宛先を書いて、さらにルーター宛の封筒に入れて渡していく。ルーターは一つ封筒を一つ開けて宛先を見て、また宛先に近いルーター宛の封筒に入れて次のルーターに渡す…を繰り返す。そのうち宛先にパケットが到着する。パケットが来なかったらまた再送のお手紙を出す。最後までパケットが届いたら届きましたーって通知も出す。封筒をパケットのヘッダーに見立てているんだろうなーよくできてる。準備がたいへんや。

IPアドレス→ホストにつけた番号。電話番号と同じ。可変。ただし有効範囲はインターネット全体。一方でMACアドレスは不変。でも有効範囲は部屋の中だけ。MACアドレスが衝突することってあるのかな。

IPV4ってまだまだ現役だよね。32ビット、2の32乗で42億通りしかできない。32ビットアーキテクチャと関連してるから42億って数値は覚えておこう。

ネットワークアドレスについて、例えば12.34をある組織ということにすると、組織内で65536通り割り振れる。市外局番みたいなもん。ネットマスクというのは、ネットワークアドレスに使う部分の長さのこと。2023新課程の情報Ⅰの試験の例にでてきたよこれ。将来の高校生はみんなこれ知ってるんだよなあ。

IPV6は128ビット。3.4*10の38乗通りのアドレスが割り当てられるのでなんでもいける。

IPは変わりうるが、ドメイン名とIPが結びついているので問題ない。これを対応付けるのがDNS。世界規模の電話帳といっていい。DNSは分散管理されている(後述)。DNSはドメイン→IP(正引き)、IP→ドメイン(逆引き)のどちらの変換もできる。

www→ホスト名。ouj.ac.jp→ドメイン名。www.ouj.ac.jp→FQDNというらしい。

.jpの中でもac.jpとかed.jp、go.jp、lg.jpのほかにtokyo.jpとかもあるらしい(しらんかった)。これをセカンドレベルドメインという。オリジナルドメインは高いと言ってる。そうでもないっすよ。rokujo.orgは年3000円です。

jpのドメインはルートサーバ(?)、ouj.ac.jpのドメインはJP DNSサーバ、www.ouj.ac.jp内のIPアドレスは放送大のサーバが管理している。このように分散管理がなされている。ここら辺の仕組みももっと詳しく知りたいっす。いろいろ参考文献ほしい。

経路問題について。どうやってホストからホストに通信をするか。近いホストは簡単だけど、遠いホストはどうするのか。デフォルトゲートウェイというものを利用する。ネットワークの外側に行きたかったら、とりあえずデフォルトゲートウェイにパケットを送ってあげる。空港とか駅みたいな感じ。あとはゲートウェイ同士が通信をする。ゲートウェイ同士は太い通信線で結ばないとだめですね。あとは「数学的にいろいろ工夫がされています」とぼかされてしまった。知りたいです。

検索エンジンを簡単に解説してる。クロール→データベース化→検索サイト接続→表示って流れ。データベースをいかに工夫するかが大事なんだろうな。

CDN。米国サーバと同じ内容を日本国内においておく。すると米国のサイトにつないているのに日本でも同じものがトラフィック軽めでみられるようになる。

仮想マシン。ネットワーク経由で、コンピュータの真似をする。仕事で結構使ってます。コンピュータのシミュレートなので丸ごとコピーできたり、時間を止めたり進めたり簡単なので便利。最後の方はずいぶん詰め込んだな。

第4回

UI(ユーザーインターフェース)について。白銀先生+中谷先生。

インターフェースとは接合点のこと。例えば電源と電源プラグ。USB機器とプラグ。何かと何かを連携・連結するところのことをいう。

コンピュータでは何があるか。キーボード。あっ白銀先生カンペみえてるよ!Bluetoothもそう。スマホの画面入力のソフトウェアキーボードもそう。QWERTY配列は、タイプライターに由来する。バー同士がぶつからないように調整したんだって。メカニカルな理由だったんだ。他の配列は?dvorakというのが有名らしい。頻度の高いアルファベットが押しやすくなっているらしい。親指シフトってのが日本語ではよく使われる。聞いたことはある。文字入力たくさんやることが多いし、ひらがな入力もトレーニングしてみようかな。

マウス。最近トンと見なくなった機械式と、光学式のマウスが出てきた。機械式はゴミが中に入るのが欠点。トラックボールも出てきた(これまだあるの?)

出力装置。ディスプレイから。昔はCRTだったね。今は液晶。テレビと同じ。液晶はバックライトをあてて光らせて表示させてる。12.1型みたいな名称は、ディスプレイの対角線の長さをインチで表したもの。ppiはドットの密度のこと。

1ドットは3つの点(!?)で構成されている。RGBで1点ずつ。それぞれ256段階で光らせればフルカラーになる。出力が256段階ならデータがフルカラーより細かくても意味ないね。拡大したドットを見せてもらった。確かに正方形を縦に3分割してRGBがそれぞれ光っている。しらんかった。スマホは細かすぎてルーペでは3分割した点が見れないかもしれないとのこと。

プリンタはCMYK方式。どうしても印刷物に違和感が出るのは色の表現方法が違うから。実物で比較してもらった。たとえば空の水色、雲の青っぽい黒がだいぶ異なってくる。これ例えばカメラのキタムラで印刷してもらった写真でもそうなのか?できるだけディスプレイに近づける工夫があると思うんだけどどういうことをやってるんだろ。

画面読み上げの話。マウスポインタの下の文字を読み上げてくれてる。windowsだとしょぼい。siriの方が読むの上手。

タッチ入力、ペン入力。誤認識問題のことをfat finger問題というらしい。対象物より指が大きいためにおきる。

CUIとGUI。CUIは命令を覚えなきゃいけない(けど、速い)。今でもネットワーク機器でよく使う(し、コマンドプロンプトでいつの時代でも使えるよ)。GUIは90年代~。命令を覚えなくていい。私は90年代からPCに触れてるから、ちょうどCUIとGUIのハイブリッド世代だな。cygwinでファイル見てる。エクスプローラとプロンプトで両方とも同じファイルが表示されていることを確認。lynx 命令でwebページを表示することもできる。テキストベースのインタフェースが用意されてないと無理だな。WYSIWYG(古い)も紹介された。texも紹介してもらった。あれ、wordってtexそのまんまサポートしてるんだ!?

第5回

今回は辰己先生と大阪電通大の兼宗先生。見えない情報技術について。取材がメインだそう。

いろんなものにコンピュータが入ってますねーという話からスタートした。コンピュータは汎用、高性能、安価なので使われている。

人間は五感を使って情報を収集した後、文字などを使ったりして何かを出力している。コンピュータも同じ。入力と出力がある。

組み込み型コンピュータについて。コンピュータを頭脳に見立てて、センサーやアクチュエータを五感、筋肉として活用し、入力と出力を行う。アクチュエータとしてはエンジンとか、モーターとかが例になる。

楽器の中のコンピュータの例。辰己先生の取材。辰己先生ギター弾けるんだ!KORGに取材してる。シンセでアコギの音を引いてる。サンプリングしてメモリーに収録しているらしい。オルガンの音もドラムもならせる。基盤を見せてくれた。CPU、DSP、メモリ、ユーザーインターフェースからなる。あれ最近のMIDIキーボードってBluetoothでいけるんだ!確かにシンセの音鳴ってるわ。switchでも音楽作るソフトがあるみたい(ほしい)。iPadにも音楽作るやつ入ってるみたい(BandLab?)。

認証について。静脈認証システムの取材。富士通だ。ATMに手のひらをかざして認証してる。暗証番号はどっちにしても必要なんか。まだ岐阜の大垣共立銀号しか採用してないらしい(2018)。クレジットカードを手のひら認証することもできる。近赤外線を照射して、血管が赤外線を吸収することを使っているそうだ。画面が洗練されていないのが富士通って感じ。

手のひら認証は、犯罪の指紋とはちがって、積極的に個人情報を提供していくことと同じだから、意思の確認としても使えるということ。あーそういう視点無かった。他人とご認識される確率は1/1000万。すげ。双子でも誤認識しないらしい。流出対策としても、静脈情報は取り直せばいいらしい(どういうこと?一意性がないの?)

人と一緒に働くコンピュータについて。店舗ロボットだって。慶應でもあったやつや。今回は大阪電気通信大学の鄭先生。コンビニの商品陳列ロボット。まずキャリブレーション(初期位置確認)を行う。準備運動みたいなもん。まずおにぎりを掴む。これ力の加減難しいよな。アッ落とした。倒した。まだプログラミングが不足らしい。腕を上げてなかった。シールをつけて何の商品なのか認識する仕組みらしい。弁当は吸盤で吸着。おっこれはうまくいった。使っている技術としては画像認識、モーターの制御など。安全性がこれからの課題だそう。なんと学生の手作りらしい!

辰己先生談、カメラの性能が高いので、コンピュータも高性能じゃないと解析が不可能という面があるらしい。

フィードバック制御について。屋内ではGPSが使えない。位置と動きを微調整しながら動作するためにフィードバックのような仕組みが必要になる。

車輪を使うこと。店では広いスペースがないから、車輪を3つ使って小さな半径で回れるようにしている。

辰己先生、10年前にも取材をしたことがあって、その時と比べてずいぶんと進歩したらしい!コンピュータの性能向上が最も大きな要素だそうだ。今後は人工知能がデフォになるからAI視点が重要になってくるらしい。

第6回

辰己先生。コンピュータにおける数値表記について。多分計算の科学と手引きとかぶってる。

位取り記数法から。数字を大きくしていってあふれたら左側に1桁増やすことをいう。n個数字を使えばn進法になる。点10個を表す場合、2進法なら1010、3進法なら101。混乱を防ぐため十進法、二進法などと漢字で書くことが多い。1010(2)という書き方と、(1010)2と書く流儀がある。前者が多い。

二進法と十六進法の対応表を見てる。プログラマーにはなじみがあるけど初めてだと大変そうね。

六十進法は身近に使ってるという例。時分秒で使ってた!

ビットとバイトの話。まず先生がパンチカードを出してきた。そもそもビットとは、穴のことらしい(そうなの!?)8ビットで1バイト。コンピュータの中身は実際は0と1ではない。電流とか磁気とかだから。それもそうだった。01が実際に数として記録されれるわけじゃーないや。

なぜ固定長なのか。大きな数を取り扱う前提で場所を数を記録する場所を取り過ぎると無駄なので、昔は8bitだった。固定長の場合は、小さい数字は00010000みたいに、左に0を補ってやればいい。区切ってやれば、処理しやすくなる。8bitでは255までしか表せないから、2つ、4つ並べていって大きな数を表していた。

2進法→10進法の変換してる。辰己先生、字があまり上手じゃないのが好感を持てる(私も下手なので)。ビットシフトすると2倍、半分になるって話もしてる。倍々にしていって1を足したり足さなかったりする変換方法もある(知らんかった)。

負の数と小数の表し方。4桁のカウンターで説明。9997は、3回押したら0000にある。だから、9997は-3と同じではないか?同じように、時計の9時57分は、10時-3分と同じではないか?という考え方をするらしい。これを補数という。1000をフルだとすると、999に対する1が補数。256をフルだとすると、10に対する補数は246。補数、基本情報とか応用情報でやったけど、意味わかんなかったなあそういえば。ようやく意味わかったです。

コンピュータでは、マイナスは補数で表す。-10は246表す。-100は156で表す。どこからどこまでがマイナスなのか、プラスなのか、はコンピュータ上の決まりとして決めておく(signedとunsignedの約束事のことだと思う)。この仕組みならプラスもマイナスも一緒くたに計算してやることができる。

小数はビットでどう表すのか。印刷教材を見ろとのこと。ここでは小数の記数法の話。10進法では1/10にすると小数点が一個ずれる。これをn進法にすると、小数点を一個ずらすことは、10(n)分の1にすることと同じ(あーそっか!)。

3進法で一桁ずらすと、循環小数になる。n進法でも循環小数になる。逆もそうで、10進法ではきれいだけどn進法では循環小数になる場合もある。

第7回

(しんどくなってきたので以降感想は適当です)

データの符号化について。

ISO-2022-JPって漢字のin-outに3バイトとも使ってるのか。大変な仕様だ。UNICODEは?と思ったら解説無し。

紙テープ折って0-1で長さを表す実験。辰己先生こういうの上手だなー。

色のデジタル化。加法混色と減法混色について。つまみでRGBを調節して色を作る装置が出てきた、楽しいのでほしい。

3ビットカラーの写真。8色でもそれなりに写真が見えることが驚き。

ラスタ形式とベクトル形式。ベクトル形式って実際どんな風にコンピュータ上で表されているのか気になる。二次元ベクトルをいっぱい書いてあるだけなのかな?

MIDIのはなしのとこでボカロがでてきた。メジャーになったもんだね。

パリティビットの実演。1や0が偶数になるようにすればエラー訂正が確かにできる!

第8回

プログラミングの基礎。兼宗先生。

プログラミング言語は自然言語と機械語の中間である。人も機械も両方理解可能なところをとったもの、と考えるのがよい。今回は宗近先生が作った(!)というドリトルという言語をフューチャーする。

『「かめた!90左回り 200歩く」!4回 繰り返す』みたいな感じの命令文がある。日本語じゃん!そして、登場人物がscratch風の動きをしている。

★書いてる。144度ずつ回すとちょうどうまくいく(720度/5)。

回数と角度を変えるだけで画像がいろいろ変わっていく。プログラムは書いていろいろ実行してくと面白いことがわかる。プログラミングってとにかく動かすしかないよねー。いやこれは素晴らしいイントロだなあ。

対話型プログラム。ちょっとこれは。。見づらい。ドリトルは、直感性を重視して、可読性をおとした感じの言語なんだな。あとシンタックスエラー頻出しそう。カメがひたすら動いて、物にあたるとそれを消す、というプログラムだった。

プログラミングの要素。流れ・制御と反復処理、条件、入出力、データ型あたりが大事。変数を使うと一気にプログラムが便利になる。ドリトルのfor文、「|n| かめた!(20*n) 歩く」みたいな感じで、初見だと見づらい。慣れたら簡単そうだけど。

ドリトルは関数定義もできる。かめた:星を描く=「(命令文)」みたいに書けば、かめた!星を描く、でコールできる。JavaScriptとおんなじや。これはまあ、見やすい。

配列は データ=配列!10 20 30 40 みたいに書く。配列処理は データ!「|要素| 合計=合計+要素」みたいな感じ。よみにくい。

最後にC言語。やはりCは大事らしい。コメンテーターの河原さん、見た目は暗号みたいだけど、意味を教えてもらえばわかりやすいということ。かえるぴょこぴょこ・・・を表示させるプログラムを作ってる。これはわかりやすい。

この回神回かもしれない。プログラミングに抵抗ある人、ぜひこの講義見てください。

第9回

辰己先生回でアルゴリズムの話。アルゴリズムは終了することが重要。最大の整数を見つけてください、というのはアルゴリズムではない。それもそうか。

アルゴリズムは書き方は問題ではなく、何をするかが問題となる。書き方はいくらでもある。

良いアルゴリズムとは。だれが動かしても大丈夫、読みやすい、メモリを使わない、処理が速い、などなど。

数学的なアルゴリズム。まずユークリッドの互除法(えー!?)。世界で最古のアルゴリズムらしい!授業のネタになるね先生126*35の紙作って持ってきてる。。すげえ。。折って切って折って切って、、長方形が正方形になるまで折って切ってを繰り返す。このプロセスをドリトルで書くとなんと7行に。

ソートとサーチ。天秤を使ってバブルソートを行っている。6個の重りで15回の比較をすればいい。整列を手を動かしながらやるとめっちゃわかりやすいな!そしてドリトルで書くと見づらいな。先生、変数はせっかくだから日本語にした方が。

二分探索を広辞苑でやってる。これはわかりやすい!100万ページでも20回、10億ページでも30回の探索でできる。logで探索できるってのはすごいねぇ。

ハノイの塔を使って再帰プログラムを解説する。文字で書くのは難しいが結構感動した。円盤の枚数を1枚増やすごとに、1つ前の手順と同じことを繰り返していけばいい。2枚だろうとn枚だろうとやることが同じ。これが再帰的か。なおハノイの塔は64枚にすると2の64乗回の処理が必要らしいので、フリーズするそう。

最後に、天秤と重りでクイックソートやってる。。すげえ。。神。確かにクイックソートは再帰的だわ。しかも2分で説明終わったで。

第10回

シミュレーションについて。辰己先生+兼宗先生。

モデルとは何か。実物ではないけど特徴を良く表しているところのもの。

メルカトル図法の図は最短距離を求めるにはうまくいかないが、地球儀だとうまくいく。モデルには、抽象化が不可欠だが、問題に合わせた抽象化が必要。抽象化したものを記号や図で表すと、モデルになる、つあmり地図とは、モデルである。

シミュレーションとは。現実をモデル化して、モデルによってさらに現実を模倣すること。具体的にはこういうこと。200mの道を1.2m/sと0.9m/sで向かい合って歩いている人がいる。何秒後に出会うか。中学数学の問題だ。これの式を立てると、式が数式「モデル」である。グラフで表してもモデルと言える。

数学で表されるのは、解析的な解。現実はそうとは限らない。

つるかめ算。河原さん手馴れてるので中受経験者か。これは連立一次方程式で解ける。エクセルでも余裕。プログラムでも、for文で回して総当たりにすれば解ける(まじめにやるなら、クラメルの公式使ったりするのかな)。

物理エンジン風のものをドリトルで再現している。ドリトル、こういうのが得意なんだな。

突然、京コンピュータの取材に行った。河原さん上がってる。わたしもあがってます。8万ノードもあるらしい。現実の計算をするためには、大規模かつ複雑な計算をする必要がある。これを可能にするのがスーパーコンピュータ。実際には、大気シミュレーションなどに利用されている。モデル化がうまくいかなかった例としては、車のドアミラーの風切り音についての計算。これは、計算の細かさ(メッシュ)が足りていなかったために、起こりえない現象がシミュレーションで起こってしまったということ。計算で工学的なシミュレーションができるようになったので、効率化・費用削減効果がすごい。

兼宗先生によれば、うまくいかない計算はまだ三通りあって、京コンピュータでも太刀打ちできない複雑な現象と、はっきりとした式で表せない現象(囲碁とか)。それから、人間の心理に関わる現象。

第11回

データベースについて。今回は兼宗先生。

DBは表計算では扱えないような量になってきたときに役に立つ。昔あった階層型とかネットワーク型ってどんなものなんだ?印刷教材に書いてあるかな。

リレーショナルデータベースって、好きな表を作れるのがいいよね。マクロ使ったりするともっと複雑なもの作れるし。

データベース用の言語として、教育用にサクセス言語ってのがあるらしい。なんじゃそりゃ。ってこれも先生が作ったやつかもしれない!!

「表示 売上データ」 とか、「選択 時間帯 夕方」みたいに入力して操作する言語らしい。SQLを簡便にして日本語化した感じかな。あと表が見やすい。どういう操作をしたかも、スタックに積んでいく方式で見ることができ、わかりやすい。

SQLになった。文字列に%を付けたらそこは任意の文字を表すっての、超基本なんだろうけど知らなかった。。やば。

DB設計について。いずれDBスペシャリスト受けるし、しっかり見とかないと。E-R図を使ったりするとけっこううまくいくみたい。二つの実体を関係を使って結んでやるのが基本かな。例えば、商品と顧客を、購入という関係で結ぶ。家計簿もE-R図でDBにならないか?

リレーショナルDBにする理由。全部一緒くたの表だと、矛盾する更新ができてしまう。A社と東京が必ず結びついている場合に、A社と京都みたいな記述があると困る。つーわけで、A社とその所在地については表を分けてしまうのがよい。

DBシステムの安全機能。ACID属性の、独立性だけちょっとよくわからない。原子性は、例えば簿記の記録で貸方と借方の片方だけが記録されるようなことがあったら、やばいということがわかる。で、これ実際ソフトウェア上でどうやって実現しているのかな?

第12回

オブジェクト指向の話。中谷先生担当。

まずは単位をそろえないといけないという話から。変数名だけだとプログラマーがずっと単位を覚えていないといけない。例えばキロとメートルを間違えると大変なことになるが、これをバグとしてで見つけるのは大変。これを解決するのがオブジェクト指向らしい。オブジェクト自体に単位変換をやらせればいいじゃんってこと。メートルなのかキロメートルなのかっていうのは、オブジェクトにメートルをくれとか、キロメートルをくれとか聞けばいい。

aNagasaみたいに変数名にaをつけるのって最近の流行りなのか。

オブジェクトの主人公としては、長さとか重さとか、人、図書館、状態などが考えられる。属性と操作があればいい。状態自体をオブジェクトにすれば、if文で大量に分岐することを避けられるね、というのも、原理としてはわかるが、実際コード的にはどう書けばいいのかな。

オブジェクトは関数の集合体(プラス、データの集合かな)。

自動販売機というオブジェクトを考えると、お金を識別したりランプを点灯させたり、いろんな役割があるよね。あと自動販売機の中に、お金を受け取るオブジェクトとか、ランプを点灯させるオブジェクトとか色々必要になる。役割分担が技術者に求められる技術の大事なものの1つになる。

Javaのプログラム例が出てきた。オブジェクト作ってデータ入力、演算、と出力をする典型的なオブジェクト指向プログラムのやつだ。異なる単位の演算を勝手にやってくれるのでありがたい。けど、けっこう行数が多くなるんだよね。多くてもいいんだけどさ―読みやすければ。

オブジェクト指向用語集が出てきた。情報隠蔽って、自動販売機の例だとわかりやすいね。内部でコインがどう動いてるとか、他のオブジェクトは知らなくていいし。あと、オブジェクト自身が自分の処理に責任を持つっていう考え方もいい。特にエラー処理、デバッグの時に大事になる考え方だ。

役割分担の上手くいっていないオブジェクト設計の例。主人公が少なくて、処理がごっちゃごちゃになってる。整理するためには、お金を処理する人とか、ランプを表示する人とかをオブジェクトにしないといけない。

情報隠蔽の意義は、隠蔽されている中身の処理を変えても、他に影響を与えないということ。効率的な役割分担の一貫だったんだな。私面倒で、隠蔽を一部解除して他のオブジェクトに編集可能にしてしまったりすることがあるのだけど、こういうことをすると保守性が著しく落ちるのな。反省した。中谷先生的には、オブジェクト指向では情報隠蔽が一番重要らしい。

良いメソッドの数は20くらい、中身は10行くらいがいいらしい。だからクラス一個は200行か。これならプログラマは5分で読めるらしい。たしかにそんくらいかも。

ドリトルもオブジェクト指向言語らしい。JavaScriptの仲間。小規模用。C++やC#, Javaなどはクラスベース。大規模用。オブジェクトベースでは委譲というやり方で、継承のようなことを実装する(詳しくはどんな感じなんだろ?JavaScriptならわかる気もする)。

第13回

ソフトウェア工学の考え方について。今回も中谷先生。

ソフトウェア工学とは何か。ソフトウェア開発において系統的で統制された、定量化可能な方法を適用すること。できるのかそれ?できればだいぶ見通しとか見積もり、開発保守の誰でもできる再現性のある方法が確立できるよね。情報技術者試験ってのはそういうことを学ぶ試験なのかな。例えば某手法を採用したのでプログラムのコードを1/100にできましたってことが分かれば、その手法を定量化して評価できる。特に大規模開発になったときに大事。私仕事はほとんど1人でやってるからあんま恩恵は受けられないんかな。。

納期の話。決められた通りにやるとうまくいかないので〆切のために適当にやると、仕様書通りにならなくなる。私らの場合だと、暫定でとりあえず動くようにして仕様書の方を(未実装)とか書いちゃうけどな。仕様書に合わせるために嘘のコードを書いた方が悲劇が起こるんじゃないんかな。

ウォーターフォール型プロセスについて。一発で要求→実装→運用までやっちゃうやつだ。これ見るたび危険だなって思う。テストにもいろいろレベルがあるけど、うちの会社だと基本的に単体テストの積み重ねが多いよなー。小規模なプログラムでもないのに、常に結合テスト、システムテストも兼ねてる感じ。

スパイラルプロセス。要求定義→プロトタイプを作る→リスク分析(これが大事)→またプロトタイプを作る、の繰り返し。webアプリなどはじめに何が必要なのかよくわかんない場合、よく用いられる。

リスクには何があるか。人員不足、間違ったスケジュール、間違った機能の開発、頻繁な仕様変更(!)、インターフェースの不整合が主なもの。

もう少し違うアプローチの開発方法について。まず簡単なプログラムを作って、徐々に完成に近づけていく方法をインクリメンタル型。これに対して、大枠は変えずに機能や品質を高めていく場合はイテラティブ型という。私はインクリメンタル型の方が好き。

Eclipseでてきた。JavaScript開発するときに昔使ったことある。今でも健在なんだな。

astahというモデリングツールの紹介。詳細な属性の入ったUMLが簡単に作れてる。放送大のモデリングをしている。わかりやすい。コードの自動生成機能もあるらしいよ。

要求分析の説明してる。学生で実務したことないと、これ意味わかんないんだよね。実際に人が動いているところを想像できないと、ただの抽象的な文字の羅列に見えてくる。

保守。基本的には予防保守=デバッグがメインだけど、例えば新しいwindowsに対応するため適応保守しないといけないことってけっこうある。そういえば今日ゲーセンに久しぶりに言ったらpop’nでXP embeddedがまだ使われていて驚いた。下手にwindowsを更新すると、ゲームみたいなハード依存が激しいソフトウェアは動作しない、不具合続出みたいになるからしょうがないよね。

第14回

UI理論について。白銀先生。

UIの品質はどうやって計るのか。今の時代は使いやすさよりもユーザエクスペリエンス(UX)が大事と言われる。ソフトウェアを使ったときのユーザの体験が大事ということ。使用前、使用中、使用後にどう感じるかが問題になるらしい。

国際規格がいくつかある。まずISO9241-11(1998)。有効性、効率、満足度を測定する。

次にSQuaRE。ソフトウェアの品質全般を定義している。利用時の品質、製品品質を評価する。ISO9241-11を拡張したもの。

最後にISO9241-210。人間中心主義を標榜する。前2つとは違い、言葉の定義だけが書かれている。

SQuaREの利用時品質モデルでは有効性、効率性、満足度のほかにリスク回避(経済とか安全性とか)、利用状況網羅性を評価する。評価しづらいソフトウェアの品質を定量的に評価するために、うまいこと考えたもんだな。製品品質モデルでは、使用性として適切度認識性(ユーザがニーズを満たしているか確認できる度合)、習得性、運用操作性、エラー防止性、ユーザインタフェース快美性(変な単語)、アクセシビリティ(障害者対応)が評価される。こういう観点を日々の開発に取りいれると、よいソフトウェアができそうな気がしてきた。

カーナビを例にしてUIをみてみる。パイオニアに来た。カーナビはユーザ操作の仕組みがなかったらしい。タッチパネルが登場したので操作が可能になった。スマホの普及によって、UIもスマホに寄せてきているらしい。フリック、ドラッグ、長押しでスクロール(知らんかった)、二点タップで拡大縮小などなど。

使いやすさと分かりやすさはトレードオフ。機能を置くすれば使いやすくなる。でもわかりにくくなる。そこで一貫性を持たせる。パイオニアさんは9*5のマスにすべての操作が収まるようにしてある。ミスを防ぐため、キャンセル操作は「はい/いいえ」を毎回表示している。

カーナビはターゲット層がいない。だれでも使う。そこで高齢者・障害者への工夫が必須になる。道路の色は一般的な地図を踏襲していて、これが色覚に障害のある人にそのまま認識しやすい色らしい。微調整としては、色温度を変えることができる。

通知の段階。車間距離が近づいてきたら黄色く警告、もっと近づいたら赤で大きく表示、など。最初に大きく表示するとびっくりするので。

ここまで見てきた内容は全部SQuaREの項目に関連付けることができる。運用操作性とか、アクセシビリティとか。

人間中心設計(HCD)のサイクルについて。まずHCDのための計画をして、ユーザの利用状況を特定する。ユーザ要求も特定して、具体的に設計する。最後に大事なのが評価。評価をフィードバックしてこれまでのサイクルに戻っていったりもできる。

具体的にGUIを開発することについて。GUIはオブジェクト指向と相性が良い。JavaのSwingクラス図を見ると納得できる。例えばボタンの子クラスに普通のボタンとメニューアイテムがあったりする。実例。Android Studioを使ってる(先生もAndroid派か)。実機、微妙にSONYのロゴが見えてるからXperiaかな?

第15回

社会で利用されているソフトウェアについて。中谷先生。総まとめと応用。

ポイントカードがいっぱいになってしまうことを例にして、高速化の説明。財布、カード入れ、手で持つ3パターンがある。手がキャッシュメモリ、財布がメモリ、カード入れがHDDに相当する。ただキャッシュメモリと手は、ポイントカードをどうやって認識するのか、という点で違う。キャッシュではポイントカードを認識するためにひと工夫必要となる。

ダイレクトマップ方式。主記憶装置のアドレスをキャッシュの大きさで割った余りとキャッシュのアドレスを対応付ける。これだとキャッシュ上の複数のアドレスが多対一で対応付けられてしまう。そこで上位ビットをタグにして、キャッシュにも入れておく。タグとアドレスが両方とも合致すれば、実際にそこに内容が入っているということが分かる。さらに、内容が実際に入っているかどうか保障するために有効ビット(最終ビット?)をオンにする。

キャッシュを大きくすれば速くなるんだけど、高い。そこで別の方法で速くする。マルチコアにしたり、コンパイラを工夫して最適化する。

主記憶装置を大きくしてもいい。次は仮想記憶について。主記憶装置が足りないときにHDDを使うやつ。いわゆるスワップってやつか。昔のwindowsで速度低下の原因になるやつ。ポイントカードの例えなら、財布からポイントカードがあふれた時にカード入れに放り込むことに相当する。カード入れというのは仮想記憶装置に相当する。あっスワップはめっちゃパワー食うって言ってる。だよねー。で、使わなくなったポイントカードを家に引き出し(HDD)に入れる。

情報システムの仕組み。wakabaを例に。わー機能多すぎ。たいへんや。DB自体は少ない(3つ)が、操作や管理機能が多すぎ。これをOSIモデルで表現すると、プレゼン層、アプリケーション層、データ層の3層だけで表現できる。

機械学習の話。主に教師ありと教師なしがある。教師あり学習では、正解を与えて学習させる。教師あり学習ではSVM(サポートベクターマシン)を使う。まずはデータを回帰曲線の上と下に分ける。そして上にある方について、どういう特徴量を持っているのかを学ぶ。

担当学生さんが手書き機能のパームリジェクション機能を機械学習で行うというので、その話の紹介をしてくれた。手のひらを置いたまま指の動きだけを検出したい。実際に手を置いて書きまくってもらいデータを取る。そしてどのような特徴量が手のひらで、指なのかを教えていけばよい。あーなるほど。原理だけでもすげーなって思う。

放送大学全科目感想 009 アルゴリズムとプログラミング(’20)

  • 情報コース
  • ラジオ授業
  • 鈴木一史先生(放送大学教授)
  • 難易度 ★★★☆☆
  • おすすめ度 ★★☆☆☆

主にC言語を使って、ソートやリストなど基本的なアルゴリズムを学ぶ。アルゴリズム入門というよりは、C言語入門と言った方がよい科目。授業の後半は印刷教材の各章末の演習問題の解説にあてられるため、印刷教材とweb補助教材(プログラムソースが長いため別枠)が手元にそろっていることが前提の科目で、ラジオ単体で聞くのは非常に苦しい。ラジオでは無理のある科目のためおすすめ度は低め。C言語を真面目に学びたい人向け。今の時代、pythonなど近代的なプログラミング言語を使った方がよい気がするが、pythonだと基本的なアルゴリズムは1行で書けてしまうので、あえてC言語にしたのかもしれない。

第1回

プログラムとは何か簡単に述べた後、C言語入門になった。私はC言語知ってるから、言葉を聞いても想像できないこともないけど、初めての人はラジオだと何もわからんと思う。コメントはこう書きますとか、sscanfの引数にアンパサンドがついてることに注意しましょうとか言われても初学者はわかるんだろうか。#includeも意味教えないでいきなりでてきてるし。印刷教材と共に聞くことが前提のようだけど、印刷教材があればラジオ授業いらんのでは。。

印刷教材の演習問題のヒントのコーナーがある。これ聞いてると、C言語ってunsigned longみたいな変数型とか、%lfが何を表してるかとか、とか些末な規則一つ一つが全部わかってないと、何にもできないんだなあと思った。

一応全部聞くけど、単体で聞くにはかなーり厳しい授業だと感じました。テレビにしてくれ。

第2回

条件分岐について。C言語のif文とswitch文、あとgoto文だけで、45分の講義を使った。やはり、細かい規則が多くそれで時間がかかる。しょうがない。

講義を聴いているのは年配のおじさんが多いという前提というところがびっくりした。みんな行番号付きのBASICに慣れてるでしょーって。

あとは三項演算子については、使うか使わないかが宗教的議論になるという話が面白かった。私は使う派です。

後1/3は第1回と同じく、演習問題の解答例とヒント。

第3回

forループ、whileループ、do while文の話。

主に、1000回printfを書くよりも、forループ一発の方が楽じゃんという話です。

do whileって使ったことないし、どういうケースで使えばいいかわからん。forでええやん。世界は複雑じゃない方がいいって形而上学でもやったよ。

GO言語はfor文しかないらしい。道理だなあ。それもそのはず、for-while-do whileは相互変換できるってさ。

web補助教材って面倒だな、分厚くてもいいからテキストに含んでほしい。お金の問題ならしょうがないけど。

演習問題もfor三重ループとか複雑になってきたなあ。

第4回

ループの応用でモンテカルロ法による円周率の演算。いきなり難しくなった。

ざっくり説明すると、正方形と内接円を用意して、乱数で正方形内に適当に点を打つ。点の位置が円の中にあるかないかで分けて、点の数の比と正方形・内接円の面積比(1:π/4)を比較する。すると円周率が出る。これをプログラムでやれということ。

テキストないけど、試しに聞いた知識だけでJavaScriptでやってみる。

//円の中、外のカウント
inTheCircle = 0;
outOfTheCircle = 0;
//繰り返す回数
n = 100000
for(i=0; i<n; i++)
{
    //x,y に0~1の適当な数を代入
    x = Math.random();
    y = Math.random();

    //ここでは(0,0)(0,1)(1,1)(1,0)の正方形と、(0,1)(1,0)の扇形で考える
    //扇形の中にあればinTheCircleをインクリメント
    //そうでなければoutOfTheCircleをインクリメント
    if(x**2 + y**2 <= 1.0) inTheCircle++;
    else outOfTheCircle++;
}
//面積は正方形が1、扇形がπ/4(円の1/4)。これとn : inTheCircleが等しい
pi = inTheCircle * 4.0 / n;
document.write(pi);

↑がこのプログラムの実行結果です。だいたい3.14になるので、まあまあの精度かな?ちなみに、nを10億にすると結構な時間がかかるらしい。その代わり、精度も高い。

あとはビッグオーの話。nlognだと全然増えないねーってことが分かった。nの2乗だと途端に遅くなる。ちなみに↑のプログラムのオーダーはnのはず。

第5回

関数について。関数便利ですよね。繰り返しが減るし、何度も使われると洗練されてバグも出にくくなるし。

再帰はパフォーマンスが減るってのはよく知らんかったな。確かにスタックに積んでったり崩したりするとコストがかかるかも。どういう場合に使うべきで、どういう場合に使わないべきかは、もう少し詳しく知りたいな。

C言語は参照渡しがないという話。たしかにポインタは値渡しだから、全部値渡しでできるね。あと昔は引数が31個までしか使えなかったらしい。私の会社の開発環境もそうかもしれないから気を付けよう。

演習問題に、インクリメントしているように見えるのに画面出力は数が減っていくという引っ掛け問題があるらしい。「これは試験にも出しやすい問題です」って2回も言ってたから試験に出るんだろう。試験難しそうね。

第6回

配列の話。これから3回配列らしい。そんなに話すことあるのかなって思ったけど多次元配列、ジャグ配列・スライス(この2つは言及するだけ)とかいろいろ配列ってやることあるよね。

ヒープとスタックの話が出てきたけど、これ私も実務で悩んだことがあって、古い環境でローカル変数で大きな配列を確保すると、原因不明のエラーが出るんですよ。これはnewするようにしたら解消したんで、スタックじゃなくてヒープに確保することが重要。実際、スタックって容量どのくらいなんだろうね。あと、当時の私はどうやって問題を解決したんだろう。謎。

文字列処理の話も、昔のC言語然としていて、不便な関数ばっか。pythonならこれ数文字で書けるのに。。!ってのいっぱいあるよね。

第7回

配列その2。線形探索と二分探索、計算量について。原理のところは計算の科学と手引きとまるかぶりで、新しいことはあまりないんだけど、一つ疑問が。二分探索のための整列済み配列って、整列するのにオーダーnのコストが必要なんだから、いくら二分探索がlognだからって、整列にコストかかっちゃって線形探索と変わらないんじゃ?整列済み配列をコストを低く作るための仕組みがあるのかな。ノード型の配列にすれば毎回二分探索してリンクを繋ぎ変えるだけでいいからコスト低いってこと?あとはDBMSみたいにインデックスを抜き出してそこだけソートするっていう風にするのかな。

構造体を並べ替えるのも一緒だよね。一部のメンバのみ比較するのなら、インデックスを取り出してソートしてるのと一緒。ただ、並べ替えのデータ量が非常に大きいから、やっぱノード的にやるしかない気がする。

第8回

配列その3。スタックとキューの話と、ライフゲームの話。スタックとキューは実装としてはあまり難しいことをやっているわけではないのだけど、有限な配列を使ってどうやって実装するのか、印刷教材のコードを見てみたい。

今回のメインはライフゲームの話。ライフゲームとは、二次元空間の点の集合に一定のルールを与えて、点が消えたり生まれたりする話。中学の時、ライフゲームの本を読んで感銘を受けたことを覚えている。

そうそうこれこれ。数学的な簡単な規則から、生命や宇宙が作れてしまうっていう話だったのでスケールが大きく感動したんだよね。

今ではライフゲームもいっぱい動画が出ている。

THE RECURSIVE COSMOS: Conway's Game of Life - PART 1 - YouTube

一度JavaScriptあたりで実装してみたいなー

第9回

ファイルについて。fopenとかfprintfとかは知ってるのでいいとして、後半戦ではNetbpmという知らない画像の形式を扱う話になった。

Netpbm - Wikipedia

P3
# The P3 means colors are in ASCII, then 3 columns and 2 rows, then 255 for max color, then RGB triplets
3 2
255
255 0 0
0 255 0
0 0 255
255 255 0
255 255 255
0 0 0

PBM形式ではこんな風にフルカラーの画像を表すらしい。無圧縮のバイナリよりデータ量でかいじゃん。たしかにどんな環境でも、フルカラー画像を表すことはできるが、これは実用的のはデータ量でかすぎで難しいんじゃ。。

どうせならjpgとかpngとかを扱ってほしかった気持ちもある。

第10回

ソートについて。バブルソート、選択ソート、挿入ソートの解説をC言語で行っているのだけれどいかんせん音声ではなにもわからなかった。悲しい。印刷教材ちゃんと読もう。

第11回

クイックソートと基数ソート。相変わらず音声なんでなんもわからん。これで終わりでは悲しいので、JavaScriptでクイックソートとバブルソートを実装して、速度比較するコードを作った。コード全文は以下。

//クイックソート
function qsort(arr, left, right){
    //範囲の真ん中の値をpivotに設定する
    var pivot = arr[Math.floor((left + right)/2)];
    //端っこをカーソルに入れる
    var cur_l = left;
    var cur_r = right;

    //pivotより小さい値を左側へ、大きい値を右側へ分割する
    while(true){
        //左側はpivotより小さければOKなのでカーソルを一つ右へ移動する
        while(arr[cur_l]<pivot){
            cur_l++;
        }
        //右側はpivotより大きければOKなので、カーソルを一つ左へ移動する
        while(pivot<arr[cur_r]){
            cur_r--;
        }
        //カーソルがぶつかったら、そこでグループ分けの処理を止める。
        if(cur_r <= cur_l){
            break;
        }

        //カーソルがぶつかっていない場合、pivotを挟んだ大小が間違っているので、交換する
        //交換後にカーソルは進める
        var tmp =arr[cur_l];
        arr[cur_l] =arr[cur_r];
        arr[cur_r] =tmp;
        cur_l++;
        cur_r--;
    }

    //左側に分割できるデータがある場合、再帰的に処理を繰り返す。
    if(left < cur_l-1){
        qsort(arr, left, cur_l-1);
    }
    //右側に分割できるデータがある場合、再帰的に処理を繰り返す。
    if(cur_r+1 < right){
        qsort(arr, cur_r+1, right);
    }
}

//バブルソート
function bsort(arr)
{
	for(var i=0; i<arr.length; i++)
	{
		for(var j=i; j<arr.length; j++)
		{
			if(arr[j] < arr[i])
			{
				var tmp = arr[j];
				arr[j] = arr[i];
				arr[i] = tmp;
			}
		}
	}
}

//ランダムな配列生成
function RandomArr(num)
{
	//値を順に入れる
    var arr = new Array(num);
	for(var i=0; i<num; i++)
	{
		arr[i] = i+1;
	}
	//Fisher-Yates shuffle
	var a = num;
	while (a) 
	{
    	var j = Math.floor( Math.random() * a );
    	var t = arr[--a];
    	arr[a] = arr[j];
    	arr[j] = t;
	}
	return arr;
}

//配列の個数
var ARR_NUM = 10000;

document.write(ARR_NUM + "個の配列のソート ");

//バブルソートを行い、時間計測
var arr = RandomArr(ARR_NUM);
var start = Date.now();

bsort(arr);

var end = Date.now();

var end = Date.now();

document.write("バブルソート:" + (end-start) + "ms ");

//クイックソートを行い、時間計測
arr = RandomArr(ARR_NUM);
start = Date.now();

qsort(arr, 0, ARR_NUM-1);

end = Date.now();

document.write("クイックソート:" + (end-start) + "ms ");

実行結果

↓↓↓↓

↑↑↑↑

私の環境(デスクトップPC Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz 3.41 GHz)だと、

10000個の配列のソート バブルソート:200ms クイックソート:3ms

となった。あなたの環境ではどう表示されますか。

第12回

メモリの話。ヒープ、スタックのほかに、グローバル変数、ローカル変数など、それぞれメモリ上の位置が決まっているということを学んだ。C#なんかでもメモリレイアウトを調べる方法はあるのかな。

情報学の話じゃないけど、mallocの読み方とか、「宗教的な話」って言い方を良くするけど、宗教も、それなりに根拠をもってみんなやってるはずなんで、ちょっと宗教に失礼ではないか。

第13回

連結リスト。おそらくCArrayとかstd::vector、C#のListのような可変配列を実現するためのアルゴリズムと思われるが、印刷教材なしではコードが頭に入ってこず全く不明。

C++みたいにオブジェクトをnewしまくれば結構簡単に実装できそう。あとはいかにパフォーマンスを上げるかが問題になると思う。シーケンシャルアクセスしかできないから、例えば配列の5000番目をくださいって言った時に大変。メモリ管理を完璧にしておかないと、破綻しそう。値による探索が簡単なのもこの形式の利点か。

第14回

連結リストの応用、スタックとキューの実装や双方向連結リスト、環状連結リストなどについて。スタック、キューは連結リスト使わないと、配列に制限ができちゃってどうしようもないね。固定長で大きなバッファを取るわけにもいかんし。環状連結リストってのはどういう場面で使うのかが気になる。理論としてはわかるが、実践として使う状況あるのか?双方向連結リストは、普通に思いついて自分で実装してたことがある。一般的な思想は、知っておくに越したことはないね。

第15回

最終回はscratchについて。ゲストの松下先生、山本先生の共著の親子向けscratchの本がある。買おうかな。

scratchは、なんといってもシンタックスエラーが出ないことが最高に良い所。アルゴリズムに集中できる。うちも上の子(4歳)がscratchを喜んでやっているので、とっつきやすいのもよい。かといって本格的なプログラミングができないわけではない。ちょっと慣れが必要だが、バブルソートだってできるらしい(!)。鈴木先生も2時間くらいでだいたい操作に慣れたそうだ。

放送大学全科目感想 008 計算の科学と手引き(’19)

  • 情報コース
  • テレビ科目
  • 辰己丈夫先生(放送大学教授)
  • 高岡詠子先生(上智大学教授)
  • 西田知博先生(大阪学院大学教授)
  • 村上祐子先生(立教大学特任教授)
  • 難易度 ★★★★☆
  • おすすめ度 ★★★★☆

4人の先生が交代で、計算機科学の基礎となる理論をかなり突っ込んで解説する、導入科目とは思えないほど高レベルの講義が展開される。15回で数、暗号、プログラミング、アルゴリズム、確率、符号化、論理演算、記号論理学、などなど幅広いテーマを詰め込みまくりで高密度な講義が目白押し、理解できれば達成度も高いが難しすぎるという学生も大勢いるだろう。特に村上先生のパートは難解で理解に時間がかかる。個人的には、高岡先生パートがおすすめ。聞き手の雨宮さんは京大卒のイケメンで、理解力が高すぎて学生が置いていかれることもしばしば。

第1回

コンピュータにおける数の表し方から。聞き手は雨宮さん(男性、珍しい)

数と数字の違い。数字は数を表す文字のことで、表し方が多様である。数は文字で表さなくても概念として存在している。例えば個数。碁石でもテキストでもなんでも表せるし、文字で表さなくても表現できる。

個数を数える時は「同じ」かどうかで判別する。同じかどうかは相対的なものである。赤と青のコップがあったら、コップ自体は別のもので1つずつだが、「コップ」でくくれば2つとなる。

数の定義。自然数はここでは0を含むらしい。太文字のN。整数はマイナスを含んで太字のZ(Zahl:独)で表す。有理数は太字のQ(quotient:英)。実数はR。無理数は実数の行き着く極限という考え方らしい。例えばπは3→31/10→314/100→3141/1000→…と極限に進んでいくから。無理数=比で表せない数のこと。

記数法とは。数字を使って数を表す方法で、文化によって違う。アラビア数字とか漢数字とか。私たちが使っている記数法を、位取り記数法という。アラビア数字を桁が上がるごとに左に追加していく記数法のこと。n進法は、n個の数字を使った位取り記数法と定義できる。十六進法は0x2C、十進法は0d44、八進法は0o134、二進法は0b101100などと書く。

いろんな記数法について。古代バビロニアの数字は10進法で0がない。ローマ数字はI(1), V(5), X(10), L(50), C(100), D(500), M(1000)を使う。444はCDXLIV。実例として昔の看板がでてきた。MDCCXLVIII(1000+500+200+40+8 = 1748年)。

そろばん。位取り記数法で10進法。十干十二支は位取り記数法ではない。十干と十二支を組み合わせて数字を表す(しらんかった!)なんと両方とも同時に動く。10と12だから組み合わせは10*6=60通りで、奇数ずれは存在しないから半分の組み合わせは使われてない。

命数法。大きな数を表すときに使う。万とか億とか。10の4乗ずつ進む。万進法ともいう。英語は千進法。なお、2進法で大きい数を使うときは、KiB(2の10乗=1,024)が単位となる。ギガはGiB=1,073,741,824、2の30乗なので一般的なギガより少し多い。

桁区切り。ドイツは千九百を1.900みたいに書くらしい。フランスだとスペース区切りで、1 900。

辰己先生は文字通り、数字に強い先生だな!

第2回

二進法やビットについて。宇宙人の指が14本だったら?14進数になるのではないか、という話から始まった。

固定長表記と可変長表記。固定長と言えば電話番号と郵便番号、ロッカーとか。0が付く固定長と、つかないもの(ナンバープレートとか)がある。なぜ固定するか。範囲を決めておくと便利なことが多いから。固定長でオーバーフローすると、桁あふれが発生する。桁あふれが発生すると、右側だけ見て計算したのと同じになる。昔のゲームのバグはだいたいこれを利用したものが多いですよね。アイテム無限増殖バグとか。あれは桁あふれもあるけど、メモリ破壊を使ってる気もする。

二進法を十進法に直すやりかた。ちょっと変わったやり方をしてる。2倍して1を加えたり加えなかったり、を繰り返してる。たしかにそれでもあり。十進法→二進法は、高校でもおなじみの2で割っていくやり方。2倍して1を加える…のやりかただと、なぜ2で割っていって余りを並べていけば2進法になるのか、がわかりやすい。なるほどなー。これ授業で使ってみよ。

百進法。[00] [24]みたいに2桁で1桁というように扱う。[99] + 1 = [01][00]。見た目は十進法っぽい。なんで先に百進法が出てきた?いうと二進法と十六進法の関係がまさにこれだから。

2C9(16)→[0010](2) [1100](2) [1001](2)→1011001001(2)

110100100(2)→[0001] [1010] [0100] → 1A4(16)

というわけ。

小数とは。10進法なら1桁動けば10倍だけど、2進法なら2倍。小数点以下3桁なら8で割ればいい。2進法を2倍していけば10進法に直せる。が、2倍していっても一生終わらない場合があって、これは循環小数になる。二進法の循環小数も有理数になる。これは証明も可能。ちょっと速いのでここはテキストでしっかり復習したい。

椿の目付字。江戸時代に2進法があったという話。これいったいどういう仕組みなの。。?すげー不思議。

指数対数の話。対数の例としてデシベルの話を、放送大学の音声担当さんに取材してる。

デシベルは絶対ではなく相対的な話。音声業界では、最高に出せる音を0dBFSと呼んでる。放送大の音声は、-20dBFS(0dBFSの10分の1)を基準にしている。騒音レベルは、可聴範囲の最小限を0dBとしてそこから上げていく。100dBが地下鉄、120dBがジェット機くらい。なぜデシベルか。対数にすると刻みがちょうどいい感じになるから。100倍とか1000倍とか言ってもよくわからんし。

デシベルは20上がると10倍、つまり10の0.05x乗倍だけど、マグニチュードは1上がると31のx乗倍。1上がって31倍。2上がれば31の二乗で1000倍。でかいですね。

第3回

今日から高岡先生。計算とは何か、という話。

四則演算の仕組みの話。13*18の計算を筆算するときは、13*8と13*10を足す。

68*62を暗算するときはどうする?十の位が等しい、一の位を足すと10になる場合は、まず60*70 = 4200を計算する。さらに、8*2=16を計算する。足して4216が答え。なんで?

→(x+a)(x+10-a) = x^2 + 10x + a(10-a) = x(x+10) + a(10-a) で、x=60, a=8とおいたものと等しいから。xの1乗の項の係数がちょうど10になるところがポイントだと思う。

47*67はどうするか。十の位が足して10、一の位が同じ。

→(10a+b){10(10-a) + b} = 100a(10-a) + 100b + b^2 = 100{a(10-a) + b} + b^2 で、a=4, b=7とすればいい。(4*6+7)*100 + 49 = 3149となる。今度は、前半が100でくくれるところがポイントかな。

次に一般的な問題。13*18。ちょっと複雑なので文字で表すのは無理だけど、長方形を切り取って貼り付けて・・・を繰り返すと、(10+8+3)*10 + 3*8 = 234 と計算できる(らしい)。

32*26。32 = 20 + 12、26 = 20 + 6と考える。すると32 * 26 = (20+12+6) * 20 + 12 * 6 = 760 + 72 = 832となる。工夫の問題。

次は割り算。621 / 45はいきなり計算したくないが、ここで公約数3を考える。207*3 / 15*3 = (207/15) * 3 = (13あまり12) * 3 → 13あまり36(=12*3) と考えればいい。

合同式。5≡8≡11(mod 3)とか。5≡8→5倍してもいい。25≡40となる。

(17*19*23) / 13の余りは、17, 19, 23を13で割って、余りを掛け算すればよい。4*6*10≡4*6*(-3) = -72 ≡ -72 + 13*6 = 6となる。13*6を足すとこが、勘が必要になりそうな気がする。

で、ここまでの話はどうコンピュータに関係してるのか。東大の喜連川(きつれがわ)教授の研究室を訪ねた。ビッグデータがメインの研究で、ナンバーワン(=競争が激しい)よりオンリーワン(=誰もやったことのない)の研究をすることをモットーとしてるらしい。具体的にはでかすぎるデータ。サイバー空間内のソシオシステムというのが対象らしい。サイバー空間が現実の射影と考え、現実がわかるかも?という信念に基づく。日本語のページを全部集めたりしているらしい。

日本の一級河川のデータをリアルタイムで集めたものを研究したりもしている。25ペタバイト(!!)のデータがある。豪雨のときのデータなども集めている。あと、データベースの非同期による命令(!?)の研究もしているらしい。順序実行原理というものを開発して、プロセッサの数を増やさないでも100倍~1000倍の実行速度になったらしい。本当に珍しい研究が多い。発想で勝負できる。

非順序型データベースエンジンの解説。従来型データベースは処理順序がプログラムで決定されている。これを非決定的にする。ストレージが返せる順番で順番にデータを返していく。すると単位時間あたりの処理量がとても多くできる。実際のデモも見せてもらった。HDD24台分の10億件のデータを抽出する。従来型だとハードディスクが暇な時間が多い。20分かかる。非順序型にすると、ハードディスクのランプがよく点滅する。10秒で終わった。すげーー-。

仮想機械の話。チューリングマシン。現在のコンピュータと全く同じらしい。マシン、ヘッド、テープから成る。ある状態→テープから記号を読み取る→書き込む→ヘッドを動かす→状態が変わる、ということを繰り返す。これがコンピュータの基礎になる。トレースしないとよくわからん。要復習

第4回

誤り訂正、暗号化法など。

まずはパリティビットの考え方。最終列、最終行に偶数or奇数を決めておいてチェック用のビットを置く。するとエラーが発生しているかどうかわかるし、1ビットの誤りなら訂正できる。そういえばPCが「パリティエラー」ってエラー出してビープ音が鳴って起動できなくなったことがあったなあ。あれはメモリかHDDのデータが壊れてたんだな。

チェックサムも同じ仕組み。これはISBNコードでの例。

①チェックサム以外の奇数桁の和をとる。

②偶数桁は3倍して足す。

③①②の和の下一桁をとる。

④10-③とチェックサムが等しいかチェックする

ISBNコード以外のチェックサムは多分違う仕組みだろう。放送大のIDの最終桁チェックサムなんじゃない?商品のバーコードもそうだよね。

暗号。まずはシーザーの暗号から。アルファベットをずらす。ずらす文字数が暗号鍵といえる。共通鍵暗号方式である。鍵を第三者に知らせずに送信するのが難しいのが問題。

これを解決したのが公開鍵暗号方式。暗号化を公開鍵で行い、秘密鍵で復号する。秘密鍵を送らなくていいので安全だが計算量が多い。また、電子署名はこの逆で、秘密鍵で暗号化し、公開鍵で復号する。実は今までここら辺の関係を散々聞いてたのに全然わかってなかったのだけど、意味わかったので助かりました。

クレカの暗号化の仕組み(SSL)。SSLはハイブリット方式といい、共通鍵と公開鍵を両方使う。通信データの暗号化には共通鍵を用い、共通鍵を暗号化するのに公開鍵を使う。

具体的には、

①クライアントからSSLを要求

②サーバ→クライアントに公開鍵を送信

③クライアントは共通鍵を生成し、サーバの公開鍵で暗号化

④サーバはクライアントにもらった暗号化された共通鍵を、サーバーの秘密鍵で復号(鍵はデータ量少ないから復号が速い)

⑤これで共通鍵が両者に渡ったので、安心してクライアント⇔サーバ間で共通鍵で暗号化したデータを受け渡しする

ってわけか!よくわかった!

電子署名。本人証明と非改竄証明の両方の機能がある。本人証明には、なりすまし防止のため、PKIという仕組みがある。鍵の有効性を第三者に認証してもらうことで信頼性を高めている。非改竄証明については、平文→一定の手法で要約→秘密鍵で暗号化→受け手側が公開鍵で不幸語か→受け手が行った平文の要約と一致しているか確かめる、というやり方。ここでは要約って言ってるけど、たぶんハッシュ関数のことだろうな。説明しづらいから要約って言ってるだけで。

RSA暗号について。素因数分解を使うということまでは知ってたけどちゃんと解説してもらえるらしい。短時間でできるのか?

まず素数の説明。2と自分以外では割れない数。次に余りの話。合同とはnで割った余りが等しいこと。a≡b(mod n)のように書く。

RSA本体の説明。まず暗号化プロセスでは、平文をe回掛け算する。そしてnで割る。これを暗号化鍵(e, n)と呼ぶ。

復号プロセスでは、暗号文をd回掛け算して、nで割る。すると平文に戻る(!?)。これを秘密鍵dと呼ぶ。

このようなことが可能である正の整数e,d,nの組み合わせを作るのが難しいところが、RSA暗号のキモということになる。

前提として、平文をe乗して、さらにd乗すると、元の平文に戻るという仮定があるらしい。なんでed乗すると元に戻るのかは謎で、よくわからんかった。(→余りの話をしているから大丈夫と後でわかった)

さらに、割り算に使うnは、素数pとq(どっちも大きめ)の積ということにしておくと、edは(p-1)(q-1)で割った余りが1になるように選べばいいらしい(なんでじゃ!?→直観的には、余りを1にすれば、何度も掛け算していった後に最後の1乗が効いて、元の文が復元するからだと思う。要数学的証明→やりました https://t.co/v7J1KjcyG7 こっちも参照→RSA暗号の正しさを徹底的に証明する – Qiita)。

実例。

平文M=4とする。鍵に使う素数p=3, q=7とすればn=21、(p-1)(q-1)=2*6=12と互いに素になるように(なぜ!?→互いに素にしないと、edを12で割った余りが1にならないから)eを選ぶ。とりあえずe=5にする。

暗号化。M=4の5乗で、4*4*4*4*4 = 16*16*4 ≡ (-5) * (-5) * 4 = 100 ≡ 16(mod 21)。暗号文C=16になった。

次は、β=edの候補。 (p-1)(q-1) = 12で割った余りが1になる数は、13,25,37,…だけど、e=5にしたから、d=5(β=25)か17(β=85)にしないといけない。とりあえずd=5にする。

では復号化する。d=5にしたから、また5回かけてn=21で割る。16*16*16*16*16 = 32*32*32*32 ≡ 11*11*11*11 = 121*121 ≡ 16*16 ≡ (-5)*(-5) = 25 ≡ 4 (!!!) と、元に戻った。

公開鍵のnは公開しておいてもよいが、pとqが分からなければ破れない。つまり、素因数分解しづらいnを選んでおけばいいというわけ。nが100桁でも現代コンピュータでは結構難しいらしい。実際は300~1000桁のものが使用されているらしい。1桁上がるだけでめっちゃ破りにくいらしい。

やっとRSA暗号の仕組みがわかった!しかもほんの30分くらいで!先生ありがとう!

村上先生にチューリングのエニグマについて聞く。2014年イミテーションゲームという映画の暗号解読の話。ナチスドイツの暗号はエニグマというしくみで計算されていた。チューリングが作った自販機くらいの大きさの機械が出てきた。なんでこれで暗号復号ができるんだ!?こいつをつかってイギリスがナチスドイツの暗号を破って勝利したらしい。もっと暗号の度合いが高いローレンツ暗号器もイギリスがコロッサスという解読器で破ったらしい。でっかいテープを読み取る装置が出てきた。0.6秒に1クロックという速さだったらしい。当時、コンピュータは人間コンピュータを意味し、女性の仕事だったらしい。そういえばこの科目の教授、2人も女性がいる。中谷先生もいるし情報系は女性に相性がいいように見える。でも日本だと情報科学は男性ばっかに見える。何かおかしいのではないか。私も以前は情報科学は男性向きだと思っていたが、どうもそうではないらしい。

第5回

画像と音声のデジタル化の話。今日も高岡先生。

まず音の話。振幅と周波数、周期の説明から。雨宮さんよくわかってる人っぽいけど、調べたら京大院卒、日本科学未来館のコミュニケーターさんだったよ。

雨宮 崇 TAKASHI AMEMIYA | ブルーバックス (ismedia.jp)

さて音の波が0-1に変わるまではどうするのか。標本化→量子化→符号化をする。標本化とはデータを一定間隔で区切ること。よく言われるサンプリング周波数(44.1kHzとか)ってのは1秒間の標本化の数のこと。可聴周波数の2倍のサンプリング周波数が必要なのはなぜか。ナイキスト、クロードシャノン、等が「標本化定理」として証明したらしいから難しい話っぽい。要調査。それにしても予想を超えていつも一気に難しい話になるなあ。楽しいけど。

ハイレゾにはどんな意味があるか。聞こえない高周波、100kHzとかは脳によいと言われている。ハイパーソニックエフェクトやん。ここでも紹介されてる。

量子化は標本化した波形を離散的な整数の値に変換すること。ビット数が多ければ元の波形に近づく。音楽CDは16ビット=65536段階。ハイレゾは24ビット=1670万段階。ビットが変わると臨場感も変わるんだって。

最後に符号化。標本化と量子化で得られた数値を2進数で表すこと。2進数はビットの窪みで表せる。CDの量子化の掛け算を実際に行う。10分は16ビット=2バイト*44100Hz*10分(600秒) = 50MB。70分で350MB。ステレオなら2倍で700MBになる)。たしかにこんなくらいだね。

次は画像。標本化は画像データを区切ることになる。解像度とは画像をどのくらい細かく区切るかということになる。量子化は1つのピクセルをどのように表現するかという問題になり、量子化ビット数は色の数に対応する。モノクロなら2色、RGBならまあ24ビット640*480(古いな!)の生データは24*640*480=1MBになる。いわゆるフルカラーは24ビット1677万色だが、48ビットにすると281兆色(!)になるらしい。

次は社会の情報の可視化。喜連川研究室の取材が出てきた。ソーシャルメディアの可視化の話。ってtwitterじゃん。震災の際の情報の広がりを見た。阪神大震災に関連付けたある1つの避難情報(ガスの元栓を閉めろ!みたいな)をRTしていく様子が、まるで蜘蛛の巣っていうか花火みたいに広がっていく様子が可視化されている。もう少し縮小すると、微生物の繁殖みたいにコロニーがいくつかできている。コロニーはだいたい有名な人がリツイートすることでできるみたい。こういうノードのつながりみたいな可視化ツールってどうやって作るんだろうな。やったら楽しいじゃん。twitterはAPIも公開されてるし、作るの楽なのかもなー。リアルタイムで見ることができるとめっちゃ面白い。社会全体の動きを知ることができる。教授やマーケティングで実際にもう利用されてるらしい。

プリンタの話。モニタとプリンタと色の表現方法が違う。モニタは加法混色という。混ぜると明るくなる。RGB方式。印刷は減法混色。混ぜると黒くなる。CMYK方式。変換については印刷教材について書いてあるらしい。楽しみ。

ビットマップとベクタの差異について。ベクタは図形の点、線、面を数値で表したものなので拡大縮小には強いが、複雑な色情報を持つのが難しい。ビットマップ→ベクタの変換はまず無理らしい。

アナ→デジ変換について。実際に変換する(!?)。紙を縦に四等分して切ってる。2人ともA~Dと名前を付けて、Eiko, 雨宮と書いた(洗練されたYouTube動画なら、ここは5倍速再生してるところだ!)。先生がAに点を打って、雨宮さんが目視でBに同じ場所に点を打った。雨宮さんがAに点を打ち、先生がBに目視で点を打った。

次はAの紙を半分に折って、点が左にあれば0、右にあれば1と書く。以後繰り返して01を書いていき、線の上に点が乗ったら1と書いて終わり。実はこれで、紙の左側からどのくらいに点を打ったかが分かる。先生のAでこれを行うと、011となった。これは0.011 = 3/8ということになる。これは、点の位置のデジタル化に相当する。雨宮さんのAは0.111→7/8になった。

次にCにAで計算した値を書いて相手に渡す(デジタル信号の伝送)。さらにCを書かれた01に従って折っていき、点を書く(デジアナ変換)。次にAを交換するとA、B、Cを比較できる。AとCはデジタル変換なのでほぼあってるが、Bは目視(アナログ→アナログ伝送)なのでだいたいずれてる。という面白い実験でした。紙を使ってもデジタル伝送ってできるんだね!!

第6回

題名が「おはなしコンピュータ」!?今回から西田先生が4回担当する。関西弁だ。コンピュータがどうやって計算していくのかという話らしい。

まず温度計のようなPCを用意した(超ミニwinPC?)。温度センサーというinputをコンピュータが処理して、液晶outputに最高気温を出力する装置。

変数の説明から。変数委は名前と値が必要。アドレスと名前が紐づけられている。次は情報処理技術者試験でおなじみの疑似コードでif文、代入の説明。まずmaxにセンサーの気温を代入(ちゃんと初期化してた。)次はtempにセンサーからの気温を代入し、temp > maxならmaxを更新する。これを1分ごとに行えばOK。一日分なら1440回ループすればよし。

さっきのミニPCを図解してる。入力装置、出力装置に加えて、記憶装置、制御装置、演算装置で構成される。CPUにちゃんとヒートシンクついてる。記憶装置は主記憶装置(メモリ)と補助記憶装置(HDD、SSD、USBメモリ等)に分類できる。そういえばCD-ROMやDVD-ROMってもう下火だよね。みんなダウンロードになっちゃった。出現したときは革命だったのにもう割に合わなくなってしまった。

CPUとメモリの関係。CPUはレジスタ、ALU(算術論理演算装置)、特殊なレジスタ(プログラムカウンタ、命令カウンタ、メモリアドレスレジスタ)で構成される。レジスタはCPU内のメモリみたいなもん。プログラムカウンタコンピュータが次に実行する命令のメモリのアドレスを示すレジスタのこと。命令レジスタ、メモリアドレスレジスタは命令の保存、データの位置を保存するレジスタ。

アセンブリの疑似言語を使ってCPUの動きを見る。アドレスにloopやらloopendのようなラベルを付けて、番地と紐づけておいて命令で使う。命令は例えば「count(0016番地)の値が0以下ならばloopend(0013番地)に行く」のように書かれる。昔のBASICみたいだね。「1分待機」みたいな命令もあるけどこれ実際はアセンブリでどうやって実装されてるんだろうな。

実際のプログラム言語の説明。プログラムはあいまいさがなく実行できるような形式で記述する必要がある。雨宮さんも触ったことあるって(すごいレベルだと思う)。聞き手として優秀だなあ。

アセンブリ言語は低水準言語、CとかPythonとかは高水準言語。今回はPythonを使うらしい。Pythonはインタプリタ言語。実行するまでエラーがあるかどうかわからないからちょっと恐怖だよね。

Pythonはオランダ人グイド・ヴァンロッサムって人が作ったらしい。オランダ発なんだ。簡単(大事)、インタプリタ、動的型付け、ライブラリが多い(大事)ってことが特徴。

macのPython3.7.0 Shellを使ってる。5 + 4 – 2と書くと7と返ってきた。print(5*4/2)と書くと10.0となった。/2があるから小数になるらしい。print(10/3)は3.33333333333335になる。print(int(10/3))は3、print(10%3)は1になる(余り)。

m = "おはよう"
a= "こんにちは"
import datetime
datetime.datetime.now().hour →12 (12時なのか)
if datetime.datetime.now() hour < 12:
    print m
else
    print a
→"こんにちは"

こんなの作ってた。

第7回

本格的にプログラムを作るらしい。制御構造と計算の手順の話。

制御構造は順次構造、分岐構造と反復構造がある。順次構造はA→B→Cみたいなやつ。当たり前だけどこれがないと確かに進まないね。あとはifとfor。構造化定理:すべての計算手順は全部3つの構造で記述できる(そうなんだ!?)。たしかにこれ以外の構造ないかも。

計算の順序について。3 + 5 * 8は、3+5からか、5*8からか。私たちは5*8からやる。四則演算には優先順位があるから。優先順位が同じなら左から計算する。プログラム言語内でもいろいろ優先順位がある。

分岐構造。pythonなら

t = int(input("最高気温を入力してください:"))
if t >= 25:
    print("夏日です")
else
    print("暑くありません")

みたいな書き方をする。先生pythonのShellつかうのはやい。

反復。whileが例。

a=0
i=1
while i<=10:
    print(str(i) + "を加算")
    a=a+i
    i=i+1
print("計算結果:" + str(a))

のように書く。forなら

a=0
for i in range(1, 11):
    print(str(i) + "を加算")
    a = a + i
print("計算結果:" + str(a))

のように書く。pythonの仕様上、range(1, 11)は1~10の配列を作るといった意味になる。zero based indexなのだろう。range(2, 11, 2) にすると、2,4,6,8,10の配列ができる。3つめの数字がstepを表すということだろう。応用すれば、nまでの和(rangeを1,n-1にする)とか階乗(rangeをn,0,-1にする)を求めることができる。

三角形の面積を求めるプログラム。底辺*高さ/2にすればよくない?input使って入力させてる(コードは略)。float使えば実数になるのね。pythonのfloat型って何バイト型なんだろ?

ヘロンの公式つかう場合。import mathとmath.sqrt関数を使う必要がある。で、三角不等式を満たさないといけないので、if a<b+c and b<c+a and c<a+b で括ってあげてる。まじめだなあ。でも三角不等式満たさないと面積が虚数になったりするから仕方ないか。

FizzBuzzゲーム。3の倍数ならFizzと言う。5の倍数ならBuzzという。15の倍数ならFizzBuzzという。これがプログラム志願者の適性を見分ける問題として知られるらしい。

あ、アレクサ出てきた!アレクサでもできるのか!!!

アレクサと雨宮さんが対決している!!負けた

コード的にはこんな感じ

for i in range(1,101):
    if i%3 == 0:
        print("Fizz")
    elif i%5 == 0:
        print("Buzz")
    elif i%15 == 0:
        print("FizzBuzz")
    else:
        print(i)

これは間違い。15の倍数の時にFizzになってしまう。正しくは15の倍数かどうかを先に判定する。

for i in range(1,101):
    if i%15 == 0:
        print("FizzBuzz")
    elif i%3 == 0:
        print("Fizz")
    elif i%5 == 0:
        print("Buzz")
    else:
        print(i)

私なら上のように書いちゃうけど、面白い別解もある

for i in range(1,101):
    if i%3 == 0:
        print("Fizz", end="") #改行しない
    if i%5 == 0:
        print("Buzz", end="") #改行しない
    if i%3 != 0 and i%5 != 0:
        print("FizzBuzz")
    else:
        print(””) #いらないんじゃね?と思ったけどここは改行のため入れてる

あー言われてみればなるほどだわ。さらに、割り算を使わない別解

n3 = 3
n5 = 5
for i in range(1,101):
    fizz = ""
    buzz = ""
    if i == n3:
        fizz = "Fizz"
        n3 = n3 + 3 #次の3の倍数を指す
    if i == n5:
        buzz = "Buzz"
        n5 = n5 + 5 #次の5の倍数を指す
    if fizz == buzz:
        print(i) #3の倍数でも5の倍数でもないから数字を出力
    else:
        print(fizz + buzz)

これは思いつかないわ!!

第8回

アルゴリズムについて。

いきなりプログラムを書くと失敗するので、まずアルゴリズムを書くのがよいという話。そーだよね。

アルゴリズムの定義。問題の解き方の手順を明確に示したもの。フローチャートみたいなやつでもいいし、表現方法は何でもいいが、あいまいさがないようにすること。

アルゴリズムが充たすべき性質。健全性:正しい答えが出ること。停止性:有限回で終わること。両方を満たすと完全性があるという。絶対これが充たされるとは限らないので、近似的にこれを満たすような近似アルゴリズムという考え方もある。特に統計的な話だと健全性を満たすのは難しいよね。

ユークリッドのアルゴリズム(最古のアルゴリズム)。

aとbが等しくない間、以下を繰り返す
    aがbより大きければ、
        a = a - b
    そうでなければ
        b = b - a
最大公約数としてaの値を表示

36と24の最大公約数なら、a=36, b=24→a=12, b=24→a=12, b=12で12

11と30の最大公約数なら、a=11, b=30→a=11, b=19→a=11, b=8→a=3, b=8→…→a=1, b=1で互いに素

なるほどねー。で、これはなぜ正しいのか!!??

引き算を割り算で置き換えられる。引き算しているのを割り算の余りにすれば次のようになる。

a≧bを仮定する
bが0でない間、以下を繰り返す
    aをbで割った余りを新しいbとする
    元のbを新しいaとする
最大公約数としてaの値を表示する

これでユークリッドの互除法になった。計算は同じ。引き算って割り算の余りなんだな!

アルゴリズムの手間の話。ユークリッドの互除法は数回で済む。n^2とかの話かな?と思ったけど途中で終わった

おかあさんといっしょのアニメが出てきた。正方形の迷路の数え方。1*1なら2通り、2*2で12通り。3*3で182通り。4*4で8512通り(!)。ではどういうアルゴリズムを使えばいいか。二分木を作るとよい。道にA, B, C…と名前を付けて、二分木を作っていく。ところが真面目に二分木を作ると2*2でも8190本の二分木ができてしまうので、いろんな工夫によって37本まで減らすことができる(具体的にどうやるんだ!?)4*4でも2兆。16*16で不可思議とか使っても全然表せない天文学的どころでもない数字になる。これがAIのとこでよく言ってた計算爆発ってやつか。グラフ処理はpythonだとGraphillionというツールでできるらしい。

大根のいちょう切りのアルゴリズム。40片のいちょう型が欲しい。使える操作は輪切り+十字切りのみ。

①輪切り*9+十字*20 →29カット

②十字*2→半円柱の輪切り*9 *2→20カット(①より早い)

②で円柱のままやれば11回だが無理。なので②が妥当。アルゴリズムは、現実的実施可能性も大事になる。

次は金種計算の話。お釣りをどういう紙幣・硬貨で払うか。なるべく硬貨が少なくなるようにしたい。

高額の硬貨から順に支払えるだけの枚数を支払う→枚数最小、過不足もない。これを貪欲法という。問題を分割し、それぞれ最も好ましい解を選ぶ方法。今回は大丈夫だけど、毎回妥当とは限らない。

500で割って余りをとる、100で割って余りをとる、50で割って余りをとる→同じ処理じゃない?そこでpythonではリストを使って、処理をひとまとめにする。[500,100,50,10,5,1]で割って余りをとっていけばいい。

Kinshu = [500,100,50,10,5,1]
kingaku = int(input("金額を入力してください:"))
for k in Kinshu:
    n = int(kingaku/k)
    if n > 0:
        print(str(k) + "円玉×" + str(n))
        kingaku = kingaku - k*n

7行でできた!

逆に財布から小銭を支払う場合は、自分の持っている硬貨の枚数を最大値として保持していないといけない。枚数を配列に保持し、入れ子型の配列にすればいい。KTabke = [[500,1], [100, 2], [50, 3], [10,12], [5,4], [1,10]]みたいに財布の中身を表現すればよし。コードはちょっと長いので略します。要は枚数の最大値まで払うっていうif文を入れるだけでいいんだけれども。

こういう形でアルゴリズムを紹介するってことは、プログラムってのは数学的にはアルゴリズムの写像って考えていいのかな?

第9回

アルゴリズムと能率について。問題を解くときにかかる時間の話をしてくれるらしい。計算量とその評価がメイン。

計算は使う資源が少ないほど効率が良い。資源には時間、空間(メモリ)がある。最大公約数を求めるプログラムをforループで総当たり(2~最小値まで公約数かどうか判定)で実現すると、例えば10179と24360の最大公約数を求めると20356回も割り算をすることになる。ユークリッドの互除法なら6回。ここには大きな差がある。つまりアルゴリズムには良し悪しがある。

どうやって評価するか。時間だけで評価してもいいが環境に左右されてしまう。なので主要な処理が何回行われるかを調べればいい。さっきの話なら前者は2(n-1)回(常に)、後者なら5log10n以下(ラメの定理?より)になる。logが出てくると一気に強くなるね。しかも以下なのでもっと少ないかも。計算量は2のn乗が一番大変で、logが出てくるとすごく小さくなる。

漸近的評価。nが非常に大きい時だけを考えればいいから、主要な項だけ考えればいいし、2もいらない。2(n-1)はnと考えてしまえばいい。2nの2だってコンピュータが発展すればすぐ覆いつくされるので。。と先生は言ったが確かにそのとおりだ。で、これをオーダといってO(n)などと表す。オーダの定義は、カッコの中の値で割ってnを無限大に飛ばせば定数になる、ということ。

さてnの10000000万乗と2のn乗は、2のn乗の方が速い。ここでまた前回のおかあさんといっしょのVTRに飛んだ。高校数学でよくある迷路の問題って、最短経路だから場合の数はたいしたことないけど、最短ではない経路も含めると本当にやばい数が出てくる。数えるのも大変。例えば5*5の迷路は126万通り。6*6は5.7億通り。7*7は7893億通り。8*8。3266兆通り。2のn乗のオーダで増えるとこんなに大変なことになる。

京大の湊先生。アルゴリズムは目に見えないので、目に見えるようにいろんな展示を作る努力をしていらっしゃる。さっきのおかあさんといっしょのビデオも京大のグループで作ったらしい!

年月日から曜日を計算するアルゴリズムについて。西暦1年1月1日以降の任意の年月日を計算する。

普通は1年で1つ曜日がずれるが、閏年は2つずれる。曜日を数字で表し(0が日曜とか)、1年1月1日の曜日に毎年ずれる日数を加えて7で割ればOKじゃない?これを基準日から計算するアルゴリズムという。

これを実現すると、forループが2個できる。1個目は年ごとのずれの判定、2個目が今日を表す月の日数を足していくループ。1個目のループは年nの繰り返し。2個目は最大11回なので定数。計算量はO(n)となる。

ツェラーの公式で計算する。年+閏年のずれ(切り捨て)+月のずれ(切り捨て)+日数を7で割る。月のずれの所がこの公式のすごいとこで、(13m+8)/5で計算すればいいらしい。7で割ると、前の月までの日数を7で割った値と同じになる。上手に調整した感じの数。こういうのを見つけるのが数学マニアってやつですよね。これはオーダがO(1)で計算できてしまう。はやい。

探索処理。ランダムに並んだ15枚のカードから指定した数を選ぶ。普通は前から総当たりで攻めていくしかない。これを線形探索という。最悪n回で平均はn/2回。オーダはO(n)になる。

順番に並んでいるデータを探索する方法。2分探索法が有名。真ん中のデータを調べ、大小を比較してから次に探索する範囲を半分にする。私も、どのソースコードの変更で不具合が起きたか、履歴を総当たりで調べなければならない時によく使う。オーダーはO(log2n)となる。n=100000でも最悪17回で探せる。はやい。雨宮さんは2分探索知ってるみたいだった。

第10回

いろんなアルゴリズム、特にソートについて。辰己先生に戻ってきた。

探索の計算量について。2分探索の計算量はなぜlognになるのか。これは漸化式で求められる。つまりk回の操作でak個の数が判断できるなら、a1=1, ak+1 = 2ak + 1を解けばいいってわけ。これを解くと(中略)ak = 2k-1なので、n = 2k-1とすると、逆算してk = log2(n+1)となる。なるほど!!

先生、放送大学図書館に来た(行ってみたい!)。本の探し方、並べ方について聞きに来た。The art of computer programmingを調べたい。司書の人異様にタイピングとPC操作速い。番号が出たのですぐ見つかった。もし本がばらばらに並んでいたら、全探索するしかない(詰む)。

ソートとは。ある関係に従ってデータを並べる作業のこと。「ある関係」は任意のものである。整列されているデータ、されていないデータで大きく使い勝手が異なる。コンピュータは大小関係しか判断できない(これがコンピュータの頭悪い所だと思う)ので、大小関係を何度も判定して全体を並べるアルゴリズムが必要になる。

まずバブルソートから。隣り合う2枚を総当たりで全部比較する方法。一度全部比較したら最大値だけ取り除いてやり直し。計算量はO(n2)で、まあまあでかいオーダ。実務でもC++だとコード書くのが面倒なときに使ったことがある。

選択ソート。まず左端の値を決めたいから、最小値を選んで一番左に置く。次に最小から2番目の値を選ぶ。。。と繰り返すが実質バブルソートと同じで、オーダもO(n2)。

挿入ソート。整列済みの配列に挿入していく。まず1枚の場合は何もしなくていい。2枚目は前か後ろにつける。3枚目は適切な位置に挿入する。。。を繰り返す。手間がかかる場合(降順に並んでたら大変)とかからない場合(最初から整列済みならなにもしない)がある。オーダは最小O(n)~最大O(n2)。

マージソート。整列されてないリストを2つに分割してから、整列して、マージ。これどういうメリットがあるんだ?分割は再帰的にできるので、まず全体を全部2つずつに分割。それぞれ大小比較して整列する。次にマージして4つにする。8つにする。以下繰り返し。人間がやると大変だが、計算量はnlognになるのでだいぶ小さい。なぜnlognになるかというと、やはり漸化式(証明はちょっと長いので略)。

最後にクイックソート。リストにおいてある値を軸として分割を繰り返して整列させる(!??)。なんのこっちゃ。

とりあえず1つ軸を選ぶ。1~15のカードで8を軸とする。次に8より小さいシリーズ、大きいシリーズに分ける。小さいシリーズの中でまた軸を決め、大小に振り分ける。振り分けたとこのサイズが1~2だったらそこで大小比較して、軸の左と右に置く。これで軸を含む要素がソートされた。で、しかもソート済みの要素はこれ以上マージする必要もなく結合するだけでいいから、結構はやい。計算量は印刷教材を見よだって。いったいいくつなんだ。

n2とnlognの計算量はどのくらい違うか。n=10で後者は1/3の計算量で済む。n=100だとどのくらいなの?

組み合わせ爆発の話。正方形の迷路の道順を真面目にスパコンで計算すると9*9は6年半、11*11は290億年かかるらしい。雨宮さんによるとこの間の話が面白いらしい。で、動画に戻る。なかなか強烈な動画なので皆さんにも見てほしい。っていうかこの動画、科学技術館のやつだし雨宮さんのチームが作ったんじゃ、、

オチが。。。悲しいです。。。

最後に無限の猿定理の話。サルが適当にキーボードをたたくと偶然シェークスピアの小説が出てくるかもしれない?か?実際計算した人もいるらしい。これも組み合わせ爆発の話で、2-3文字なら簡単に出てくるが、数十文字になると無理になってきて、結局、シェークスピアの小説のごく一部分が出てくるだけでも数百億年以上かかるらしい。公開鍵暗号もいっしょ。適当な数字を並べていけばいつかは当たるが、まず当たらない。

第11回

集合と確率の話。

外延的な記法と内包的な記法について。列挙するのが外延的 {1,3,5}とか、定義を書くのが内包的 {x|x≧1}とか。

集合が同じとは、ある要素がすべて別の集合の要素である、逆も成り立つ、ということをいう。大学受験でたまに使う論証だ。なお、この定義だと同じ要素が複数入ってることは考慮されない。

命題の真偽で定義する積集合と和集合の話。ベン図で書ける奴やつ。補集合と全体集合も出てきた。補集合を考えるためには、必ず全体集合が何なのかを考えなければいけない。

中国人剰余定理。「aとbの最大公約数が1のとき、ax+by=1を満たす整数x,yが必ず存在する」

例えば11x – 7y = 1→x=2, y=3。21x-7y=1→解なし。じゃあこれを一般的にどうやって説明するか。

a=11, b=7とすると、11k-1を7で割った余りは、k=0,1,2,3,4,5,6に対して6,3,0,4,1,5,2となる(重ならない)。これはどのような互いに素なaとbについても成り立つ(余りが等しいと仮定すると、引き算した時bで割り切れてしまうから、矛盾を導ける)。つまり全体として集合が一致している。で、必ず余りが0になるところがあるから解があるという論理の流れになるらしい。

フェルマーの小定理。「pを素数とする。aがpで割り切れないとき、ap-1はpで割り切れる」

実例。a=2, p=13として、2の12乗は4096で、(4096-1) / 13 = 315余り0となる。適当な数字が素数かどうか判定できるテストの第1段階として使える。

証明の概略。途中までは中国人剰余定理と同じで、pで割った余りの集合が1~pになるねって話。そのあとが難しい(略、印刷教材見よ)。二人ともほ~そうなんだ~って感じでスイスイ進んでいくけど私全然わかんないです。大事なのは集合が使われているって話です。

この定理、どこで役に立つか。公開鍵暗号でこの定理がないと先に進めない。ので暗号で役に立つ(以前私も証明に使いました)。

確率の定義。「その自称がまだ起こっていない状態で、起こりえる可能性があるかを数値的に表現したもの」。確かに起こってない!!打率みたいにすでに起きたことは「記述統計」という。確率とは違う。

事象→起こっているか起こっていないかをはっきりと判定できること(確かにはっきり判定できないとダメだ!)

確率変数→とりうる値の集合(確かに!?)

5回に1回傘を忘れるAさんがA, B, Cの教室で授業を受け、傘を忘れた。それぞれの教室に忘れた確率を求めよ。

考え方の例:125本傘を持ってきたと仮定→Aに25本忘れる、Bに20本忘れる、Cに16本忘れる。忘れた本数は61本だから25/61, 20/61, 16/61。これは思いつかないっす。。いきなり難しい例です。

さらに難しい例。モンティ・ホール問題。宝物を当てるゲーム。3つの箱から宝物を選ぶ確率で、どういう戦略をとるのが賢いか考える話。ちょっと言葉で説明するのが難しいのでこれも印刷教材見よう。

モンテカルロ法。あーこれ昨日アルゴリズムとプログラミングの講義でやったやつや。この授業では視覚的にやってる。米を円を書いた紙の上に均等にばらけさせてから、円周の中と外の米粒の数を数えることで円周率を計算するってわけ。143個と491個になった。合計634個で、理論的には全体と円の面積の比が1 : π/4だから、π = 4 * 491 / 634となるはず。3.0977なのでまあまあいい値になった!!

単純な計算方法が見つかってない場合はいまでもモンテカルロ法を使ってる。囲碁のAIとか(そうなの!!??)。ランダムに試合をすると勝つ・負けるが確定するから、勝つように学習を重ねていけばいい。1秒で1局できれば1日で何十万局もできるじゃんってわけ。なんかわくわくしてきたぞ。音楽とか絵とかはどうすればいいんだ?→人間が評価していくしかないって話になった。でも、一定の評価方法が確立していれば音楽でもできるのでは。。?これは研究に使えそうな気がするぞ。論文いっぱいできてるだろうし調べてみよう!

第12回

高岡先生だ!データと計算量について。特に量についての話になるらしい。

情報とは何か。シャノンの情報理論だ。はい-いいえの質問に答えると1ビット使う。8個の選択をするためには3ビット。2のn乗をの選択肢の中から1つの情報を伝えるにはnビット必要。ただし、全部等確率という仮定が必要。じゃあ等確率でない場合も考えないといけない。

ある事象が起こる確率をP(X)、情報量をH(X)とすれば、H(X) = log21/p(X) = -log2P(X)と定義できる。例えば確率1/8ならH(X) = 3ビットになる。つまり確率が低ければ情報量が大きくなる。確率が低ければ受け取った価値が大きいということになる。例えば宝くじが当たることを誰かが教えてくれれば、その情報は価値が高い。

情報源の話。なんか歯ブラシいっぱい出てきた。4つ+4つの歯ブラシと、8本異なる歯ブラシ。平均情報量は、個々の情報量*確率を足したものと定義できる。前者は確率1/2で4本ずつなので、1ビット*1/2 が2種類、足して1ビット。後者は3ビット*1/8 * 8 = 3ビット。まあ確率が全部同じだからそうか。平均情報量(≒情報エントロピー?)は、ネットワークの通信速度などで使われるらしい。エントロピーが高い→知らないことが多い、エントロピーが低い→知っていることが多い、ということ。情報の圧縮(エントロピーが低いと圧縮しやすいのかな)とかAIとかでも使うらしい。

東大の豊田先生の研究室へ。ドラレコのデータをビックデータにして研究してる。事故が起きた場所と運転状況を掛け合わせる(かける!?)といろんなことが見えてくるらしい。事故が起きる場所はパターンがあり、まだ起こっていないとしても、事故が起きやすい場所もわかってくる。すると事故の起きにくい場所をナビするということができる。

次の話。道の凸凹をスキャンするシステムを作った。業務用車両にセンサーを付けてもらって情報をとってきたらしい。地図で可視化すると道の状態が悪いところがよくわかるので、自治体がどこを優先に直していいかがわかる。経時的情報もあるから、道の補修履歴もわかる。ズームするだけで詳細な情報が出てくるからめっちゃわかりやすい。すげ。

次も東大の生駒先生の気象データについての話。いろんな気象データを統合するためのシステムを開発してるらしい。理系らしい、めっちゃ見づらいスライドや。しかも速い。とりあえず気象データが発展して詳細になったことがわかった。DIASというシステムで基本的なデータベースやネットワークを提供し、使いたい人がアプリを作ってDIASにアクセスしてデータを持ってくる基盤を作った、ということもわかった。基盤作るのって大変だよね。だれでも使えるような仕様策定がめっちゃ大変そうだし障害も頻繁に起きそう。

雨宮さんが突然01100011みたいな暗号を出した。それから暗号解読表も出してきた。ところが解放が一意に安定しないという欠点が見つかった。これを一意復号ではないというそうだ。また、順次に復号できていって、最初からやり直しにならないことが保障されていることを瞬時復号というらしい。しかし高岡先生って感情表現が極端に苦手な感じがする。本当は気持ちが大きく動いていると思うのだけれども。瞬時復号を満たすための必要十分条件ってなんだろね。二分木が完璧に作れることなんだろうけど、数学的にはどうなんだろ?

平均符号長とエントロピーについて。平均符号長はエントロピー以下になることはない(情報源符号化定理)。例えばA B C D を 11 10 01 00 で表すとすると符号長は2ビット、確率1/4で等確率。平均符号長は2ビット。エントロピーは2ビット * 1/4 * = 2ビット。直感的には、確率がばらけると平均符号長はかわらないがエントロピーが増える気がする。講義でも確率がばらける場合を計算してるけど平均符号長=エントロピーになった。エントロピーに平均符号長を近づけていくと効率が良くなる→エントロピーまでは圧縮できる!ってことらしい。

17歳男子の身長分布。きれいな正規分布になってる。最頻値、平均値、中央値が大体同じ。標準偏差をsとすると、-s~sの間にだいたい68%が来る。2sなら95%。17歳男子のデータを見る-s~sの間に73%、2sの間に96%。やはりほぼ正規分布である。体重は正規分布に従ってない。左に山が偏っていて、最頻値60、中央値61、平均値62.6kg。3つの値がずれていない=ほぼ正規分布であるということになるらしい。

第13回

今日から最後まで立教の村上先生。一階述語論理について。日常言語を論理言語に翻訳する所がメインらしい。

文と命題の違いについて。命題とは真偽が一義に決まる文のこと。文はそうでもない。「この問題は難しい」、とか、「それをとってください」とか。

で、科学的命題とは、真偽が実験・観察等の統計的な確かさにより決まる文のことを言う(えっ、100%じゃないのを命題って言っていいんだ!?)。例えばカラスは黒いということは、白いカラスは無視する。統計的に高い確率で成立すればいいや、ということ。これに対して演繹的命題は、真偽が100%はっきりしている命題のこと。例えば、一次方程式ax+b=0には解がある、という命題について。

「この一次方程式ax+b=0には解がある」→aとbが不明だから命題ではない

「一次方程式ax+b=0(a=0、b≠0)には解がある」→偽→命題である

「一次方程式ax+b=0には解がある」→偽→命題である ※最初に「すべてに」を補わないといけない。暗黙の量化という。あっこれ慶應の論理学でやったやつや。

全称量化→∀のこと。「すべての」と表現する。

存在量化→∃のこと。「ある」と表現する。

この授業では記号を使ってないのでわかりづらい。

量化の例。Everybody loves somebody. は①「誰もに好きな人がいる(全員が誰でもいい誰かのことが好き)」②「誰もが好きな人がいる(特定の1人のことを全員が好き、本人含む)」の2通りに取れる。①は∀∃、②は∃∀と表現すればよい。

じゃあこれを否定するには?「誰もに好きな人がいるわけではない(ある人が存在して誰も好きでない人がいる)」¬∀∃「誰もが好きな人がいるというわけではない(すべての人に好かれている人は存在しない)」¬∃∀

「すべてAだ」「Aでないものがない」は同じ意味。

「あるものはAではない」と「Aでないものがある」は同じ意味。

雨宮さん、ついていけてるけど正直ぜんぜんいみわからん。記号で表現してください。たのんます。

空虚な真について。そもそも対象がない場合は反例を作れないから絶対に真になる。否定が不可能=真である命題を空虚な真という。これってあれか?反出生じゃん。「まだ存在していないわが子がかわいそう」みたいなやつ。これぞ空虚な真。真だけど意味がない。つまり論理的真であることは真実を意味しないかもしれない。

「ならば」について。Aが偽か、Bが真なとき。前者は直感に反する。前者は反例を作ることができないからって理屈。前提が間違っているときは必ず「ならば」が成り立ってしまうというのは、皮肉な感じがする(慶應の論理学でも思った)。それにしてもこの授業は早すぎていみわからん。駆け足すぎる。AならばB、の場合は包含関係が成り立たないといけない(B⊂A)。ベン図のよくある重なってる奴だと絶対成り立たない(反例があるから)。

ってか記号使ってくれよ!意地でも使ってないけど印刷教材では使ってるんだろうか?

カードゲームで論理の話をしている。ちょっとわかんないです。どうも対偶の話をしているような気がする。対偶を調べれば勝てるみたいな感じ?あっやっぱそうか。

条件文と同値文の違い。日常言語だと「ならば」を同値文の意味として扱うことがある(ここはスライド作ってください!)例えば「雨が降っていたから動物園に行かなかった」は同値の例。逆が真だから。あれそうか?雨が降ってなくても動物園に行かないかもしれないじゃない?

演繹的推論について。0個以上の推論を使って結論を導くこと。妥当な推論とは、すべての前提が(内容にかかわらず)真なら結論が真になる推論のこと。まともな推論(?)とは、前提が実際にすべて真であるような妥当な推論のこと。

結論だけの妥当な推論はあり得るか?例えば1=1かな?

妥当な推論は空虚な真も含まれてしまうので、中途半端な感じだそうだ。

妥当な推論の例。三段論法。クジラは哺乳類である、哺乳類は温血動物である→だからクジラは温血動物である。集合の包含関係が成り立つから必ず成り立つ。

妥当でない例。たまたま前提も結論も真のケース。例えば、クジラはサメではない、クジラは哺乳類である→だから、サメは哺乳類ではない(サメをイルカに変えるとおかしさが分かると考えた)

前提がすべて真だが結論は偽のケース。ハトはスズメではない、ハトは鳥である→だから、スズメは鳥ではない(上のイルカの例と同じ)。だからこの推論はおかしい、妥当ではない。

妥当であるかどうか調べる方法。同じパターンの推論で、前提が真なのに結論が偽になるシナリオ(=反例)が存在するかどうかを調べる。とにかく反例を考えなければいけない。たいへんや。なので、これを自動化したい気持ちがある。すると一階述語論理が出てくるらしい。で、それを実装したのがコンピュータってわけ。と考えると面白くなってくるね。

第14回

タブローによる計算の話。タブローって慶應通信の論理学でもちょっと出てたあれだ。

妥当性の検証を自動的に行うのがタブロー法らしい。

言語とは何か。共通している文法があるものが言語?シグナルの部分と意味の部分を分けるのが言語学らしい。記号列→文法に従って構成されている単位→統語論の世界。記号列を解釈して結びつけること→意味論の世界。例えば(シグナル)赤信号が青になった→(意味)前進してもよい。(シグナル)イルカが音を出す→(意味)意味あるかもしれんけどわからない。などなど。

人工言語の話。人工言語は意味はもとより統語論は得意。意味は私たちが決めればいい(?)。これから語彙と文法と操作規則を定義する。

述語記号P, Q, R、関数記号f, g, h、変数記号x,y,z, 定数記号a, b, c、等号=、論理演算記号∧、∨、¬、⇒、⇔、量化記号∃、∀を使う。いわゆる記号論理学のやつだ。

項。変数や定数、これらを関数に入れたやつは項。例えばf(x), f(g(x,f(z)))など。(≧∀≦)は項ではない。gzもだめ(関数の定義にあってないから!?)。

文。項を統合でつないだやつ t=s は原子文である。Pが述語記号ならP(t1, t2, …)も原子文。これを演算子でつないだやつが文。つまり∧、∨、¬、⇒、⇔でつないだり、前に∃、∀を付けたやつが文。もう文は無限個あるね。

等号=→項と項を結ぶ。同値記号⇔は文と文を結ぶ。f(x) = g(w, y)は文だが、f(x)⇔g(w, y)は文ではない(文法的ではない)。

量化記号の復習。だれもに好きな人がいる→∀x∃yAxy、だれもが好きな人がいる→∃x∀yAxyと書ける(x, yは人を表す変数として、Aはなんだろう?→好き、というかんけいのことだとわかった)

代入すること。同じ変更が「自由に」表れているとき、同じ記号で置き換えられる。先の例なら、∀x∃yAxy→∃yAay、Aabって感じ(!?いみわかりません)。

「自由に」ってなんだよ?→複雑なのででテキストをお読みくださいだって。あんまり詰め込まないでほしいぜ!

意味論の話。一つの個体に対して牛若丸=義経(原子文)みたいに複数の名前がついていることがある。これは統語論の話。あれ?この話どう関連してるかわからない。とりあえず対象の集合を領域にするってくらいの意味らしい。次は、付置関数。約束の話。弟はだれ、妹は誰、みたいなこと。

例。兄弟の定義を記号でやる。R→兄弟である。f→父、g→母なら Rxy⇔∃z(f(x)=z∧f(y)=z) となる。真面目に言葉で解釈すると「xとyが兄弟であるとは、xの父がzでかつyの父がzであるようなzが存在することと同値」ということになる。まあ確かにそうだ。

頼朝と義経の関係を記号で表している。雨宮さん、歴史の教科書これで表してくださいよって言ってる(やめてほしい)。実際やってる奴がいるらしい。

タブロー法。これは反例があるかどうか自動的に検証する方法らしい。偽であると仮定して文を分解→矛盾が発生したシナリオを却下→以下繰り返し→却下されないシナリオがあれば判例になる、ということらしい。

スズメ、ハト、鳥の例でタブロー法を実演してる。ちょっとwordpressでは書けないので、テキストを参照するしかない。雨宮さん、よくついてけるなこれ!

全体的にいえば、間違った三段論法を機械的に判定できるということ。中身を全く考えなくていいのがすごいけど、案外、直感的にわかるかもしれん。反例を構造的に頭の中で考えられたら最高だけどそれは、タブロー法を全部頭の中でこなした上で、直感レベルまで訓練を続けないと無理だね。将来的にはそういう教材を作成してもいいかもしれん。

ここまでやったら論理的な話、数学的な話は全部コンピュータができるんじゃね?と思われたが、無理らしい。なぜ無理か。それを次回やるそうです。

第15回

証明と計算について。まず自然数と帰納法の話。

文通クラブのパズルについて。4つの条件からメンバーが何人かを推理する。

  • ①どのメンバーも少なくとも1人に手紙を送っている
  • ②自分宛てに手紙を送らない
  • ③どのメンバーも多くても1人からしか手紙をもらっていない
  • ④誰からも手紙をもらっていないメンバーが1人だけいる

④から始めるとわかるが、これは無限になる。

①→一人にだけ手紙を送った、に変更するとどうなるか。やっぱり④から始めると無限になってしまう。一人から次の人次の人…と手紙が受け渡されるので、直線的な関係になる。→自然数の公理と同じらしい(!?)

というわけで自然数は関数S(次の数に進む)を使って表すことができる。

  • ①0が存在する
  • ②Sx=SyならX=y
  • ③xが0でなければ、x=Syとなるyが存在する
  • ④すべてのxについて、Sx=xでない
  • ⑤Sx=0となるxは存在しない

どれも手紙ゲームのルールと同じ(言われてみれば)。

さて、前述の手紙ゲームで、命題A「どの手紙についても手紙を書いた人の髪が青ければ、受け取った人の髪も青い」という条件を追加すると、全員の髪は青くなるか?これは、青くなる。最初の人④に当たる人が青ければ全員青いのだけど、最初の人は青いかどうかわからない。でも青い。なぜかというと、命題Aを否定するには、前半が真かつ後半が偽にならないといけないが、そのような場合はない(全員青いから)。というわけで反例が作れず、全員青い。ここ理解するのめっちゃ時間かかったんだけど雨宮さん2秒でわかってる。すげーなー。

これは数学的帰納法という手法でした。わかりやすいですね。高校との違いは、一直線の論証だけじゃなくて、分岐しても大丈夫ってこと。

帰納法の誤りを指摘する問題。どんな馬の集合でもの馬が1色であることを証明するために、次の帰納法を使おうとした。

  • ①1頭なら1色(自明)
  • ②どんなn頭の集合をとってきても1色と仮定
  • ③n+1頭にしても、任意のn頭は1色なのだから、n+1頭でも1色
  • ①~③より、どんな馬の集合でも馬は1色

一見すると正しそうだが、結論がどう考えてもおかしい。ということはどこかに穴があり、これは③がおかしい。n+1頭目が別の色なら1色にならない(反例)。よってこの帰納法は間違っている。一々難しいな。こういう論証の誤りを一瞬でつけるようになりたいよ。

集合の濃度について。無限集合は部分集合と全体集合の濃度が同じになることがあり、これを「濃度が等しい」という。例えば自然数には濃度がある。自然数は元を数えることができるという特徴があり、これを可算、ℵ0という。ℵはヘブライ文字でアレフと読む。

濃度が変わらないというのは、1対1対応があること(?)。自然数に何か有限個のものを加えても、tanという関数を区間[-π/2, π/2]の間で考えても、1対1関係があるから、幅を大きくしたり小さくしても実数と濃度は同じ。

有理数の濃度は?有理数は分数で表せる、すなわち自然数と自然数の組だから数えられる(可算)。また、有利集の集合は自然数の集合を部分集合としている一方で、この集合の部分集合とみなされるから加算(「この」が何を指しているかわからず意味わからんかった)。

実数Rはどうか?これは加算でないことが証明できる。まず実数の濃度は有限区間[0, 1]実数の濃度と同じである。次は背理法。[0,1]の実数が全部数え上げらえると仮定する。すると、0.a1a2a3a4…というすべてを網羅するリストができることになるはず。ところが、リストに入ってない数を作ることができてしまう。例えば、数え上げたリストを斜めに取っていって各桁を+1した無限小数を考える。するとこの小数はリストにない。なぜかというと、これはi番目に入っているはずだが、i番目にある無限小数のi桁目は+1されていて、リストのi番目のと違う。だから矛盾する。よって実数は可算ではない。以上。対角線論法というらしい。

正直全然わからん論証なので、おとなしく印刷教材を真面目に読みます。

同様の理由で無理数も可算ではない。そして無限も無限にあるらしい(!?)。集合論をまともに勉強しないと意味わからんです。

なぜこんな七めんどくさい表現をするのかというと、みんな同じ数を使っているんだ!っていう前提をはっきりさせておかないと、議論ができないからなんだね。数学、機械のためのルールを一意にしないと、すべてが曖昧でめちゃめちゃになってしまう。数学はこういうことをはっきりさせているからとても好きです。

放送大学全科目感想 007 自然言語処理 (’19)

  • 情報コース
  • ラジオ授業
  • 黒橋禎夫先生(京都大学教授)
  • 難易度 ★★★☆☆
  • おすすめ度 ★★★★★

コンピュータを使った自然言語処理で、今できることと挑戦の始まっている分野は何なのかを学ぶ。特に「今できること」については、どのようにその技術が成り立っているか概観だけではなく仕組みを詳細に解説してくれる。アルゴリズムのトレースもある。そのため回によっては慣れていないとやや難解な箇所もあるが、見返りも大きい。終盤は専門家や学者さんへのインタビューもあり、研究者の肌感覚もわかる。素晴らしい講義でした。

※本講義の印刷教材「自然言語処理」は、自然言語処理の入門書として定評があります。

第1回

自然言語処理の概要とその困難さ、それから歴史について。アシスタントが先生の下で学んでいると思われる現役学生さんなので好感が持てる。

自然言語とは恣意的なもので、語の指す対象と語の間に何ら必然税がないのが特徴。誰かがそう呼んだってのを一般化したものだものね。あと日本語の数詞みたいに、慣習で決まってて法則性がないものも多い。そういうのはコーパスと計算機の発展による力技で何とかなってきている段階らしい。

自然言語処理の歴史はAIとほぼ一緒で、コンピュータの発展とともに予算が増えたり減ったりしている。AIのターニングポイントがgoogleのAlphaGo(2015-2016)だったのに対して、自然言語の方はIBMのWatsonがクイズ選手権で優勝した時(2011)。WatsonはAIの歴史でもかなり大事な役割だった。いずれも計算機の発展の勝利って感じ。

第2回

文字コードと文字列探索の話。かなり基本的なところから話を始めてくれるんですね。助かります。

UnicodeのUTF-8の仕組みが分かった。マルチバイトだったのか。今まで知らんかった。

文字列探索は音声だけではぜーんぜんわからん。トライ法を説明されたけど図がないと無理です。木構造作っとけば計算量が少なくて楽だってことは感覚的にはわかるけどさー。印刷教材が届いたら、一々トレースしてるっぽいから手を動かしたり、考えながら読んでみるとよいと思う。

第3回

形態素解析とビタビアルゴリズム、未知語について。特に形態素解析が中心。

日本語は分かち書きがないから品詞分解が大変という話。英語はそういう心配なくていいよね。簡単な単語だと同音異義語(同音別品詞?)が多いとはいえ文法上有限個の組み合わせだから楽勝な気がする。日本語はかなりフリーダムだよなあ。

スコアをつけて最短スコアを導き出してく仕組みのとこは、ソフトウェア開発と全く同じ思想なので楽しい。いかにして問題を解決していくか、そこがアルゴリズムを考える醍醐味だよね。昔、東京メトロの運賃自動計算プログラム作ったときのことを思い出す。最近は機械学習でスコアをつけられるから、楽になったよね。

未知語はスコアを高くするってのも工夫の賜物だなー。ありえる組み合わせか、ありえない組み合わせかの判定のとこも面白い。ラティス構造のとこは想像力が及ばなかったから、印刷教材が来たらよく復習しておこう。

第4回

コーパスの話。コーパスが登場する前は学者が直感でスコアとか構造を与えるしかなかったが、コーパスの登場で語の出現確率や構文の適用がやりやすくなった。意味解析を含んだコーパスは活用方法によっては強い武器になりそう。確率のマルコフモデルは叩き込んでおかないとダメだな。

意味解析を含んだデータ集合という構想は自分にもあって、卒論で音楽について何かデータ的解析をやってみたいのだけど、音楽の解析ってやっぱコード進行とか、BPMとか楽器の情報とかなのかな。できれば自動でなんでも解析できるとよいのだがそうは問屋が卸さないだろう。

第5回

第4回の話の英語版。英語は品詞の決定が難しいことをtime flies like an arrowという文を例にして説明してた。機械が自然に考えるとtime filesを名詞+動詞とみるか、複合名詞とみるかで迷ってバグる。文法的にはどちらも正しい。そこで機械学習の出番となる。time fliesという組み合わせがあり得るかあり得ないか、周りの単語の登場回数や順序などを参考にして、隠れマルコフモデル、ビタビアルゴリズムなどを駆使してスコアを出していく。

コーパスに必須の情報としてタグ付けがある。意味解析したデータ集合を作る際、適切なタグ付けと、そもそもの適切なタグの定義が難しそうだ。未知の合成語を見つけた時、先頭にくるもの、来ないもの、他の単語の後ろに来るもの、単に不適切なもの(洒落でやるよね)などを全部分けないといけない。このタグ付けの作業が、コーパスを作るにあたって膨大なコストとなることが予想される。

一次元構造を持つのは文章も音楽も一緒なので、音楽解析のためにはデータにタグ付けをしないといけないが、それを音楽理論をベースにするのか、全く新しい概念をベースにするのかでいろいろ研究結果が変わってくる。自然言語と音楽は非常に類似しているので、この講義は全部マスターしていきたい。

第6回

語の意味解析について。シソーラスを使った共起語による分析の話が多かった。共起語とは、ある語と一緒に使われることが多い語のこと。多義語の意味が1つに確定しないときは、共起する語を手掛かりにして意味を確定すればいい。これは漢字でだいたい意味の確定する日本語よりも英語の方でおきやすい問題といえる。例えばbankという単語は「土手」「銀行」の意味があるが、お金の話題と一緒なら銀行、川とか道路とかと一緒なら土手と解釈すればいい。

多義語が1対nの関係だとすると同義語はn対1の関係のこと。ある語の言いかえ、例えば「うまい」と「おいしい」は同義語といえる。微妙なニュアンスの違いは当然排除できないがまだ機械がそのレベルに達してないらしい。

共起ってのは要するに相関関係の問題だと思う。講義を聴きながらどれも音楽に関連させるんだけど、あるコードが他のコードと一緒に出現する確率が高ければそれが共起といえるはず。同義語は転調した場合の相対的なⅠとかⅦとかの関係かなぁ。違う気もする。

あと意味を解釈したとしてそれをどうやって自然言語処理に応用していくんだろう?意味が分かるというのは、辞書の1,2,3番のどの意味に該当するかということだと思うのだけど、これがわかっても表面上の文字に何も影響ないじゃん?ちょっとわからなかった。

第7回

構文、語の結びつきの関係について。一次元の文を平面や立体にしているのは語の結びつきによるもの。

文脈自由文法とCKY法という基本的な手段の解説がされたが、前者は文が木構造に分解できるということ、後者は解析結果を保存しながら探索することでオーダーがn^3まで減らせること、以上のことはわからなかった。図が必要。なんでラジオ授業にしたし。

構文を考えてるのって言語学者の直観によるらしいが、構文そのものもコーパスを使ってDLで抽出できるらしい。たとえば和音構造をDLで学習させたら、よくある旋法や、特定のアーティストの好む旋法が解析できるのでは?特徴抽出は機械の得意なところなはず。何の構造を抽出していくか、何を得たいか、は今後検討の余地あり。

第8回

構文解析2回目。依存構造解析をnon-projective(係り受けが交差してもいい場合)、projective(交差しない場合)に分けて説明する。依存構造解析とは、単語・文節単位で係り受けの矢印をつないでいく構造のこと。係り受けの交差とは、1.これが 2.僕は 3.正しいと 4.思う という文の場合、1→3、2→4のように意味の矢印をつなぐと矢印が重なってしまうこと。日本語も英語も交差はほとんど発生しないので、例外的な扱いとなる。両言語とも、解析はprojectiveなものが主流で、精度は90%くらいだそう。

projectiveな依存構造解析は複雑でラジオ講義では何を言っているかほとんど不明だった。ざっくりと、矢印にスコアを割り当てていって(コーパスを参考にするのかな?)スコアが最大になる構造を選択するということ。矢印なのでループができてしまうことがあるが、ループは一つのノードとして扱いスコアを算出する。ループを含む構造はたいていスコアが低くなるし、最終的にループを含まない構造を選べばよいということ。処理の単純化のためかな。

projectiveな構造解析の計算オーダーはCKY法と同じくnの3乗。実務でも3乗ならぎりぎり実用範囲という感覚があるし、だいぶ工夫が上手なんだなと思う。

第9回

意味解析2回目。格(主格とか目的格とか)を確定する話がメイン。英語は文法上格が確定しやすい(ドイツ語なんかもっと分かりやすそう)のであんまり問題にならないが、日本語は大いに問題となる。大規模コーパスに格を付与した格フレーム構築のための技術と、その利用について解説していたが、なかなか難しく、印刷教材での復習が必須だ。

ひとつ衝撃だったのは「格にあいまいさがある文は捨てる」というところ。あいまいさがある場合は教師データとして採用しないというのだ。そうすることで、核となる規則を頑健に抽出できる一方で、あいまいさがある文を例外として扱うことができるのかな。

第10回

(今回は聞きながら書いてます)

どんどんマクロな解析になっていき、今日は文脈の解析。文脈解析とは、代名詞(照応関係)、省略、文の間の関係の処理をすること。

照応関係とは代名詞を含め、ある語の指し示す対象が他の文にも出現していること。なお、出現していないこともある(外部照応。「みなさん」とか)。コーパスで照応関係を機械学習しても6割くらいの精度にしかならないらしい。照応関係「しやすい」くらいのことしかわからないようだ。

「太郎はのどが渇いた。水を飲んだ」のように「彼は」とか「太郎は」が省略されることは日本語ではよくある。こういうのを補うことをゼロ照応解析という。格フレーム知識があると、欠けているものがわかるから少しは解析ができる。でもせいぜい50%しかわからない(50%でも高いように思える)。

文章の一貫性について。RSTという手法では、文章を談話という単位に分けて主従とか根拠とか背景とかの関係をつける。重要度に優劣をつけるらしい。一番重要な談話を核と呼ぶ。核だけ選べば要約になるというわけ。人によって解釈が異なるから、コーパスを作るのが難しい(そりゃーそうだ)。注釈付与前に「だから」「しかし」などのディスコースマーカーをつけておいて、あらかじめ談話関係を明確にしておく手法もある(でもどのディスコースマーカーをつけるかにおいて技術の優劣が付くんじゃね)。

第11回

情報抽出と知識獲得について。今回は構造の話ではなく、統計の話になった。

ある語(特に、固有名)に着目して、関連する情報をくっつけていくやり方、特定のイベントに着目して、類似の表現を獲得していくやり方、事態の間の関係をスクリプトとして記録していくやり方、どれも、ビッグデータを前提として、大規模な機械学習をおこなっていくことで、外延を少しずつ獲得していこうという試みのようだ。ビッグデータとしては、wikipediaが好まれることが多い。

知識獲得については他の授業でもフォローがされているから詳しく学ぶとして、wikipediaのような文章集合からの知識獲得って、世の中のみなさんの知的活動に敬意を払った手法だよなあって思う。哲人による直観とは正反対の方法で、みなさんの知的活動のいわば平均をとるわけじゃん。理想的には、平均中の平均の思考ができるようになればいいわけだし、民主的な知識ができるわけだよなあ。昔想像されてた「コンピュータだから間違いはない」みたいなロボット像とはだいぶ変わってきたよね。

第12回

情報検索、主にgoogleのページランク算出法について。慶應の図書館情報学でやったのと同じやった。ページランクの高いサイトからのリンクに高い点数をつけてランク高くするってやつ。あれって最初の点数(一番ランクの高いサイト)は1とかにしておくのかな。

googleのクローラーって、サイトをそのまんま保存しておくのはコスト高すぎだから、インデックスつけてそこだけ保存するんだろうけど、そういうコストの削減方法についてはどういうアルゴリズムを採用しているのか気になる。↓の本とか読んだら書いてあるんかな。

途中から乾先生へのインタビュー。

Tohoku NLP Lab / 東北大学 乾研究室

乾先生はtwitterの分析や、災害時の情報収集に自然言語処理を応用しているそう。自然言語の基礎研究の方も相当進んでいて、もう少しで常識とか背景知識の推測とかの段階まで行けそうらしい。計算量も多く相当なコンピュータが必要になるだろうが、人間って高速演算なんか必要なく楽勝でできちゃってるからすごいよね。

第13回

対話処理について。siriとかしゃべってコンシェルとか。うちではアレクサが大活躍しているけど、収録時期が古いのかアレクサは話題になってなかった。しゃべってコンシェルも今ではマイナーな気がする。

対話で難しいのは、人間が決まりきった形という意味で正確に質問に答えないことがあること。「日曜に遊ばないか」「月曜に試験がある」という会話は、暗黙のうちに提案を断っているのだけど、コンピュータが認識するのが難しい。

webやtwitterなどアクセスできる資源は膨大にあるけど、それでも会話ってのは難しい。人間が会話のパターンや構造を認識して、会話にラベル付けをしていかないと学習すらできない。勝手に賢くなるシステムってのはまだまだ不可能なんだな。

終盤はしゃべってコンシェルの開発者さんへのインタビュー。口調はtwitterから「女性の語尾の顕著な特徴を学習」するなどして実装しているらしい。応答速度は、よくある質問をテンプレにして高速化を図っているらしい。プログラムってジェネラルになるほど動作遅くなるから、スペシフィックにして高速化っていう発想はここでも汎用性があるんだなーと思った。

第14回

機械翻訳について。まずは異言語間の単語がn対nの関係にあるため、難しいという話から。それから実際の手法について。統計的翻訳が以前の主流だったけど、最近はニューラルネットワークを使った翻訳が主流らしい。

準備としてニューラルネットワークの解説があった。ありがたい。ニューラルネットワークとは、ベクトルを利用して重みづけを自動で学習させる方式のこと。入力と出力のデータを大量に用意する必要があるが、精度がとても高い。google翻訳はこいつを使ってるとのこと。

ニューラルネットワーク式なら、1語前から訳を予測するだけではなく、2語3語前、1-2-3語後からも重みづけを線形結合するだけで予測していくことができるので強い。線形、時系列のものに向いている。ってこれまんま音楽に応用できるやん。絶対すでに研究が進んでいると思うので、卒研に向けて論文をいっぱい読んでおこう(英語だろうな)。

言語や音楽みたいな人間の営みって、なるべくアルゴリズムを使わないで、枠組みはデータから得るようなアプローチをとれないのかなあ。ニューラルネットワークはだいぶデータ主導のアプローチに近くなったと思うけど、入力→出力の関係しか得られないのは制限がきついなあとも思う。概念を抽出するみたいなことはできないのかな?

第15回

まとめと今後の展望と、黒橋先生の恩師、長尾真先生(故人)へのインタビュー。

クラウドソーシングを言語資源構築に使うことについて。従来は言語仕様を専門家の直観に頼っていたのを、一般の人の言語直観を利用できるという最大の利点がある(思いつかなかったよ)。そもそも言語は一般人の慣習なんでこっちの方が優れてるはず。

ニューラルネットワークの導入について。やっぱ全自動、特徴量の自動設定ができるってのが大きい。適用範囲が広い。End-to-end学習(ブラックボックス学習)ができてしまう。なんか知らんけど解析できましたって感じになるのが新しいみたい。機械翻訳の質も一気に向上した。

長尾真 – Wikipedia

目玉は長尾先生へのインタビュー。長尾先生は2021/5/23に亡くなったばかり。科学技術文章の自動翻訳や、電子図書館システムに大いに貢献した偉大な方。60年代当時のコンピュータは1秒に数十回~数百回のオーダーしか処理できず、その状態から日本語入力システムを開発したりしたらしい。

自動翻訳システムは80年代ごろのプロジェクトで、機械翻訳の技術向上に大いに貢献し、企業からもいっぱい人が参加して、その後各企業に研究者が戻って、たくさん翻訳システムができていったらしい。こういうプロジェクト、現代でできるんか?金があるって、基礎研究ができるって素晴らしいことだなあ。

電子図書館の思想ってほぼほぼ慶應通信で習った図書館情報学のまんまじゃん。もしかしてこの先生が一人で開発したんじゃないか?で、そのうえで電子図書館は人間の知識の集積だけど、人間の頭脳はそんなもんやないと考えてらっしゃる。感情と他人への理解がまだまだ難しいと。たしかに「音楽・情報・脳」の講義でもあったように、感情が理性の上部フィードバック機構だという現代脳科学の立場からすると、コンピュータってのはせいぜい理性の世界の限定された世界しか対応できてないしね。まだまだ人間優位は揺るがなさそう。

参考: 音楽・情報・脳(’17)

先生はやりたいことをとことん追求せよと。数年でできる研究もいいが何十年もかけて追及するべきテーマを持つといいとのこと。先生は50年言語処理を研究してきた。50年ってスゲーわ。今私が50年研究できるテーマを持てるか?それは何だろう?

放送大学全科目感想 006 音楽・情報・脳(’17)

  • 大学院情報学プログラム
  • ラジオ講座
  • 仁科エミ先生(放送大学教授)
  • 河合徳枝先生(国際科学振興財団上級研究員)
  • 難易度 ★★★☆☆(暫定)
  • おすすめ度 ★★★★★

主に脳科学の知見を基に、音楽を情報学的に捕えようという目的の講義。2-4回のゲストの脳神経科学者の本田先生の講義がもうそれは衝撃的なので必聴。人類に自己解体モードという遺伝子プログラムがあることを知った。

河合先生がバリ島のフィールドワークをやっていた関係でバリ島の音楽がいっぱい聞ける。あと仁科先生は高周波の話をいっぱいしてくれるので高周波を含む尺八やら三味線やらいもいっぱい聞ける。

ハイパーソニック・エフェクトという、人類発祥である熱帯雨林での音にたくさん含まれる、20Khz以上の高周波が人間にもたらす影響と可能性について数回にわたりアツい講義がなされる。

第1回

本講義の目的は、脳科学を橋渡しとして、音楽を情報学的側面から論じるということだそういだ。いわゆる学際科目。仁科先生は音楽と環境の関係を調べている人らしい。音楽は、脳の報酬系を直接刺激するという所に特徴があるらしい。言われてみればそうかも。

私は放送大の卒業研究でちょうど音楽を情報学の立場から研究しようと思っていたので、そのものずばりという感じのテーマ。テキストも買ったので極めていきたい。

本講義も音を研究するの時のように、音楽の例を示してくれるし尺も長い。今回はブルガリアとジョージアの伝統声楽を聞かせてもらった。

ウェーバーが(またこいつか)、研究者になりたかったら他分野には目隠しをして自分野の研究に邁進しろということを言ったらしい。近代科学はそうやって発展し、精度はいいが役に立たないタコツボ研究が多数生まれた。現代ではこいつをまとめ上げて、他分野も積極的に取り込んでいくことが望まれている。私も広く深く(×浅く)統合的に学問をやっていきたいのでがんばろう。

第2回

国立神経医療センターの本田先生による講義で、脳神経系の基本的な仕組みと感性情報の需要について。

神経伝達の仕組みを聞いた瞬間に「あれこれデジタルじゃん」と思ったが「デジタルとは違って・・・」と即座に否定されたので疑問が残った。テキスト見てちゃんと勉強しよ。

要するに受容器が外界の刺激を電気信号に変換してナトリウムやカリウムのイオンの濃淡を使って伝えてるんだよね。神経伝達自体はアナログに見えるけど、やっぱネットワークの複雑さが人間の複雑性を表してるんかな。デジタルはネットワークが2層になった瞬間に計算量がバカみたいに増えるからきついもんね。

見る、聞くという行為は頭の中にモデルがあって、それとの差分を使って判断しているらしい。脳神経系の話を聞いていると仮想空間の中に生きている気持になる。学者さんの世界観ってどうなってるんだろう。

本田先生はイケメンです

神経研究所 疾病研究第七部 (ncnp.go.jp)

第3回

脳の情動神経系と音楽との関係について。今回は衝撃的だった。

生物のモードには3つあり、ストレスの少ない通常モードと、ストレスの大きい適応モード。ここまではわかる。3つめが、ストレスが大きすぎて耐えられないので自己分解するモード。要するに自殺。ストレスが高まりすぎると、自己破壊することに快感がでるように生物ってプログラムされているらしい。これは聞いたことのある激しいうつ病患者さん(n=1)の実体験とも一致している。自分でエネルギーを使うよりも、他の生物にエネルギーを残してあげたくなっちゃう(=食べてくれってこと)んだって。

マジで衝撃だった。医師って全員多分これ知ってる。

あとは感性と理性と情動・感情の関係。一般的には理性と感情が対立する概念ととらえられているけど、そういうわけではない。一体化・階層化したシステムととらえるのが妥当で、基本的には情動→情動→感情→行動出力という回路がメイン。理性は感性からの入力を処理して、情動・感情にポジティブ・ネガティブなフィードバックを送ってやるのが仕事なので、講義でも言っていたけど、理性は感情のしもべです。理性が偉いとするのは間違い。

で、以上のことを前提として音楽を捉えると面白いよね!って話だった。

第4回

音楽の特性を情報学的にとらえる回。今回も本田先生の講義。第2,3回を前提に、ここが本番って感じ。

西洋音楽の音の捉え方は、音符と音楽が1対1に対応しているという考え方。これは脳の構造と一致していない。音符と音楽の最大の違いは、離散か変化かということ。音楽は時間的変化という最も重要な要素があるのに、音符は離散的で、時間変化の要素が抜け落ちている。そして脳は、時間的変化の方を捉えやすいという特性がある。

理性って、現実を写像して単純化しがち。複雑性をとっぱらって、簡単に理解しようという気持ちがある。全体を見ないで細部を見がち。全体を見たほうがおもしろいのに。ロマン派の音楽って普遍的にみんなを感動させるのに、現代音楽や現代哲学ってこまこましてつまんねぇでしょ。現代美術も同じだと思う。西洋的な考え方はもう古いんじゃないの。

あと、研究テーマは音楽理論をベースにと思っていたけど、没だね。離散化した情報では音楽を捉えられない。むしろ時間的変化、微分でミクロを捉えつつ、全体をマクロでとらえる、重層的アプローチがいいのではないか(具体的にはどうしたらいいかわからんが)。

最後に絶対音感の話。絶対音感は、西洋12音階になるように脳を訓練することで修得する。すると、右脳が委縮するらしい。なぜなのかは言われていないが、音を12音階に強引に四捨五入みたいなことをするわけであるから、音の情報量を減らしてしまうわけだよね。音の言語化が西洋のやってることで、言語化は情報の省力化、デジタル化といえる。デジタル化は情報量を増やして近似することはできるが近似が限界で、自然界の完全なる模倣ではない。物理学もそこのところは認めている。省力化して情報を切り捨てるのは正直言ってバカになるってことだと思う。要するに理性はバカ。理性を崇拝する論調は強いけどそこんとこよく考えたほうがいいと思う。

第5回

音楽を可視化する方法について。今回からは仁科先生の担当。本田先生とはちょっと違い西洋批判トーンは控えめで、離散的な音楽の捉え方には普遍的な面もあると主張している。どこの文化でも楽譜を作ろうという気持ちがある、音階がある、つまり音楽をとびとびの値で把握しようという傾向が人間の生物的な何かと合致しているということである。楽譜は視覚優位で、これは西洋の特殊性を表しているそうだ。

高速フーリエ変換と最大エントロピースペクトルアレイ法の違いを説明し、さらに後者から、離散的な音楽の捉え方には限界があることを指摘。結局本田先生と同じ結論じゃん。

第6回

ハイパーソニックエフェクトについて。人間の耳は20kHzまでしか聞こえないと言われているけど、40kHzなどの超高周波を聞いた場合に脳にプラスの影響があるという発見の話。視床下部と報酬系に時間差で効くらしい。報酬系は時間差だけでなく持続するのでとても効果が高い。同時に、時間差と持続のせいで、何が原因なのかわかりにくくなるため今まで見逃されていた。

レコードの時代は高周波を入れられたため、わざと高周波を強調すると心地よい響きがすると好評だったという。ガムラン音楽や尺八などだと出る。オケやピアノは出ない。やはり、西洋のデジタル的な認知様式がここでも邪魔をしている。

ハイパーソニックは体の表面で聞くそうだ。でも可聴音と同時に聞かないと意味がないらしい。

いままで正直言ってハイレゾはバカにしてたけど考えを改める必要がありそうだ。生音は大事なんだな。

第7回

日本の伝統楽器について。尺八と三味線がどんだけ高周波を含んでいるか、演奏によってどんだけ微妙な音を出せるかという話。

ただ尺八単体だとどんだけスーパーソニックだと言われても全然ありがたみがわからない。わたしたちは西洋の音楽スキーマに慣れすぎてるんだ。

最後にノヴェンバーステップス聞いたけどやっぱりなんもありがたみがわかんない。尺八と三味線のパートはかっこいい。オケはいらないと思う。なんで合成したんや。西洋人に褒められてもうれしくない。

第8回

河合先生にバトンタッチ、共同体を支える音楽について。バリ島を中心とした実例がいっぱい。

そもそも実生活と切り離された純粋芸術としての音楽ってのは珍しいという話だった。アジアアフリカ圏では音楽は生活の一部だし、みんながやっている表現の一手段であって、聞かせることを想定していない。ここでも西洋の特殊性が強調されてる。パートごとに難易度が分かれていて、だれでも参加できるようになっている仕組みもある。日本だと祭りの一部分って感じなのかな。

ユニークな音楽としてケチャが紹介されてた。IIDXであったな―懐かしい、ダンスミュージックと融合したやつがあった。今思うとオリエンタリズムだけど結構好きだった。

Kecak – John Robinson – YouTube

第9回

人類に約束された快感?について。第3回の本来・適応・自己解体の生物モデルを基に、これを音楽に適用するとどうなるか。

本来→事前の訓練や適応なしで人類誰でも感動するような音楽

適応→一定の訓練を受けると感動できる音楽

自己解体→適応不可能な音楽

と説明された。なるほどーと思うけど疑問もある。ここからは感想ですが、この3つのモデルは相対的なもので、音楽の位置づけは3つのモデルを浮動すると思う。だってガムランとかバッハとかいきなり聞いて感動するか?しないと思う。すべての音楽は初体験ならほとんどが適応か自己解体の所に位置付けられると考える。でも慣れて自分の中に体系ができるにしたがって、本来の方にシフトしてくんじゃないかな。で、本来の方にシフトしやすい音楽ってのが名曲と言われるのでは。

16ビートが人類最強の音楽らしいという話もしていた。一理ある。例として流された曲は多分フュージョンだけど超かっこいいよね。でもこれはサンバとか能とかにもすでにあったらしく、遺伝子にプログラムされてる可能性があるんだって。16ビートを激しく感じる曲って私も好きだったな。例えばこいつ。

IIDX 3rd style – Schlagwerk (DPA) Autoplay – YouTube

サンバも好き

DJ Mass MAD Izm* – Beach-Side-Bunny – YouTube

第10回

ガムランとケチャを例にとって、報酬系や懲罰系が共同体に与える影響を考える回。正直報酬系の果たす役割は全然わからんかった。懲罰系のネガティブフィードバックについては全然言及されんかったし。

ガムランとケチャが16ビートをはっきりと刻んでいて、それが分業によって容易に達成されるということはわかった。ケチャおもしろいねービートだけではなくて旋律もあるのね。西洋音楽慣れした立場からすると、旋律はよくわからんのでビートだけに着目しちゃうけどね。

エレクトリック音楽が付点八分を多用するのって16ビート感出すためだったのね。

Riewo – Love’s Will – YouTube

第11回

ガムランがトランス状態を引き起こすことと、どのようにしてバリ島の共同体を自己組織化するかについて。今回も後者については全然わからんかったけど、高周波と集団心理のせいでトランスする確率がめっちゃ高いことはわかった。

脳波を計測するくだり、だいぶ大変だったと思う。でもそのヘッドギアほしいです。音ゲーやってたら同じようなトランス状態になると思うんですよ。あれ16分音符メインだし頭を考えないようにすることが本質だし、ディープに世界に入り込むことは儀式と共通してるはず。だから脳波測定機ください。毎日1時間ゲーセンに行きますので。

第12回

MIDIと電子楽器とサンプリングレートの話。だいたい知ってることだったけど昔のことをいろいろ思い出した。MIDIの登場でモジュール型の電子楽器が隆盛したのが90年代の最初の方?SC-88proが出たころだよね。私も小学校のとき、お年玉を3年貯めてSC-88VLというモジュールを買い、その音質の良さに大変感動したものだった。つってもサンプリングレート22kHzなんだけど、スーファミが精一杯だった時代からすると電子楽器の革命という感じだった。せっかく買ったので耳コピやら作曲やらいろいろやってた。私はアレンジはできるが作曲自体は不得意だったので、友達に譜面書いてもらって打ち込みと録音を担当してCD-Rに焼いて友達に返すってことを中学校の時によくやってた。

そんなことはさておきMIDIって127段階のパラメータなのね。255じゃないんだ。上位1ビットは何に使っているんだろうな。

シンセサイザーの仕組みの所もなつかしい。浪人時代に名古屋・大須でぼろい中古のシンセサイザーを買って、名古屋市立中央図書館でシンセサイザーの仕組みの本を借りて音いろいろ作ってたなあ。

あとスーパーソニックエフェクトをこの回でも推してるけど、本当にプラスの効果ばっかなのか?ちょっと疑わしい気がする。

第13回

イトゥリのムブティの子供たちが歌う歌と、12音技法の比較を通して人類にインプットされている音楽とは何かを考える回。ムブティの歌は16ビートだし16世紀のヨーロッパの楽曲とも構成が似ているとの指摘。クラシック音楽が何気に「民族音楽」と分類されていたことが面白かった。

12音技法は以前から思考偏重のゴミだと思っていたけど、やっぱりゴミだった。12音全てを平等に扱い、1ループ内に意地でも同じ音を出してやらないようにするという理論のこと。西洋音楽理論では旋律や和音の組み合わせに限界があるから、新規性を求めて生み出されたらしいが、そんなんだったら原理的に常に新しいホワイトノイズでも聞いてろって思う。生物の定常・適応・自己分解モデルの中だと自己分解に分類されることが示唆される。適応無理だよなこんなん。

第14回

熱帯雨林が人間の根源だって話と、ハイパーソニックエフェクトを推す話。

熱帯雨林のところは人間の進化の過程の話だからわかるとしても、満員電車の音に熱帯雨林の環境音から抽出した高周波を添加したらストレス指標が減ったとか、高周波浴びたらなんでもいい感じになるってのはどうにもうさん臭くて信じられない。報酬系のところを刺激するってのはわかったけどそれによって何か不都合が生じたりしないのか?

音環境から高周波がカットされているからストレス社会になってるとか、高周波を添加したら人間のかけてるところが補えるとか、そういうのもちょっと飛躍があってついていけない。

新しい技術とか、科学的根拠がまだ確定していないことって慎重になってしまう。自然食品とか、電磁波とか、そういう疑似科学とは違うんだろうけど、どうしても抵抗がある。

第15回

本田先生と仁科先生の講義がちょこっとあって、あとは各講義のまとめ。

本田先生は例の高周波成分を医療に役立てようという話をした。熱帯雨林型の音環境にすればいろいろ疾病が治るんじゃあないか、人間ではなく環境を変えていこうぜということ。一理はある。人間を変えても元に戻ってしまうことの方が多い。そういうのは環境の問題だ。

仁科先生は脳科学の怪しい知見についての警告のはなしをした。人間は脳の10%しか使ってないとか(北斗の拳?)男性脳女性脳とか。こういうのはごく一部分で得られた知見を一般化したにすぎず、過度な一般化はやめようねという話だった(それはハイパーソニックエフェクトでもいえる気がするけど)。

一部危険な気がしたけど刺激的でとても面白い講義でした。先生方ありがとうございました。

放送大学全科目感想 005 著作権法(’18)

  • 情報コース、社会と産業コース
  • ラジオ授業
  • 作花文雄先生(元文化庁審議官、弘前大学副学長・東京事務所長、現放送大学客員教授)著作権法の本を昔から書いていらっしゃる先生です
  • 難易度  ★★★★☆
  • おすすめ度 ★★★★☆

※注意:本講義は2022年に改訂される予定です

著作権の諸ルールを解説したあと、国際問題や制度の歴史にまで触れるかなり手の広い科目。そもそも著作権法は細かい規定が多く分厚い法で、放送大の科目としてはかなり分量が多い。法学に馴染みがないと苦労するだろう。

財産権の特別法たる著作権においても、他の法分野と同様に、曖昧なルールを判例や法改正によって徐々に明確にしていくという典型的プロセスの積み重ねがされてきたことがわかる。無駄に複雑な規定が目白押しなのは、著しい技術発展のせいで法概念の創出が間に合わないせいだろう。

第1回

概説から。知財法内の著作権の位置づけや役割について。まず全体から学ぶのがよいとのこと。細かいところから学んでもよくわからん。作花先生いい声してる。

不動産や動産は有体物で、独占的所有権がある。知的財産権も独占的所有権があるが物理的所有ができない。また、無断で違法にに利用しやすい。これを保護するために法的環境を整える必要がある。保護されないなら知的成果物を生み出すインセンティブが働かない。産業発展のために保護の仕組みが必要。また、公正な利用も必要だから、バランスをとった法律にしないといけない。

著作権法は創作的な表現物を保護する。他には特許や実用新案、半導体の回路配置に関する法律(略称不明)、種苗法などがある。

商標、不正競争防止は公正利用のための法律。H26に色彩、音の商標が登録できるようになった。商標は創作的でなくてもいい。識別性があればいい。他にもH26に地理的表示が保護されるようになった。GIマークという。不競法は誤認混同の禁止のほか営業秘密を保護する。判例においては複数の法律が関係することが多い。

排他的権利について。著作権は排他的。自分だけが利用できることを言う。他者は許諾、ライセンスが必要。対世的で物権的。違反すれば刑事民事の責任を負う。

適正利用について。利用全部に権利が及べば円滑な利用が妨げられ、社会にとって望ましくない。なので、権利の及ぶ範囲が各法律で定められている。著作権なら演奏とか公衆送信とか。

著作権の対象。絵画とか論文とか。創作性があるものを対象とする。社会の変化に伴い著作権法も発展する。情報社会での保護と利用の調和が大事。株価とかデータそのものは広く利用されるべきだから保護はいらないよね。場合によっては対価をあげることも必要かも。クリエイティブなものは保護されないと時間・労力をかけることが困難になる。

著作権は既得権益か。規制緩和すると短期的には便利になるかもしれないが、長期的には優れたコンテンツを阻害するでしょ。創造活動は先人が昔から積み重なった上に成り立つものだから、権利が広すぎるもの問題。バランスが大事。

著作権の構造。著作物を創作したのが著作者。複数人で作った場合、職務で作った場合、委託された場合は誰が著作者か?権利主体となるのは(図を参照)著作隣接権者という人もいる。実演家とかレコード製作者(音を固定した人)とか。演奏や放送は準創作活動といえる。出版権は著作者の契約で設定される。違法な出版物を差し止めできたりする。

保護対象物。著作者なら著作物。実演家なら実演。レコード製作者ならレコード(CD以外も全部)。放送の場合、番組ではなく、映画や映像などが保護される(?)。

著作権の独占権としての性質について。特許は絶対的独占権で、複数人が同じ特許を受けることができない。著作権は相対的独占権で、結果として同じ著作物ができても、どちらも著作者になれる(でも結果として同じになったことの主張は簡単ではない)。利用については、あらゆる排他的権利を行使できそうだけど、実際は利用態様が一つ一つ規定されている。

著作者の権利は大きく2つ。人格権的な著作人格権と財産権的な著作権。登録が必要ないので無方式主義という。

人格権は公表権(いつ公表するか)、氏名表示権(自己の名を付すか)、同一性保持権(改変の禁止)。

著作権。複製権などいろいろ。複製権は複製を禁止する。複製にはコピーだけでなくいろいろある。上映権演奏権などは、公衆に対して演奏などする行為のこと。自宅で歌うのはよい。公衆送信権も同様。展示権は美術作品など対象が限定されてる。翻案権は二次創作のこと。原則として許諾がなければだめ。

権利制限規定。著作物の自由利用が認められている場合がある。例えば複製権は絶対ではない。一定条件で複製はできる。30条以下いろいろある。辛抱強く理解していくこと。

保護期間。創作時から創作者の死後70年間。TPPで50→70年になった。

侵害の救済措置。民事上は民法の不法行為や不当利得が適用される。また特別に、差し止め請求権や、損害額の推定、10年以下の懲役など刑事罰規定もある。ベルヌ条約の加盟国の著作物も保護される。わが国で利用されればわが国の保護規定が適用される。

第2回

著作物について。保護の対象となるもの、ならないものについて学ぶ。紛争では著作物の定義が争われる。

定義「思想又は感情を創作的に表現したものであって、文芸、学術、美術又は音楽の範囲に属するもの」(2条1項1号)これに基づいて著作物かどうか判断する。

客観的に認識できるものが著作物。平均寿命みたいな単なるデータはダメ。実際の所データは労力は必要だが、これを独占すると弊害が大きい。論文やグラフは保護対象になる(かも)。だれがやっても同じになるようなごくありふれたものはだめ。創作性が必要。

人工知能で作成されたものは?まだ検討中。インドネシアの野生の猿が撮った写真は?2016年1月アメリカ、著作者は人間だけが認められるという判決が出た。きわめて常識的ですね。

「ありふれた」とは?難しいですね。判例を読むとなぜ保護されるか、保護されないのかが分かってくると思います。

ただのアイデアは保護対象ではない。学術的にはアイデアの盗用はよくないので避けないといけないが保護はされない。

著作物は無体物。記録された紙とかCDそのものは著作物ではない。著作物が記録された紙を損壊しても著作権侵害にはならない。紙の複製は侵害になる。美術館は著作権を有しているわけではない。でもお金をとったり写真撮影を禁止している。これは著作権ではなく所有権的な問題です。

著作物を明示的に定義するため10条1項にいろいろ書いてありますが、これは例示です。ほかにもあります。

1号、言語の著作物。手紙やブログも創作的なら著作物に入ります。原稿や口頭のものも含まれます。映画以外は、何かに固定されていることは要件ではないです。事実の伝達に過ぎない雑報は含まれませんが、新聞記事はだいたい著作物性があります。

2号、音楽の著作物。即興演奏も含まれます。

3号、舞踊・無言劇など。振付が著作物になります。演技自体は著作隣接権ですね。

4号、美術の著作物。形状や色彩、平面、立体などさまざまです。書道ももちろん。具体的な書だけが対象で、書体は対象ではないです。マンガも入ります。デザインは応用美術と言います。意匠法でも保護されますが、著作権法の保護対象外になるわけではないです。実用品のデザインとして作られたものもあるし、あとで実用品に採用されることもある。どういう場合に保護されるのか。著作権法的には(美術工芸品を含む。)と書いてあるだけですが、他のものも判例で含まれると解されてます。純粋美術と同程度の創作性があれば保護される、と考えられていますが、同程度ってどういうものなのか明らかではないです。

5号、建築の著作物。図面ではなく実際の建築物です。芸術的価値のあるものと解されてます。どの程度芸術性があればいいのか線引きは明らかではないです。

6号、地図や図形の著作物。学術的な図面図表とか、地球儀とか。機械の設計図は誰でも作れるなら創作性が否定されるかもです。

7号、映画の著作物。連続する映像で創作的に表現されたものです。かつては劇場用映画が代表的でしたが、今ではDVDなども含まれます。固定されていない場合はどうか。映画ではないが映像の著作物として保護される余地はあります。ゲームは?映像に変化がありますからいけそうです。固定要件はどうか。満たすと解されてます。すると頒布権が発生するかも。最高裁判決では、消尽論をとり、いったん適法に売られたら頒布権はないと判示されました。

8号、写真の著作物。やはり創作性が必要です。絵画を写真に撮っただけではだめ。創作性は、陰影とかシャッタースピードとかポーズとかを総合的に勘案して判定します。

9号、プログラムの著作物。作成者の思想・アイデアが反映されたものだからです。windowsも含まれます。言語自体はダメ。規約・解法自体が保護対象にならないのは趣旨からしてそうですが、プログラムはわかりにくいんで確認的に規定されてます。

二次的著作物。まず翻訳。他の国語で表現することです。点字とかは含まれません。古典の現代語訳もダメ。でも現代語訳に新たな創作性があれば翻案になります。編曲とはアレンジですね。楽器変えたりクラシックをジャズにしたり。変形とは聞きなれませんが、絵画を彫刻に、写真を絵画にしたりすることです。翻案はいろいろあります。文章の要約、児童向けの書き換え、プログラムのバージョンアップなど。

二次的著作物は著作物の許諾が必要です。二次的著作物の利用は二次的著作物の作者+原作者の許諾が必要です。

編集著作物。12条では素材の選択や配列に創作性を認めます。抽象的な選択配列方法自体は保護されないです。個々の素材については利用の許諾を得ないとダメです。権利侵害は、選択や配列を利用しているかどうかがポイントになります。一部の著作物が利用されているだけだと権利が働きません。

データベースの著作物。編集著作物に似てますが、性質が異なるので分けられました。情報の選択や体系的な構成に創作性を認めます。編集著作物は並べ方とか空間配置でしたが、データベースは検索性がポイントになります。個々の素材と全体の権利関係については編集著作物と同じです。創作性のないデータベースもあります。単に全件並べただけとか、だれでも思いつく方法とか。でもそういうデータベースにも労力がかかってる。ヨーロッパでは創作性のないデータベースにも独自の権利を付与してますが、わが国では何の権利もないです。

最後に、権利の目的とならない著作物について。法律や条約、通達、判決。翻訳したもの(地方公共団体のみ)。民間が作ったものは保護対象になります。

第3回

著作者について。著作者は著作物の創作をする人です。著作者人格権は一身専属権で譲渡できませんが著作権は譲渡できます。依頼した人は創作者にはならない。

創作した者、は、著作物に寄与しないとダメ。ワープロで打ちこんだだけの人は含まれない。口頭で話したものを誰かが文章に起こした場合も、口頭で話した人が著作者。固定要件がないから。書き手が独自の文章表現をした場合は(二次的)著作者になる。関与の程度が考慮される。SMAPインタビュー記事事件や静かな炎事件を見よ。インタビューを編集して取捨選択したり訂正した場合は、インタビュアーは補助者ではなく創作者と認められ、インタビュイーと共同著作者とみなされた。

無方式主義について。真の著作者をどう証明するか。特に未公表のものはどうやって証明するのか。名前を表示しておくとか防衛策とっとけとのこと。

相対性。偶然同じもの、類似のものができても独立して保護されること。特許との大きな違い。じゃあどうやって保護されるのか。侵害訴訟では相手方が複製かどうか立証しないといけない。著作者名を表示しておくと立証責任が相手に転換される。

他人を著作者とする契約は無効(著作者は変更できない)だが、著作権は譲渡できる。

共同著作物、共同著作者について。複数人が関与すれば共同著作物というわけではない。複数人の寄与が融合していて分離できないことが必要。補助的に参加している人は含まれない。分離できる場合は、集合著作物になる(法律上の用語ではない)。第1章がA、第2章をBが書いた場合など。共著、はどっちの場合もあり得る。歌詞と曲についても、それぞれ独立なので結合著作物といわれる。

共同著作物の権利行使については、バラバラにされると困るのでルールが定められている。著作者人格権の行使には全員の合意がいる(64条)。発表、氏名表示、改変のこと。ただし保全は一人でできる。話がまとまらない場合はどうするか。各人は合理的な理由がなければ合意の成立を妨げられない。また、代表者を定めることができる。冒認を信頼した第三者は保護される(民法と一緒)。

共有著作権について。一部が他人に譲渡されても共有と一緒。民法の準共有に関する規定が準用される。著作権の行使には他の共有者の同意がいる。こんなふうに共有には結構重大な効果があるので、著作権の譲渡には共有者全員の同意が必要。合意の成立は「正当な理由がなければ」妨げられないと、著作者人格権よりも厳しい。

職務上作成の著作権について。雇用者や法人は一定要件で著作者になれる。例えば作業報告とかの著作権は雇用主に帰属する。著作者人格権も雇用主や法人に移る(まじで!?)。合理性があるから(!?)。どの著作物の権利が移るかはルールを設定可能。要件について。まず法人の発意によるものであることが必要。形式的に事後報告だから発意じゃない、っていうのは認められず、実質的に発意に基づくかが大事。「職務上」は。雇用関係が必要。これも実質が大事で、派遣だと雇用関係じゃないので、派遣先との関係になる。職場で作ったものでも自分のためだけのものだったら含まれない。あと法人の名前を表示しないとダメ。将来的な話でもOK。さらに勤務規則等に「個人を著作者にします」って書いてない必要がある。

映画の著作者について。プロデューサーとか監督とかいろいろいる。著作権法的には16条で、監督とか美術とか全体的に寄与した者が著作者と規定されている。つまり共同著作物。でも29条によって原則的には参加約束をした映画会社とかに帰属する(今なら○○制作委員会か?)。15条による職務著作に該当する場合も多い。

第4回、第5回

(ランニング中に聴くことにしたので以後メモは適当)

著作人格権と著作権。著作人格権はわりと強い権利で、改変もできないし名前も表示しないといけない。でも制限規定という例外が多数設けられているので実社会上摩擦が避けられているという印象。例えばBGMで音楽流すときは名前なんていちいち出さないが、やむを得ない場合は許されるという例外規定を設けてそれなりに社会が回るようにしてある。

著作権は支分権がとても多く、やはり原則の権利自体は強い。細かい例外規定をいちいち覚えないと正確な射程がつかめない。しかし先生も根気強く覚えていってね、と言ってくださっているので、そのとおりにしようと思う。

著作権はネット時代に合わせて急速に変革を迫られているが、全然追いついていない。例えばキャッシュに著作権が及ぶか。学者がITに暗く、従前は世界的に的はずれな立法(キャッシュには著作権が全く及ばない)がなされていたという。

オンデマンド型の著作物公衆送信についても、送信可能化権をめんどうくさく細かく規定しているらしいが、もっと包括的に実装できるはず。世界的にも稀らしい。柔軟性もない。場合分けしたって複雑になるだけでいみないやん。もっと概念を洗練しろよって思う。固定要件とか放送の概念が狭いことが問題なんじゃないんか。特許法みたいに物にプログラム含むとか、概念の修正でなんとかならんのか?支分権が多いのも面倒ね。

第6回

著作権の続き。今回もたくさんの支分権について。頒布権って映画の著作物に特別に与えられた権利だけど、ゲームとかストリーミングとかの権利関係は実際のとこどうなってるのかな。あと還流レコードに時間割いてたけどもう滅びてると思う。法整備が進む前に流行りが終わってしまうこともよくあると思うのだけど、日本は法整備遅めな気がするのは、成文法ベースだからか?判例重視の米国ではどーなってんだろ?あっちは州ごとに管轄も違うし無駄に複雑に見えるから、成文法どっちが効率的かはよくわかんないな。

第7回

著作隣接権。著作権より狭く、場合によって規定がばらばらなのが特徴。業界団体の圧力で法整備が進んだという経緯のせいらしい。たしかにレンタルCDの要請で貸与権1年とか、謎の規定が多い。

既得権益の感じが強いので、例えばストリーミングの台頭とかで一気に情勢が変わったときに弱そう。

作花先生、権原を「けんばら」と読むのは「権限」と区別するためだからわかるんだけど、業務の業を「とが」って読むのは業界用語なのか?「ごう」ならまだわかる。科料の科と勘違いしてるのではないか。。

第8回

権利制限の1回目。著作権法は本当にいっぱいの制限があって、一つずつ細かい穴をあけていくような感じ。国立国会図書館が偉大だということと、絶版の古い書籍は公立図書館でオンラインで見られること、学校では著作物は使えるが塾はダメ(とは言ってなかったが学校の定義に入らないから駄目だろう)、ビッグデータやディープラーニングの解析のための著作物利用はOKってことがわかった。

第9回

権利制限の2回目。ほんとうに細かい規定ばかりで苦しい。法改正のたびにいろいろと積み重なっていって、複雑ではないのだが覚えることが多すぎ。例えば47条の6「送信可能化された情報の送信元識別符号の検索等のための複製等」とか一見意味不明だが、要するに検索エンジン上の著作物の取り扱いのことだった。一々例外を作っておかないと問題になるところが著作権のめんどくさいところ。もっと一般的規定にしろよ!と思うが、裁判例だけで議論を積み重ねていくのももっといやだな。

第10回

存続期間について。存続期間は他の知的財産権と同様、著作物の利用と保護のバランスをとるためにとても大事なところ、ということだそうだ。でも存続期間がなぜその長さなのかの理由ってよくわからんよな。死後50→70年になった本当の理由は何なんだ?

海外情勢的には2世代に著作権料を払うためで、寿命が伸びてきたから70年にしたんだって。なんやそれ!

第11回

利用について。著作権は権利だから対価を受けて(または受けないで)許諾をすることや譲渡をすることができる。著作者人格権は一身専属なのでだめ。

翻案権等が残存するってなんだ?よくわからん。

権利管理団体が必要なのはわかるが、JASRACみたいにすげー権限でかくなるのは解せない。ただ最近は登録制の事後チェックになり、ゆるくなったらしい。使用料の分配とか一体どうなっているのか?具体的に知りたい。キンドルアンリミテッドみたいなもんだよな。

拡大集中許諾制度よくわからん。印刷教材みるしかない。裁定は特許と同じやね。でも供託金いるのか。ただ排他的権利を制限するのは条約的に問題あるらしい。ただ今は古い動画の著作者不明のものを使いたいから、裁定が見直されてるらしい。

第12回

侵害と救済について。ほぼ特許と同じ規定であまり面白みはない。無体物の特性を鑑みて民法の不法行為よりも救済を手厚くしているという趣旨なのは同じ。特にダウンロード周りの規定がいちいち細かいが、徐々に侵害が認められやすくなる方向であるというのは感じられた。

第13回

国際的保護について。条約は基本的に全世界で守る著作物保護の最低ラインという位置づけだが、実演家レコード条約ではレコード会社が過剰に保護され、国際的に強い企業(アメリカと思う)の圧力がそのまんま通るという、国際法でありがちな強者論理がまかり通る状態になってた。やっぱ選挙で縛られる国内法と違って、ゆるい道徳しかない国際法はつらいものがある。

第14回

著作権の歴史。著作権のはじまりのとこは興味深いが、現代の改正のとこはいままでの内容とめっちゃ重複している。映画の保護期間70年延長の問題は、2回聞いてもわからん。印刷教材で読んどこ。発達障害の人のための制限規定は知らなかったな〜。私にも使えるかもしれん。

TPPはやっぱ保護機関の70年延長が一番インパクト強いよな。改正のときアメリカの強いコンテンツの保護だって言われてたけど、理屈としてはホントはどうなんだろね。

今後の話。情報化に対応して円滑な利用が進められることを先生は願っている。

著作権は時代遅れ論とか具体性のないパラダイム転換とか大風呂敷を広げた論は、目新しいだけで法の歴史を無視しており現実的でなく、全く意味ないと言いきっている!!先生かっこいい!!

第15回

現代における課題。雑多な話題の回だった。

まず私的利用と業との関係について。カラオケキャッツアイ事件、放送ではわかりにくいが大事な判決なので後で読もう。クラウドサービス上の著作物をアップするのは私的使用の範囲内でよいらしい。

貸レコード業→貸与権の流れだったのか。中古ゲームソフトは劣化のないデジタル物というとこがポイントらしい。

違法行為のプロパイダ責任。きほん責任を負うのは酷なのでナシ。権利侵害告知があったら消そうね〜くらいらしい。P2Pソフトを作ったやつの責任はどうか(ウィニー事件?)。米国のブログスター事件は作ったやつが負けた。日本はファイルローグ事件で責任を認めた。ウィニー事件は映画を送信したやつは責任を追ったが、作ったやつの幇助は認められず。無罪。ウィニー事件は確か本が最近出てた。読もう。

日本にはフェアユース規定がなく検索エンジンがしょぼいという見解は不当という話。先生はアメリカの事情を考えるべきといってる(ようわからんので印刷教材読もう)。

グーグルの検索で出てくる短いスニペットはどうか。フェアユースに該当するらしい。フェアユースってなんだろな。変容的利用に過ぎないってさ。米国著作権法にも手を出してもいいなあ。日本でも権利制限規定の一般的なやつを導入すべきという意見もあるらしい。研究開発を円滑にするには必要だね〜と先生〆て終わり。

放送大学全科目感想 004 小学校プログラミング教育概論(’21)

  • 情報コース
  • オンライン授業
  • 中川一史先生(放送大学教授)
  • 小林祐紀先生(茨城大学准教授)
  • 難易度 ★☆☆☆☆
  • おすすめ度 ★★★★★

初のオンライン授業。放送授業を8回に縮小し、さらに各回を細かく切って、練習問題を挟む感じ。小テストは1-4回、5-8回で先生が違うからか、難易度がだいぶ異なる。課題レポートは400字ですぐ書ける。

すでにモデル校で行われているプログラミング教育の実例を担当する先生の授業がすばらしく一見の価値あり。最も見ごたえがあったのは第4回の柏市立富勢西小学校の動画。残念ながら文科省のポータルでは紹介されておらず、この授業を履修しないと他に見る方法はない。でもポータルでは多数の事例が紹介されているので、今の小学生が何をやっているのか、一度見てみてほしい。

実施事例A一覧 | 未来の学びコンソーシアム (miraino-manabi.jp)

10数年後、彼らが社会に出た時が楽しみだ。

第1回

中川先生やさしそう。前半は学習指導要領の解説と、後半は事例を通した理解だそう。

まずなぜ学習指導要領が変わったか。情報化による社会の変化に対応し、より良い人生を作っていってもらうため。AIが仕事を奪う、のは言いすぎやろ。

生きる力とは。出来ることを理解、思考力を育成、人生へどう活かすかの三段階。小中高でプログラミング教育にも段階がある。小学校で論理的思考、中学校ではネットワーク利用、高校では情報1が必修(!)。小学校ではプログラミング言語を覚えるわけではない。プログラミング的思考を、無理なくやるというのがねらい。

プログラミング思考とは?自分の目標のために、どういう動きを組み合わせていくか、記号を組み合わせればいいか、どう改善したらいいか。要するに、コンピュータを道具にして、問題解決をやらせるのね。領域横断的とされる。なんかぼやっとしてよくわからんな。

学習活動の分類。6つある。指導要領に基づく単元の他、各教科内(算数、理科とか)でやるもの、クラブ活動、教育課程外のものもある。手引きでは、プログラミング言語自体は覚えさせる必要はないが、体験させるのはいいね、とのこと。

留意事項。5年生では正三角形を描くプログラムを作るらしい。これが想定。これと動作(現実)、実際(理想?)のサイクルを回す。てきとうに命令の組み合わせをさせるのではなく、論理的になにがまずかったか考えさせること。難しいなー。ねらいの実現のためには、プログラミングでどのような力を身につけたいか明らかにし、改善を行うこと。

教科活動の延長からアプローチしてもいいし、プログラミングに慣れ親しませるところから始めるアプローチをとってもいい。学校にけっこう裁量があるみたい。手引きは絶対よめ!とのこと。読みます。プログラミング教育ポータルというのもある。ハンドブックも読め。

文部科学省 小学校プログラミング教育の手引き

https://www.mext.go.jp/content/20200218-mxt_jogai02-100003171_002.pdf

プログラミング教育支援ハンドブック(中川先生が書いてる)

https://ictconnect21.jp/ict/wp-content/uploads/2019/05/PHB2019_n.pdf

第2回

学習活動の分類。A~Fがある。単元内、教育課程内、クラブ、学校外とか。

今回はAの単元内でやるものについて。5年生で、正多角形をプログラムで書くらしい。

実際の例。まず分度器や定規を使って書かせる。するとうまくいかないのを実感できる。

次はプログラミングで作図。scratchを使ってる。むずかしそー。100歩動かす→90度回す→1秒待つを4回繰り返せばよい。4回繰り返す、を効果的に使えば短く済む。

意図→プログラミングの意欲が高まる(まじか?)

scratchを動かす実例がみられてとてもおもしろい。パズルをはめるような感じなんだね。

次は正三角形を作図。線を描く人を60度回すのではうまくいかない。120度回さないといけない。ここはつまづきそうだね。

発展項目として5以上の正多角形を描く。一つの角の大きさを180度から引かないといけないから、なかなか高度な感じがする。例えば正五角形なら180 – 108 = 72度となる。繰り返す回数も5回になる。

文科省の考えるプログラミング思考は次の通り。意図を明確にする→順序を考える→記号に置き換え→どうすれば意図する動作を実現できるか考える→試行錯誤する。なんつーか文章書くのとあんま変わらなくない?

ねらい→論理的思考力+作図が正確にできるとか。そりゃそうだな

次は6年生の物質・エネルギーについて。電気を取り上げる。柏市立第三小学校。

電気を無駄にしないプログラムを考える(!?)まずみんなにディスカッションさせてる(おもしろい)。

scratch使って、マイクや明るさセンサーを操ってる。明るさが50%になったらライトをつけるとか。6年生自在に操ってるんだけど!??小学生すげーーーー。ライトの話だけどなぜか楽器を鳴らしてる子もいたりしてたのしそうでした。プログラムの意図を説明させたり、プログラムの面白いところを先生が褒めたりしてる。

次は総合的な学習。暮らしとプログラミングの関係について考えるそうだ。自販機の制御やタッチパネル案内の制御について、手引きに書いてあるらしい。

授業例。便利な社会のために新しい道具を作る。プレゼンもする。MESHを使った。スマホやタブレット上で命令を作り、ボタン同士をつないでカメラやライトを操ったりできる。

プレゼンでは、犬型出迎え装置、鍵の閉め忘れ防止装置、ティッシュの残量報知器(人感センサに50回触れるごとにLEDの色を変える)などができたそうだ。すごいなー小学生。発表会もやったらしいよ。付箋で良さや改善点をボードに貼る(問題解決の進め方’19でやったのと同じ!!)こともやってた。

留意点。プログラミングはプログラミング自体が目的ではなく、教科のねらい達成が目的。評価も同じ。意欲や工夫を児童に伝えること。適切なレベルのものを選択すること。

第3回

次はB分類、学習指導要領外のもの。6年生の算数。横浜市立北山田小学校。

なんか文字式やってるんですけど。。x * 3.14 = yとか。

謎のキャラを登場させてxに値を入力するとyが出てくるようなアプリが出てきた。

プログラムのことをみんなAIって読んでる。小学生はAIが好きなんだな。

プログラムと電卓を比較してる。プログラムはタッチする→「xの値は?」と尋ねる→答え(y)を言ってくれる、というプロセスになる。先生が黒板にカードを貼って解説してる。

次はiPadを使って、プログラミングゼミというアプリでブロックを組み合わせてる。ああ、さっきのプログラムを自分の手で作らせてるのか!!

タッチ→質問→計算する→しゃべる、を組み合わせればよいので、これをヒントを出しつつ自分の力で組み合わせさせてる。半分くらいの子ができてる。

次はオリジナル問題を作らせてる。みんな頭いいな――

最後に先生が、プログラムの知識があっても、数式の意味が分かってないとプログラム組めないよね、ということを言って、学習指導要領の留意点(教科の知識がないとだめだよー)をおさえつつ〆ました。

児童の立場からするとやっぱりキャラが出てくるのがいいですね。また、プログラミングはあくまで教科目標達成のための手段という位置づけ。あとプログラミングはおもしろいよね!ということを実感させるのもよい。先生これマスターするの大変だな。ものすごい準備に時間かかったと思います。頭が下がります。作成したプログラミングは1を代入したりして動作確認もしてる。エンジニアの鑑です。

端末は途中から配る。時間制限が来たら端末は伏せる(重要!!)。あとほめる。

次は5年の社会。また北山田小学校。自動運転の話の延長上で、ロボットカーをプログラミングするらしい。

いきなりif – endifの話してる。while – end whileが無限ループって全員知ってるのか。。素晴らしい時代だぜ。。

車が左にはみ出したら(if)→右に曲がればいい(then)。センサーを使って判定しよう、と言ってる。

C-style という教材を使って実際に動かしてる。すげー。iPadでセンサーの数値のリアルタイム追跡をして、プログラミングした結果を直接机の上で見られる。車が動いてるからみんなエキサイティングだ!!

しかしなかなか難易度が高かったようで、うまくいかなかった子が大半。といっても中にはif-thenを余裕で操れる子もいた。

自動運転→プログラミングの必然性まではいい感じでしたけど、ロボットカーでは児童の興味関心はうまく引けたが、自動運転の意義からはだいぶ離れた感じしましたね。

レビューではプログラミングが難しい→自動車開発って大変なんだな!と気づかせられたのでOKと言ってる。まあそうか。

次は3年(!?)の外国語。また北山田小学校。

いきなりgoalのスペルが間違っていてgoleになってるのが気になる。

ってか3年から英語かーはやいな。そして、英語の道案内をボイスメモから聞き取りつつC-styleでロボットプログラミングしている。道案内通りのプログラムをしているようだ。高度過ぎる。

授業の終わりは English Finish!! なのか。

一発で目的地に到着するのは難しいからみんな試行錯誤している。しかも楽しい。最高じゃん。ペアでプログラム組ませるから、話し合いが強制になる(相手が悪いと大変そう)。

最後に3年国語のへんとつくり。Viscuitを使う。へんとつくりが別々に動いてぶつかると漢字になるプログラムを作る(!?)。タッチパネルでへんとつくりを書く。赤がへん、青がつくり。ぶつかると漢字になる。で、アニメーションを作る(ここらへんは自動)。これはプログラムと呼べるのか微妙だけど、見てて楽しい。

他にも1年の生活科でロボットを使って通学路を覚える、4年の理科でモーターカーを自動で動かすプログラムなどがある。やはり、教科のねらいを第一にするところが大事。

第4回

B分類2回目。次は6年の図工。柏市立富勢西小学校でパラパラアニメーションを作る。

みんなマスクしてる。

先生のお手本。パラパラマンガにAとBの分岐を付けてる。どうも全員にAとBの分岐をつけさせるらしい。これだけだと簡単なようだけど、全編Scratchでやらせるので結構難易度高めに見える。

ただ1→2と進むだけでは一瞬で絵が切り替わるのでWaitを入れないといけない。forも入れてる。分岐を入れるにあたり、AボタンとBボタンを配置する。ところが、AとBは最初から表示されていると困るので、AとBを最初に隠すようにしないといけないし、途中で表示して、押したらまた消えないといけない。うわーーめんどくさい。先生も説明するの大変だ。AボタンBボタンは「スプライト」という名前がついてるけどみんな分かるか?スプライトってどっちかというとゲームプログラミング用語だよ!?

それにしてもみんな絵がうまいな。先生もスキル高杉。IT企業でも有能な社員として活躍できる。

発表の時間。洞窟に入ったり入らなかったり。分かれ道に来たらBボタンが点滅している。点滅させるなんてなんという高スキルなんだ。そしてBを押すと落とし穴に落ちて死亡。Aが正解。次の子はAとBのどちらかを選んだあとなぜかCが出現!!これは「10秒経ったらCを出す」という命令を出したから。小学生すげーーーー

3時間で絵を描かせ、残り2時間でプログラミングをして発表、5時間でやったらしい。図工の特性をうまく生かしている、プログラミングの必然性があってよい、創意工夫が進む、子どもたちの困り感を上手に解消している、自分で考えさせている、ヒントカードも適切、説明も丁寧かつ必要十分、と授業がめっちゃ褒められている。ねーこの先生有能すぎだよね。うちの会社に欲しい。

次は5年生の音楽。同じ小学校の同じ有能先生。

琴の旋律を作って演奏!???

まず手拍子でリズムを確認。今回はscratchにテンプレを導入、音の高さだけ変えればいいようにしている。っていうかこれほぼほぼ作曲ソフトじゃないか!??

日本音階だからレとソを使わない、だからレとソを使わないようにプログラムを改造してくださーい!!!????仕様変更ですね。小学生にデスマーチを体験させている。しかし先生が有能なのでみんな全然つまづかないし楽しそう。あと、本物の琴も演奏してる!!柏市すばらしいな!!

そして最初に確認していた通りの複雑なリズムに則り、みんな立派に作曲し、全員が本物の琴で演奏している。。すばらしい。。。先生神や。。

最後に全員に振り返りを言わせてるのもいいな。私はこういうの苦手でいやだったけど、今思えば機会があるのはいい。そして、プログラミングは、あくまで作曲の補助と位置付けられているところも神。発表は楽器だからね。

大学の先生によるレビューもべた褒め。2人で1小節ずつ作らせたので、片方だけが操作することを防いでいる。できないとあきらめていた子も最後までできるようになった。演奏が苦手でもプログラミングによる補助で作曲・演奏までやり遂げられた。また、テンプレを使ってプログラミングを最小限にしたところもほめられている。

最後にViscuitで花びらを作り、72度ずつ回転させて5枚にして、灯ろうのデザインをするという授業。しかも地域のイベントで発表している。プログラミングを道具と位置付けるとても実践的な授業です。

創造と想像の力をはぐくむプログラミング教育ですねーと先生。すげーですよね

避難訓練のときに、自分の行動を分解して考える(if文で分岐か!?)というのもあるらしい。なんていうか仕事に直結する感じですね。

小テストは1~4回までずっとプログラミング教育の手引きを読ませる感じでした

第5回

コンピュータを使わないプログラミング事例について。先生が変わった。

まず考え方について。狙いの確認。「プログラミング的思考」が大事。自分が意図することを実現するために、記号をどうやって組み合わせればいいか考える力だそうです。何度も言われているようにプログラミングは教科の補助(とは明記されていないがそういうことだと思う)です、といわれている。年間に取り組む単元は3つまで。発達の段階を考慮しながら繰り返しましょうと言っている。これはすべての学習に通じることですよね。

コンピュータを使わない授業を実施する必要としては、コンピュータを使う回数が少ないから。使わないでプログラミング的思考を補完するような授業が必要になる(そんなにたくさんやるのか)。プログラミング的思考は、順序、反復、分岐、抽象化・細分化だそう。これどうやって教えるんすかね。

小2の算数の事例。すごろくだね。おなじみscratch的なカードが見える。那珂市立芳野小学校。

ねらったマスに進めるようにカードの組み合わせを考える!??小2なんですけど

指令は、270のマスに止まれ!とのこと。めっちゃ楽しそうだなー。手持ちのカードは100すすむ、10すすむ、10もどる、?回繰り返すの4種類。繰り返す、を使えばかなりのバリエーションが期待できそう。

すすむ、だけを組み合わせる子。数えるのが大変だけど頑張った。

100を2回繰り返す+10を7回繰り返す。明解だね。

100すすむを3回、10を戻るを3回。これもあり。

で、先生は「繰り返し」を使えばステップ数が少なくなるよね!?という誘導をしている。すばらしいですね。

次はペアで問題を作る→カードを組み合わせる、で分担する。繰り返す、を使いこなす子は半分くらいか。なかなか難しいみたいだね。100すすむと10すすむをひたすら重ねる子が多いでした。

先生自身の振り返り。繰り返しの考え方を教えたかったらしい。コンピュータがまだ難しいのでまず考え方に慣れさせるという意図もあった。朝の会帰りの会で繰り返しについての動画を見せたりもしているらしい。先生まじで神(みんなそうなんだろうな)。

6年生理科。リトマス紙の性質をフローチャートを使って酸性・アルカリ性・中性を振り分けている。工事現場みたいですね。プロセスを可視化することが目的。発表が苦手な児童でも行けるというのが利点。なるほど。

1年生の給食準備。やはりフローチャートを使う。「給食当番か?」で分岐したり、「コップに水をくむ」などを組んでいく。目的は給食準備をはやくして、休み時間も長くすること。

算数。二等辺三角形の書き方を可視化して、説明させる。見通しがよくなるのでいいですね。

フローチャートは道具であるということを大事にせよとのこと。コンピュータを使わないプログラミングの教育のポイントは、必要感(給食の時間が長いとか)、有用感(できなかったことができる)、相互作用(たがいに説明しあう、新たな方法を見出せる)。

プログラミングを学ぶ授業、教科達成のためにプログラムを利用する授業、コンピュータは使わないがプログラミング的思考を使う授業、をバランスよく実施することが望まれるという。前の2つをメインにせよ、ということ。なるべくコンピュータ使ってねってことか。この回で取り扱った授業はあくまでサブという位置づけなのね。

第6回

先生の髪型が変わった。今回はプログラミング教育で使用する教材について。

種類。ソフトウェア型はScratch, Viscuit、MakeCode, プログラミングゼミ、プログル。ブロックの組み合わせであることが多い。こっちがメインになる。ほとんどがブラウザ上で動く。しかも無料。

ハードウェア型はロボットなどを使ったもので、MESH、ArtecRobo、レゴWeDo、micro:bitなど。ほとんどが有料(そりゃそうだ)。教科書にも出てくることが多い。

ソフトウェア型の説明。まずScratch。MITが作ったのか。共有機能があるので世界中で作品を共有できる。

Viscuit。完全ビジュアルなので手続きを明確に示すことなく動く。幼稚園でも行ける。

Swift Playgrounds。アップルのやつだね。画像がないのでよくわからん。iPadですね。

Hour of code。ウェブ上の学習サービス。子どもに見せられそうね。

杉並区立西田小学校の事例。またScratchを使った5年生の多角形のやつだ。内容は第2回と大いにかぶってる。

次は府中市立府中第三小学校、Viscuitを使った3年生の授業。C分類で、たまごから何かが出てくるようなアニメを作るようだ。

次はScratchを操作(あとで私たちもやる)。先生が操作方法を解説してくれる。スプライト、ペン、x座標、y座標など独自の用語がたくさんあるね。テンプレを先に作っておくと楽です、そうだね。ペン→直線を引いたりするやつ。ペンを上げる→線を引く機能をオフにするってことか。旗→Runとおなじ。1秒待つ、がないとプログラムが一瞬で終わるので、大事になるんだけどデフォルトで実装してほしい。。

次はViscuit。先生がペイント様のソフトで魚を描いた。眼鏡ツールを出してキャラをずらして配置すると動く。2つ眼鏡を出すと動作が和で表現されるので複雑な動きもできる。ずらす、ってところがなかなか難しいと思うけど、慣れたらおもしろそうね。

ハードウェア型。レゴWeDoから。ビジュアル型プログラミング言語でレゴを動かす。

アーテックロボ。ブロック+ロボット+Scratch様のブロック型プログラミング。

micro:bit。BBCが作ったらしい。イギリスの11-12歳に無償提供された。USB経由でプログラムを送る。なんとテキスト型プログラムにも対応。

三鷹市北野小学校、小6理科。電気を無駄なく使うことについて。レゴWeDoを使い、トイレの照明のon/offを作ったらしい。

試行錯誤について。思い付きや当てずっぽうはだめ。どこが間違っていたのか論理的に考えさせるように誘導する。

実践についての留意点。体験を言語化せよ。たとえば、変更点→結果をワークシートに書かせる(大事だな!)。あと、必ずグループワークにせよ。もしくは意見交換の機会を与えよ。学習意欲、課題の達成に効果があることが証明されているらしい。

レゴWeDoを先生が操作。レゴでできた扇風機を動かす。まず回転8。おおbluetooth越しに動いてる。赤い光+回る+黄色い光、を繰り返させると点滅しながら扇風機が回る。これは楽しそうだ。

次はmicro:bit。センサーがいっぱいあるね。ブラウザ上でプログラミングする。Scratch用のブロックがいろいろあるね。ブラウザ上でmicro:bitのシミュレーションがある。LEDの光るパターンがいろいろある。ずっと(whileだろーな)で4パターンのLEDの点滅を繰り返し、ハードに転送して実際に光らせてた。

小テストは簡単になりました。

第7回

先生の髪型が戻った。

今回はC(教育課程内だが教科外)、D分類(クラブ活動など)。題材は校外学習との連携について、石川県小松市の事例を紹介する。

2時間事前学習した後、科学館で2時間、レゴマインドストームのプログラムを組む。最後に1時間使ってレビュー。

科学館のおじさんがセンサー、アクチュエーターの説明をしている。アクチュエーターは実際に動くところ。ロボットが配られて、みんなわくわくしてる。やはり2人のチーム。ペアプログラミングの手法が徹底されている。

まずは音を出すだけのプログラムを組んで転送。みんなノリノリになった。

次は前に動かしたり後ろに動かしたりしてる。ちゃんと組んだ通りに動くからたのしいね。

さらに曲げたり回転したりする。回転角度も調整できる。

次は課題。曲がった道を落ちないで渡り、ゴールにおいてあるブロックを倒すプログラムを組む。みんな前に進む長さを2, 2.5, 3などうまく調整していってる。ブロックをぎりぎりで倒せたり、倒せなかったりしてみんな大興奮してる。ほぼ全員が成功。

次はブロック1か所+複雑に曲がったあと所定の位置で止める。バックを駆使し、曲がる角度の調整、パワーの調整もしないといけないのでたいへん。途中で無駄に回転してしまったり、バックで行き過ぎたりなかなかうまくいかないけど、みんな試行錯誤しつつ、一歩一歩前に進んでるなー。そしてとうとう1グループが成功!!やったーーー!!最終的に半分くらいのグループが成功した。

科学館の教育員さんにインタビュー。プログラムが組めるとみんなの目がぱっと変わる瞬間が見えたと言っていた。いいひとだ。デジタル/アナログのつなぎ目になることがいいですねと言っていた。いろんなものにプログラムが入っていて誰かがそれを作ってくれているのが分かってくれるといいし、段取りや先の見通しの能力が一人でも育ってくれると嬉しいな、と言ってた。

先生にもインタビュー。すべての学校で同じ水準の教育は与えられないので、科学館で質の高い授業を提供できることがよい点。プログラミングだと意欲が上がってみんなやりきることができた、というのがよかったそう(普通の授業だとあきらめてたはず)。ペア学習はも全員が参加できるという利点も挙げていた。

授業をプラニングしたインストラクターさんにもインタビュー。机上の学習だけではだめだから体験させないとダメ、試行錯誤した達成感を味わったことがよいが、日常にどう結び付くかまでは定着しているかというと怪しい、というのが課題。今後も正多角形、電気のところでプログラミングを使うことが多いらしい。

質問紙(アンケート)によれば授業後で興味・関心や苦手意識など8項目が全部平均点がアップ、特に興味・関心や、身の回りの生活に役に立つかどうか、の得点が上がっている。

授業パッケージの意義は、今まで述べたことにプラスして、教師がプログラミングに疎くても、教師自身のスキルアップになることにもある。

次はクラブ活動。特別活動は自主・実践が原則。また、異年齢・協力もキーワード。組織や活動計画は児童が行うということ。でも、計画の支援や、児童が興味・関心を持つような指導はする。ハードウェアに関心が集中しがちなのでソフトウェアにも誘導する。グループも編成させたりする。成果の発表も必要。コンテストに応募するとか、何か目に見える形で成果を残したい。

実施例はなし。残念。今後に期待ですね

第8回

プログラミング教育推進の取り組みについて。

まず教員研修。やっぱみんなプログラミング知らんよな。一番大事なのは研修したことを教員が実践できるかどうか、ということらしい。

教育委員会による研修から。そもそも教育委員会はプログラミング分かってんのか?授業のできる教員が模擬授業をやるのでそれを見るらしい。予算も大事。教材高そうですものね。実践教材に「音楽 2年 リズムパターン」って書いてあるんだが2年生は作曲できるようになるのか。。

悉皆という言葉を学んだ。全員ということ。研修では講義はもちろん、Scratchを体験したりグループワークを教師自身がやる場合もある。

取り組み例。大学教授や民間企業を講師として招いたり、動画を見せてもらったり、モデル校の公開授業に参加したりする。年3回やってる。今回の授業で見た先生はスーパー先生すぎたのでやっぱり全員が全員そうではないよなあ。プログラミングだけではなく授業方法、教科と関連していることも全部大事になるし。

校内研修。小規模で強制力が弱い。でもニーズに応じた研修ができる。校内でやるから教員同士が仲良くなれる。

研修を評価する視点(一般的なやつ)by カーク・パトリック。ステップ1:反応(アンケートとか)、ステップ2:学習(理解を問う。テストやレポート)、ステップ3:行動(実践につながったか。すげー大事)、ステップ4:成果(学習者にどのような影響があったか)。以上の点から研修企画者が評価すべき。

これを押さえると、まず教員への聞き取り調査でニーズを把握するべき。授業はどうやるのかとか、そもそもプログラミングって何とか。ニーズはこれかなーってなんとなく決めるではだめ。ちゃんと聞くこと。付箋紙とかでいい。

研修はどういう組み合わせにするかも考えないと。講義→体験→模擬授業研修とかね。一例で、グループワークでPMIシートを使って付箋紙で意見を集める(これも問題解決の進め方でやったやつだ!)。近隣の中学校の教師や教材の担当者、地元のプログラミング教室の講師を招いたりしてもいいね。

フィードバックはとても大事。でも上司と部下っていうより同僚同士でやろう。話題にしたり職員会議で紹介したりするのがよい。

ひと・もの・ことの視点からの整理。ひと→教師、ICT支援員など、こと→研修など、もの→教材、モデル事例、ICT環境そのもの。

ひと。ICT支援員は2800人いるらしい。結構集まるそう。

もの。教材は以前やった分類と同じなので略。今回の授業でつかった実践例は文科省のポータルに全部あるらしいよ。

こと。プログラミングが苦手な教師はどうすればいい?という質問に、文科省は、まず手引きやサイトを見てプログラミングが難しくないことを実感せよ、要は論理的思考なんだから、あなたたちの経験、指導のノウハウも生かせるよ、先入観を捨てよと言ってるね。教師が論理的思考できてないとだめだね。みんなしてると思うけど。

最後に課題レポート400字。それほど難しくなく終わり。

放送大学全科目感想 003 音を追究する(‘16)

  • 人間と文化コースなど(他コースでも共通)
  • 総合科目
  • ラジオ講座
  • 大橋理枝先生(放送大学教授)
  • 佐藤仁美先生(放送大学准教授)
  • 岸根順一郎先生(放送大学教授)
  • 高松晃子先生(聖徳大学教授)
  • 亀川徹先生(東京藝術大学教授)
  • 坂井素思先生(放送大学教授)
  • 難易度 ★★☆☆☆(放送授業は★☆☆☆☆)
  • おすすめ度 ★★★★★

あちこちに貴重な音が入っているので倍速再生するのが勿体無い科目。放送大学ではおなじみの大橋先生と佐藤先生が聞き手になるラジオ番組形式のため、非常に聞きやすい。文理横断型の総合科目で、音に関して幅広い知見が得られる。個人的には理系の話が基本的すぎて物足りなかったけど、あんまり専門的にしても聞き手がついていけないからしょうがない面がある。印刷教材でも特に岸根先生の回の記述が控えめになっており、他の人と同様にもっと突っ込んでほしかった。放送授業のおすすめは6-8回目の高松先生担当の講義で、演奏例が非常に豊富で面白い。

第1回

イントロ。まずは先生の紹介。

岸根先生は物理学の先生。合唱団所属のこと。音波という観点から教えてくださるそう。バッハ無伴奏パルティータが好き。ギター編曲もあるらしい。蚊の羽のうなりがにがて。

高松先生は音楽学。古いオルガンの音が聞こえてきたのを耳コピしてたり、吹奏楽と合唱を経験している。私と同じやん。イギリス音楽がご専門。馬の蹄の音を聞かせてくれた。周期的だが全く同じではないところが好きだそう。電車の発車音が途中で切れるのが苦手。最後までやれよ!と言う気になるらしい。

亀川先生は録音が専門。吹奏楽とオケ部に所属。企業→大学へ。好きな音は色々考えた結果、笹が風にそよぐ音を聞かせていただいた。窓ガラスを引っ掻く音はいや。

酒井先生は経済学の先生。経済と芸術の関係、運営など社会科学的アプローチも取っているそう。好きな音は弘明寺の除夜の鐘。落ち着くし共同体を連想させるし、音は人によって捉え方が違うのにみんな同じ音だと思っているのは何故か、を考えると楽しいですよねとおっしゃっている。苦手なのは国民保護サイレン。なんですかそれ。わざと不気味に作ったらしい。

佐藤先生は臨床心理学が専門、っていうか心理士。自分の語りがクライアントに影響を与えるので、音が重要だとおっしゃる。好きなのは沈黙。音のない音も重要とのこと。亀川先生も同意している。苦手なのも静寂。

大橋先生は異文化間コミュニケーションが専門。レコードをお父さんがかけていたので音楽には馴染みがある(環境は大事だな!!)。コミュニケーションで音声を使うことに興味がある。好きな音は波。海が遠かったので海が長期休みと結びついてるらしい(わかる)。掃除機の音がダメ。掃除も嫌い。

岸根先生の伝えたいこと。音波は空気の振動。音波と私たちの感じる音は別ものということ。プラトンとアリストテレス、ピタゴラスの話をしてる。アリストテレスは現象、ピタゴラスは物理的にとらえてる。

佐藤先生は認知心理学の知見から、インプットに対する感じ方の違いと違いを感じてほしいそう。

高松先生は楽器の話、縦と横の関係?の話で、音楽をたくさん聞かせてくれるそう。

亀川先生は音の響きと部屋、身の回りの音、記録された音と技術的な話。

大橋先生は、言語と音の関係の話。放送教材の特性を生かして実例をたくさんきかせてくれるそう。

酒井先生は社会、共同体と音の関係。教会やお寺の鐘、歴史的な事件と音の関係。音から共同体の意識ができていく過程について。うるさい、不快な音について。なぜ不快なのか。どう言う理由があるのか。

大橋先生は聞こえていない音を聞くのでなく聞こえてる音に気をつけてくれ、とのこと。好ましくない音が気になると大変なことになってしまう。

高松先生。大学院生のとき、小道沿いに小川が流れていた。夜真っ暗だったとき、小川の音が大きく感じた。音が道しるべ+警告音になるので真剣に聞いたそうです。

アツい教科ですね。音楽をスキップすると勿体無いので、次回からは等速再生にします。

第2回

岸根先生が物理的な音についての説明をする回。

まずは光と音の共通点と相違点について。音は人間が出せるけど光は出せない。光はシャットアウトできるけど音はできない。たしかにそうだね。音も光も見えないから、物理学的には水の波のアナロジーでいろんなことがわかっていったらしい。音は媒質が必要だけど、光はいらない。これは物理学的には大問題だったらしい(音と関係ないので話はここまで)。光について学ばなくてはね!

ドップラー効果の音聴かせてもらった。

音の波長は日常のスケール。数センチ~数メートル。だから、日常に存在する障害物にあたった時大きな影響をうける。波の回折という。コンサートホールの壁のヒダを見るとちょうど1メートルくらいで、音をかなり吸収する。障害物が大きすぎても小さすぎても影響はない。

波の干渉について。2つ干渉するともう原型をとどめないような形になる。楽器の波は干渉によって豊かな音が作られる。

音の規則性について発見したのはピタゴラス。金槌の音やゴム紐を使って数学的な規則を見つけていった。ピタゴラス音階というのもあるらしい。プラトンとアリストテレスも音の考え方が違う。プラトンはイデアの人なので厳格な440hzはあるとみなすが、アリストテレス は現象密着の人なので無理、数学は使わないぜという。アリストテレスのせいでルネサンスまで数学的な考え方はお預けとなった。ありゃりゃ。ガリレオが現象と数学の融合を取り戻した。

耳が感知できる音圧は20マイクロパスカル。1平方メートルに蚊が1匹に相当する鋭敏なセンサー。ウェーバーフェフィナー?によると感覚機能は割合、比でしか分からない。対数の世界になる。音圧はデシベル(対数)で考えてる。物理学では説明できない。謎。

媒質の話。酸素窒素の混合でなければ音の伝わり方は違うだろう。ファインマンがひとつだけ後世に残すとしたら、全ての物質は原子からなる、と残すという。コップ一杯の水を全世界の水で薄めてもう一度掬うと、さっきのコップの水の分子が100入っている。ヘリウムで声が高くなるのはヘリウムが軽く、音速が速くなるかららしい。3倍くらいになる。

第3回

音の認知を生理学・神経学的観点から。佐藤先生の担当。まずは生物で学んだ耳の機能のおさらいから。

耳鼻科の先生に話を聞いてる。妊娠3か月でもう耳(耳介)ができてるらしい。耳介では音の方向を感知するが、人間は耳介を動かせないので、自分で体を動かさないといけない。でも学習でも音の方向は学べる。耳は2つなのに上とか下とかもわかる(すごい!)。外耳道は3khz〜4khzの音がよく聞こえる。大きさ的によく共鳴するため。騒音に晒されるとここの神経がダメになって難聴になる。それで聴力検査は1khzと4khzの音を聞き取るようになってる。

中耳。蝸牛と耳小骨の関係の話。耳介は鼻と繋がって換気をしている。鼻を閉じて何度も唾を飲むと聞こえにくくなる。鼻と繋がっている耳の気圧が下がるから。鼻が詰まってる時と同じ。鼻水が中耳炎を引き起こすメカニズムも同様。

内耳。蝸牛と前庭と三半規管。蝸牛は螺旋状で3cmほど。蝸牛菅にはリンパ液が入っている。蝸牛内の毛が周波数ごとの音を担当している。三半規管。体が回転したらリンパ液の回転を検出する。眼球とも関係している。前庭は方向、傾きを感知する。リンパ液の働きは多様だな。

聴力検査。音の強さはPaとdb。ホンは聞こえの大きさ。年齢を重ねると高音域から聞こえなくなる。そうするとまず子音が聞こえなくなる。音はわかるが何を言ってるかわからない。若いうちに色々聞いておかなきゃだめだね。標準検査では125ー8000hzまで聞かせる。実際の音を聞いた。500、1000、2000、4000、8000hz。最後のはだいぶ高い。16khzはさらに1オクターブ上か。ひらがなの文字を書かせる検査もある。

伝音性難聴と感音性難聴。前者は鼓膜まで音が伝わらないこと。中耳炎、耳垢でも起こる。中耳炎は子供は気が付かないので注意。後者は蝸牛から神経までの伝達がうまくいかないこと。突発性難聴、メニエール病が代表的。老人性難聴もそうで、コミュニケーションが嫌になり認知症の原因にもなる。補聴器、人工内耳は必須!

耳鳴り。他の人が聴こえる耳鳴り、聞こえない耳鳴りがある。生理的なものはキーンとなったりするやつ。病的なものは脳血管障害でも起きる。治療は早めに。内服薬でも治ったりする。トレーニングでも治る。カウンセリングと組み合わせる。頭がなる頭鳴というのもある、原因はよくわからない。耳鳴りを作曲したのがスメタナの弦楽四重奏第一版最終楽章。聞かせてもらえる。あとシューマン交響曲第2番第一楽章冒頭のトランペット。けっこう耳鳴りに悩まされた作曲家は多い。

第4回

(今回からランニング中に聴くため感想が簡素になります)

音楽と感情の関係について。心理士の星先生を交えつつ、佐藤先生と大橋先生がいろんな音楽を聴いて対談する回。

まずは音楽は感情を伝える要素が大きいということ、そして感情の伝達は音楽体験に左右されないということを学ぶ。そしてチャイコ、ショスタコ、ベートーヴェンの曲を実際に聴いて佐藤先生と大橋先生の感想を聞く。音楽は感情を大まかには伝えられるが、ディテールは背景や歴史を知らないと伝わりにくいこと、最後に音楽はスキーマにのっとって解釈されることまで学ぶ。

上昇・長調→明るい、下降・短調→暗い、というスキーマが私達にはあるが、例えば民謡は短調なのに明るい。マイムマイムを思い起こすと、めっちゃ単調だがキャンプファイヤーで盛り上がるときの曲だ。大橋先生の教養が光り、あれはユダヤ民族の水が出てうれしい時に歌う歌だと明らかになる。さくらさくらの演奏も大橋先生のファゴットが光る。とても楽しい回でした。

第5回

岸根先生が音波の物理的性質について解説する回。縦波と横波、振動数や波長などについてのいわゆる高校物理的解説がメインだが、フーリエ分解などにも踏み込む上にとても分かりやすい。こんな風に講義してみたい。純正律と平均律の違いにも触れる。グレゴリオ聖歌と平均律クラヴィーアも聞かせていただける。グレゴリオ聖歌って純正律だったんだ。

だいたい知っていることだったので1点驚いたことだけ書くと、ニュートンは音速を280m/sと導出したがこれは間違いで、ラプラスにより330m/sと改められた。これは空気をニュートンは等温変化すると仮定したための誤りで、正しくは断熱変化だったからだという。断熱変化はポアソンの式、等温変化は内部エネルギーが変化しないことあたりを使えばこの1.2倍程度の差が説明できるのかなぁ。いずれやってみたい!

第6回

高松先生による楽器の話。今回は今までで一番実例が豊富で、聞いていて飽きない。

楽器の分類法から、どうやって楽器が音を変えているのかに踏み込んでいく。ホルンの構造に一番時間を使っている。印象的だったのは調和を尊ぶ西洋音楽は実は特殊だってこと。アフリカ、アジア、どの地域もノイズを効果的に用いたり、不調和なのを楽しんだりする音楽が多く、そしてこれが世界では多数派だということ。

とにかく実例が楽しい。三味線はかっこいいし、スーホの白い馬でおなじみ馬頭琴も聞けるし、ジンバブエのムビラやインドネシアのガムラン音楽で使うサロンの実例まで聞ける。これ全部揃えてる聖徳大学ってすごいんじゃ。

ムビラ

Mbira music master piece Live – YouTube

ガムラン

Sound Tracker – Gamelan (Indonesia) – YouTube

かっちょええ

第7回

高松先生による声の話。まずは裏声、地声の話。裏声の例としてカウンターテナーが出てきたけど、日本で有名なのと言えばこれだよね

もののけ姫 – YouTube

地声のブルガリアの民謡も超いけてました。私の知ってるこういう系だとウクライナのdakhabrakhaですかね。

DakhaBrakha – Monakh – YouTube

高松先生は東洋西洋アフリカ問わずフラットに紹介してくださるのですが、西洋音楽を改めて聞くとなんでも西洋音階に押し込めてしまっていて、なんだか貧弱に聞こえてしまうのですよね。ただこれは私が最近西洋をdisっているから思っているのであって、西洋現代哲学マジつまんないなと感じていることから発しているという自覚もありました。

で、最後の方に西洋的発声かつ東洋音階の声と、西洋的音階の東洋的楽器の融合した曲を聴いて、ああなんて浅はかな考えをしているんだ、音楽っていうのはそれぞれがそれぞれのf(x)を使って自らの表現したいことを写像にしてるんじゃん、f(x)に優劣つけるなんて実にばかげたことだなと思いました。そしてラストはドビュッシー。きれいですねー。西洋音楽disっててすいませんでしたごめんなさい。

第8回

高松先生による音の縦と横の話。縦も横も時間軸の話なのだけど、縦は五線譜上のみんなの音、横は和声とか曲の進行上の話。縦を合わせるのは音程の時と同じで、西洋だけ。いかにずらすかで優劣の決まる音楽もあるらしい(ミャンマーが例にされてた)。確かにな―日本の音楽もずれずれじゃん。

講義の目玉はライヒのPiano Phaseを聞きながら3人でニコニコ生放送みたいなことをしてるやつ。その名の通りピアノ2台の位相をずらしていくのだけれどスピーカー2人の感じ方がライブで伝わってきてすっげー面白いし、私とも感じ方が違うので、ほんと音楽ってのは個人個人の資質や歴史によって受け取り方がガラッと変わるんだなと実感した。

Piano Phase visualization – YouTube

↑Piano Phaseを映像化したやつ。たのしい!

第9回

亀川先生の響きについての話。無響室のトランペットの音を聞いて、リバーブをかけた音を聞く。最近の音響技術だと、人工的なリバーブは簡単な計算で得られるから楽みたい。コンサートホールの話がメインで、みんな詳しい。佐藤先生による感覚遮断室の話もある。

ちょうどよい残響を得るために現代ではいろんな工夫がされていることが分かった。スピーカーで残響を継ぎ足したりもしているらしい。あと、ロックとオケでは求められる響きも全然違うことも、言われてみればそうかと思ったが、意識したことはなかった。地元の中程度のホールだと、どちらのコンサートでも対応できそうな感じがする。

第10回

亀山先生の録音についての話。デジタルとアナログの話はだいたい知ってたし、デジタル録音が瞬間瞬間の写真のコマを並べたやつってのは先生それちょっと違います(音は1次元表現なので)って思ったけどわかりやすくするためにはアナロジーとしてはしょうがないかな。

エジソンの人類初の録音が聞けたのはとても楽しかった。そして佐藤先生が「メリーさんの羊だ!」って即座にわかるのすごい。

デジタル録音とアナログ録音によって録音機材の使い分けがされているというのも面白い話だった。アナログは音がなまる(マイクがしょぼいのと、テープが特性的に高周波数帯を記録できないからだろう)から高音域を高めに記録する必要があったこと、デジタルはデジタルで三味線とか耳に響く音が減衰しないのでつらいこと、人類がみなヘッドホンで音楽を聴くようになったからまた録音が変化してきたことなどを教わった。

第11回

言語の音について。序盤に大橋先生が発音の構造を簡単に説明したあと、中国語の先生をお招きして中国語の発音の仕組みを詳しく解説する(印刷教材に未収録)。

中国語は母音、子音のほかに声調があるのが特徴。これは昔の中国語は1字1意味にしたい、同音異義語を作りたくない気持ちが強かったので、できるだけ音節の種類を増やしたいという事情がある。今の中国語は相当単純化されたらしいが、声調は4種類なので単純に母音*子音のさらに4倍の種類がある。中国語は勉強したことがあるけど、同音異義語がかなり少ないので、文脈があればまず意味のあいまいさに悩まされることはないと思う。

言語と発音は切り離せないので、英語やフランス語、ドイツ語の発声はまじめに練習しないとだめだなと感じた。今まで伝わればいいじゃんって軽視していた。

第12回

言語学の先生をゲストにお招きして、オノマトペの話。ざっくり、オノマトペは音を転写した側面もあるが言語文化に左右されるよね、ということだった。

言語について考える。たとえば「りんご」という単語とりんごそのものには全く相関関係や因果関係がない。同様にオノマトペだって「ざわざわ」という単語と騒がしい感じって全く因果性がない。そう考えると言語って全てが恣意的なもので、変わりうるものなんだなーと思った。「ざわざわ」を例に出したのはこれカイジで生き死にがかかっている緊迫感を出す効果音として使われているから。だからカイジ知ってる人が「ざわざわ」を見たら「あっ死ぬかもしれない」っていう感情が想起されるわけでしょう。人によっては「High & Low The Worst」の略を「ざわ」っていう人がいるから「ざわざわ」を見たらイケメン集団のイメージが想起される人もいそうだ。

こんな風に言語は恣意的で人類普遍性がないから、あとは経験則で攻めていくしかない。音と経験を強引にでも結びつけるのは使用による反復。で、その反復による条件反射がないと私たちは生きていくこともできない。けっこう危ういものに頼っているように見えるけどなかなか強力で、不思議な感じがする。

第13回

坂井先生の担当で、音と社会について。渋谷区で17時に流れる夕焼け小焼けを聞く。都会ほど防災無線でこういうの流してるらしい。確かに今住んでるところや田舎の実家では聞いたことない。杉並区とか、八王子のニュータウンでも流れてたな。共同体意識の希薄なところほど、共通の音楽を聴いて共通の意識を持ってもらうという意味合いがあるらしい。

音が文化的観念を作るという例としてチャイムや寺の鐘が有名。寺の鐘については江戸時代は毎日2時間ごとに鳴らしてたという話が驚き。たしかにどの小説にも○○の刻って書いてあるけどどうやって知るんだ?時計ないのに?って思ってた。そーだったのか。

決まった時間や決まったタイミングで音を鳴らすのは生活習慣強化な意味合いも強そう。12回の話を出すなら、音と生活には全く必然性はないわけだから、わざと音を鳴らして生活を規律することもできるわけだよね。例えば毎日20時半に蛍の光かけて子供寝かすとかできるんじゃ。。

第14回

坂井先生の騒音の話。音を騒音と感じるかどうかには主観的な要素が大きい。単純な音の大きさではなくて、毎日の繰り返しや、自分にとって意味のある音など、気になると騒音になるという面がある。

でも規制するには基準を作らないといけない。とりあえず大きさが一つの尺度になっている。気になるかどうかは個人間で何とかするしかない。

大橋先生が保育所の泣き声を騒音として録音していたのでちょっとうっとなったけど、どうも建設中の騒音が結構デカかったのが原因らしいと後でわかった。建設音はみんないやだよね。それと結びついたら、建設音が思い出されていやになるかもね。

第15回

まとめ。全員大集合して感想大会だった。

みなさん、他分野への尊敬がすごいです。全員が「考え方が広がった」と言った。

ただ大橋先生だけちょっとひっかかって、「デジタルって情報を減らすことなんですね」と言っていたがそれは言語学だって同じだと思う。文系理系問わず学問というのは情報量を減らしていく学問のはず。減らしたとしてもその間に複雑な関係がいっぱい発生するから、学問って面白いわけじゃん。岸根先生が「私の分野は現象を記述するだけですので」とめっちゃ謙遜して物理学を捉えているのに対して、文系の先生方って理系分野を敬して遠ざけているような感じ。理解しようと思ってない。なんでなんや。

このブログについて

放送大学全科目制覇を目指すブログです。

視聴した講義は学習記録も兼ねて、全部感想を書きます。

放送大学でどんな講義がされているのか感じることができれば幸いです。

放送大学全科目感想 002 問題解決の進め方(’19)

  • 基盤科目
  • テレビ科目
  • 秋光淳生先生(放送大学准教授)
  • 柴山盛生先生(放送大学客員准教授)
  • 難易度 ★☆☆☆☆
  • おすすめ度 ★★★★☆

問題がおきたとき、それをいかにして解決していくかについて、さまざまな方法論があることを教えてもらえる。こんなにたくさん方法論や問題の捉え方があるなんて知らなかったし、ものの見方、考え方の基本、フィードバックの手法など様々な面で効率化、明確化が測れると思われる。学問や社会生活の基礎としておすすめ。抽象的な話が多く、具体的な社会経験があった方が楽しめる。

第1回

問題の定義について。

問題を現状とのギャップとして捉える。想像と結構違ってびっくりだけど、言われてみればそうかも。ギャップは埋められるものなのだから、解決できるはず。非常にポジティブな捉え方ですね。

文科省的な力ってグループの協調性の項目が多くてたいへんだな。と思ったら、そもそも組織が必要なのは何故かの話もあった。人間は普通凡人だから。だから道具とみんなの力、を借りられる。しかも問題解決の幅が広がるし、継続的である。

個人だと限界があることは、いつも意識しておかないとだめだね。

先生方優しそう!!今回はイントロでしたが期待大です!!

第2回

ゲストの水木さん頭の回転が速くていいな〜

問題解決のためには、解決策を立てるのはもちろん、現状認識、目標設定、検証が大事になる。一連のプロセスの中で、どれが抜けても困る。塾で成績の振るわない生徒さんのための説得的なプロセスを考えるときに便利だ。

現状がひどくないと、ギャップと認識できない。これを見えない問題という。現状認識がないと問題に気づけない。たとえば書けば認識できやすくなる。先生は付箋を手帳に貼っていく方法をとってる。スマホアプリで同じことできるかな〜。私ならツイッターに書いちゃうかな。

現状認識のためには定量的に考えるのが大事。私はよくやってるよ!勉強時間と結果の相関関係とか!あと根拠も大事にしよう。視点視座視野も考える。視座(どこから見ているか)はあまり意識しないね。

問題発見のために。PDCAサイクルでてきました。計画、実践、評価、改善。疑問を持つこと、は難しいけどがんばろう。不満とか不のつく言葉はギャップを表すから、問題であることが多い。

省庁や自治体のサイトは問題の情報にあふれているとのこと。たしかに、市の広報なんかは問題に関する情報だらけですよね。省庁のサイトも見てみよう。

第3回

秋光先生はマニュアル世代!?

目的と目標の違い。目的が大きなゴールで、目標は目的の途中にある目印。目的は大きすぎるから、もしくは捉えにくいから、目標に進んでいくとやりやすい。

SMART戦略。具体的、測定可能、合意可能(誰でもできる)、達成可能、長すぎないこと。これも生徒さんに使えそう。

目標はゴールから設定するだけでなく、原点から目指してもいいし、将来的なことを見据えてもいい。あと、結果が望ましいものだったかのフィードバックも必要。アウトカム(自分が得られたもの)とアウトプットが見合っているか、望ましいものか。

制約条件と前提条件。制約条件は、時間とか金銭とか。どうしようもないことが多い。前提条件は、大学を卒業したいとか。前提条件は忘れがち。制約条件を考えるときはMECE、もれなくダブらなくで挙げる。6W3Hで考えよう。

大雑把に目標に進んでるからいいや、ではなくて、目標を具体的に設定して、いま進捗はどうなのか、得られたものはどうなのか、など、プロセスに目を向けていくことが重要になりそうだ。

第4回

情報収集について。

情報収集の話なのにまず情報を作り出すことが話題に?というのも、必要な情報というのは、ないことが多い。インタビューなどを経て作らないといけない。目的の明確化、因果関係の妥当性や信頼性の確保が望まれる。外部情報を使うなら、方法やコスト、時期や信頼性も吟味せよ。情報を作り出す場合、科学実験、社会実験が考えられる。実験群と対象群の差があるか確認せよ。記録、測定といった調査も情報の作成となる。インタビューもグループにするか個人にするか、コストや制約条件が複雑に絡み合う。アンケートだと質問票の設計が要になる。

外部情報の使い方。情報は多い。意見と事実を区別せよ。調査報告書、白書は基礎データがとれる。概要から詳細へ向かえ。検索について。あんまり目新しいことはなかった。SNSにブログが入ってること、twitter等がないのがちょっと古くない?

情報の保存。一次情報は原文のまま。二次情報は書誌情報や概要を保存。体系化して、分類した方法まで記録しておくと良い。

整理方法。時系列順、手順の流れに沿って整理したり、マップにする、論理関係の整理、表形式の整理、マトリクス型でも良い。

味泉さんから業務用調味料開発で実例を聞かせてくれた。てか家庭用とはっきり別れてるのね。釜で生産して充填する。世界標準の基準でオーダーメイドしているという。まずトレンドを一次情報として集める。店で食べる。実験する。開発する。業務用だと保存性も大事。酢と食塩で保存できる。pHと水分活性で測定可能。味の濃さや粘度も測れる。規格に沿わなければいけないので大変。検査工程で、試作品と完成品が規格と同じか確かめないといけない。トレンドは管理栄養士さんなどがあたるらしい。実例たのしい!

第5回

数値情報のについて。表やグラフの読み方?雨が降りそう、と降水確率が60%、重い、と10kgでは印象が違うという話。

質的な分析と量的な分析。質には名義(A型B型とか)と順序(よくわかる・わからないなど)がある。順序の間隔が同じとは限らないので、平均をとってもあまり意味がない。量にも間隔尺度(温度、時刻)と比例尺度(所要時間、距離)がある。間隔尺度はゼロ点の取り方で意味が変わる。比例尺度はスカラーかな。

クロス集計、表について。データベースとほぼ同じに見える。放送大の学生って7万人いるんですね(適当な数字か?)。クロス集計とは、行と列を使って集計すること。全科履修生、専科科目を行、男性女性を列にしてる。相対度数を求めたりもできる。男性の方が科目履修生が多い、全体を見ると女性が多い、など。相対度数は何に対する相対度数か(全体か、ぎょうか、列か)で意味が変わってくる。

グラフについて。どのグラフをどの目的で使うか。円グラフ→年齢別割合とか。割合が一目でわかる。ただ実際の数字がないと比較が難しい。比較するなら棒グラフ。棒グラフは略されることがあるので数字マジックを使いやすい。ヒストグラムでは分布、折れ線グラフでは推移がわかる。これも数字マジックが使える。散布図では(相関)関係がわかる。レーダーチャートでは比較ができて、全体の傾向がわかる。数字は誇張なく伝えよ。マジックを使うな。

何を伝えたいのか、数字の使い方は誤解を生まないものか、などを考えて、正確に伝えるためのツールとして数字をー使っていきましょう、と言うお話でした。

第6回

図解について。

道案内は言葉よりも地図の方が楽。英語でよく道案内の問題出るけど実は地図の方が簡単だよね。とはいえ道を尋ねられた時は地図を書いて渡せないこともあり、場合によるのかな。

全体像を描くのが図の役目。物理図解の他に論理図解も重要。現代文の読解の時よくやってました。

図の作り方。まずはキーワードを抽出して、それを含むように箇条書きにするとこからスタートする。円は概念、四角は具体的事象の名前、白抜き矢印は変化の方向、実線は関係、点線は薄い関係、など図にもルールを設けておくと見やすい。

先生やさしいな

いろんな図解のパターン。トーナメント図、関連の枝分かれ図、収束、変化の図はあんまり使ったことないですね。階層関係の三角の図は学習過程、目標設定で使えそう。私はいつも直線的にしてしまいますけど。

図解の手順は下書き→検討→改善→やっと図解化→構造化という流れで行う。問題を図解化するところが一番大変。問題の構造化にあたっては、現状とのギャップや制限、条件を表せているかを確認する。

病院の受付を例に。スライドの絵を見るだけでは問題はわからない。まず立場に箇条書きをつけると問題点がはっきりする。現状と目標、問題点を抽出する。原因を考えて、解決策を3つ立てている。受付の立場なら、問題は窓口によって列の長さが異なること。解決策としては時間によって窓口の数、職員の数を変えるなど。図解することで、問題の切り分けや考えるための切り口がはっきりする。

練習問題。傘がない。目標は目的地まで行くこと。現状は傘がない。制約条件は雨に濡れないこと。解決策は、待つ、近いから濡れて行く、タクシーに乗る。条件と照らし合わせてどれを選択するかを選べる。目標が濡れないことなら解決策も変わってくる。

伝えるための技術として図解は重要である。とともに、問題点を整理して現状を正確に把握できる効果も期待できる。

第7回

分析的に考えることについて。分析するとは細かく分けて明らかにするということ。

まずは問題の領域をはっきりさせ、領域にあった考え方をする。規則性がある→論理的に考える。偶然が大きい→統計的に考える。選択性が強い(複雑)→システムで考える。

集合(包含)、提言(ある、すべて)、命題(A→B)かどうかも重要。演繹、帰納、仮説も使う。しばらくは論理学の基本なので略。演繹は正しいが帰納は正しくないことも示してくれた。仮説は可能性としてはあること。でもこれがないと話が進まない。

因果関係。相関関係+時間的順序+第三因子ないこと、が必要。

確実にいえないことは確率で考える。掛け算と足し算の話。分析的な話はほぼ数学的な話になる。ディシジョンツリー。樹形図と確率を組み合わせた感じ。期待値を計算するのに便利。

選択性がある場合の決定の方法。問題の設定→定義→目的の体系化→掘り下げ→目標設定→選択肢の作成→結果のまとめ→妥協点の模索、という順序で進む。

分析の視点についてのヒントたち。文章の意味を検討する。ゼロベース、何もない状態から考える。ブレークスルーを見つける。全方位の視点、満遍なく見渡す。

チーム医療で実例。千葉の総合病院の透析の例。高齢の透析患者が増え、32万人もいる。65歳以上が半分くらい。人工腎臓はどれを選択するか。栄養状態が関わってくる。透析は栄養分も除いてしまうため。栄養士さんと連携が必要。透析患者は他疾患も併発する。転倒もあるし、筋力低下もあるのでリハビリも必要。連携にはコーディネーターも必要。なんとその役は看護師だそうです。患者さんごとにどの方法が適切か選択している。

第8回

学習記録と振り返りについて。

水木さんは自分の出た数時間のラジオの生放送も聞き直してるらしい。すげーな。

社会に出ても学ぶことと振り返りは大事。PDCAサイクルまた出てきた。コルブという人が、具体的経験→省察的観察→抽象的概念→実践、というプロセスに経験学習という名前をつけた。まあ学習の一般的な形ですよねこれ。経験をなるべく形にしようということかな。偶発的学習→計画的でない学習のこと?でも学習って大体偶発的では?

振り返り。ギブスさんのサイクル。経験を記述→感情や判断を記述(経験と分ける)→評価(良い点悪い点)→分析(意味づけ)→一般的な結論(一般性)→個人的な結論(特殊性)→個人的なアクションプラン。分析が難しいみたい。大事なのは客観的に見ること。主観を客観的にみるのもいいかもね。

マインドフルネスに言及された。価値判断をしないこと。マインドフルネスについてはまた調べよう。

一つの経験が次のプランまで波及して次の経験に活かせればいいサイクルになるね。一連の流れがうまく繋がるとよいですね。

先生は変わることが学びとおっしゃってる。そのためには記録をする。eポートフォリオ用のMahara というソフトの解説してる。学んだことを箇条書きにしてる。自分のページ作ったり、コメントしたり掲示板やグループ作ったりできるSNS機能もあるみたい。検索したらいまいち流行ってないな。スタプラでいいんじゃない?あとこのブログも立派な記録じゃない?

リカレント教育。知識をアップデートするために大学に入り直すなどして学び直すこと。頭が固い場合はアンラーニングも必要。枠組みが古すぎる場合もあるもんね。

第8回までのまとめ。水木さんは問題が起きてから解決していたけど、書き出したり記録することをしてなかったという。振り返りすればギャップが少なくなるはず。記録はなんだって大事なんだな。このブログもなんらかの形で役に立てるといいな。

第9回

発想を広げること。柴山先生の担当。知識から発想を広げる方法について。どんな人でも自分の知識から発想する。そこがスタート点。

通常と異なる発想をするにはどうするか。まずアイディアをたくさん出す。突飛でもいい。

引き出しの材料として短期記憶と長期記憶の話。発想は長期記憶でやる。手続き記憶と宣言記憶、宣言的記憶の中に意味記憶とエピソード記憶。知識の体系の図を見る。これだけでは発想にならない。体系を組み替え直さないといけない。

視点。目標に則して考えたり、言葉遊びをしてみる。ブレーンストーミングみたいなもの?ヒントに結びつける。連想ゲームとか。イメージをわかせる。画像や映像と関連づけたりする。勝ちパターンに結びつける。

マインドマップについて。真ん中に自分を置いて、関連する事柄を樹形に適当に繋げていく。箇条書きに似ている。繋がりは思いつくままでよい。体系的にする必要はない。

発想の技法。属性。ものの特性をたくさん挙げていく。新製品開発の時に役立つ。

ナインチェックリスト。転用、応用、変更、拡大、しゅくしょう、代用、再配列、逆転、結合。作曲に使えそう!!

メタファー。シネクドキ、メトミニー、メタファー。シネクドキは部分と全体性、ご飯(食事)、花見(桜)など。メトミニーは電話を取る、など。メタファーは目玉焼きなど。

アナロジー。シネクティクスともいうらしい。当事者のつもりになる、似たものの類推、視覚イメージを重ねる、空想する。。など。これ全部アナロジーなんだ!?

最後に図解。まずマトリックス図。テーブルにして2種類のものや場面を組み合わせて考える。次にkj法。情報収集してラベルを作り、グループ化して、並べて、最後に文章にする。連関図法。関連を矢印でつないでいく。系統図法。大分類→中分類→小分類と細分化していく。ワラスの思考モデル。準備→あたため→ひらめき→検証。数学みたい。ひらめきに至るまでには、準備の段階がかなり大変に思える。

事例。こども科学教室の例。つかみが大事。わー不思議だな!と思ってもらう。塾講師でもつかみを大事にしたい。アオギリの種を落とさせて体験させる。発表させる。発想が広がる。らしい。私は発表のできない人だったので、これで発想できるようのなるのなら羨ましい感じがする。大人が楽しんでないと子供も楽しくない。好きなことじゃないとだめ。そこは私も自信ある!工夫することが発想。そうするとプログラミングって発想の塊じゃない?発想一つで構造もスピードも大きく変わってくるもんね。

第10回

組織での問題解決の実例1。門奈先生。今回はグループワーク。

水木さんの描写すげー。私はグループワークやったことないです。

組織運営について。組織で問題が起きたらどうする?個人だと行き詰まって悩む。組織なら知恵を出し合える。ワークショップはグループワークを発展させて、活発に意見を出してもらうもの。利点は広範囲に考えられる、PDCA回しやすい(大事。継続性が期待できる)、お互い補い合える。短所は協力が必要なのと、時間がかかること。

意見が異なったらどうする?多数決とかジャンケンとか。却下された考えも取り込まないと火種になるから大変。

262の法則。意識の高い、ふつう、低い人が2、6、2割になる。高い人だけ集めてもまたそうなる。働きアリみたい。低い人もうまく取り入れないといけない。

ワークショップの要素。参加者、ファシリテーター、上司、主催者や事務局、サポートスタッフ。単純に参加者だけではない。

3Mジャパン相模原事業所に取材した。ファシリテーターの太田さん話を聞いてる。ワークショップをデザインするひと。ワークショップでは課題を発見、解決していく。研修とは違う。研修はゴールがある。個人の問題になる。繰り返しもできる。ワークショップではチームで成果が出る。シナジー効果をねらう。プロセスも毎回違うのでファシリテーターのデザイン能力が問われる。放送授業が研修、面接授業がワークショップに相当する。

アイスブレイク。ワークショップに参加する人は緊張してるので、それを解かすこと。自然体で参加してもらう。ファシリテーターはアドリブもするし、相互関係は大事なのでアイスブレイクを1時間することもある。参加者は予習はしない方がいい。協調性を育むのが目的。

ファシリテーターはデザインに6、実施は1、フォローは3の割合で行う。デザインでは方法論と技法の検討が大きい。フォローはアンケートとか。

イノベーションも必要。ファシリテーター自体が色々ワークショップに参加して研究してる。時間は短く。切羽詰まってたほうがいい。締切が全てってクリエイターはみんな言ってる。

女性のエンジニア同士のワークショップを開いた時。女性は孤立しがち(少ないから?)。ワールドカフェ?方式でテーマを決めて話し合う。成功体験をシェアしながら語り合う。ファシリテーターは目立たないのがいい。アウトプットは本人のモチベーションアップと、経験を生かして勇気をもって離せるようになったことなど。

個別塾講師にも通じるね。教師はあんまり前に出ない方がいいね。グループとちょっと違うけどさあ。

最後に太田さんからアドバイス。人のワークショップに参加せよ。1人ではだめ。いいワークショップも悪いワークショップも経験になる。どんどん言語化して意見交換せよ。

第11回

グループワークの実施方法について。水木さんはワークショップに参加し、622の法則をリアルに体験したらしい。

まずはチームビルディングから。1分間自己紹介する。他己紹介もする。1分が大事らしい。話すのが苦手な人はどうするのか?傾聴すると話しやすいかもということ。ゲームをしてなごむようにすることも。ストローでタワーを作らせるとか。5分で協力が学べる。

小道具。付箋紙、ペン。ファシリテーター側はベル、タイマーなど。

アイデア出しのほうほう。ブレーンストーミングから。略してブレスト。アイデアを付箋紙に書いてはっていく。カードを使うのも良い。ブレーンライティング。小さな紙にアイデアを書いて他人に渡す。制限時間は2分。全員同時にやるのではやい。

なぜ付箋紙を使うか。頭の整理と、紙に残せること、可視化など。言葉が主体から離れて客体化する。パソコンのほうが早くないか?という門奈先生の意見には、可視化しやすい、個性が出る、関連づけが楽、と太田さんが反論。

アイデアの収束。アイデアを分類(kj法)。親和図法。似ているアイデアをまとめていく。付箋紙をグループ分けして貼り直していくなど。ここからシールを貼って人気投票させたり、マトリクスにまとめたりする。シールの数が多いほどマトリクスの端に貼っていく。

ワールドカフェ方式。テーブルを複数用意する。テーブルごとにテーマを用意して、議論したら1人以外全員移動する。未来志向のアイデアになる。

プロトタイプの作成。アイデアを可視化する。個人でもグループでも良い。ポスターにまとめるとか。グループ外に発表し、改善する。シールを貼って評価するのでよい。多数決で選ばれたものに加え、違和感を覚えたシールも多く獲得した多様決を獲得した人が発表してた。

最後に振り返り。グループ単位が良い。カードブレストに個人の意見を書き、ディスカッションする。意見を出しにくい人もカードなら書きやすい。わかったことやよかったこと、疑問点、新たなアイデアを書く。

参加者の話。新規テーマの発見、収束に役立つ。同じテーマでも異なった考え方があること、視点を変えて自分の業務の別の解決策が見える、刺激的だった、など。時間制限があると尖った斬新なアイデアが出やすくなる。時間を取ると信頼性は高まるが、アイディアはつまらなくなる。

こーいう試みを文化祭の出し物の検討に使ってみたら?クラス委員がワークショップの手法をちょいと学んでからみんなでアイディア出したら面白いものができそう。私は意見を出せない人間のだったけど、カードなら何か書けそうだよなー。若いと面倒な自己意識があるから、属人性をとっぱらった意見を出せるのはとても良い。

第12回

組織の実例3回目。静岡市大沢の縁側カフェ。観光客が来るようになったらしい。

システム思考とデザイン思考。ざっと、左脳と右脳。理性と感性。評価と独創。両方の視点で考える。

システム思考について。木の枝という要素ではよくわからないが、お箸という機能をつけるのがシステム思考。人口増→企業数が増える、企業数が増える→人口増のような相関関係、プラスのサイクルを考えるのがシステム思考。

デザイン思考はデザイナーの手法。デザインとは問題の発見と解決(そうなの!?)。誰でもできるらしい。有用性、経済的実現性、技術的実現性を考える。共感→問題定義→発想→プロトタイプ→テストの順で行う。失敗と改善を繰り返す。なるべく早くする。プログラミングと一緒やん。

大沢の実例。2013年からスタート。静岡から車で1時間。お茶が名産。週2で開催して、300円でお茶とか餅とか出してる。10軒くらい。農家の縁側を使ってる。おばちゃんと話せるのがよい。年7200人も来てる。お茶の需要減が危機意識の始まりだった。大間お茶カフェというのがあり、先行してた。無理しないで続けてるらしい。都会から若い人も来てる。ピザ出してるとこも。嫁いできたひと、親から茶畑を受け継いだ人、いろんな人がいる。集落全員で長期間話し合い、全員賛成になるようにした。人が来るようになって、高齢者の元気が出た。外から来た人が、大沢のいいところを話してくれるのがよかったそう。

システム思考での分析。茶業が安定⇄人口増にしたい。売上→利益→働き口→事業者のループが欲しいが、お茶飲料の登場でマイナス要因ができた。縁側カフェでは、魅力、入場者を増やす。ただ入場数が増えるとサービスが低下する。などのモデルが書かれてた。で、実は静岡市の販売促進研究会というとこが関わってた。町おこしは時間がかかるが、一年でということで引き受けたらしい。住んでるとわからないが、どんな地域でも強みがあるらしい。アンケートを取ると、お土産が欲しいらしい。事業を拡大して、求めるものを提供していけるようになれば人口流出も防げるのではということだった。大沢ブランドを作ればいい。

デザイン思考での分析。何もない→人が財産→人を中心としたデザインという発想で、縁側でおばあちゃんと対話すればいいのでは、となった。問題。意思決定は全員一致にしたい。そこで隣村の視察をしたり、自分の家でできるところだけ、自由にやることにした。有用性→人が財産、会話が欲しい、経済的実現性→場所、茶、人の提供、技術的実現性→できる家庭だけやる。誰のためか→お客さんと自分たちのため。

どんな地域でも強みがあることは中からの視点ではわからない。外からの視点を取り入れれば必ず何かわかる。今自分が住んでる地域は、わかりやすい強みもあるが分かってない強みもいっぱいあるはず。

第13回

(今回から感想が簡素になります)

久しぶりに見ると水木さんが生徒役になってるのって微妙な感じがする。必ず女性だよね生徒役。おっさんが生徒役じゃだめなんか。

今回は集団の意思決定について。集団で物事を考えるとだいたい個々人の和にならない。どうせなら積とか、数倍の生産性になってほしいけどそうもいかない。個人ではどうにもならないことを補う効果はあるが、他人の意見や立場を気にして思うような意見が言えないことも多い。

なので信頼関係が最も大事になる。何を言われても否定されない(反対意見は否定ではない)という関係を築けば相乗効果が期待できる。そういう対等な関係を基盤とする自己主張のことをアサーション、アサーティブネスという。そういえばプログラミングで一時エクストリームプログラミングってのが流行った。あれがアサーションなんだろうな。夫婦関係もアサーションっぽい関係が理想かなぁ。親子関係は垂直的要素があるからなかなかそうもいかないが、子が成人したらアサーティブネスになればいいなとも思う。

第14回

問題解決の実践方法だけど、主に集団による実践方法の話。役割分担やスケジュールの立て方、会議のやり方など。

スケジュール管理は勉強計画を立てるときに役立ちそう。適当に書いても絵に描いた餅になるので、実際過去の自分の振り返りなどを参考にしてフィードバックを入れていけば、相当な制度で学習効率が上がりそう。

会議のやり方、もっと早い段階で中高生に教えるべきだよね。集団で議論してわやくちゃになることばっかじゃん会議って。今でも覚えてるけど小学校で新聞委員会の部長にさせられてしまい、そこでみんなから意見を募るとき何も意見が出ず毎月辛い時間を過ごしていた。先生は横で見てるだけだったしなにかノウハウのアドバイスを出してくれればよかったのに。ほんとうに苦しかったから今でも覚えてますY本センセイ。

第15回

評価について。評価の種類と定量化についてのお話がメイン。

まず評価の重点をどこに置くか。動機か過程か結果か。私の評価って結果ばっかだなぁと思う。でも動機や過程ってどうやって評価すればいいのか難しい気がする。尺度の問題も議論されるがやっぱわかりやすいのは投入資源(試験なら投入時間)。あと成果(試験なら点数)。主観ってのもあるがこれも重要じゃないかな。やってて楽しいかどうかとか。

評価のための表を三種類紹介していただいた。功罪表、評価表、利得表。利得表が一番わかりやすいのでこれの解説が続いた。平均とかマキシミン戦略とかいろいろ使えるようになってくるので。やはり数値化すれば強い。評価はなんとかして数値化する試みをするのがよい。