コンピューターサイエンス(スライド資料15回ほか)
本資料は、大学授業用に作成したものを更新・改良して公開している。 クリエイティブコモンズ 表示-非営利-継承 4.0 国際ライセンス(CC BY-NC-SA 4.0) で提供しており、事前の許可なく利用できる。利用条件は、著作者表示(BY)、非営利目的のみ(NC)、同一ライセンスでの再配布(SA)の3点である。
【目次】
- cs-1. 無料ソフトウエア、無料データ、Scratch プログラミング、Scratch のキャラクタ [PDF], [パワーポイント], [HTML], [YouTube動画]
- cs-2. AIの仕組み、責任ある利用 [PDF], [パワーポイント], [HTML], [YouTube動画]
- cs-3. デジタル画像 [PDF], [パワーポイント], [HTML]
- cs-4. ストリートビュー,3次元コンピュータグラフィックス [PDF], [パワーポイント], [HTML]
- cs-5. 作成中
- cs-6. データベースシステムとデータサイエンス [PDF], [パワーポイント], [HTML]
【概要】データベースは現代社会に不可欠な基盤技術であり、データサイエンスはデータベースから有益な情報を引き出す学問である。Excelなどの表計算ソフトを使用することで、データの集計、分析、可視化が可能となり、意思決定や問題解決に活用できる。
- cs-7. 乱数、シミュレーション [PDF], [パワーポイント], [HTML]
【概要】乱数は予測不可能な数値を生成する技術であり、一様分布(全ての値が同じ確率で出現)と正規分布(平均値付近に集中)の2種類がある。Excelでは「RAND()」関数で一様分布の乱数を生成できる。乱数は、不確実性を含む現象の分析に活用される。
- cs-8. 表計算ソフトウェアを用いたデータの扱い [PDF], [パワーポイント], [HTML]
【概要】Excelでは、散布図の色分けによるクラスタ分析(類似データのグループ化)やVLOOKUP関数(表からのデータ検索)が可能である。セル参照には絶対参照($記号使用、参照先を固定)と相対参照(コピー時に参照先が移動)があり、これらを使い分けることで効率的なデータ分析が実現できる。
- cs-9. 一次式、線形計画法 [PDF], [パワーポイント], [HTML]
【概要】線形計画法は、限られた資源の制約条件(満たすべき条件式)の下で目標関数(最大化または最小化したい式)を最適化する手法である。Excelで計算することで、生産計画や資源配分の最適解を求めることができる。
- cs-10. Python プログラミングの基本 [PDF], [パワーポイント], [HTML]
【概要】Pythonプログラミングでは、オブジェクト(データと操作をまとめたもの)にメソッド(オブジェクトに対する操作)を適用して処理を行う。CodeCombatやタートルグラフィックス(カーソルの軌跡で図形を描画する手法)を使った演習を通じて、プログラミングの基本概念を視覚的に理解する。
- cs-11. 式の抽象化と関数 [PDF], [パワーポイント], [HTML]
【概要】Pythonプログラミングでは、inputによる入力とprintによる出力、defによる関数定義が基本となる。関数は類似した処理を抽象化(共通部分をまとめること)することでコードの再利用性を高め、保守性向上とバグ防止に寄与する。
- cs-12. 条件分岐と繰り返し、ステップ実行 [PDF], [パワーポイント], [HTML]
【概要】Pythonプログラミングでは、変数による値の保存と参照、if-elseによる条件分岐、リストによる複数要素の管理、forによる繰り返し処理が基本となる。これらを組み合わせることで、効率的なデータ処理や計算を実現できる。
- cs-13. プロセッサ、メモリ、文字コード、論理演算と足し算 [PDF], [パワーポイント], [HTML]
【概要】コンピュータはプロセッサ(演算装置)とメモリ(記憶装置)を中心に構成され、全てのデータを2進数(0と1の組み合わせ)で処理する。論理演算(AND、OR、NOT)を組み合わせて複雑な計算を実現する。OS(オペレーティングシステム)がハードウェアとソフトウェアの橋渡しを行う。
- cs-14. 情報化社会でのマナー、情報セキュリティ [PDF], [パワーポイント], [HTML]
【概要】デジタル社会では情報の流通と共有が活発化し、個人も情報発信者となる。そのため、情報の真偽確認、プライバシー保護、セキュリティ対策(ウイルス対策、パスワード管理)が必要である。フェイクニュース(虚偽情報)やマルウェア(悪意のあるソフトウェア)への注意が求められる。
- cs-15. 全体まとめ [PDF], [パワーポイント], [HTML]
【概要】情報工学は、AI、データベース、3次元CG、プログラミングなど多様な技術を扱う分野である。全てのデータはデジタル化され、コンピュータで処理される。これらの技術は社会の発展に不可欠であり、セキュリティへの配慮も必要である。
【サイト内の関連ページ】
資料
第1回 無料ソフトウエア,無料データ,Scratchプログラミング,Scratchのキャラクタ
無料ソフトウェアには,フリーウェアと,ソースコードが公開され自由に利用・改変・再配布できるオープンソースソフトウェアがある。 無料ソフトウェアや無料データの利用時は,作者が定める利用条件を確認し,著作権を尊重する必要がある。 情報工学は,コンピュータを用いて問題を解決する学問分野で,対象・構造・条件を整理して解決方法を設計する。 Scratchは,コンピュータに実行させる手順であるプログラムを,ブロックを組み合わせて作るビジュアル環境である。順次実行・繰り返し・条件分岐を学ぶことができる。
スライド資料
動画
以下の演習では,説明部分で学んだプログラミングの概念を各自が実践する.
説明パートの1-4「プログラムとは」「イベント駆動」「順次実行」「ブロック操作の基本」に対応する演習である.Scratchを起動し,イベントブロックと動きブロックを組み合わせて,キャラクタを動かす最小限のプログラムを作成する.「旗が押されたとき」というイベントに「10歩動かす」という動作を接続する操作を通じて,イベント駆動と順次実行の基本を体験する. 前提スキル:Webブラウザの操作,URLの理解.ドラッグ操作(左ボタンを押しながら移動し,左ボタンを離す). 操作手順 観察と考察 説明パートの1-5「キャラクタの基本」「スプライト(キャラクタ画像)」に対応する演習である.新しいスプライトを追加し,追加したキャラクタに対して個別にブロックを組み立てる.キャラクタごとに独立したプログラムを持つというスプライトの基本的な仕組みを確認する. 操作手順 観察と考察 説明パートの1-6「①繰り返し」「②もし・・・たら,・・・する(条件分岐)」「③強制停止」に対応する演習である.「ずっと」ブロックによる繰り返し,「もし端に着いたら,跳ね返る」ブロックによる条件分岐,赤ボタンによる強制停止を組み合わせて,キャラクタが自動的に動き続けるプログラムを作成する.さらに「右に15度回す」ブロックを追加し,動きの初期方向を変更する効果を確認する. 操作手順 観察と考察 説明パートの1-4「ブロックの形状と合体ルール」,1-5「キャラクタの操作」,1-6すべてに対応する活動である.演習①~③で学んだブロック操作,スプライト管理,繰り返し,条件分岐を組み合わせ,各自の工夫により自由にプログラムを作成する.ブロックの形状による合体ルールを手がかりに,未使用のブロックにも挑戦する. 操作手順 観察と考察
[YouTube動画]
[演習の詳細を表示するには、この行をクリックしてください]
演習について
演習① Scratchの開始・ブロック操作
演習② キャラクタ・スプライト
演習③ キャラクタの制御
演習④(余裕のある人向け)
第2回. 人工知能の仕組み
人工知能は,コンピュータが人間のような知的能力を持つことを目指す技術である。 データから自ら学習する機械学習と,人間が書いたルールや知識を用いる知的なITシステムに大別される。 応用分野は,画像分類,顔検知,対話型AI,自動翻訳,データ分析と予測,テキストからの画像合成など多岐にわたる。 学習データに偏りがあると結果にも偏りが出るため利用には注意が必要である。AIは人間を支援する道具であり,最終的な判断は人間が行う。
スライド資料
動画
以下の演習では,説明部分で学んだAIの概念を,オンラインデモを通じて体験する.各デモの結果を観察し,考察すること.
使用するサイトの都合上、習っていない言葉(例:隠れ層)などが出てくるが、続行して欲しい。今回の説明内容に合致する外部サイトを選んでいる。
ニューラルネットワークの基本構造に関する演習である.ニューラルネットワークの構造やパラメータを変更しながら,学習過程の変化を観察する. URL: https://playground.tensorflow.org 操作手順 観察と考察 探索による問題解決に関する演習である.探索アルゴリズムが経路を見つける過程を可視化し,コンピュータによる探索の仕組みを理解する. URL: https://qiao.github.io/PathFinding.js/visual/ 操作手順 観察と考察 ニューラルネットワークの基本構造に関する演習である.畳み込みニューラルネットワーク(CNN)の内部構造を3Dで可視化し,各層がどのように入力を処理しているかを観察する. URL: https://adamharley.com/nn_vis/cnn/3d.html 操作手順 観察と考察 人間の下書きをAIが清書する演習である.手描きの下書きをAIが認識し,候補イラストを提示する仕組みを体験する. URL: https://www.autodraw.com/ 操作手順 観察と考察
[YouTube動画]
[演習の詳細を表示するには、この行をクリックしてください]
演習について
演習1. TensorFlow Playground(機械学習・ニューラルネットワーク)
演習2. PathFinding.js Visual(知的なITシステム)
演習3. CNN 3D Visualization(Adam Harley)(機械学習・ニューラルネットワーク)
演習4. AutoDraw(Google)(AIによる合成)
第3回. デジタル画像
デジタル画像は格子状に並んだ画素から構成され,輝度(明るさ)のみを持つ濃淡画像と,輝度と色の情報を持つカラー画像がある。 カラー画像の成分は,R(赤)・G(緑)・B(青)の3成分で表す方法と,輝度成分と色成分で表す方法がある。 畳み込み(フィルタ処理)は,周囲の画素にフィルタの重みを掛けて和をとり各画素の値とする操作で,ぼかし・エッジ検出・シャープ化などを実現する。 空間周波数は明暗の変化の細かさを表し,スペクトルの中心は低周波,周辺は高周波に対応し,高周波除去でぼかし,低周波除去で輪郭抽出ができる。
スライド資料
[PDF], [パワーポイント] (同じ内容, クリックしてダウンロード)
動画
以下の演習では,説明部分で学んだデジタル画像の概念(画素,カラー画像の成分,畳み込み,空間周波数),画像制作におけるコンピュータの有用性を,Webブラウザ上で動作するサイトを通じて実践的に体験する.いずれもインストール不要で,マウス操作のみで体験できる.
Fluid Paint は油絵具の物理特性をシミュレートするペイントソフトであり,筆の色,サイズ,毛先の数(Bristle Count),流動性(Paint Fluidity)を設定して描画できる.画素ごとに色情報を持つカラー画像が生成される過程と,周囲の画素同士が相互作用してにじみや混色が生じる様子を観察できる. 操作手順 観察と考察 Silk は対称性を持った曲線をマウス操作で描けるジェネレーティブアートのサイトである.対称(Mirror)や螺旋(Spiral)といった機能により,少ない操作で複数の曲線からなる構造を生成できる. 操作手順 観察と考察 WebGL Fluid Simulation は,流体の物理シミュレーションをGPU上で実行し,マウス操作で光の渦のような流体表現を生成するサイトである.流体の各時点の状態は,前時点の各画素の値とその周囲の画素の値から計算される.設定メニューでは密度の減衰(density diffusion ),速度の減衰(velocity diffusion),渦度(Vorticity),噴出半径(Splat Radius),ブルーム(Bloom),光線(Sunrays)などのパラメータを変更できる. URL: https://paveldogreat.github.io/WebGL-Fluid-Simulation/ 操作手順 観察と考察 説明パートで学んだ「画像は画素値を並べた2次元配列である」「畳み込みは画像上の各位置で近傍の画素値とカーネル(フィルタ)の値の要素ごとの積の和を計算する操作である」という概念に対応する演習である.カーネル(フィルタ)を切り替えて出力画像の変化を確認する.出力画像および入力画像の任意の画素にマウスを合わせることで,3×3近傍の画素値とフィルタの値の積和演算の過程を数値で確認する. URL: https://setosa.io/ev/image-kernels/ 操作手順 観察と考察 演習④で確認した「フィルタを適用すると画像がどう変わるか」を踏まえ,本演習では「そのとき何が計算されているか」を確認する.フィルタが入力行列上を1マスずつスライドする過程を可視化し,出力行列の各要素がどの入力領域から計算されたかを追跡する.出力値の正(赤)と負(青)の色分けにより,畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)が画像から特徴を抽出する原理を確認する. URL: https://deeplizard.com/resource/pavq7noze2 操作手順 観察と考察 本演習では,画像を周波数領域で表現した URL: https://monman53.github.io/2dfft/ 操作手順 観察と考察
[動画]
[演習の詳細を表示するには、この行をクリックしてください]
演習について
演習① ペイントソフト Fluid Paint
演習② アート作品制作サイト Silk
演習③ 流体シミュレーション WebGL Fluid Simulation
演習④ Setosa.io:画像にフィルタを適用
演習⑤ deeplizard:畳み込みを1ステップずつ確認する
演習⑥ 2D Inverse Fourier Transform Playground:空間周波数を操作
第4回. ストリートビュー,3次元コンピュータグラフィックス
Google Mapのストリートビューは地図上の地点における道路からの画像を閲覧する機能で,地名や施設名で検索できる。 オブジェクトを様々な方向から撮影し3次元データを得る処理を3次元再構成という。ポリゴン(平らな多角形)の集合体であるポリゴンメッシュで3次元モデルを表現できる。 Google Earthは無料のオンラインの地球儀で,2次元・3次元の地図表示やストリートビューの機能を持つ。 Blenderは無料の3次元コンピュータグラフィックス(3DCG)の作成・編集ソフトウェアで,3次元モデル制作,アニメーション,画像出力などの機能を持つ。
スライド資料
[PDF], [パワーポイント] (同じ内容, クリックしてダウンロード)
ストリートビューは,地図上の地点における道路からの画像を閲覧する機能である.Google Mapではストリートビューのモードへ切り替えて利用する.本演習では,Google Mapで地名等を検索し,ストリートビューでの表示と移動を行う. URL: https://www.google.co.jp/maps 操作手順
道路沿い等に多数の青色の表示が付くことを確認する.
白丸をクリックして移動する. ヒント 考察ポイント Google Earthは,無料で利用可能なオンラインの地球儀である.Google Earthには,写真,3次元コンピュータグラフィックス,写真+標高,地球儀,ストリートビューの機能がある.本演習では,Google Earthで地名等を検索し,自由な視点移動を行いながら,ストリートビューとの違いを確認する. 操作手順 ヒント 考察ポイント Blenderは,3次元コンピュータグラフィックス(3DCG)の作成・編集ソフトウェアであり,無料で利用可能である.3次元モデル制作,アニメーション,レンダリング(画像生成)などの機能を提供する.本演習では,Blenderの起動,立方体の確認,球と円柱の追加と移動,色の設定とレンダリングを行う. Blender ダウンロードページ:https://www.blender.org/download/ Blender のインストールの説明: https://www.kkaneko.jp/db/cg/blenderinst.html
事前準備:上記ダウンロードページから Blender を入手し,インストールしておくこと. 注意:オブジェクトはカメラから見える範囲に配置すること.カメラの移動については本演習では扱わないので,興味のある人は各自で調べてほしい. 操作手順 左クリックして選択する.右上のアウトライナー(オブジェクト一覧)から選択することもできる. 左クリックして選択する.右上のアウトライナー(オブジェクト一覧)から選択することもできる. 左クリックして選択する.右上のアウトライナー(オブジェクト一覧)から選択することもできる. 「マテリアル」が見えないときはスクロール. 「新規(New)」が表示されない場合は,問題ない.次へ進む(表示されないのは,マテリアルがすでに作成済みであるため.問題ない). ヒント 考察ポイント
[演習の詳細を表示するには、この行をクリックしてください]
演習① Google Mapのストリートビューを用いた探索
エベレスト
富士山
演習② Google Earthを用いた探索
演習③ Blenderの体験
第5回. コンピュータの構成要素とデータ処理の仕組み
コンピュータは,プロセッサ(計算),メモリ(一時保存),入力装置,出力装置,補助記憶装置の5要素で構成され,プロセッサとメモリ間でデータがやり取りされる。データは二進数(0と1のビット列)で扱われ,メモリは1バイト(8ビット)単位にアドレス(0から始まる通し番号)が付与される。文字はASCIIなどのルールで数値に変換される。16進数(0〜9,A〜F)は二進数4桁を1桁にまとめる表記法である。論理演算(AND,OR,NOT)の組み合わせで足し算などの算術演算が実現でき,負の整数は2の補数(最上位ビットで符号を表現)で扱う。
スライド資料
[PDF], [パワーポイント] (同じ内容, クリックしてダウンロード)
動画
[動画]
[演習の詳細を表示するには、この行をクリックしてください]
演習①:文字コードを観察する前提
- ASCII:1文字を7ビットで表現する文字コード。128種類の文字(英数字・記号・制御文字)を表す。
- 16進数:0〜9 と A〜F を使う表記。A〜F は 10〜15 に対応する。
0x:先頭に付けると、その数値が16進数であることを示す目印。- ord 関数:文字を文字コード(整数)に変換する。
- hex 関数:整数を16進数表記の文字列に変換する。
手順
ステップ 1:1文字の文字コードを表示する
- ブラウザで次のページを開く。https://trinket.io/python/595c091dd9
- 表示されているプログラムを確認する。
c = 'A' print(hex(ord(c))) - 実行ボタン(▶)を押す。
- 結果欄に
0x41と表示されることを確認する。
ステップ 2:入力した文字列を文字コードへ変換する
- ブラウザで次のページを開く。https://trinket.io/python/17fb2ed2d5
- 実行ボタンを押す。
- 結果欄を一度クリックしてから、文字列(例:
abcde)を入力し、Enter キーを押す。 - 各文字の文字コードが1行ずつ16進数で表示されることを確認する。
ヒント
0x41のうち0xは16進数を示す目印。値そのものは41(16進数)。- 資料 5-5 の ASCII 文字コード表で
Aを探すと、列が4、行が1の位置にある。これが 16進数41に対応し、プログラムの出力0x41と一致する。 - 入力時に文字が入らないときは、結果欄を一度クリックしてから入力する。
- 大文字の
Aと小文字のaは別の文字コードになる。
考察ポイント
'B'を入力したときの出力を表から予想し、実行して確かめる。資料 ('A'→ 01000001 → 16進数 41、'B'→ 01000010 → 16進数 42)と対応がとれるはず。- 大文字と小文字を続けて入力(例:
Aa)し、文字コードの違いを観察する。 - 文字列
abcdeを入力すると、5行の文字コードが出力される。これは 文字列が1文字ずつ文字コードに変換されること を示している。
演習②:論理演算(AND、OR)を観察する
前提
- 論理積 AND:両方が1のときのみ結果が1となる演算。
- 論理和 OR:少なくとも片方が1のとき結果が1となる演算。
- 真偽値:Python では
True(真)とFalse(偽)の2つの値を扱う。ここでは、1がTrue、0がFalseに対応する。
手順
ステップ 1:プログラムを実行する
- ブラウザで次のページを開く。https://trinket.io/python/7f31113af9
- 表示されているプログラムを確認する。
a = True b = False print("a and b =", a and b) print("a or b =", a or b) - 実行ボタン(▶)を押す。
- 結果欄に次のように表示されることを確認する。
('a and b =', False) ('a or b =', True)
ステップ 2:4通りの組み合わせを確かめる
a と b の値を次の4通りに書き換え、それぞれ実行ボタンを押して結果を確認する。
a = True、b = Trueのときa = True、b = Falseのときa = False、b = Trueのときa = False、b = Falseのとき
ヒント
- Python の真偽値は 先頭が大文字 で
True/Falseと書く(trueやTRUEではエラーになる)。 a = ...の右辺を書き換えたあとは、必ず実行ボタンを押し直す。- 資料 の AND と OR の表(2行2列)と比べる。
考察ポイント
a = True、b = Trueのときのa or bの結果について、資料 「論理和と『選択』の違い」(焼き芋大会の例)と関係づけて、両方がTrueのときも OR の結果がTrueになることを確認する。
演習③:論理演算で1桁の足し算を作る
前提
- 1桁の二進数同士の足し算の結果は2ビット(上位ビットと下位ビット)になる。
- 上位ビット =
x AND y - 下位ビット =
(x OR y) AND NOT (x AND y) - Python の論理演算子に
not(否定 NOT に対応)が加わる。notは値を反転する。
手順
ステップ 1:プログラムを書き換えて実行する
- ブラウザで演習②と同じページを開く。https://trinket.io/python/7f31113af9
- プログラムを次のコードに書き換える。
a = True b = True upper = a and b lower = (a or b) and not (a and b) print("a =", a, ", b =", b) print("上位ビット =", upper) print("下位ビット =", lower) - 実行ボタン(▶)を押す。
- 結果欄に次のように表示されることを確認する。
a = True , b = True 上位ビット = True 下位ビット = False
ステップ 2:4通りの組み合わせを確かめる
a と b の値を次の4通りに書き換え、それぞれ実行ボタンを押して結果を確認する。
a = False、b = Falseのときa = False、b = Trueのときa = True、b = Falseのときa = True、b = Trueのとき
ヒント
notはTrueをFalseに、FalseをTrueに変えるもの。Trueを1、Falseを0と読み替えると、4通りの結果は資料「1桁足し算の2ビット表現と、論理演算との関係」の表の各行と対応する。
考察ポイント
a = True、b = Trueのときの結果(上位ビットTrue、下位ビットFalse)が、二進数の足し算1 + 1 = 10に対応していることを確認する。
cs-6. データベースシステムとデータサイエンス
【概要】データベースは現代社会に不可欠な基盤技術であり、データサイエンスはデータベースから有益な情報を引き出す学問である。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. 乱数、シミュレーション
【概要】乱数は予測不可能な数値を生成する技術であり、一様分布(全ての値が同じ確率で出現)と正規分布(平均値付近に集中)の2種類がある。Excelでは「RAND()」関数で一様分布の乱数を生成できる。乱数は、不確実性を含む現象の分析に活用される。
【演習】
シミュレーションにより、実験や観測が困難な現象を計算機上で再現し、分析できる。
- 一様分布の乱数(範囲は-1から1)の生成(資料中に記載、Excelを使用)
- モンテカルロシミュレーション(乱数を用いた数値計算手法)による円周率の算出(資料中に記載、Excelを使用)
- 待ち行列シミュレーション(窓口での待ち時間などを分析する手法): ランダムな到着と到着間隔の分析(資料中に記載、Excelを使用)
【関連する外部ページ】
- Microsoft 365: https://portal.office.com
cs-8. 表計算ソフトウェアを用いたデータの扱い
【概要】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): 0は死亡、1は生存を表す
- 年齢(age): 乗客の年齢
- 運賃(fare): 支払った料金
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. 一次式、線形計画法
【概要】線形計画法は、限られた資源の制約条件(満たすべき条件式)の下で目標関数(最大化または最小化したい式)を最適化する手法である。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ファイル】
【関連する外部ページ】
- Excelのオンライン版: https://portal.office.com で「Excel」を選択する
- Excelのアプリ版: Excelをインストール済みの場合は、アプリ版を使用してもよい
cs-10. Python プログラミングの基本
【概要】Pythonプログラミングでは、オブジェクト(データと操作をまとめたもの)にメソッド(オブジェクトに対する操作)を適用して処理を行う。CodeCombatやタートルグラフィックス(カーソルの軌跡で図形を描画する手法)を使った演習を通じて、プログラミングの基本概念を視覚的に理解する。
【演習】
演習1: CodeCombat(プログラミング学習ゲーム)
ゲーム形式でプログラミングの基本を学習できる。
注意事項:
- システムからの課金に関するメッセージが表示された場合は、使用を中断する。
- 本授業では「無料かつクラスコードなし」の形態のみを対象とする。
- 無料でクラスコードを使用しない形態
- 有料(会員登録)の形態
- 無料でクラスコードを使用する形態
演習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. 式の抽象化と関数
【概要】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. 条件分岐と繰り返し、ステップ実行
【概要】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行ずつ実行し、変数の値の変化を確認する。デバッグ(プログラムの誤り修正)に有効な手法である。
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. プロセッサ、メモリ、文字コード、論理演算と足し算
ドクセルの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. 情報化社会でのマナー、情報セキュリティ
ドクセルのURL: https://www.docswell.com/s/6674398749/5V6XVZ-2021-12-17-134504
【概要】デジタル社会では情報の流通と共有が活発化し、個人も情報発信者となる。そのため、情報の真偽確認、プライバシー保護、セキュリティ対策(ウイルス対策、パスワード管理)が必要である。フェイクニュース(虚偽情報)やマルウェア(悪意のあるソフトウェア)への注意が求められる。
【関連する外部ページ】
- オンライン百科事典Wikipedia: https://ja.wikipedia.org/
- IPA(独立行政法人情報処理推進機構)のセキュリティ対策情報サイト: https://www.ipa.go.jp/security/
IPAのサイトでは、最新のセキュリティ脅威や対策方法を確認できる。
cs-15. 全体まとめ
ドクセルのURL: https://www.docswell.com/s/6674398749/KNJXEZ-2021-12-17-134355
【概要】情報工学は、AI、データベース、3次元CG、プログラミングなど多様な技術を扱う分野である。全てのデータはデジタル化され、コンピュータで処理される。これらの技術は社会の発展に不可欠であり、セキュリティへの配慮も必要である。
【演習】
演習1: 画像生成AI(人工知能)の実践
テキストから画像を生成するAIを体験する。プロンプト(指示文)の書き方によって生成結果が変わることを確認できる。
- Stable Diffusion XL(画像生成AIモデル)のサイト
https://clipdrop.co/stable-diffusion - Stable Diffusion Playground(画像生成AIの実験環境)のサイト
https://stablediffusionweb.com/
注意事項: プロンプト(指示文)は英語で記述する必要がある。外部サービスのため、利用規約を確認の上で使用すること。
動画
- cs-1. 無料ソフトウエア、無料データ、エコシステム、Scratch プログラミング、Scratch のキャラクタ
YouTube動画: https://www.youtube.com/watch?v=k8VwaW2GI5g
- cs-2. コンピュータによる画像制作、人工知能でできること、情報のコード化、デジタル画像、画素
YouTube動画: https://www.youtube.com/watch?v=89Kiy7yaTMQ
- cs-3. パノラマ画像、ストリートビュー、3次元コンピュータグラフィックス
YouTube動画: https://www.youtube.com/watch?v=JfsXT9ZQefA
- cs-4. プログラミング入門
YouTube動画: https://www.youtube.com/watch?v=blBX7q2hdCQ
- cs-5. 人工知能の概要
YouTube動画: https://www.youtube.com/watch?v=76Xa2ZGqpy0
- cs-6. データベースシステムとデータサイエンス
YouTube動画: https://www.youtube.com/watch?v=hafgkLQ2fzs
- cs-7. 乱数、シミュレーション
YouTube動画: https://www.youtube.com/watch?v=22MbFeFAYNE
- cs-8. 表計算ソフトウェアを用いたデータの扱い
YouTube動画: https://www.youtube.com/watch?v=vUJKLwNQn44
- cs-9. 一次式、線形計画法
YouTube動画: https://www.youtube.com/watch?v=GKy0Bl5ZCQY
- cs-10. Python プログラミングの基本
YouTube動画: https://www.youtube.com/watch?v=PW0nH3bHEqM
- cs-11. 式の抽象化と関数
YouTube動画: https://www.youtube.com/watch?v=zeleeooCfT0
- cs-12. 条件分岐と繰り返し、ステップ実行
YouTube動画: https://www.youtube.com/watch?v=Z102Pg28nW8
- cs-13. プロセッサ、メモリ、文字コード、論理演算と足し算
YouTube動画: https://www.youtube.com/watch?v=cwR4w-hPW2c
- cs-14. 情報化社会でのマナー、情報セキュリティ
YouTube動画: https://www.youtube.com/watch?v=MmR1Ha8zHBU