コンピューターサイエンス(スライド資料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. 人工知能の概要 [PDF], [パワーポイント], [HTML]
【概要】人工知能は、知能、知識、学習の3要素を持ち、言語処理、画像認識、データ分析など多様な分野で活用される。24時間稼働や大量データ処理が可能である一方、創造性や倫理的判断には限界がある。人間の補助ツールとして活用し、最終判断は人間が行うことが望ましい。
- 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は,コンピュータに実行させる手順であるプログラムを,ブロックを組み合わせて作るビジュアル環境である。順次実行・繰り返し・条件分岐を学ぶことができる。
スライド資料
動画
[YouTube動画]
以下の演習では,説明部分で学んだプログラミングの概念を各自が実践する.
説明パートの1-4「プログラムとは」「イベント駆動」「順次実行」「ブロック操作の基本」に対応する演習である.Scratchを起動し,イベントブロックと動きブロックを組み合わせて,キャラクタを動かす最小限のプログラムを作成する.「旗が押されたとき」というイベントに「10歩動かす」という動作を接続する操作を通じて,イベント駆動と順次実行の基本を体験する. 前提スキル:Webブラウザの操作,URLの理解.ドラッグ操作(左ボタンを押しながら移動し,左ボタンを離す). 操作手順 観察と考察 説明パートの1-5「キャラクタの基本」「スプライト(キャラクタ画像)」に対応する演習である.新しいスプライトを追加し,追加したキャラクタに対して個別にブロックを組み立てる.キャラクタごとに独立したプログラムを持つというスプライトの基本的な仕組みを確認する. 操作手順 観察と考察 説明パートの1-6「①繰り返し」「②もし・・・たら,・・・する(条件分岐)」「③強制停止」に対応する演習である.「ずっと」ブロックによる繰り返し,「もし端に着いたら,跳ね返る」ブロックによる条件分岐,赤ボタンによる強制停止を組み合わせて,キャラクタが自動的に動き続けるプログラムを作成する.さらに「右に15度回す」ブロックを追加し,動きの初期方向を変更する効果を確認する. 操作手順 観察と考察 説明パートの1-4「ブロックの形状と合体ルール」,1-5「キャラクタの操作」,1-6すべてに対応する活動である.演習①~③で学んだブロック操作,スプライト管理,繰り返し,条件分岐を組み合わせ,各自の工夫により自由にプログラムを作成する.ブロックの形状による合体ルールを手がかりに,未使用のブロックにも挑戦する. 操作手順 観察と考察
[演習の詳細を表示するには、この行をクリックしてください]
演習について
演習① Scratchの開始・ブロック操作
演習② キャラクタ・スプライト
演習③ キャラクタの制御
演習④(余裕のある人向け)
第2回. 人工知能の仕組み
人工知能は,コンピュータが人間のような知的能力を持つことを目指す技術である。 データから自ら学習する機械学習と,人間が書いたルールや知識を用いる知的なITシステムに大別される。 応用分野は,画像分類,顔検知,対話型AI,自動翻訳,データ分析と予測,テキストからの画像合成など多岐にわたる。 学習データに偏りがあると結果にも偏りが出るため利用には注意が必要である。AIは人間を支援する道具であり,最終的な判断は人間が行う。
スライド資料
動画
[YouTube動画]
以下の演習では,説明部分で学んだ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/ 操作手順 観察と考察
[演習の詳細を表示するには、この行をクリックしてください]
演習について
演習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の体験
cs-5. 人工知能の概要
【概要】人工知能は、知能、知識、学習の3要素を持ち、言語処理、画像認識、データ分析など多様な分野で活用される。24時間稼働や大量データ処理が可能である一方、創造性や倫理的判断には限界がある。人間の補助ツールとして活用し、最終判断は人間が行うことが望ましい。
【関連する外部ページ】
人工知能のデモンストレーション:
以下のサイトで人工知能の動作を体験できる。外部サービスのため、利用規約を確認の上で使用すること。
画像生成・処理AI:
- 顔の表情分析: https://cloud.google.com/vision/docs/drag-and-drop
- Google Cloud Vision API(画像認識・分析): https://cloud.google.com/vision
- DALL-E(OpenAIの画像生成AI): https://openai.com/blog/dall-e/
- 実在・AI生成顔の識別: https://www.whichfaceisreal.com/
- Waifu Labs(イラストの合成): https://waifulabs.com/
創作支援AI:
- AutoDraw(描画補助): https://www.autodraw.com/
- Magenta TensorFlow(スケッチ生成): https://magenta.tensorflow.org/sketch-rnn-demo
- Edges2cats(線画からの画像生成): https://affinelayer.com/pixsrv/index.html
機械翻訳:
ニューラルネットワークの学習過程可視化:
- TensorFlow Playground: https://playground.tensorflow.org
TensorFlow Playgroundでは、ニューラルネットワークがデータを分類する過程を視覚的に確認できる。
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