Computer Scienceの授業
12 授業
- 3Dモデリング:立方体からプリントされた物体まで – 3Dモデルとは、コンピューターの中に、点(頂点)を辺でつなぎ、平らな面で囲んで作った形のことで、これをメッシュと呼びます。まず立方体などの簡単な形(プリミティブ)から始め、移動・回転・拡大縮小をして、面を引き出します(押し出し)。そこにマテリアルとライトを加えると、コンピューターが絵を描き出します(レンダリング)。同じモデルを薄い層に切って3Dプリンターで作ったり、ゲーム、映画、VR、製品デザインに使ったりできます。
- AIによる移動予測:データで渋滞を予測しよう – 渋滞を予測するために、AIはまず過去のデータを集めます。たとえば、たくさんの日の1時間ごとの車の数です。次にパターンを探します。朝と夕方に2つのラッシュの山がある、というようなものです。そのパターンを使って、たとえば過去の同じ時刻の平均で、次の日を予測します。人はこの予測を見て、よい出発時間やルートを選びます。予測はよい推測であって、約束ではありません。
- AIの仕事と必要なスキル – AIは「データ」「モデル」「プロダクト」の3つの段階で作られます。それぞれに仕事があります。データ分析者やデータラベラー、機械学習エンジニアや研究者、AIプロダクトマネージャー、デザイナー、倫理の専門家などです。必要なのは、数学、コーディング、データの扱い、分野の知識、コミュニケーション、倫理の6つのスキルで、仕事ごとに割合が違います。道すじは階段です。学校の科目、講座や大学、自分のプロジェクト、インターン、最初の仕事と進み、学びはずっと続きます。
- AIプロジェクトの流れ:AIはどうやって作られるのか – 人工知能(AI)とは、機械がデータから学んで判断や予測をする力のことです。たとえば顔を見分けたり、曲をすすめたりします。AIは「AIプロジェクトサイクル」という6つの段階をくり返して作られます。1) 課題設定:4W(だれが・なにを・どこで・なぜ)で問題を整理する。2) データ収集:信頼できるデータを集める。3) データ探索:データを整え、グラフにして特徴を見つける。4) モデル作り:ルールや学習方法を選ぶ。5) 評価:新しいデータで試し、正解率を出す。6) 運用:実際に使い、改善を続ける。どの段階でも倫理を考えます。公平さ(バイアスがないこと)、プライバシー、透明性、責任の所在です。
- AI倫理:人工知能を公平に、安全に使うために – AIはデータからパターンを学び、そのパターンをもとに判断します。AI倫理は、その判断が公平で、安全で、人を大切にしているかを考える分野です。主な問題は、バイアス(偏ったデータは偏った結果を生む)、プライバシー(個人データには同意と保護が必要)、透明性(なぜその判断になったかを人が知れること)、責任(最後は人が責任をもつこと)、安全と悪用(ディープフェイクやうその情報)、そして社会への影響(仕事、デジタル格差、環境)です。責任あるAIとは、使う前も使った後も、これらすべてを確かめることです。
- アルゴリズムの計算量:処理の手数はどれだけ増える? – 同じ問題を解く方法はたくさんありますが、必要な手数が大きく違うものがあります。アルゴリズムの良し悪しは、ストップウォッチの秒数ではなく、入力の大きさ n が増えたときの基本的な手数の数え方で測ります。その増え方に名前をつけたのがビッグO記法です。O(1)は定数、O(log n)は対数、O(n)は線形、O(n log n)、O(n²)は2乗の増え方を表します。線形探索はO(n)、二分探索はO(log n)。バブルソートはO(n²)、マージソートはO(n log n)です。使うメモリの量は空間計算量といいます。
- アルゴリズム設計の方法 – アルゴリズムを設計するときは、まず問題をはっきりさせる。入力のデータ、ほしい出力、そして条件だ。次に、はっきりした有限の手順を、文章、箇条書き、擬似コード、フローチャートなどで書く。大きな問題は、上から小さく分けていく方法(段階的詳細化)か、テスト済みの小さな部品から組み上げる方法(ボトムアップ)で作る。代表的な手法は、力まかせ法(全部試す)、分割統治法(分ける、解く、合わせる。二分探索やマージソートのように半分にする)、貪欲法(そのとき一番よさそうな選択をする。速いが最適とは限らない)、動的計画法(小さな問題を一度だけ解いて表に保存する)、バックトラック(選んで、行き止まりなら戻す)。手法とデータ構造(配列、スタック、二分木)は、正しさと効率(時間計算量)を確かめて選ぶ。
- サイバーセキュリティ:脅威とその防ぎ方 – サイバーセキュリティは、コンピューターやネットワーク、データを守る取り組みです。目標は機密性・完全性・可用性(CIAの3要素)。よくある脅威はマルウェア、フィッシングなどのソーシャルエンジニアリング、パスワードの総当たり攻撃、サービス妨害(DoS)です。守る方法は、しっかりした認証、暗号化、ファイアウォール、マルウェア対策ソフト、アップデート、アクセス制御、バックアップです。
- データ分析 – データ分析とは、集めただけの生のデータを「答え」に変えることです。流れは、問いを立てる、データを集める、クリーニングする(間違い・重複・空欄を取り除く)、整理して変形する、平均値・中央値・範囲やパターンなどで分析する、わかりやすいグラフで見せる、慎重に結論を出す、というサイクルです。外れ値、少ないサンプル、かたより(バイアス)に気をつけましょう。また、2つのものに相関があっても、一方が原因だとは言えません。データは安全に保管し、許可を得て使う必要があります。
- デジタルフットプリントとネチケット – デジタルフットプリントとは、ネットを使ったときに残るデータの足あとのことです。能動的フットプリントは自分で投稿するもの(投稿、コメント、入力フォーム)。受動的フットプリントは気づかないうちに集められるもの(クッキー、閲覧履歴、位置情報、IPアドレス)です。足あとは完全に消すのが難しく、あとから他の人に見られることもあります。私たちは、学習、銀行、買い物、行政サービスがネットでできるデジタル社会に生きていて、そこで責任をもって行動する人をデジタル市民(ネチズン)と呼びます。ネチケットとは、倫理的であること(著作権を守る、信頼できる情報を広める)、相手を尊重すること(プライバシーや多様性を大切にし、いじめをしない)、責任ある行動をとること(書きすぎない、荒らしに反応しない)です。コミュニケーションでは、簡潔で、礼儀正しく、信頼できる内容を心がけます。SNSでは、パスワードとプライバシー設定をよく考え、アップロード前に立ち止まり、共有前に事実を確かめます。
- 応用プログラミングとアプリケーション – 応用プログラミングとは、目的に合ったデータ構造(配列・連結リスト・スタック・キュー)を選び、IDEでコードを書いてテストし、グラフやアニメーションを作り、表計算の関数を使い、SQLで検索できるリレーショナルデータベースにデータを安全に保存することです。
- 問題解決の基本 – コンピュータで問題を解くには段階があります。まず問題を分析し(入力・出力・ルールを確認)、アルゴリズム(有限で明確な順番のある手順)を作り、プログラミング言語でコードにし、いろいろな入力でテストし、エラーを見つけて直します(デバッグ)。アルゴリズムはフローチャート(楕円=開始・終了、平行四辺形=入力・出力、長方形=処理、ひし形=判断、矢印=流れ)や擬似コード(わかりやすい言葉で書いた手順)で表せます。問題の分割とは、大きな問題を小さな問題に分けてそれぞれ解き、あとで組み合わせることです。