コンピューターサイエンス(スライド資料15回ほか)

【概要】 本教材は、情報工学の基礎を15回の講義で学ぶためのスライド資料と演習で構成されている。情報工学は、プログラミング、人工知能、データベース、情報セキュリティなどの分野を包含する学問である。プログラミングは、人間の意図を論理的手順としてコンピュータに伝える活動である。人工知能は、知能、知識、学習の3要素を持つシステムであり、言語処理や画像認識などに活用される。ただし、創造性や倫理的判断には限界があるため、人間の補助ツールとして活用することが望ましい。データベースは、大量のデータを効率的に管理するための基盤技術である。情報セキュリティは、デジタル社会において情報を安全に扱うための対策であり、ウイルス対策やパスワード管理がその基本となる。

本資料は、大学授業用に作成したものを更新・改良して公開している。 クリエイティブコモンズ 表示-非営利-継承 4.0 国際ライセンス(CC BY-NC-SA 4.0) で提供しており、事前の許可なく利用できる。利用条件は、著作者表示(BY)、非営利目的のみ(NC)、同一ライセンスでの再配布(SA)の3点である。

目次

  1. cs-1. 無料ソフトウエア、無料データ、Scratch プログラミング、Scratch のキャラクタ [PDF], [パワーポイント], [HTML], [YouTube動画]
  2. cs-2. AIの仕組み、責任ある利用 [PDF], [パワーポイント], [HTML], [YouTube動画]
  3. cs-3. デジタル画像 [PDF], [パワーポイント], [HTML]
  4. cs-4. ストリートビュー,3次元コンピュータグラフィックス [PDF], [パワーポイント], [HTML]
  5. cs-5. 人工知能の概要 [PDF], [パワーポイント], [HTML]

    【概要】人工知能は、知能知識学習の3要素を持ち、言語処理、画像認識、データ分析など多様な分野で活用される。24時間稼働や大量データ処理が可能である一方、創造性や倫理的判断には限界がある。人間の補助ツールとして活用し、最終判断は人間が行うことが望ましい。

  6. cs-6. データベースシステムとデータサイエンス [PDF], [パワーポイント], [HTML]

    【概要】データベースは現代社会に不可欠な基盤技術であり、データサイエンスはデータベースから有益な情報を引き出す学問である。Excelなどの表計算ソフトを使用することで、データの集計、分析、可視化が可能となり、意思決定や問題解決に活用できる。

  7. cs-7. 乱数、シミュレーション [PDF], [パワーポイント], [HTML]

    【概要】乱数は予測不可能な数値を生成する技術であり、一様分布(全ての値が同じ確率で出現)と正規分布(平均値付近に集中)の2種類がある。Excelでは「RAND()」関数で一様分布の乱数を生成できる。乱数は、不確実性を含む現象の分析に活用される。

  8. cs-8. 表計算ソフトウェアを用いたデータの扱い [PDF], [パワーポイント], [HTML]

    【概要】Excelでは、散布図の色分けによるクラスタ分析(類似データのグループ化)やVLOOKUP関数(表からのデータ検索)が可能である。セル参照には絶対参照($記号使用、参照先を固定)と相対参照(コピー時に参照先が移動)があり、これらを使い分けることで効率的なデータ分析が実現できる。

  9. cs-9. 一次式、線形計画法 [PDF], [パワーポイント], [HTML]

    【概要】線形計画法は、限られた資源の制約条件(満たすべき条件式)の下で目標関数(最大化または最小化したい式)を最適化する手法である。Excelで計算することで、生産計画や資源配分の最適解を求めることができる。

  10. cs-10. Python プログラミングの基本 [PDF], [パワーポイント], [HTML]

    【概要】Pythonプログラミングでは、オブジェクト(データと操作をまとめたもの)にメソッド(オブジェクトに対する操作)を適用して処理を行う。CodeCombatやタートルグラフィックス(カーソルの軌跡で図形を描画する手法)を使った演習を通じて、プログラミングの基本概念を視覚的に理解する。

  11. cs-11. 式の抽象化と関数 [PDF], [パワーポイント], [HTML]

    【概要】Pythonプログラミングでは、inputによる入力とprintによる出力、defによる関数定義が基本となる。関数は類似した処理を抽象化(共通部分をまとめること)することでコードの再利用性を高め、保守性向上とバグ防止に寄与する。

  12. cs-12. 条件分岐と繰り返し、ステップ実行 [PDF], [パワーポイント], [HTML]

    【概要】Pythonプログラミングでは、変数による値の保存と参照、if-elseによる条件分岐、リストによる複数要素の管理、forによる繰り返し処理が基本となる。これらを組み合わせることで、効率的なデータ処理や計算を実現できる。

  13. cs-13. プロセッサ、メモリ、文字コード、論理演算と足し算 [PDF], [パワーポイント], [HTML]

    【概要】コンピュータはプロセッサ(演算装置)とメモリ(記憶装置)を中心に構成され、全てのデータを2進数(0と1の組み合わせ)で処理する。論理演算(AND、OR、NOT)を組み合わせて複雑な計算を実現する。OS(オペレーティングシステム)がハードウェアとソフトウェアの橋渡しを行う。

  14. cs-14. 情報化社会でのマナー、情報セキュリティ [PDF], [パワーポイント], [HTML]

    【概要】デジタル社会では情報の流通と共有が活発化し、個人も情報発信者となる。そのため、情報の真偽確認、プライバシー保護、セキュリティ対策(ウイルス対策、パスワード管理)が必要である。フェイクニュース(虚偽情報)やマルウェア(悪意のあるソフトウェア)への注意が求められる。

  15. cs-15. 全体まとめ [PDF], [パワーポイント], [HTML]

    【概要】情報工学は、AI、データベース、3次元CG、プログラミングなど多様な技術を扱う分野である。全てのデータはデジタル化され、コンピュータで処理される。これらの技術は社会の発展に不可欠であり、セキュリティへの配慮も必要である。

サイト内の関連ページ

資料

第1回 無料ソフトウエア,無料データ,Scratchプログラミング,Scratchのキャラクタ

無料ソフトウェアには,フリーウェアと,ソースコードが公開され自由に利用・改変・再配布できるオープンソースソフトウェアがある。 無料ソフトウェアや無料データの利用時は,作者が定める利用条件を確認し,著作権を尊重する必要がある。 情報工学は,コンピュータを用いて問題を解決する学問分野で,対象・構造・条件を整理して解決方法を設計する。 Scratchは,コンピュータに実行させる手順であるプログラムを,ブロックを組み合わせて作るビジュアル環境である。順次実行・繰り返し・条件分岐を学ぶことができる。

スライド資料

[PDF], [パワーポイント], [HTML]

動画

[YouTube動画]

[演習の詳細を表示するには、この行をクリックしてください]

演習について

以下の演習では,説明部分で学んだプログラミングの概念を各自が実践する.

演習① Scratchの開始・ブロック操作

説明パートの1-4「プログラムとは」「イベント駆動」「順次実行」「ブロック操作の基本」に対応する演習である.Scratchを起動し,イベントブロックと動きブロックを組み合わせて,キャラクタを動かす最小限のプログラムを作成する.「旗が押されたとき」というイベントに「10歩動かす」という動作を接続する操作を通じて,イベント駆動と順次実行の基本を体験する.

URL: https://scratch.mit.edu/

前提スキル:Webブラウザの操作,URLの理解.ドラッグ操作(左ボタンを押しながら移動し,左ボタンを離す).

操作手順

  1. Webブラウザを起動する.
  2. Webブラウザで https://scratch.mit.edu/ を開く.
  3. 「作ってみよう」をクリックする.
  4. 「イベント」をクリックし,「旗が押されたとき」をドラッグする.
  5. 「動き」をクリックし,「10歩動かす」をドラッグし,「旗が押されたとき」と合体する.
  6. 旗ボタンをクリックする(キャラクタが少し右に動く).旗ボタンを数回クリックしてみよう.

観察と考察

演習② キャラクタ・スプライト

説明パートの1-5「キャラクタの基本」「スプライト(キャラクタ画像)」に対応する演習である.新しいスプライトを追加し,追加したキャラクタに対して個別にブロックを組み立てる.キャラクタごとに独立したプログラムを持つというスプライトの基本的な仕組みを確認する.

操作手順

  1. スプライト一覧(画面右下)の猫のアイコンにカーソルを合わせ,「スプライトを選ぶ」をクリックする.
  2. 好きなキャラクタを選ぶ.
  3. 新しいキャラクタを選んでから,演習①と同様に「旗が押されたとき」と「10歩動かす」のブロックを組み立てる.
  4. 旗ボタンをクリックするとキャラクタが動く.何度かクリックしてみよう.

観察と考察

演習③ キャラクタの制御

説明パートの1-6「①繰り返し」「②もし・・・たら,・・・する(条件分岐)」「③強制停止」に対応する演習である.「ずっと」ブロックによる繰り返し,「もし端に着いたら,跳ね返る」ブロックによる条件分岐,赤ボタンによる強制停止を組み合わせて,キャラクタが自動的に動き続けるプログラムを作成する.さらに「右に15度回す」ブロックを追加し,動きの初期方向を変更する効果を確認する.

操作手順

  1. 演習②で追加したキャラクタが選ばれていることを確認する.
  2. 「制御」を選び「ずっと」をドラッグして,「10歩動かす」を囲むように合体する(「10歩動かす」が「ずっと」の中に入る形になる).
  3. 「動き」を選び「もし端に着いたら,跳ね返る」をドラッグして,「ずっと」の中の「10歩動かす」の下に合体する.
  4. 旗ボタンをクリックするとキャラクタが動く.赤ボタンをクリックすると止まる.
  5. 赤ボタンをクリックして止めてから,「動き」の「右に15度回す」を「旗が押されたとき」と「ずっと」の間に加える.
  6. 旗ボタンをクリックするとキャラクタが動く.赤ボタンをクリックすると止まる.動き始めの瞬間に15度傾く.

観察と考察

演習④(余裕のある人向け)

説明パートの1-4「ブロックの形状と合体ルール」,1-5「キャラクタの操作」,1-6すべてに対応する活動である.演習①~③で学んだブロック操作,スプライト管理,繰り返し,条件分岐を組み合わせ,各自の工夫により自由にプログラムを作成する.ブロックの形状による合体ルールを手がかりに,未使用のブロックにも挑戦する.

操作手順

観察と考察

第2回. 人工知能の仕組み

人工知能は,コンピュータが人間のような知的能力を持つことを目指す技術である。 データから自ら学習する機械学習と,人間が書いたルールや知識を用いる知的なITシステムに大別される。 応用分野は,画像分類,顔検知,対話型AI,自動翻訳,データ分析と予測,テキストからの画像合成など多岐にわたる。 学習データに偏りがあると結果にも偏りが出るため利用には注意が必要である。AIは人間を支援する道具であり,最終的な判断は人間が行う。

スライド資料

[PDF], [パワーポイント], [HTML]

動画

[YouTube動画]

[演習の詳細を表示するには、この行をクリックしてください]

演習について

以下の演習では,説明部分で学んだAIの概念を,オンラインデモを通じて体験する.各デモの結果を観察し,考察すること.

使用するサイトの都合上、習っていない言葉(例:隠れ層)などが出てくるが、続行して欲しい。今回の説明内容に合致する外部サイトを選んでいる。

演習1. TensorFlow Playground(機械学習・ニューラルネットワーク)

ニューラルネットワークの基本構造に関する演習である.ニューラルネットワークの構造やパラメータを変更しながら,学習過程の変化を観察する.

URL: https://playground.tensorflow.org

操作手順

  1. ページを開く
  2. 画面左上の「DATA」セクションで,データセット(円形,XOR,渦巻き等)を選択する
  3. 必要に応じて、「FEATURES」セクションで入力特徴量(X1,X2等)を選択する
  4. 必要に応じて、「HIDDEN LAYERS」の「+」「-」ボタンで隠れ層の数を変更する.各層のニューロン数も「+」「-」で変更できる
  5. 画面上部の再生ボタン(▶)をクリックして学習を開始する
  6. 学習が進む様子と,出力領域の色分けの変化を観察する
  7. Learning rateやActivation関数を変更し,学習結果の違いを比較する

観察と考察

演習2. PathFinding.js Visual(知的なITシステム)

探索による問題解決に関する演習である.探索アルゴリズムが経路を見つける過程を可視化し,コンピュータによる探索の仕組みを理解する.

URL: https://qiao.github.io/PathFinding.js/visual/

操作手順

  1. ページを開く
  2. グリッド上でマウスをドラッグして壁(障害物)を配置する
  3. 緑色のノード(スタート地点)と赤色のノード(ゴール地点)はドラッグで移動できる
  4. 画面上部のドロップダウンからアルゴリズム(A*,BFS,DFS等)を選択する
  5. 「Start Search」ボタンをクリックする
  6. 探索対象のセル(水色)と最短経路(黄色)がアニメーションで表示される
  7. アルゴリズムを変更して,探索の仕方の違いを比較する

観察と考察

演習3. CNN 3D Visualization(Adam Harley)(機械学習・ニューラルネットワーク)

ニューラルネットワークの基本構造に関する演習である.畳み込みニューラルネットワーク(CNN)の内部構造を3Dで可視化し,各層がどのように入力を処理しているかを観察する.

URL: https://adamharley.com/nn_vis/cnn/3d.html

操作手順

  1. ページを開く(使用するWebブラウザの種類・バージョンによって動作しない場合がある)
  2. 左下の描画パッドに数字(0〜9)をマウスで描く
  3. 3D表示されたネットワークの各層のニューロンの活性化(色の変化)をリアルタイムに観察する
  4. 各ニューロンにマウスカーソルを合わせると,そのニューロンが何を検出しているか確認できる
  5. 異なる数字を描き,ネットワークの反応の違いを比較する

観察と考察

演習4. AutoDraw(Google)(AIによる合成)

人間の下書きをAIが清書する演習である.手描きの下書きをAIが認識し,候補イラストを提示する仕組みを体験する.

URL: https://www.autodraw.com/

操作手順

  1. ページを開く
  2. li>最初、緑色の「Start Drawing」をクリック
  3. 画面左側のツールバーから「AutoDraw」ツール(魔法の杖アイコン)を選択する
  4. キャンバスに絵(例:猫,車,花等)を手描きする
  5. 画面上部にAIが推測した候補イラストが表示される
  6. 候補の中から適切なものをクリックすると,手描きが清書に置き換わる

観察と考察

第3回. デジタル画像

デジタル画像は格子状に並んだ画素から構成され,輝度(明るさ)のみを持つ濃淡画像と,輝度と色の情報を持つカラー画像がある。 カラー画像の成分は,R(赤)・G(緑)・B(青)の3成分で表す方法と,輝度成分と色成分で表す方法がある。 畳み込み(フィルタ処理)は,周囲の画素にフィルタの重みを掛けて和をとり各画素の値とする操作で,ぼかし・エッジ検出・シャープ化などを実現する。 空間周波数は明暗の変化の細かさを表し,スペクトルの中心は低周波,周辺は高周波に対応し,高周波除去でぼかし,低周波除去で輪郭抽出ができる。

スライド資料

[PDF], [パワーポイント] (同じ内容, クリックしてダウンロード)

動画

[動画]

[演習の詳細を表示するには、この行をクリックしてください]

演習について

以下の演習では,説明部分で学んだデジタル画像の概念(画素,カラー画像の成分,畳み込み,空間周波数),画像制作におけるコンピュータの有用性を,Webブラウザ上で動作するサイトを通じて実践的に体験する.いずれもインストール不要で,マウス操作のみで体験できる.

演習① ペイントソフト Fluid Paint

Fluid Paint は油絵具の物理特性をシミュレートするペイントソフトであり,筆の色,サイズ,毛先の数(Bristle Count),流動性(Paint Fluidity)を設定して描画できる.画素ごとに色情報を持つカラー画像が生成される過程と,周囲の画素同士が相互作用してにじみや混色が生じる様子を観察できる.

URL: https://david.li/paint/

操作手順

  1. Webブラウザを起動する.
  2. Webブラウザで https://david.li/paint/ を開く.
  3. 画面のメニューから色(Paint Color)を選択する.
  4. キャンバス上でマウスの左ボタンを押し続けながらドラッグし,線を描く.
  5. マウスホイールをスクロールして筆のサイズ(Brush Size)を変更し,再度ドラッグして線を描く.
  6. 毛先の数(Bristle Count),流動性(Paint Fluidity)の各項目を変更し,それぞれ線を描いて筆跡の違いを確認する.
  7. 異なる色を選択し,先に描いた線の上に重ねて描画して混色の様子を観察する.
  8. 誤った操作をしたときは Undo(元に戻す)をクリックする.キャンバス全体を消去するときは Clear をクリックする.

観察と考察

演習② アート作品制作サイト Silk

Silk は対称性を持った曲線をマウス操作で描けるジェネレーティブアートのサイトである.対称(Mirror)や螺旋(Spiral)といった機能により,少ない操作で複数の曲線からなる構造を生成できる.

URL: http://weavesilk.com/

操作手順

  1. Webブラウザを起動する.
  2. Webブラウザで http://weavesilk.com/ を開く.
  3. 「Draw Something」をクリックして開始する.
  4. キャンバス上でマウスをゆっくりドラッグし,曲線を描く.初期状態では対称性が有効になっており,1本のドラッグから複数の曲線が同時に描画される.
  5. 左上のメニューの「Controls」で、色(Color)を選択する.
  6. 左上のメニューの「Controls」で、色の下にある対称数(symmetries)のスライダーを用いて対象数を変更,描画して,結果の違いを確認する.
  7. 「Mirror across center」(中心鏡映対称)のオン/オフを切り替え,それぞれで描画する.
  8. 「Spiral towards center」(中心への螺旋)のオン/オフを切り替え,それぞれで描画する.
  9. 1つ前の操作を取り消すときは Z キーを押す.キャンバスを全消去するときは Space キーを押す.

観察と考察

演習③ 流体シミュレーション WebGL Fluid Simulation

WebGL Fluid Simulation は,流体の物理シミュレーションをGPU上で実行し,マウス操作で光の渦のような流体表現を生成するサイトである.流体の各時点の状態は,前時点の各画素の値とその周囲の画素の値から計算される.設定メニューでは密度の減衰(density diffusion ),速度の減衰(velocity diffusion),渦度(Vorticity),噴出半径(Splat Radius),ブルーム(Bloom),光線(Sunrays)などのパラメータを変更できる.

URL: https://paveldogreat.github.io/WebGL-Fluid-Simulation/

操作手順

  1. Webブラウザを起動する.
  2. Webブラウザで https://paveldogreat.github.io/WebGL-Fluid-Simulation/ を開く.
  3. キャンバス上でマウスをドラッグし,流体の動き(splat)を生成する.
  4. マウスを動かす速さを変えて,生成される渦の様子を比較する.
  5. キャンバスの異なる位置で複数回ドラッグし,渦同士が干渉する様子を観察する.
  6. 画面右上の歯車アイコンをクリックして設定メニューを開き,密度の減衰(density diffusion ) の値を変更してから再度ドラッグする.色がどれだけの時間で消えるかを比較する.
  7. Splat Radius の値を変更し,1回のドラッグで生成される渦の大きさを比較する.

観察と考察

演習④ Setosa.io:画像にフィルタを適用

説明パートで学んだ「画像は画素値を並べた2次元配列である」「畳み込みは画像上の各位置で近傍の画素値とカーネル(フィルタ)の値の要素ごとの積の和を計算する操作である」という概念に対応する演習である.カーネル(フィルタ)を切り替えて出力画像の変化を確認する.出力画像および入力画像の任意の画素にマウスを合わせることで,3×3近傍の画素値とフィルタの値の積和演算の過程を数値で確認する.

URL: https://setosa.io/ev/image-kernels/

操作手順

  1. Webブラウザを起動する.
  2. Webブラウザで https://setosa.io/ev/image-kernels/ を開く.
  3. 顔画像と画素値(0〜255)の行列が表示されていることを確認する.
  4. ページ下部のプレイグラウンドで,「kernel」の下のメニューから「blur」を選び,出力画像の変化を確認する.
  5. 同様に「bottom sobel」「emboss」「identity(何も変化しないフィルタ)」「left sobel」「outline」「right sobel」「sharpen」「top sobel」を順に選び,それぞれの出力画像を確認する.
  6. 出力画像の任意の画素にマウスを合わせる.入力画像の対応する3×3近傍が強調表示され,3×3近傍の各画素値とフィルタの各値の要素ごとの積,およびその合計が表示されることを確認する.

観察と考察

演習⑤ deeplizard:畳み込みを1ステップずつ確認する

演習④で確認した「フィルタを適用すると画像がどう変わるか」を踏まえ,本演習では「そのとき何が計算されているか」を確認する.フィルタが入力行列上を1マスずつスライドする過程を可視化し,出力行列の各要素がどの入力領域から計算されたかを追跡する.出力値の正(赤)と負(青)の色分けにより,畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)が画像から特徴を抽出する原理を確認する.

URL: https://deeplizard.com/resource/pavq7noze2

操作手順

  1. Webブラウザを起動する.
  2. Webブラウザで https://deeplizard.com/resource/pavq7noze2 を開く.
  3. 入力行列,3×3のフィルタ,出力行列の表示欄の3つが表示されていることを確認する.フィルタサイズは3×3であることを確認する.
  4. 「Play(再生)」をクリックし,フィルタが入力行列上を1マスずつスライドし,出力行列の各要素が順次計算されていく過程を確認する.
  5. 出力行列の任意の画素にマウスを合わせる.対応する入力の3×3領域とフィルタの要素ごとの積,およびその合計が表示されることを確認する.
  6. 出力行列全体を見渡し,正の値(赤)と負の値(青)の分布を確認する.

観察と考察

演習⑥ 2D Inverse Fourier Transform Playground:空間周波数を操作

本演習では,画像を周波数領域で表現したスペクトル上で編集を行い,その逆フーリエ変換(周波数を画像に戻す処理)結果を確認することで,空間周波数成分と画像の対応関係を確認する.スペクトル中心の低周波成分が画像の大局的な明暗に対応し,周辺の高周波成分が輪郭や細部に対応することを,スペクトルを削る操作を通じて確認する.

URL: https://monman53.github.io/2dfft/

操作手順

  1. Webブラウザを起動する.
  2. Webブラウザで https://monman53.github.io/2dfft/ を開く.
  3. 「Original image(原画像)」「Result(マスク適用後の逆フーリエ変換結果)」「Masked spectrum(編集可能なマスク付きスペクトル)」「Spectrum(スペクトル)」の4つが表示されていることを確認する.
  4. 右下の「白」のボタンをクリックする。このとき Result に原画像が表示されることを確認する.これは全ての周波数成分が通過している状態に対応する.
  5. Masked spectrum の周辺部(高周波成分)を左ドラッグで削る.削るための大きさは、マウスホイールで調整できる。マウスホイールで,削る範囲を調整して,様々な削り方を試す.結果として、Result の画像から輪郭や細部が失われていく過程を確認する.
  6. 次に,Masked spectrum の中心部(低周波成分)を左ドラッグで削る.Result の画像から大局的な明暗が失われ,輪郭成分が残ることを確認する.
  7. 途中で、右下の「白」のボタンをクリックして、もとに戻しながら、色々と試してみる。

観察と考察

第4回. ストリートビュー,3次元コンピュータグラフィックス

Google Mapのストリートビューは地図上の地点における道路からの画像を閲覧する機能で,地名や施設名で検索できる。 オブジェクトを様々な方向から撮影し3次元データを得る処理を3次元再構成という。ポリゴン(平らな多角形)の集合体であるポリゴンメッシュで3次元モデルを表現できる。 Google Earthは無料のオンラインの地球儀で,2次元・3次元の地図表示やストリートビューの機能を持つ。 Blenderは無料の3次元コンピュータグラフィックス(3DCG)の作成・編集ソフトウェアで,3次元モデル制作,アニメーション,画像出力などの機能を持つ。

スライド資料

[PDF], [パワーポイント] (同じ内容, クリックしてダウンロード)

[演習の詳細を表示するには、この行をクリックしてください]

演習① Google Mapのストリートビューを用いた探索

ストリートビューは,地図上の地点における道路からの画像を閲覧する機能である.Google Mapではストリートビューのモードへ切り替えて利用する.本演習では,Google Mapで地名等を検索し,ストリートビューでの表示と移動を行う.

URL: https://www.google.co.jp/maps

操作手順

  1. Webブラウザを起動する.
  2. Webブラウザで https://www.google.co.jp/maps を開く.
  3. 検索欄に地名,施設名,住所などのキーワードを入力して検索する.
  4. 右下の「人型のボタン」をクリックして,ストリートビューのモードへ切り替える.

    道路沿い等に多数の青色の表示が付くことを確認する.

  5. 青色の表示をクリックして,その場所のストリートビューを表示する.
  6. マウスの左ボタンを押しながらマウスを動かして,見ている向き(注視方向)を変える.
  7. マウスを道路の上に置くと,「^」の記号が入った白丸が表示される.

    白丸をクリックして移動する.

  8. 別の場所のストリートビューを見るときは,左上の「←」をクリックして元の地図に戻る.

ヒント

考察ポイント


エベレスト

富士山

演習② Google Earthを用いた探索

Google Earthは,無料で利用可能なオンラインの地球儀である.Google Earthには,写真,3次元コンピュータグラフィックス,写真+標高,地球儀,ストリートビューの機能がある.本演習では,Google Earthで地名等を検索し,自由な視点移動を行いながら,ストリートビューとの違いを確認する.

URL: https://earth.google.com

操作手順

  1. Webブラウザを起動する.
  2. Webブラウザで https://earth.google.com を開く.
  3. もし、プロジェクト一覧の画面が表示された場合は,「新規」をクリックして「新しい地図」を選ぶ.
  4. 検索欄に地名,施設名,住所などのキーワードを入力して検索する.
  5. 検索結果から場所を選ぶ.
  6. マウス操作により視点を移動する.
  7. 右下の「2D」「3D」ボタンをクリックして,2次元表示と3次元表示を切り替え,両方の表示を確認する.
  8. 別のキーワードで再度検索し,異なる場所を同様に確認する.

ヒント

考察ポイント

演習③ Blenderの体験

Blenderは,3次元コンピュータグラフィックス(3DCG)の作成・編集ソフトウェアであり,無料で利用可能である.3次元モデル制作,アニメーション,レンダリング(画像生成)などの機能を提供する.本演習では,Blenderの起動,立方体の確認,球と円柱の追加と移動,色の設定とレンダリングを行う.

Blender ダウンロードページ:https://www.blender.org/download/

Blender のインストールの説明: https://www.kkaneko.jp/db/cg/blenderinst.html

事前準備:上記ダウンロードページから Blender を入手し,インストールしておくこと.

注意:オブジェクトはカメラから見える範囲に配置すること.カメラの移動については本演習では扱わないので,興味のある人は各自で調べてほしい.

操作手順

  1. Blenderを起動する.
  2. 3Dビューポート内に表示されている立方体(Cube)を確認する.カメラとライトもあわせて配置されている.
  3. 立方体を左クリックして選択する.右上のアウトライナー(オブジェクト一覧)から選択することもできる.
  4. 選択した立方体に対して,移動の操作を行う.キーボードの G キーを押した後にマウスを動かして位置を決め,左クリックで確定する.軸を固定したい場合は,G キーの後に X/Y/Z のいずれかを押す.3Dビューポート上のギズモ(矢印)をドラッグして移動することもできる.
  5. 余裕があれば,選択した立方体に対して,回転(R キー),拡大・縮小(S キー)の操作も試してみる.いずれもキーを押した後にマウスを動かして変形量を決め,左クリックで確定する.
  6. 球を追加する.3Dビューポートのヘッダの「追加(Add)」→「メッシュ(Mesh)」→「UV球(UV Sphere)」を選ぶ(キーボードの SHIFT + A でも同じメニューが開く).
  7. 追加した球を選択し,移動する.

    左クリックして選択する.右上のアウトライナー(オブジェクト一覧)から選択することもできる.

  8. 同じ手順で円柱を追加する.「追加(Add)」→「メッシュ(Mesh)」→「円柱(Cylinder)」を選ぶ.
  9. 追加した円柱を選択し,移動する.

    左クリックして選択する.右上のアウトライナー(オブジェクト一覧)から選択することもできる.

  10. 色を設定するオブジェクトを選択する(立方体・球・円柱のいずれでもよい.時間に余裕があれば,3つそれぞれに異なる色を設定してもよい).

    左クリックして選択する.右上のアウトライナー(オブジェクト一覧)から選択することもできる.

  11. プロパティから「マテリアル」を開く.

    「マテリアル」が見えないときはスクロール.

  12. 「新規(New)」をクリックする.

    「新規(New)」が表示されない場合は,問題ない.次へ進む(表示されないのは,マテリアルがすでに作成済みであるため.問題ない).

  13. 「ベースカラー(Base Color)」をクリックする.カラーピッカーが開くので,色を設定する.
  14. F12キーを押してレンダリングを行う.新しくレンダリングの結果の画像の画面が開く.この画面で,設定した色を確認する.F12キーが効かない,または無い場合は,メニューの「レンダー(Render)」→「画像をレンダリング(Render Image)」を実行する.確認したら,レンダリングの画面を閉じる.

ヒント

考察ポイント

cs-5. 人工知能の概要

【資料】 [PDF], [パワーポイント]

【概要】人工知能は、知能知識学習の3要素を持ち、言語処理、画像認識、データ分析など多様な分野で活用される。24時間稼働や大量データ処理が可能である一方、創造性や倫理的判断には限界がある。人間の補助ツールとして活用し、最終判断は人間が行うことが望ましい。

【関連する外部ページ】

人工知能のデモンストレーション:

以下のサイトで人工知能の動作を体験できる。外部サービスのため、利用規約を確認の上で使用すること。

画像生成・処理AI:

創作支援AI:

機械翻訳:

ニューラルネットワークの学習過程可視化:

TensorFlow Playgroundでは、ニューラルネットワークがデータを分類する過程を視覚的に確認できる。

cs-6. データベースシステムとデータサイエンス

【資料】 [PDF], [パワーポイント]

【概要】データベースは現代社会に不可欠な基盤技術であり、データサイエンスはデータベースから有益な情報を引き出す学問である。Excelなどの表計算ソフトを使用することで、データの集計、分析、可視化が可能となり、意思決定や問題解決に活用できる。

【演習】

演習1: データの可視化

散布図を作成することで、2つの変数間の関係を視覚的に把握できる。傾向やパターンの発見に有効である。

次のデータについて、Excelを用いて散布図を作成する。データは総務省が公開しているものを使用している。

1985 1432 752
1990 1222 820
1995 1187 922
2000 1191 962
2005 1063 1084
2010 1071 1197

演習2: データの基本統計量

合計や平均を算出することで、データの全体像を数値で把握できる。

演習1のデータについて、Excelを用いて合計と平均を算出する。

【関連する外部ページ】

パソコン室設置のパソコンにはExcelがインストールされている。BYOD(個人のデバイスを持ち込んで使用すること)でMicrosoft 365を使用する場合は、以下のURLからアクセスできる。

Microsoft 365: https://portal.office.com

cs-7. 乱数、シミュレーション

【資料】 [PDF], [パワーポイント]

【概要】乱数は予測不可能な数値を生成する技術であり、一様分布(全ての値が同じ確率で出現)と正規分布(平均値付近に集中)の2種類がある。Excelでは「RAND()」関数で一様分布の乱数を生成できる。乱数は、不確実性を含む現象の分析に活用される。

【演習】

シミュレーションにより、実験や観測が困難な現象を計算機上で再現し、分析できる。

  1. 一様分布の乱数(範囲は-1から1)の生成(資料中に記載、Excelを使用)
  2. モンテカルロシミュレーション(乱数を用いた数値計算手法)による円周率の算出(資料中に記載、Excelを使用)
  3. 待ち行列シミュレーション(窓口での待ち時間などを分析する手法): ランダムな到着と到着間隔の分析(資料中に記載、Excelを使用)

【関連する外部ページ】

cs-8. 表計算ソフトウェアを用いたデータの扱い

【資料】 [PDF], [パワーポイント]

【概要】Excelでは、散布図の色分けによるクラスタ分析(類似データのグループ化)やVLOOKUP関数(表からのデータ検索)が可能である。セル参照には絶対参照($記号使用、参照先を固定)と相対参照(コピー時に参照先が移動)があり、これらを使い分けることで効率的なデータ分析が実現できる。

【演習】

演習1: データ分析の基礎(Excelを使用)

データを分類・可視化することで、隠れたパターンや傾向を発見できる。

アヤメの花のデータセット:

機械学習の入門でよく使用されるデータセットである。花弁の長さと幅から品種を分類する。

petal_length	petal_width	species
1.4	0.2	setosa
1.4	0.2	setosa
1.3	0.2	setosa
1.5	0.2	setosa
1.4	0.2	setosa
4.7	1.4	versicolor
4.5	1.5	versicolor
4.9	1.5	versicolor
4.0	1.3	versicolor
4.6	1.5	versicolor
6.0	2.5	virginica
5.1	1.9	virginica
5.9	2.1	virginica
5.6	1.8	virginica
5.8	2.2	virginica

タイタニック号の乗客データ:

元の1309名分のデータから抽出した100名分のデータである。生存率と各属性の関係を分析できる。

Survived	Age	Fare
0	22	7.25
1	38	71.2833
1	26	7.925
1	35	53.1
0	35	8.05
0		8.4583
0	54	51.8625
0	2	21.075
1	27	11.1333
1	14	30.0708
1	4	16.7
1	58	26.55
0	20	8.05
0	39	31.275
0	14	7.8542
1	55	16
0	2	29.125
1		13
0	31	18
1		7.225
0	35	26
1	34	13
1	15	8.0292
1	28	35.5
0	8	21.075
1	38	31.3875
0		7.225
0	19	263
1		7.8792
0		7.8958
0	40	27.7208
1		146.5208
1		7.75
0	66	10.5
0	28	82.1708
0	42	52
1		7.2292
0	21	8.05
0	18	18
1	14	11.2417
0	40	9.475
0	27	21
0		7.8958
1	3	41.5792
1	19	7.8792
0		8.05
0		15.5
1		7.75
0		21.6792
0	18	17.8
0	7	39.6875
0	21	7.8
1	49	76.7292
1	29	26
0	65	61.9792
1		35.5
1	21	10.5
0	28.5	7.2292
1	5	27.75
0	11	46.9
0	22	7.2292
1	38	80
0	45	83.475
0	4	27.9
0		27.7208
1		15.2458
1	29	10.5
0	19	8.1583
1	17	7.925
0	26	8.6625
0	32	10.5
0	16	46.9
0	21	73.5
0	26	14.4542
1	32	56.4958
0	25	7.65
0		7.8958
0		8.05
1	0.83	29
1	30	12.475
0	22	9
1	29	9.5
1		7.7875
0	28	47.1
1	17	10.5
1	33	15.85
0	16	34.375
0		8.05
1	23	263
0	24	8.05
0	29	8.05
0	20	7.8542
0	46	61.175
0	26	20.575
0	59	7.25
0		8.05
0	71	34.6542
1	23	63.3583
1	34	23
0	34	26

演習2: Excel関数の基本(絶対参照と相対参照)

絶対参照と相対参照を使い分けることで、数式を効率的にコピーできる。

商品販売データの例:

氏名	商品名	数量	単価	合計
AA	みかん	3			みかん	50
BB	メロン	2			りんご	100
CC	りんご	5			メロン	500

【関連する外部ページ】

パソコン室設置のパソコンにはExcelがインストールされている。BYOD(個人のデバイスを持ち込んで使用すること)でMicrosoft 365を使用する場合は、以下のURLからアクセスできる。

Microsoft 365: https://portal.office.com

cs-9. 一次式、線形計画法

【資料】 [PDF], [パワーポイント]

【概要】線形計画法は、限られた資源の制約条件(満たすべき条件式)の下で目標関数(最大化または最小化したい式)を最適化する手法である。Excelで計算することで、生産計画や資源配分の最適解を求めることができる。

【演習】

線形計画法を用いることで、限られた資源を最も効率的に配分する方法を求められる。

演習1: 変数xについての線形式(1次式)

線形式をグラフ化し、式と直線の関係を確認する。

5x + 3

この式をグラフ化し、散布図として表示する。

演習2: 変数x、yについての線形式

2変数の線形式を理解する。

たまご = 2x + y
牛乳 = 100x + 200y

これらの式について、xとyに様々な値を代入して計算結果を確認する。

演習3: 変数x、yについての線形不等式(制約条件)

制約条件を満たす領域を理解する。

たまご: 2x + y ≦ 10
牛乳: 100x + 200y ≦ 1000

xとyの値の組み合わせによって、制約条件を満たす場合と満たさない場合がある。

演習4: 目的関数の最大化(線形計画法)

制約条件の下で売り上げを最大化する。

売り上げ = 150x + 200y を最大化する。

xはプリン(150円)、yはケーキ(200円)の個数を表す。詳細は資料のページ58を参照すること。

【Excelファイル】

【関連する外部ページ】

cs-10. Python プログラミングの基本

【資料】 [PDF], [パワーポイント]

【概要】Pythonプログラミングでは、オブジェクト(データと操作をまとめたもの)にメソッド(オブジェクトに対する操作)を適用して処理を行う。CodeCombatやタートルグラフィックス(カーソルの軌跡で図形を描画する手法)を使った演習を通じて、プログラミングの基本概念を視覚的に理解する。

【演習】

演習1: CodeCombat(プログラミング学習ゲーム)

ゲーム形式でプログラミングの基本を学習できる。

https://codecombat.com

注意事項:

演習2: 図形描画の基本

タートルグラフィックスで座標を指定して線を描画する。

https://trinket.io/python/f29bfe71cd

このリンクでは、次のプログラムをオンラインで実行できる。trinketという実行環境で編集も可能である。実行時は「実行」ボタンを選択する。

import turtle
t = turtle.Turtle()
t.goto(0,100)
t.goto(100,0)

演習3: 図形描画の応用

複数の座標を指定して星形を描画する。

https://trinket.io/python/5366def2f4

このリンクでは、次のプログラムをオンラインで実行できる。trinketという実行環境で編集も可能である。実行時は「実行」ボタンを選択する。

import turtle
t = turtle.Turtle()
t.goto(0, 100)
t.goto(58, -80)
t.goto(-95, 30)
t.goto(95, 30)
t.goto(-58, -80)
t.goto(0, 100)

演習4: 色付き図形の描画

繰り返し処理と配列を組み合わせて、色を変えながら図形を描画する。

https://trinket.io/python/f8cd554693

このリンクでは、次のプログラムをオンラインで実行できる。trinketという実行環境で編集も可能である。実行時は「実行」ボタンを選択する。

import turtle
t = turtle.Turtle()
colors = ["red", "green", "blue"]
for i in range(3):
t.color(colors[i])
t.circle(30)
t.forward(50)

cs-11. 式の抽象化と関数

【資料】 [PDF], [パワーポイント]

【概要】Pythonプログラミングでは、inputによる入力とprintによる出力、defによる関数定義が基本となる。関数は類似した処理を抽象化(共通部分をまとめること)することでコードの再利用性を高め、保守性向上とバグ防止に寄与する。

【演習】

演習1: 変数の基本操作

変数に値を代入し、計算結果を確認する。

https://trinket.io/library/trinkets/1e414fec80

このリンクでは、次のプログラムを実行できる。trinketという実行環境で編集も可能である。実行時は「実行」ボタンを選択する。

x = 100
y = 200
x = x + 100
y = y + 100
print("x =", x)
print("y =", y)

演習2: 繰り返し処理の基礎

for文を使用して同じ処理を繰り返す。

https://trinket.io/python/27f6ebe1da

このリンクでは、次のプログラムを実行できる。trinketという実行環境で編集も可能である。実行時は「実行」ボタンを選択する。

for i in range(10):
print(i * '&')

https://trinket.io/python/b7eb532453

このリンクでは、次のプログラムを実行できる。trinketという実行環境で編集も可能である。実行時は「実行」ボタンを選択する。

s = 1
for i in range(5):
s = s * (i + 1)
print(s)

演習3: タートルグラフィックス

繰り返し処理を使用して図形を描画する。

https://trinket.io/python/895c3ea5b6

このリンクでは、次のプログラムを実行できる。trinketという実行環境で編集も可能である。実行時は「実行」ボタンを選択する。

import turtle
t = turtle.Turtle()
for i in range(5):
t.forward(100)
t.right(170)

https://trinket.io/python/0d8dbc1139

このリンクでは、次のプログラムを実行できる。trinketという実行環境で編集も可能である。実行時は「実行」ボタンを選択する。

import turtle
t = turtle.Turtle()
for i in range(5):
t.forward(i * 20 + 100)
t.right(170)

演習4: 入力と計算の基本

ユーザーから値を入力し、計算結果を出力する。

https://trinket.io/python/bdca234a3e

このリンクでは、次のプログラムを実行できる。trinketという実行環境で編集も可能である。実行時は「実行」ボタンを選択する。

print("teihen =")
teihen = float(input())
print("takasa =")
takasa = float(input())
print("teihen * takasa / 2 =", teihen * takasa / 2)

https://trinket.io/python/bdca234a3e

このリンクでは、次のプログラムを実行できる。trinketという実行環境で編集も可能である。実行時は「実行」ボタンを選択する。

print("r =")
r = float(input())
print("r * r * 3.14 =", r * r * 3.14)

演習5: 関数定義と使用

関数を定義することで、同じ処理を複数回使用できる。

https://trinket.io/python/68a090babf

このリンクでは、次のプログラムを実行できる。trinketという実行環境で編集も可能である。実行時は「実行」ボタンを選択する。

def foo(a):
return a * 1.1

print(foo(100))
print(foo(150))
print(foo(400))

cs-12. 条件分岐と繰り返し、ステップ実行

【資料】 [PDF], [パワーポイント]

【概要】Pythonプログラミングでは、変数による値の保存と参照、if-elseによる条件分岐、リストによる複数要素の管理、forによる繰り返し処理が基本となる。これらを組み合わせることで、効率的なデータ処理や計算を実現できる。

【演習】

演習1: 条件分岐の基本

条件によって処理を分岐させる。この例では年齢によって料金を変える。

https://trinket.io/python/0fd59392c8

このリンクでは、次のプログラムを実行できる。trinketという実行環境で編集も可能である。実行時は「実行」ボタンを選択する。

age = 18
if age <= 11:
print(500)
else:
print(1800)

演習2: プログラムの動作確認(ステップ実行)

Python Tutorでプログラムを1行ずつ実行し、変数の値の変化を確認する。デバッグ(プログラムの誤り修正)に有効な手法である。

https://www.pythontutor.com/

Python Tutorでは、次のプログラムを1行ずつ実行して動作を確認できる。

age = 18
if age <= 11:
print(500)
else:
print(1800)

演習3: プログラミング演習

https://trinket.io/python/62f74d3bfc

このリンクでは、プログラムを実行できる。trinketという実行環境で編集も可能である。実行時は「実行」ボタンを選択する。

演習4: プログラミング演習

https://trinket.io/python/88a728c3cb

このリンクでは、プログラムを実行できる。trinketという実行環境で編集も可能である。実行時は「実行」ボタンを選択する。

演習5: プログラミング演習

https://trinket.io/python/cc2c13d793

このリンクでは、プログラムを実行できる。trinketという実行環境で編集も可能である。実行時は「実行」ボタンを選択する。

演習6: プログラミング演習

https://trinket.io/python/e27702ef75

このリンクでは、プログラムを実行できる。trinketという実行環境で編集も可能である。実行時は「実行」ボタンを選択する。

cs-13. プロセッサ、メモリ、文字コード、論理演算と足し算

【資料】 [PDF], [パワーポイント]

ドクセルのURL: https://www.docswell.com/s/6674398749/5671MZ-2021-12-17-134428

【概要】コンピュータはプロセッサ(演算装置)とメモリ(記憶装置)を中心に構成され、全てのデータを2進数(0と1の組み合わせ)で処理する。論理演算(AND、OR、NOT)を組み合わせて複雑な計算を実現する。OS(オペレーティングシステム)がハードウェアとソフトウェアの橋渡しを行う。

【演習】

演習1: 文字コードの変換

文字がコンピュータ内部で数値として扱われていることを確認する。

https://trinket.io/python/595c091dd9

このリンクでは、次のプログラムを実行できる。trinketという実行環境で編集も可能である。実行時は「実行」ボタンを選択する。

c = 'A'
print(hex(ord(c)))

演習2: 論理演算の基礎

AND演算とOR演算の動作を確認する。論理演算はコンピュータの基本的な計算処理である。

https://trinket.io/python/7f31113af9

このリンクでは、次のプログラムを実行できる。trinketという実行環境で編集も可能である。実行時は「実行」ボタンを選択する。

a = True
b = False
print("a and b =", a and b)
print("a or b =", a or b)

cs-14. 情報化社会でのマナー、情報セキュリティ

【資料】 [PDF], [パワーポイント]

ドクセルのURL: https://www.docswell.com/s/6674398749/5V6XVZ-2021-12-17-134504

【概要】デジタル社会では情報の流通と共有が活発化し、個人も情報発信者となる。そのため、情報の真偽確認、プライバシー保護、セキュリティ対策(ウイルス対策、パスワード管理)が必要である。フェイクニュース(虚偽情報)やマルウェア(悪意のあるソフトウェア)への注意が求められる。

【関連する外部ページ】

IPAのサイトでは、最新のセキュリティ脅威や対策方法を確認できる。

cs-15. 全体まとめ

【資料】 [PDF], [パワーポイント]

ドクセルのURL: https://www.docswell.com/s/6674398749/KNJXEZ-2021-12-17-134355

【概要】情報工学は、AI、データベース、3次元CG、プログラミングなど多様な技術を扱う分野である。全てのデータはデジタル化され、コンピュータで処理される。これらの技術は社会の発展に不可欠であり、セキュリティへの配慮も必要である。

【演習】

演習1: 画像生成AI(人工知能)の実践

テキストから画像を生成するAIを体験する。プロンプト(指示文)の書き方によって生成結果が変わることを確認できる。

  1. Stable Diffusion XL(画像生成AIモデル)のサイト
    https://clipdrop.co/stable-diffusion
  2. Stable Diffusion Playground(画像生成AIの実験環境)のサイト
    https://stablediffusionweb.com/

注意事項: プロンプト(指示文)は英語で記述する必要がある。外部サービスのため、利用規約を確認の上で使用すること。

動画

  1. cs-1. 無料ソフトウエア、無料データ、エコシステム、Scratch プログラミング、Scratch のキャラクタ

    YouTube動画: https://www.youtube.com/watch?v=k8VwaW2GI5g

  2. cs-2. コンピュータによる画像制作、人工知能でできること、情報のコード化、デジタル画像、画素

    YouTube動画: https://www.youtube.com/watch?v=89Kiy7yaTMQ

  3. cs-3. パノラマ画像、ストリートビュー、3次元コンピュータグラフィックス

    YouTube動画: https://www.youtube.com/watch?v=JfsXT9ZQefA

  4. cs-4. プログラミング入門

    YouTube動画: https://www.youtube.com/watch?v=blBX7q2hdCQ

  5. cs-5. 人工知能の概要

    YouTube動画: https://www.youtube.com/watch?v=76Xa2ZGqpy0

  6. cs-6. データベースシステムとデータサイエンス

    YouTube動画: https://www.youtube.com/watch?v=hafgkLQ2fzs

  7. cs-7. 乱数、シミュレーション

    YouTube動画: https://www.youtube.com/watch?v=22MbFeFAYNE

  8. cs-8. 表計算ソフトウェアを用いたデータの扱い

    YouTube動画: https://www.youtube.com/watch?v=vUJKLwNQn44

  9. cs-9. 一次式、線形計画法

    YouTube動画: https://www.youtube.com/watch?v=GKy0Bl5ZCQY

  10. cs-10. Python プログラミングの基本

    YouTube動画: https://www.youtube.com/watch?v=PW0nH3bHEqM

  11. cs-11. 式の抽象化と関数

    YouTube動画: https://www.youtube.com/watch?v=zeleeooCfT0

  12. cs-12. 条件分岐と繰り返し、ステップ実行

    YouTube動画: https://www.youtube.com/watch?v=Z102Pg28nW8

  13. cs-13. プロセッサ、メモリ、文字コード、論理演算と足し算

    YouTube動画: https://www.youtube.com/watch?v=cwR4w-hPW2c

  14. cs-14. 情報化社会でのマナー、情報セキュリティ

    YouTube動画: https://www.youtube.com/watch?v=MmR1Ha8zHBU