第4回 アルゴリズム概論
2026.04.30
今日の土台を整えます
algorithm2026/ フォルダを開く04_20260430_data.zip をダウンロード
algorithm2026/ に移動し、展開・解凍して配置 →
04_20260430_dataフォルダが作成される
04_20260430_data フォルダを開くlesson/index.html を 右クリック→Live Server で表示
VSCode の設定を1か所だけ変えます。
Cmd + ,)live server custom browser と入れるchrome:PrivateMode を選ぶ今、みなさんは何をやっているのか?実はこれだけです!
色々なものを学んでいきますが、
やりたいことをしっかり言語化できれば
色々なことができるようになって、それこそAIとも仲良くなれます!
サンプルアプリを、自分の言葉で言語化してみる
気温を入れると、その日のおすすめの服装を教えてくれるアプリです!
まずは以下の画像をクリックし、サンプルアプリの動きを確認してください!
「服装をチェック」はボタンです!
入力される気温によって、表示される内容が変わることを確認してください!
まずはアプリを触りながら、画面で起きていることを順番に書き出してみましょう!(brainstorm.md に書いてみてくださいね!)
以下の3つの観点で、さっき書いた内容をもう少し具体的にしてみよう!
人間の操作に合わせた表現にするとGood!
例えば、おすすめの服装を表示させる場所って「どこ?」
どう伝えればコンピューターに伝わる??
操作のあと画面やメッセージがどうなるかをはっきりと!
brainstorm.md に書き出してみましょう!お困りごとがあれば、現地メンバーにお声がけくださいね!
画面の部品と、場所を伝える目印を確認する
「●●を表示する」 という、コンピューターへの指示が書かれたもの。
お願いの例
<h1><p><input><button>「〇〇のHTMLタグを、●●な感じにデザインする」
index.html
<h1>お天気アドバイザー</h1>
style.css
h1 {
color: blue;
}
h1 と書けば すべての <h1> がまとめて青色になります。
index.html
<h1 class="title">
お天気アドバイザー
</h1>
style.css
.title {
color: blue;
}
class="title" と 目印をつける.title(頭にドット)を使うと、 指定した目印をつけたHTML の場所のデザインを変えることができるlesson/index.html を VSCode で開いてください!
使われているタグ
<h1> — タイトル「お天気アドバイザー」<p> — 説明や、結果の表示エリア<input> — 数字を入れるところ<button> — 押すボタン
<input> は前回も少し見た「入れる場所」を作るタグ。今日はこれを実際に使います。
lesson/style.css に CSS が書いてあります。中身を覗いてみよう。
前回の復習を兼ねて読むだけでOKですが好きなところを書き換えしてもいいですよ!
目印を使って、画面の動きを作る
画面の部品に対して、いつ・何を起こすか をコンピューターに伝えるもの。
身近なアプリの動きも、JavaScriptの考え方で説明できます
さっき書き出した内容の中に、こんな文があるかもしれません。
「服装をチェック」ボタンを押したら、 (...途中略)
結果表示の部分に「半袖がおすすめ(他の服装)」と出す
まずはこの1文を、JavaScriptに翻訳してみましょう
人間は画面を見れば、「服装をチェック」ボタンがどれか分かります。
でも、JavaScriptには HTMLのどの場所か を、タグや class の目印で伝える必要があります。
HTML を見ると、ボタンに class の目印がついています
<button class="button">服装をチェック</button>
↓
この目印を辿って、JavaScript から指す
document.querySelector('.button')
「. は class の目印」 — 前回も触れた書き方。
When — ボタンが押されたとき
.button の目印がついたボタンが 押されたとき に、次の処理が動くようにします。
↓
document.querySelector('.button').addEventListener('click', function () {
// ここに「押されたあとにやること」を書く
});
document.querySelector — どのボタン(Where)addEventListener("操作の名前") — どのタイミングで(When)Whenで「ボタンが押されたとき」を伝えました。次は、そのあと画面で何が起きるかを書きます。
「結果表示エリア」 に 「半袖がおすすめ」 と 出す
青 = Where(どこに?) / 赤 = What(何を?=表示データ) / 緑 = How(どう表示する?)
↓
JavaScript に翻訳
document.querySelector('.result').innerHTML = '半袖がおすすめ';
日本語の 3つの部分 が、そのまま JavaScript の 3か所 に対応します。
さっき書いた「いつ動く?」と「押されたあとに何を表示する?」を1つにまとめます。
気温に関係なく、ボタンを押したら 必ず「半袖がおすすめ」と出る 状態を作りましょう。
document.querySelector('.button').addEventListener('click', function () {
document.querySelector('.result').innerHTML = '半袖がおすすめ';
});
到達点 — ブラウザでボタンを押したら、メッセージが書き換わります。
前回触れた範囲(When + Where + What + How)だけで、ここまで動く!
もっと色々な指示ができるように
お天気アドバイザーの動きを、もう少し細かい工程に分けて考えます。
工程を分けると、JavaScriptに翻訳しやすくなります。料理のレシピと同じですね!
コンピューターは言われたことしかしない→確認した気温データを自動では覚えてくれません。
2つ目以降の工程で使うには、「あとで使う(から覚える)」と分かる形にしておく必要があります。
そこで、読み取ったデータに 名前をつけて覚えさせておく 仕組みを使います。
let temperature = 25;
let — 値を覚えさせておくための目印(これがあると覚えさせる仕組みが使える)temperature — 覚えさせたデータにつける名前= 25 — 覚えさせておくデータそのもの日本語 — 覚えておきたいこと
「入力欄に書かれている気温」を確認して、
temperature という名前で覚えておく
赤 = 覚えた値につける名前 / 青 = 入力欄の中身
↓
let temperature = document.querySelector('.input').value;
青の部分は 「入力欄を指して、中身を確認する」 ところです。
.input の目印を辿って、 .value で中身を確認しています。
ifを使うと、その時の状況に合わせて、実行する内容を変えることができます!
気温
↓
もし 30度以上 なら
↓
「半袖をおすすめ」
20度以上〜29度以下なら
↓
「長袖をおすすめ」
それ以外 なら
↓
「上着着るのおすすめ」
if (temperature >= 30) {
document.querySelector('.result').innerHTML = '半袖をおすすめ';
} else if (temperature >= 20) {
document.querySelector('.result').innerHTML = '長袖をおすすめ';
} else {
document.querySelector('.result').innerHTML = '上着を着るのがおすすめ';
}
これまで学んだ 変数 と if を使って、 brainstorm.md に書いた内容を
script.js に書き換えていきます。
brainstorm.md の文を、JavaScriptの形に少しずつ置き換えていけばOKです。
分からないところは、 言語化したものをそのまま AI に貼って相談 でOK。
同じ「25」でも、コンピューターにとっては 2種類の使い方 があります。
名前として並んだ数字
郵便番号 250-0001
電話番号 090-1234-5678
AKB48などの名称
→計算には使わない
計算する数字
気温 25 ℃
年齢 20 歳
テストの点数
→比べたり 足したり できる
入力欄から取れるのは、最初は 「名前として並んだ数字」。 気温として比べるには、計算する数字に書き換える 必要があります。
入力欄から取れる「名前として並んだ数字」を、 確実に計算できる形に変換する のが Number(...) のお願い。
let temperature = Number(document.querySelector('.input').value);
気温データを確認 → 計算できる形に変換 → temperature というラベルで記憶。
入力欄から取った値は、まず 文字として並んだ数字 として扱われます。
let temperature =
document.querySelector('.input').value;
// temperature は "25" (文字)
if (temperature >= 30) { ... }
気温として比べたり計算したりしたい場合は、計算できる数字 に変換しておくと安心です。
Number(...) で囲むと、入力欄の中身を 計算できる数字 として扱えます。
let temperature =
Number(document.querySelector('.input').value);
// temperature は 25 (計算できる形)
if (temperature >= 30) { ... }
temperature を、気温として比較できる状態にしてから if で判断します。
else if をもう一段増やしてみる(例 — 35度以上の暑い日 用)少しいじって、何が変わるかを見るのが 一番の練習。
前回作ったITOカードを再現した上で、今日学んだifを使った機能を付け加えてください!
ITOメッセージカードで作る機能
前回やったITOでは、「出た数字 = どれくらい大切かの度合い」として考えました。
数字の大きさに合わせて考え方のヒントを表示する機能を追加しましょう!
メッセージの例
メッセージ内容や境目の数字は、自分の言葉で変えてOKです。
いきなりコードを書くのではなく、まず起きることを書き出してからJavaScriptに翻訳します。
assignment/memo.md に、ITOメッセージカードで起きることを書き出すassignment/index.html をブラウザで開き、カードが表示されることを確認するmemo.md を見ながら、前回のITOカードを再現し、その上で if を使ってメッセージを切り替える以下の一式が含まれてることを確認し、 04_20260430_data フォルダごと提出してください。
一式の中身
lesson/brainstorm.md — お天気アドバイザーの言語化(授業で書いたもの)assignment/index.html — 自分のアプリの HTMLassignment/style.css — 自分のアプリの CSSassignment/script.js — 自分のアプリの JavaScriptassignment/memo.md — ITOメッセージカードの言語化、条件と結果、工夫した点時間の使い方
assignment/memo.md の 言語化から 始めてみましょうこの時間で 課題が形になるところまで 進められたら理想です。