AOYAMA KOJI's PROGRAMMING BLOG

プログラミングを楽しく体験できるブログを開設します!全員向け(プログラミング無関係)プログラミングを始めようとしている方・初心者向け

2020/04/04
プログラミングを楽しく体験できるブログを開設します!

 みなさん、こんにちは、はじめまして! 青山公士と申します。 プログラミングブログを開設します!



[PR]

日本の小学校でプログラミング教育開始!


 本セクションは、2025年5月に全体的に書き直しています。
 2020年度から、日本の小学校でプログラミング教育が開始されました。 しかし新型コロナウイルス感染症の影響で、開始が少し遅れました。 そこで、学校以外でプログラミングできる場所を作ろうと思ったのが、当ブログ開設のきっかけでした。
 その後、プログラミング教育のカリキュラムを拝見したのですが、穴埋め問題でした。 えっ?テストするの…? これではプログラミングが嫌いになる生徒が増えてしまいそうで、少し心配です。 テストせずプログラミングの楽しさを伝えて欲しいと思います。 テスト無しで教育している先進国もありますし。
 いや、それは筆者にも、微力なりに、できることがあるでしょう。 ということで当ブログは、プログラミングが楽しいと感じられる場所を目指します! ぜひ、楽しくおつきあいください。

プログラミングを試してみよう


 まずは、以下がプログラムと呼ばれるものの例です。
 プログラマーは、[a][l][e]…と一文字ずつ入力して、プログラミングします。
 ここでは見やすいように色を付けていますが、プログラムは色にかかわらず動きます。 世の中には、自動的に色分けしてくれるツールがあります。 見やすくなりますので、それを使用しているプログラマーは多いです。 入力するときは色を気にしなくて大丈夫です。
alert("こんにちは");

 早速ですが【実行】ボタンを押下してみてください。
 Webブラウザーによって違うのですが、こんな感じの「こんにちは」と「OK」が表示されれば大成功です!
プログラミングを楽しく体験できるブログを開設します! alert('こんにちは')

プログラムは順番に考えるところが特徴的


 プログラムが他と大きく違うところは、一発で完結せず、順番に考えていかなければならないところです。 実を言うと上記例は一発で完結しているので、プログラミングの勉強という意味では少し不足しています。 というわけで今度は、以下を実行してみてください。
alert("こんにちは");
alert("こんばんは");

 どうでしょう?まず「こんにちは」と表示されて、OKを押した後に「こんばんは」と表示されれば成功です! プログラムは上から下に処理されるので、まず一行目のプログラムが実行されて、それが終わると二行目が実行される、という形です。 このように、処理の順番がとても重要なのがプログラミングです。

ちょっとゲームっぽいプログラミングも


 では今度は、以下を実行してみてください。
if ( confirm("助けてください") ) {
  alert("ありがとう");
} else {
  alert("そんな…");
}

 まず「助けてください」と表示されて、OKを押したら「ありがとう」、キャンセルを押したら「そんな…」と表示されれば大成功です。
 この形式で、操作に応じて処理を変更することができます。 格好良く言うとインタラクティブって奴です。 こういうのってちょっとゲームっぽいですよね!

セリフを変更をしてみると楽しい!


 勘の良い方ならもうお気づきかもしれませんが、 上記プログラムに登場した「"」(ダブルクォーテーション)に囲まれた文字列は変更可能です。 試してみましょう。方法を簡単に解説します。

テキストエディターを起動する


 まず、テキストエディターを起動します。
 パソコンなら、Windowsのメモ帳、Macintoshのテキストエディット、Linuxのemacsやvimなど、初期からインストールされているアプリケーションで十分です。
 スマートフォンは専用アプリが必要です。
 Androidは、htmlファイルの作成・編集が可能なテキストエディターアプリを探します。
 iPhoneはhtmlファイルの作成・編集に加えて、閲覧までできる必要があり、「htmlファイルの作成・編集・閲覧が可能なiPhoneのテキストエディター」などで調べてみてください。

編集する


 テキストエディターを起動したら、新規ファイルとして以下を記述します。 1文字1文字入力するか、コピー&貼り付けしてください。
 なお、プログラム本体以外の部分は、必要なお約束だと思ってください。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
</head>
<body>
<script>
if ( confirm("助けてください") ) {
  alert("ありがとう");
} else {
  alert("そんな…");
}
</script>
</body>
</html>

htmlファイルに保存する


 記述できたら、htmlファイル、つまり拡張子が .html のファイルとして保存します。 オススメ名称は index.html です。
 文字コードが指定できるなら、「UTF-8」を選びます。 utf8等、若干異なるの表記になっているかもしれません。

htmlファイルをWebブラウザーから読み込む


 パソコンは、作成したhtmlファイルをダブルクリックするか、Microsoft Edge や Safari、Google ChromeなどのWebブラウザーにドラッグ&ドロップするなどで、開いてください。
 Androidは、ファイルマネージャー等で、作成したhtmlファイルを長押しして、Google Chrome などのWebブラウザーを指定して開きます。
 iPhoneは、使用したテキストエディターアプリにhtml閲覧機能が付いているなら、そちらを使用します。

「助けてください」ダイアログ


 読み込んで「助けてください」のダイアログが出れば大成功です! あとは好きなセリフに書き換えて、楽しんでください。
[PR]

プログラミング教育の意義


 プログラミングを学ぶ意義としては問題解決力論理的思考力の育成が挙げられていると思います。 確かにそれは身につくと感じます。

問題解決力


 例えばプログラムは、やりたいことがそのままではできないことが多いのですが、その状況からできることをうまく組み合わせて作っていきます。 これがしいのです!
 そしてこれって一般的な問題解決もそうですよね。 発生している問題を分解していき、自分たちが今できることを組み合わせて解決するわけですし。 プログラミングと問題解決は近いと言えると思っています。

論理的思考力


 また論理的思考に関しても身につくと思います。 まずこうなって、次にこうなって、と、順序立てて考えることは論理的な思考に繋がると思います。
 ちなみに関係ないかもしれませんが、私は大学時代に、プログラム実習と論理学が得意教科でした。 正直それ以外はボロボロでしたので、このふたつは中学生の頃からプログラミングしてきた結果だと思っています。
 今年から少しずつ小学校や中学校でプログラミング教育が始まっていくということで楽しみですね。 正直なところ小学生には少し早い気もしているのですが、 プログラムする人が増えるのは素直に嬉しいです!(無責任)

生成AI時代に意義はあるか


 本セクションは2025年5月に追記しています。
 近年、ChatGPTなどに代表される生成AIが、プログラミングしてくれる時代になりました。 当ブログでも、少なくない部分を生成AIに頼っています。 その時代にプログラミングを学ぶ意義はあるでしょうか。
 上述した「問題解決力」「論理的思考力」がありますが、これらは間接的な意義です。 筆者は、直接的にも、以下の2つの理由で意義があると考えています。

より良いプロンプトを書くために


 より良いプロンプトを書くためには、 プログラムの考え方、概念を理解する必要があります。 プロンプトとは、AIへ出す指示のことです。
 ソースコードを記述する部分は、もうAIに任せて良いでしょうが、まだ指示は必要です。 その指示は、プログラムの概念を理解し、頭の中に完成図を描けていれば、より適切に出せます。
 また、専門用語の理解も、適切なプロンプトに役立ちます。
 専門用語は、知らない人には謎ですが、知っている人同士では、曖昧さを減らし、正確かつ簡潔な意思疎通に使えます。
 そのため、当ブログは、当初は専門用語をできるだけ使わないようにしていましたが、 今後は積極的に使用していきます。 説明も記載し、マウスオーバーやタップで用語の意味を見られるようにしてあります。 そうした用語には破線の下線を付けます。 上記プロンプトにも、説明を付けています。

ゲームエンジンはプログラマーを減らしていない


 ゲーム開発において、Unreal Engine や Unity などのゲームエンジンが登場した頃、 プランナーが、 プログラマーを介さずに直接ゲームエンジンを使ってゲームが構築できるようになり、プログラマーは不要になるのでは、などとも言われていました。
 実際には、筆者の経験上は、むしろプログラマーがより多く必要になりました。 ゲームエンジンに任せられることが増えたおかげで、できることも増え、 プログラマーがゲームエンジンを使い、より高度なコンテンツを構築するようになりました。
 結局のところ、優秀なプログラマーは、以前と変わらず活躍しています。 生成AIの時代になることで、役割は徐々に変わるでしょうが、プログラマー、あるいは、プログラミングを理解している人の必要性は変わらないと考えています。
[PR]

まとめ


 本記事では、プログラミングブログ開設の意義を記し、プログラムとは何かが体験できる場所を用意しました。
 筆者は「好きこそものの上手なれ」という言葉が大好きで、楽しくできればなんでもうまくいくと思っています。 プログラミングもぜひ楽しんで欲しいと思います。

補足

  • コンピューターの世界は人間同様、複数の言語があり、それはプログラミング言語と呼ばれます。
  • コンピューターや環境によって理解できるプログラミング言語は異なります。
  • 今回使用したプログラミング言語は「JavaScript」(じゃばすくりぷと)というものです。
  • JavaScriptはWebすなわちインターネットのホームページを作る業界では一般的に使われているプログラミング言語ですので将来仕事で役に立つかもしれません。
  • 画像内のラスタライズ文字フォントにOpen Font LicenseNoto Sans Japaneseを使用しております。
  • (本記事公開後)2025年5月に大幅にリニューアルし、「日本の小学校でプログラミング教育開始」セクションのリライト、「生成AI時代に意義はあるか」「まとめ」セクションの追加を行いました。
  • (本記事公開後)初期に提示していたプログラム記述ギミックを2025年5月にセキュリティー上の都合で閉じました。

カテゴリー:ごあいさつ,プログラミングを始めよう
[PR]