教育用プログラミング言語 (EPL )とは、主に学習ツールとして、またより複雑なプログラミング言語に移行する前の出発点として使用されるプログラミング言語のことです。
教育用プログラミング言語の種類
アセンブリ言語 当初、コンピュータのプログラミングは 機械語 のみで行われていました。アセンブリ言語 (ASM)は、低レベルの命令をニーモニックに置き換えることで、今日でも使用されている最も古いプログラミング言語の一つとなりました。アセンブリ言語には数多くの派生言語 と実装が存在し、それぞれ特定のコンピュータプロセッサ アーキテクチャ に合わせて調整されています。アセンブリ言語は低レベルであり、 型付けが なく柔軟性に欠けるため、使いこなすのは容易ではありません。教育目的のために、初心者でもコーディングに取り組みやすいように、簡略化されたアセンブリ言語の派生言語が開発されています。
アセンブリ言語は特定のプロセッサアーキテクチャ向けに設計されており、対応するハードウェアを念頭に置いて記述する必要があります。高水準言語とは異なり、教育用アセンブリ言語では、仮想または物理的な プロセッサ の表現が必要です。これらの言語は、コンピュータプロセッサの基本的な動作を実演するために、教育現場でよく使用されます。
リトルマンコンピュータ(LMC)のインターフェースの画像 サブルーチンを実演するプログラムを実行している心臓シミュレーター(アドレス80と90から開始) WDRペーパーコンピュータがループを使って2つの数値を加算する方法を示すアニメーション リトルマンコンピュータ (LMC)(1965年)は、シンプルなフォン・ノイマン型アーキテクチャ のコンピュータを模した教育用モデルです。現代のコンピュータの基本機能を備え、機械語(通常は10進数)またはアセンブリ言語でプログラミングできます。このモデルは、100個のメールボックス(メモリ) 、計算機(アキュムレータ) 、プログラムカウンタを備えた部屋にいる人物(「リトルマン」)という視覚的なメタファーを用いて、コンピュータ環境をシミュレートします。LMCは、学生が基本的なプロセッサ機能と メモリ管理を 理解するのに役立ちます。CARDIAC (1968年)はLMCと非常によく似ていますが、負の数、4桁のアキュムレータ、サブルーチンの戻りアドレスを99番地に格納する機能、アキュムレータシフト命令など、いくつかの改良が加えられています。ベル研究所 から高校生向けに厚紙製のキットとして配布されました。入出力は仮想パンチカード デッキ(紙片で表現)を介して行われ、LMCとは異なり、プログラムの初期ロードもこの方法で行われます。MIX (1968年)とMMIX (1999年)は、ドナルド・クヌース の著書『コンピュータプログラミングの技法』で紹介されているコンピュータモデルです。MIX コンピュータは、基本的な機械語の動作原理を教育目的で示すために設計されました。そのシンプルさにもかかわらず、高性能コンピュータに典型的な複雑なタスクを処理できます。MIXはバイナリと10進数の両方でのプログラミングが可能で、両モデルに対応したソフトウェアエミュレータ が提供されています。MIXの後継機であるMMIXは、64ビットRISC 命令セットアーキテクチャを採用しており、現代のコンピュータアーキテクチャの教育用に改良されています。Instructoペーパーコンピュータ(1979年)は、 McGraw Hill Education 社から出版され、中学生にコンピュータの概念を教えることを目的としていました。LMCやCARDIACと比較すると、このペーパーコンピュータは、スタート/ストップ/リセットの「ボタン」やジャンプスイッチを備え、やや遊び心のある作りになっています。しかし、命令セットは非常に高度で、文字列の印刷、乗算と除算、分数の印刷、さらには平方根とべき乗の計算の命令も含まれています。[ 1 ] CARDIACと同様に、ページ上のさまざまな場所に複数の紙片を挿入する複雑なレイアウトを使用しています。生徒がペーパーコンピュータをゼロから自分で組み立てる必要がある場合は、通常、開いたマニラフォルダが使用されました。 [ 2 ] WDRペーパーコンピュータ (1983年)は、ドイツのコンピュータ教育番組で紹介された、わずか5つのCPU命令しか持たない非常にミニマルなペーパーコンピュータです。操作に必要なのは、ペン(プログラムカウンタ用)とマッチ棒またはコイン(レジスタの内容用)だけです。命令セットが非常に限られているため、プログラムはLMCやCARDIACなどと比べてかなり長くなります。DLX (1994年)は、 MIPS およびBerkeley RISC 設計の主要開発者によって作成された、 RISC (Reduced Instruction Set Computer)プロセッサアーキテクチャです。DLXはMIPS の簡略版であり、大学レベルのコンピュータアーキテクチャの授業でよく使用される32ビットのロード/ストアアーキテクチャを提供します。Next Byte Codes (NBC) (2007) は、 LEGO Mindstorms NXT プログラマブルブロックのプログラミングに使用されるシンプルなアセンブリ言語です。NBC コンパイラは NXT 互換のマシンコードを生成し、Windows、macOS、Linux でサポートされています。Little Computer 3 (LC-3) (2019) は、簡略化された命令セットを持つアセンブリ言語で、中程度の複雑さのアセンブリプログラムを作成できます。より高度な言語に見られる多くの機能を備えているため、基本的なプログラミングやコンピュータアーキテクチャ の教育に役立ちます。主にコンピュータ科学や工学の入門コースで使用されています。Chombit (2020) は、Hybrix 仮想マシンによって実装された 32 ビット CPU アーキテクチャです。プロジェクトのドキュメントでは、このアーキテクチャは教育目的向けであり、フレーム付きレジスタ[ 3 ] やガベージ コレクションのルートを追跡するために使用されるセカンダリ スタックなどの機能を組み込んでいると説明されています。これらの簡略化にもかかわらず、明示的な命令タイミングやメモリ マップド I/O など、従来型のプロセッサ モデルのままです。
ロゴベース Logo は 、子供たちにプログラミングを紹介するために特別に設計された言語です。Logo の学習の最初の部分は、1969 年頃から使用されていた「タートル グラフィックス」(タートル ロボットに由来)を扱います。現代の実装では、 タートルと呼ばれる抽象的な描画デバイスを使用して、 タートル グラフィックスの 作成に集中することで、子供たちのプログラミングを非常に魅力的なものにしています。Logoの作成者の 1 名であるSeymour Papert は 、さまざまな構成 主義的学習理論 である構成主義の著名な人物でした。Papertは 、子供たちがコンピューター文化を採用すれば、書くことなどの活動ははるかに幼い子供たちによって自然に学習されると主張しました。 [ 7 ] Logo は、テクノロジーに焦点を当てたカリキュラムで、視覚的な補助と概念を通じて子供たちにプログラミングを紹介するように設計されました。 「知的構築を早期に始めることよりも重要なのは、学習をより力のある他者から与えられるものだと考えるようになる長い依存期間から救われることです...そのような子供たちは、自分自身を知的に無力であると定義したり、社会が彼らを知的に無力であると定義することを許したりしません。 」 [ 7 ] 3歳児にも使用されており、教育において30年の成功実績があります。Logoは実際にはLisp の合理化されたバージョンで、より高度な生徒向けであるため、コンピュータサイエンスの基本概念や人工知能さえも紹介するために使用できます。Logoは複数のプラットフォームで利用可能で、教育用途向けに無料版と商用版の両方が提供されています。
Smalltalkベース One Laptop per Child プロジェクトの一環として、Smalltalk ベースの言語のシーケンスが開発され、それぞれが次の言語への導入として機能するように設計されています。構造は Scratch からEtoys 、Squeak、そして任意の Smalltalk へと続きます。[ 9 ] それぞれが、構成的学習 を使用して、子供たちにプログラミングの概念だけでなく、物理学や数学のシミュレーション、ストーリーテリングの練習などを教えるのに使用できるグラフィカル環境を提供します。Smalltalk と Squeak は、数十年にわたって存在し、高く評価されているフル機能のアプリケーション開発言語です。Scratch は、子供向けの学習ツールです。
参考文献 ↑ マット、フレッド C. (1979). 「インストラクター ペーパー コンピュータ マニュアル」(PDF) .コンピュータ歴史博物館. 2026 年 5 月 7 日 取得 . ↑ Chris Staecker (2022年6月17日). Mr Matt's Instructo Paper Computer: Paper Computers #3 . 2026年 5月7日 取得 – YouTube経由。 ↑ 「Framed registers」 . Chombit Reference . 2025年 12月21日 取得 。 ↑ マイクロソフト社 2009年スモールベーシック入門ガイド、64ページ。 ↑ Kenlon, Seth. "Learn the Lisp programming language in 2021 | Opensource.com" . opensource.com . 2024年 10月14日 取得 . ↑ 「Lisp(リスト処理)プログラミング言語とは? – TechTarget.com の定義」 . WhatIs . 2024年 10月14日 取得 . 1 2 Papert, Seymour (1980 年 10 月). 子供時代の再定義: 発達心理学における実験としてのコンピュータの存在 . 東京、日本およびメルボルン、オーストラリア: 第 8 回世界コンピュータ会議: IFIP 会議. ↑ 「kogics Kojoについて」 。 2011年 2月12日 取得。 ↑ Cavallo, David (2007年5月28日). 「Squeakをゼロから学ぶ」 . One Laptop Per Child News . 2009年 4月3日 取得 。 ↑ デュカス、ステファン(2005)。 『スクイーク:ロボットでプログラミングを学ぶ(テクノロジー・イン・アクション)』 。Apress。第24章「 eTOYツアー」 289 ページ 。ISBN 1-59059-491-6 。↑ ケイ、アラン。 「スモールトークの初期の歴史」 。 2011年4月29日の オリジナルからアーカイブ済み 。 2007年 9月13日 取得。 ↑ これがなぜ簡単にできるのかについての詳しい議論については、メタ循環評価器を参照してください。 ↑ ヘメンディンガー、デイヴィッド。「パスカル」。ブリタニカ百科事典、2024年4月5日、 https://www.britannica.com/technology/Pascal-computer-language。2024年6月12日アクセス。 ↑ 「Pascal - Free Pascal wiki」 . wiki.freepascal.org . 2024年 10月11日 取得 。 ↑ 「アリスについて」 。 2024年 10月7日 取得 。 ↑ 「ストーリーテリング・アリス – アリス」 。 2023年 11月7日 取得 。 ↑ EducationWorld (2012年9 月 21日)。 「ThinkLABS RoboLAB」 。EducationWorld 。 2024年 10月8日 取得 。 ↑ CiMPLE オリジナル開発者ウェブログ(2011年7月21日、 Wayback Machineに アーカイブ済み) ↑ "ThinkLABS -" . 2012年9月20日。 2012年9月20日の オリジナルからアーカイブ済み。 2024年 10月9日 取得 。 ↑ 「 Physical EToys - プロジェクトの概要」 。Tecnodata 。 ↑ "Hackety Hack" . GitHub . 2024年 10月9日 取得 . ↑ HL ModTech (2018年1月23日). Logo Programming - Turtle Academy Lesson 1. 2024年 10月9日 取得 – YouTube経由。 ↑ ママの教育番組制作の原則 ↑ 「想像して、プログラムして、共有しよう」 。Scratch Statistics (ラテン語)。2023年5月25日。 2024年 11月17日 取得 。 ↑ 「グループ概要‹ 生涯幼稚園」 。MIT メディアラボ 。 2024年 10月8日 取得。 ↑ M. Hanus. 単一の計算モデルを用いた関数型プログラミングと論理プログラミングの教授法。第9回プログラミング言語、実装、論理、プログラムに関する国際シンポジウム(PLILP'97)論文集、pp. 335–350。Springer LNCS 1292、1997年。 ↑ 「カリー報告書、序論」 。 2009年10月4日に オリジナル からアーカイブされました。 ↑ Hanus, M. (1994). "The Integration of Functions into Logic Programming: From Theory to Practice". Journal of Logic Programming . 19&20: 583–628 . doi : 10.1016/0743-1066(94)90034-5 . hdl : 11858/00-001M-0000-0014-ADB0-F . ↑ 「概要」 . Flowgorithm . 2014年 8月26日 取得 。 ↑ 「ラケット言語」 。 インディアナ大学。 2026年 4月10日 取得 。 ↑ プログラミングパラダイムのポスター ↑ 「モーツァルトプログラミングシステム」 。mozart2.org 。 2024年 10 月25日 取得 。