構造化設計(続き)良い設計の落としどころ実際のところ、考える人によってさまざま。「これが最適だ!」というものは今のところ分からない。そこで、ここではモジュール化(カプセル化)*1という考え方を出す。それぞれを説明していく。難しい言い方だと、「再利用可能である度合い」。簡単な言い方だと、「用途ごとに分けられている度合い」。言葉で表現するのは難しいので、講義で出てきた例を紹介していく。CDラジカセには、「CD」「ラジオ」「カセット」の3種類のメディアを再生できる機能が備わっている。あったら、どのような不具合が考えられるだろうか。「ラジオ部分に仕様変更」があった場合を考える。含まれていた場合、CD機能との関係を考慮して修正していかなければならない。プログラムをすべて書き直す必要が出てくる。このような設計は凝集度が低いとされている。凝集度の高い設計とはどのようなものなのか。それは、CD・ラジオ・カセット機能が独立である設計だ。一部を変えるときに、その部分しか変える必要がないように設計する。これが凝集度の高い設計だ。どのレベルで独立させるのかは、その時の状況や、求められていることに応じて変わってくる。難しい言い方だと、「それぞれのモジュールの責務がはっきりしている度合い」。簡単に言うと「他モジュールの変数を勝手に変えられる度合い」。Javaを例にして説明された。public変数は、誰でも使うことができるので結合度が高く、private変数は、自分しか書き換えることができないので、結合度が低い。大規模システムの開発の際には、どこでバグを起こしているのかをしっかり知るために、結合度を低く保つ必要がある。基本的に、「凝集度は高く、結合度は低く」が原則。この考え方はソフトウェア工学だけでなく、あらゆる分野で登場してくる。モノリシック全くモジュール化されていないことを表す言葉。出てきたのは「21世紀宇宙の旅」という書籍。巨大な船と、モジュール化されていない巨大なコードを対応付けている。疎結合化が進むことで、処理スピードが落ち、パフォーマンスが落ちる危険性がある。設計とは設計はプログラミングではない。プログラムを正しくすることだ。トレードオフとトライアンドエラーの賜物である。トライアンドエラーから経験則を得ていく。期末テストについて「凝集度・結合度の考え方を”身近な例”で説明しろ」という問題が出てくるらしい。クリスマスは何のためのイベント...?何かのきっかけにするイベント。いうことで、Qiitaで企画されていたソフトウェアテストに関するアドベントカレンダーが紹介された。このようなきっかけで、技術を楽しむことができれば自分の選択が広がっていく。選択肢が多いということは、人生の幅が広がるということ。今の時代、ネットを使えば情報は出てくる。いろいろなところへ刺激をもらいに行って、自分の選択肢を増やすことが大切になってくる。アドベントカレンダーに参加している人どうしは、顔も知らないし本名も知らないことが多いし、これは技術者界隈では結構当たり前だったりする。弊学でも、アドベントカレンダーを書いている方たちがいる。自分が入学した2015年にはもうあった。見てみると、学内無線の設定方法だったり米の話だったりと、かなりバリエーションが豊富。知的学習システム講義についてNNの奥にあることは統計学このことについて書いてある記事やエントリは日本語ソースではまだ少ない。このほか、確率的情報処理にも通じる。地検は欠かせないもの。どこにつながっているのかわからないこの講義のみならず、どの抗議でもいえることだが、技術分野はどこでつながっているのかが分からない。画像処理とつながったり、医療分野とつながったり。Gray第3パラダイムまでは、人や計算機が主体。データが付随していくものだった。第4パラダイムでは計算機でも解決できないような問題をどのようにして考えていくのか。このようなことが考えられている。この分野についての論文は、自然科学論文誌のNatureにも載っている。各分野が、この問題を解決しようと躍起になっているからだろう。分析スキルがメイン統計パターン認識DeepLearning隠れマルコフモデルこんな感じのことを扱っていく。DeepLearningなど応用分野に関しての講義は最後のほうになるそうです。その関係もあってか、前半の講義は線形代数の知識をフル活用するそうです。学習とはこの講義では「機械学習」に的を絞って扱っていく。簡単に言ってしまえば、「データから知識・表現・基準を抽出すること」を学習と定義できる。学習については、大きく3つに分類できるのでその話も。教師あり学習:正解が分かっている教師なし学習:この講義のメイン強化学習:上記二つのちょうど中間あたりの立ち位置たとえばこんなことを数字の認識これは結構有名な例。手書き文字のデータを数値化して、ヒストグラムに落とし込んで...。そのヒストグラムを見て、「この文字は”0”だな」なんてことを判断していく。関数フィッティングとかの問題。最小二乗法とかを用いてやっていくなど。上記二つは、学部の時に終わっているものとして進めていくそうです。課題についてレポート提出の遅延に関しては、正当な理由をつけて事前に知らせること。最後にたぶんとると思います。デザインはじめにこんにちは。いう3大学間で学生を募って行ったワークショップで、自分でも貴重な経験ができたと感じているのでぜひ共有したい。いつものような講義ノートではないので、ぜひ軽い気持ちで見ていってください。ほとんどマエカワの日記みたいなものなので、結局よかったの?どうなの?って人は、最後の方からお読みください。大人が聞いててどんなもんなんですか?最後にそれでは、よろしくお願いします。ことの発端それは、2018/2/8。)*1」という講義の最終プレゼンの日のことです。担当の先生から、一枚のチラシを渡され一言。「こんなのあるんだけど、行ってみるかい?」チラシには大きく「コンセプトデザイニング」の文字。なんだか、毎年夏にムサビと東工大が連携して行っているらしい。今回はスポンサーがついて、なんか豪華になっているらしい。いうふわふわした説明を聞かされました。断片*2」も、もともと連携講義の中で生まれたものだとか。そのつながりで、今回自分に声がかかったということです。ほかの大学の人たちと交流することなんて滅多にないので今回応募。自分を合わせて電通大からは2人。直前になっての飛び入り参加ということで、お世話になることになりました。1日目ムサビへ初登校ですね。「鷹の台」から歩くこと20分くらい。いうことで、武蔵野美術大学に来た。4枚目、奥に見えるのはアートギャラリー。2018年2月27日ムサビのキャンパスに到着です。環境がいいなというのが第一印象。ムサビの学生さんは自虐気味に「遠いんだよね...」とか言っていましたが*3、高校生のときに使った緑道の雰囲気が感じられてとても懐かしい気持ちになってしまった。今回は、7号館というところで作業をしていくことに。参加者は30人くらいですかね。衝撃的だったのは、ムサビの学科名。「視デ*4」「デ情*5」「基礎デ*6」「油*7」などなど、最初聞いた時はここで何が繰り広げられているんだと思ったものです。最初は軽めのオリエンテーション。Visaさん、ソニー銀行さんから今回のテーマについて説明されました。そのあと、今回お世話になる講師陣からの講義・アイスブレーク。美大の先生、むっさおしゃれだなぁと講義を聞きながら思っていました。この講義、一般大学からきている自分にはとても新鮮だったので、簡単にまとめていこうと思います(ここだけ講義ノートっぽくなりますが、ご容赦くだされ)。最近こんな表現を使いすぎている気がする。