Girls Meet STEM ワークショップ

ワークショップのサムネイル

ワークショップの募集ページ

本日のタイムスケジュール 🕐

時間内容詳細
13:00 - 13:10主催者挨拶ワークショップの概要説明
13:10 - 13:30

プログラミングを始めよう

  • プログラミングって何?
  • Python って何?
  • Google Colab を使ってプログラミングをしよう
13:30 - 13:50

Python の文法

  • print をしてみよう
  • 変数とは?
  • if 文で条件分岐
  • for 文で繰り返し
  • 辞書と配列を使う
  • 関数で再利用する
13:50 - 14:10

AI をプログラムから使うための準備

  • API って何?
  • OpenAI の API キーを準備する(運営側の)
  • チャットと API での違いを見てみる
14:10 - 14:20休憩☕ リフレッシュタイム
14:20 - 14:50AI の API をたたいてみよう

OCR をしてみよう

14:50 - 15:20総合演習
  • 授業ノートからテスト問題を作るプログラム
  • プロンプトエンジニアリング
  • 繰り返し処理でクイズを出題
15:20 - 15:30おわりにハイスクール Python について

プログラミングを始めよう

プログラミングって何?

「プログラミング」と聞くと、黒い画面に難しい文字がたくさん並んでいるものを想像するかもしれません。自分とはあまり縁がないものと思うかもしれません。でも実は、私たちの身の回りはプログラムでできたものに囲まれています。

Python って何?

Python(パイソン)は、1991年に生まれたプログラミング言語で、現在世界で最も人気のある言語の一つです。名前の由来は、イギリスのコメディ番組「モンティ・パイソン」から来ています。

例えば、このような形です。

# Pythonでの書き方
if age >= 18:
    print("成人です")
else:
    print("成人していません")

Python は様々な分野で活躍しています!

  • データサイエンス(データ分析)
  • 自動化(仕事の効率化)
  • AI・機械学習
    • 画像認識(顔認証、物体検出)
    • 自然言語処理(翻訳、チャットボット)
    • 音声認識(Siri, Alexa のようなもの)
  • IoT(モノと組み合わせたインターネット)
  • Web アプリケーション開発

Web サービスに使うイメージは、以下の記事が参考になります。一緒に見てみましょう!

参考:Pythonで開発されたWebサービス7選【できることや使うメリットも解説】- RUNTEQ BLOG

授業や趣味で、HTML/CSS を使ったことがあるかもしれません。これらは Web サイトの見た目を作るための言語ですが、Amazon や YouTube のようなサービスでは、そこにユーザーごとのデータを入れなければなりません。

Python などのプログラミング言語を使って、そのデータをデータベースから取ってきて表示したりしています!

参考: by Amazon 天然水 ラベルレス 500ml ×24本 富士山の天然水 バナジウム含有 水 ミネラルウォーター ペットボトル 静岡県産 500ミリリットル (Smart Basic) - Amazon

なんでこんなにたくさんプログラミング言語があるのか

上のようなものは、他のプログラミング言語でも達成できるものも多いです。ただ、プログラミング言語によって得意・不得意があり、方言のようなものもあるので、それぞれの言語を使い分けることで、より効率的にプログラミングをすることができます。

参考:なぜプログラミング言語はこんなに多い?各言語の特徴を徹底解説! - Re:kaizen

Google Colab を使ってプログラミングをしよう

Python を始めるのに、難しい環境設定は必要ありません。Google Colab を使えば、ブラウザだけで始められます!

準備するもの

  • Google アカウント(お持ちの Gmail アドレス)
  • インターネットに接続されたパソコンやタブレット
  • ブラウザ(Google Chrome が推奨です)

始め方の手順

Google アカウントをまだお持ちでない場合は、公式のヘルプである Gmail アカウントの作成 - Gmail ヘルプ を参考に作成してください。

基本的な使い方

  • コードセルに Python のコードを入力します。
  • 実行ボタン(▶)をクリック、または「Shift + Enter」で実行します。
  • Google Colab の環境で Python プログラムが実行され、結果が下に表示されます。

また、右上の「共有」ボタンをクリックすると、URL を共有する or 他の人の Google アカウントを指定して共有することができます!

Google Colab の共有画面

コードセルとテキストセル

Google Colab には 2 種類のセルがあります:

  1. コードセル:Python のコードを書いて実行できます。 Google Colab のコードセル
  2. テキストセル:説明文や注釈を書くことができます。マークダウンと言って、見出しやリストなどを見やすく書くことができます。 Google Colab のテキストセル

今回使う Google Colab のノートブック

今回は、このノートブックを使ってプログラミングをしていきます!

https://colab.research.google.com/drive/1z44PFJSRlrAW-y_rQ0fyYtXeMIqepCPc

このように、「Girls Meet STEM ワークショップ 2025-07-12」というものが出るはずです。

Google Colab の共有画面

これを編集できるように、コピーして自分の分を作りましょう。

「ファイル > ドライブにコピーを保存」をクリックします。

Google Colab の共有画面

しばらく待つと、新しいタブが開くか、もしくはこのような画面になるはずです。

もしこの場合は、「新しいタブで開く」をクリックしましょう。

Google Colab の共有画面

「のコピー」というものが後ろについた状態で、コピーが作成されます。URL の /drive/ の後ろについている ID が、元のノートブック(運営側で作ったもの)とは別の ID になっているはずです。

Google Colab の共有画面

ここまでで、ノートブックの準備は完了です!

Python の文法

print をしてみよう

いよいよ最初のプログラミングです!まずは print 関数を使って、画面に文字や数字を表示してみましょう。

print関数の基本

# これは最も有名なプログラム「Hello, World!」です
print("Hello, World!")

実行すると、このようになるはずです。

Hello, World!

色々な表示をしてみよう

# 日本語も表示できます
print("こんにちは!")
print("プログラミングは楽しい!")

# 数値を表示する
print(42)
print(3.14)

# 計算結果を表示する
print(10 + 5)      # 15
print(100 - 30)    # 70
print(6 * 7)       # 42
print(20 / 4)      # 5.0

変数とは?

変数は、データを一時的に保存できる「箱」のようなものです。プログラミングでは、この「箱」に名前をつけて、中身を入れたり取り出したりします。

変数 x
42
x = 42

なぜ変数が必要なのか?

例えば、消費税込みの価格を計算する場面を考えてみましょう。

# 変数を使わない場合 (同じ値を何度も書く必要がある)
print("商品A:", 1000 * 1.1, "円")
print("商品B:", 2000 * 1.1, "円")
print("商品C:", 3000 * 1.1, "円")

# 変数を使う場合 (税率を一箇所で管理できる)
tax_rate = 1.1  # 消費税率を変数に保存
print("商品A:", 1000 * tax_rate, "円")
print("商品B:", 2000 * tax_rate, "円")
print("商品C:", 3000 * tax_rate, "円")

変数の値を変更する

変数は、代入と言って、「右側の値を左側の変数に入れる」ということをして設定します。先ほどの箱のイメージです。

# 変数の値は後から変更できる
money = 1000
print("所持金:", money, "円")

# 買い物をして減らす
money = money - 300
print("買い物後:", money, "円")

# お小遣いをもらって増やす
money = money + 500
print("お小遣い後:", money, "円")

# より短い書き方
money += 200  # money = money + 200 と同じ
money -= 100  # money = money - 100 と同じ
print("最終的な所持金:", money, "円")

また、変数には色々なタイプがあります。

それぞれのボタンを押してみましょう!

↑ 上のボタンをクリックしてみましょう!

if 文で条件分岐

「もし〜なら」という判断をプログラムで行うのが if 文です。日常生活でも、私たちは常に条件によって行動を変えています。

基本的な if 文

# シンプルな条件分岐
temperature = 28

# もし気温が 25 度以上なら、暑いですと表示します。
if temperature >= 25:
    print("今日は暑いです")
# この条件に当てはまらなければ、これはスルーされます。
# if-else を使った分岐
password = "secret123"
user_input = input("パスワードを入力してください:")

if user_input == password:
    print("ログイン成功!")
    print("ようこそ!")
else:
    print("パスワードが違います")
    print("もう一度お試しください")

複数の条件を扱う(elif)

条件は、2択ではなく複数書くことができます。

# テストの点数で評価を判定
score = 85

if score >= 90:
    print("評価:S(素晴らしい!)")
elif score >= 80:
    print("評価:A(よくできました)")
elif score >= 70:
    print("評価:B(良い調子です)")
elif score >= 60:
    print("評価:C(もう少し頑張りましょう)")
else:
    print("評価:D(復習が必要です)")

複雑な条件(and, or, not)

数学の「かつ」「または」と同じです。条件をこのようにして組み合わせます。

# and:両方の条件を満たす場合
age = 16
has_student_id = True

if age <= 18 and has_student_id:
    print("学生割引が適用されます")
    print("料金:800円")
else:
    print("通常料金:1200円")

# or:どちらか一方の条件を満たす場合
day = "土曜日"
is_holiday = False

if day == "土曜日" or day == "日曜日" or is_holiday:
    print("今日は休日です!")
    print("ゆっくり過ごしましょう")

# not:条件を反転させる
is_raining = False

if not is_raining:
    print("傘は必要ありません")
    print("外で遊べますね!")

for 文で繰り返し

同じ処理を効率よく繰り返すときは for 文を使います。手作業では大変な処理も、コンピュータならすぐに終わります。

ループ 【0 / 3
1
# 繰り返しの番号を使う
2
for i in range(3):
3
    print(f"{i + 1}回目: Hello")
コンソール出力
0
1
2

基本的な for 文

# 決まった回数繰り返す
print("=== 腕立て伏せ開始! ===")

# range は、範囲という意味の英単語です!
for i in range(10):
    print(f"{i + 1}回目!")

print("お疲れ様でした!")

リストと組み合わせた繰り返し

この後に見る、リスト(配列)と組み合わせて使うことが多いです。

# 生徒の名前リスト
students = ["山田", "田中", "佐藤", "鈴木", "高橋"]

# 全員に挨拶
for name in students:
    print(f"こんにちは、{name}さん!")

# 番号付きで表示 (enumerate は、番号とその中身を同時に取り出す関数です)
print("\n=== 出席番号 ===")
for i, name in enumerate(students, 1):
    print(f"{i}番:{name}さん")

辞書と配列を使う

データをまとめて管理するには、リスト(配列)や辞書が便利です。

リスト(配列)の使い方

# リストの作成と基本操作
fruits = ["りんご", "バナナ", "オレンジ"]
print("果物リスト:", fruits)

# 要素へのアクセス
print("最初の果物:", fruits[0])      # りんご
print("2番目の果物:", fruits[1])     # バナナ

# リストの操作
fruits.append("ぶどう")              # 最後に追加
print("追加後:", fruits)

辞書の使い方

辞書は、キーと値のペアでデータを管理します。

リストでは、キーに当たるものは番号 (0, 1, 2, ...) でしたが、辞書では、キーに当たるものは文字列です。名前を付けて管理することができます。

# 生徒の情報を辞書で管理
student = {
    "name": "山田花子",
    "age": 16,
    "grade": 1,
    "class": "A",
    "club": "テニス部",
    "scores": {
        "math": 85,
        "english": 92,
        "science": 88
    }
}

# 値の取得
print("名前:", student["name"])
print("学年:", student["grade"], "年", student["class"], "組")

# ネストした辞書の値を取得
print("\n=== テストの点数 ===")
print("数学:", student["scores"]["math"], "点")
print("英語:", student["scores"]["english"], "点")

# 値の更新と追加
student["age"] = 17                    # 既存の値を更新
student["height"] = 165.5              # 新しいキーと値を追加

print("\n更新後の年齢:", student["age"])
print("身長:", student["height"], "cm")

リストと辞書の組み合わせ

このように、これらは組み合わせることもできます。

# クラスの生徒リスト (辞書のリスト)
class_students = [
    {"name": "山田", "math": 85, "english": 78},
    {"name": "田中", "math": 92, "english": 88},
    {"name": "佐藤", "math": 78, "english": 95},
    {"name": "鈴木", "math": 90, "english": 82}
]

# クラス情報
class_info = {
    "class_name": "1年A組",
    "teacher": "山田先生",
    "students": ["池澤", "穂苅", "齋藤"]
}

関数で再利用する

よく使う処理をまとめて名前を付けたものが「関数」です。同じコードを何度も書く代わりに、関数を作って呼び出すだけで済みます。

引数(パラメータ)を受け取る関数

# 名前を受け取って挨拶する関数
def greet(name):
    print(f"こんにちは、{name}さん!")
    print(f"{name}さん、今日も頑張りましょう!")

# 異なる名前で呼び出す
greet("池澤")
greet("穂苅")
greet("齋藤")

値を返す関数(return)

# 計算結果を返す関数
def calculate_area(width, height):
    area = width * height

    return area

# 関数の結果を変数に保存
room_area = calculate_area(4, 5)
print(f"部屋の面積:{room_area}平方メートル")

まだまだ色々な文法がありますが、ひとまずここまでです!

AI をプログラムから使うための準備

API って何?

API(Application Programming Interface)は、プログラム同士がやり取りするための「窓口」のようなものです。Web サイトやアプリでデータを扱う時には、このようにサーバーとやり取りすることが多いです。

例えば、こちらの天気予報 API を見てみましょう。

天気予報 API(livedoor 天気互換)

このような URL にアクセスすると、天気予報のデータを取得できます。

https://weather.tsukumijima.net/api/forecast/city/400040

こんな感じの「データそのもの」が表示されます。

Google Colab の共有画面

通常、サーバーにリクエストを送ったら(つまり、URL を入力して送信したら)、HTML ファイルが返ってきます。それをブラウザ(Safari, Chrome など)が読み込んで Web サイトが表示されるわけですが、API の場合は、このようなデータそのものを返してくれます。

このように、API を使うと、サーバーからデータを取得して、それを使ってプログラムを作ることができます。

OpenAI の API を使う

今日は、ChatGPT の開発元である OpenAI の API を使って、AI とやり取りしてみましょう。

先ほどの天気予報 API のように誰でも使えるわけではなく、「API キー」という認証情報が必要です。

これは、サービスを使うための「会員証」のようなものです。このキーがあるおかげで、使用料金などがきちんとその人に請求されます!

ちなみに、OpenAI の API キーは、このような感じで取得します。

Google Colab の共有画面

Google Colab の共有画面

今回のワークショップでは、運営側で準備した API キーを使用します。なので、皆さんに請求されることはありません!

(API キーを発行した、ハイスクールPython の運営に請求が行きます。連打しないでくださいね 😂 🥺 )

※ この Web サイトに載せず、この Google Meet のチャットに載せます!

チャットと API での違いを見てみる

ChatGPT のようなチャット(Web ブラウザ版)

皆さんの中にも、使ったことがある方は多いと思います。これは、Web ブラウザ版の ChatGPT です。チャット形式で AI とやりとりします。

https://chatgpt.com/

Google Colab の共有画面

メリット:

  • 簡単に始められる
  • プログラミング知識が不要

デメリット:

  • 自動化できない
  • 他のプログラムと連携しにくい

API を使ったプログラム

では、プログラムから API を使って、AI とやり取りしてみましょう。

from openai import OpenAI
import json


OPENAI_API_KEY = "sk-proj-xxx"
client = OpenAI(api_key=OPENAI_API_KEY)

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "user", "content": "おはよう!週末にお出かけするのにおすすめなスポットをいくつか教えて。"}
    ],
    max_tokens=1000  # 回答の最大文字数のようなもの
)

# 整形して表示
print(json.dumps(response.model_dump(), indent=2, ensure_ascii=False))

このように返ってくるはずです!

Google Colab の共有画面

これで、後半の準備も完了です、お疲れ様でした!

休憩の後、池澤さん・穂苅さんにバトンタッチして、AI を使ったプログラミングをやっていきましょう! ✊ 🔥

補足:OpenAI の API キーを取得する方法

API で生成 AI を使う場合、まず OpenAI の API キーを取得する必要があります。

アカウントの作成

https://openai.com/index/openai-api/ こちらにアクセスして、サインアップまたはログインをします。

image

image

このようなページに遷移します。私のこの画面の場合は存在しませんが、左上に緑色のボタンがあるので、それをクリックします。

image

Organization の作成画面に遷移します。名前は後から変更できるので、どのようにしても良いです。

image

チームのメンバーを招待できますが、これも後からできますし、そもそも今回は自分だけで使うので、下の "I'll invite my team later" をクリックします。

image

API キーの作成画面に遷移します。ここでキーの名前を決めて作成します。

image

このように、API キーが作成されます。一度しか表示されないので、安全な場所に保存します。また、私のこのキーは既に削除しているので問題ありませんが、皆さんの場合は流出しないように注意してください。

(他で使用されて課金が発生してしまう可能性もあり、危険です!)

また、もしこの値を忘れてしまった場合は、このキーを削除して、新しく作成しましょう。

image

クレジットを入れるページです。本格的に使う際にはクレジットカードなどを追加して $5 などを入れておくと良いですが、今は下の "I'll buy credits later" をクリックします。

image

このように、API キーを作成することができました!

image