یک زبان برنامه‌نویسی آموزشی، زبان برنامه‌نویسی‌ای است که اغلب به عنوان یک ابزار یادگیری
طراحی شده‌است، و کمتر به عنوان وسیله برای نوشتن برنامه‌ها برای اجرا به کار می‌رود.

مسیرهای آموزشی
--------------

تعداد زیادی از زبان‌های برنامه‌نویسی آموزشی خودشان را در مسیر آموزشی قرار داده‌اند، به این
معنی که، دنباله‌ای از زبان‌ها که برای ساختن حرکات دیگر یک دانش آموز از آسان تا درک و محیط
سرگرم‌کننده، تا محیط‌های کامل حرفه‌ای طراحی شده‌است. چند مورد از آن‌ها که بهتر
شناخته شده‌اند، در زیر آمده‌اند.

زبان اسمبلی
-----------

در اصل، کد ماشین اولین و تنها راه برای برنامه نویسی کامپیوترها بود. زبان اسمبلی نوع بعدی زبان بود که استفاده شد، و بنابراین یکی از قدیمی‌ترین خانواده زبان‌های کامپیوتری مورد استفادهٔ امروز است. تعداد زیادی گویش و اجرا معمولاً برای هر معماری پردازنده کامپیوتر در دسترس هستند. این خیلی پایه‌ای است و زبان برنامه‌نویسی سطح پایین نامیده می‌شود. این یکی از سخت‌ترین زبان‌هایی با بی نوع و سفت و سخت بودن است، اما نشان دهندهٔ این است که کامپیوترها چگونه در سطح پایین کار می‌کنند. چندین گویش ساده برای آموزش وجود دارد.
زبان‌های سطح پایین باید برای یک معماری پردازش مشخص نوشته شوند و نمی‌توانند بدون ارجاع پردازنده برای همانی که نوشته شده، نوشته یا آموخته شوند. برخلاف زبان‌های سطح بالا، استفاده از یک زبان برنامه‌نویسی آموزشی نیازمند نمایشی از یک پردازنده، چه مجازی چه فیزیکی، است. اسمبلی کمک‌کننده‌ترین زبان برای آموزش دربارهٔ عملیات اساسی پردازندهٔ کامپیوتر است.

* لیتل من کامپیوتر (LCM) یک مدل آموزشی از یک مدل ساده معماری کامپیوتر فون نیومن با تمام امکانات پایه‌ای کامپیوترهای جدید است. این می‌تواند در کد ماشین (معمولاً دهدهی) یا اسمبلی برنامه‌ریزی شود. این بر پایهٔ مفهوم داشتن یک مرد کوچک قفل شده در یک اتاق کوچک است. در یک انتهای اتاق ۱۰۰ جعبه ایمیل به عنوان حافظه است؛ هرکدام می‌تواند یک دستورالعمل سه رقمی یا داده نگه دارد. در انتهای دیگر اتاق دو جعبهٔ نامه به نام‌های INBOXو OUTBOX وجود دارند که اطلاعات را دریافت و ارسال می‌کنند. در وسط اتاق یک محل کار با یک ماشین حساب سادهٔ دو تابعی به نام Accumulator و یک شمارندهٔ قابل بازنشانی به نام Program Counter وجود دارد. شمارنده شبیه چیزی است که یک دربان برای شمردن افرادی که وارد یک ساختمان شده‌اند استفاده می‌کند. می‌تواند یکی افزایش پیدا کند یا می‌تواند به صفر بازنشانی شود. به همان شکلی که در معماری فون نیومن مشخص شده حافظه هم شامل دستورات است و هم اطلاعات. کاربر می‌تواند اطلاعات را روی جعبه نامه‌ها بارگذاری کندو به لیتل من پیام دهد تا کار اجرا را آغاز کند.
* Next Byte Codes (NBC) یک زبان ساده با سینتکس اسمبلی است که برای برنامه‌ریزی آجرهای قابل برنامه‌نویسی Lego Mindstorms NXT استفاده می‌شود. کامپایلر command line کد ماشین سازگار با NXT ساطع می‌کند و ویندوز Mac OS X و لینوکس را پشتیبانی می‌کند.
* Little Computer 3 (LC-3) یک زبان اسمبلی با مجموعه دستورات ساده شده‌است. اما می‌تواند برای نوشتن برنامه‌های نسبتاً پیچیده اسمبلی استفاده شود و به‌طور نظری گزینهٔ مناسبی برای کامپایلرهای C است. این زبان ساده‌تر از اسمبلی x86 است ولی ویژگی‌های مشابه زیادی با زبان‌های پیچیده‌تر دارد. این ویژگی‌ها این زبان را برای تدریس مبانی برنامه‌نویسی و معماری کامپیوتر به دانشجویان تازه‌وارد علوم کامپیوتر و مهندسی کامپیوتر مناسب می‌سازد؛ که رایج‌ترین استفادهٔ آن است.
* DLX یک معماری پردازنده کامپیوتر کم دستور طراحی شده توسط طراحان اصلی MIPS و Berkeley RISC است که دو مثال معیار از طراحی RISC هستند. DLX در واقع نسخه تمیزکاری شده و ساده شدهٔ MIPS با یک معماری بارگذاری/ذخیره ۳۲ بیتی است. این زبان به‌طور گسترده‌ای در درس‌های معماری کامپیوتر دانشگاهی استفاده می‌شود.
* MIX و MMIX کامپیوترهای فرضی هستند که در کتاب هنر برنامه‌نویسی Donald Knuth استفاده می‌شود. نقل قول از نوث: سیستم‌های MIX کامپیوترهایی با هدف نشان دادن جنبه‌های سطح ماشین برنامه‌نویسی هستند. به همین دلیل زبان ماشین آن ساده، زیبا و آسان برای یادگیری است. همچنین شامل همهٔ پیچیدگی‌های لازم برای بازدهی بالا در عمل است. پس در واقع می‌تواند ساخته شود و شاید با کامپیوترهای general purpose سریع رقابت کند. MIX قابل برنامه‌نویسی ترکیبی در باینری و دهدهی است. بیشتر برنامه‌هایی که برای آن نوشته شده‌اند برای هر دو حالت کار می‌کنند. پیاده‌سازی‌های نرم‌افزاری برای MIX و MMIX توسط نوث ساخته شده و آزادانه دراختیار قرار داده شده‌اند. چند نسخهٔ هردو شبیه‌ساز وجود دارد. MIX یک کامپیوتر سبک دههٔ شصت است؛ که با MMIX جایگزین شده‌است. MMIX یک ساختار کامپیوتری مدرن جدیدتر، یک معماری مجموعه دستورات RISC 64-بیت است. برای MMIX نوث با طراحان MIPS و آلفا همکاری کرد.

بیسیک
-----

بیسیک که مخفف Beginners All-purpose Symbolic Instruction Code است زبانی است که در سال ۱۹۶۴ اختراع شد تا به دانشجویان غیر فنی دسترسی به کامپیوتر دهد. این زبان در دههٔ شصت روی مینی کامپیوترها محبوب شد و به زبان استاندارد برای میکروکامپیوترها در دههٔ ۷۰ و ۸۰ تبدیل شد. هدف‌های بیسیک روی یادگیری سادهٔ برنامه‌نویسی متمرکز شده بود: استفاده از آن برای تازه‌کارها ساده باشد، اینتراکتیو باشد، پیام‌های خطای واضح و دوستانه ساطع کند، سریع پاسخ دهد، و نیازی به فهم سخت‌افزار کامپیوتر یا سیستم عامل نداشته باشد. چیزی که بیسیک را به خصوص برای آموزش مفید کرد اندازهٔ کوچک برنامه‌ها بود. برنامه‌های مفید برای نشان دادن یک مفهوم را می‌شد در یک دوجین خط نوشت. در همین حال بیسیک نیازی به پیچیدگی‌های ریاضیاتی و کامپیوتری نداشت. بیسیک همچنان برای خودآموزی استفاده می‌شود. رجوع کنید به فهرست گویش‌های بیسیک بر اساس پلتفرم. بیسیک مسیری برای یادگیری ارائه می‌کند از oriented basicها مانند Microsoft Small Basic, BASIC-256 و SiMPLE تا بیسیک‌های پیچیده‌تر مانند Visual Basic .NET و Gambas.

C
-

* Ch یک مترجم C/C++ است که برای کمک به دانشجویان غیر cs در یادگیری ریاضیات، محاسبات و برنامه‌نویسی در C و C++ طراحی شده‌است. این زبان C را با رسم نمودار دوبعدی و سه بعدی و ویژگی‌های عددی اسکریپت گسترش می‌دهد.

Java-based
----------

راه پیشنهادی Sun Microsystems از Greenfoot به BlueJ به Netbeans-BlueJ به Netbeans-Java است.

Lisp-based
----------

لیسپ دومین قدیمی‌ترین خانوادهٔ زبان‌های برنامه‌نویسی است که امروزه استفاده می‌شود. به همین دلیل دارای گویش‌ها و پیاده‌سازی‌های بسیاری با سختی‌های متفاوت است. لیسپ در اصل به عنوان یک نمادگذاری مفید ریاضیاتی برای برنامه‌های کامپیوتری براساس حساب لامبدا ساخته شده که این آن را به وسیلهٔ مناسبی برای تدریس نظریه‌های کامپیوتری تبدیل کرده‌است. به عنوان یکی از اولین زبان‌ها لیسپ پیشگام بسیاری از ایده‌ها در علوم کامپیوتر است. شامل ساختمان دادهٔ درخت، مدیریت حافظهٔ خودکار، نوع داده پویا، برنامه‌نویسی شی گرایی، کامپایلر خود میزبان.
نام لیسپ از LISt Processing language گرفته شده‌است. لیست‌های پیوندی یکی از ساختمان داده‌های اصلی این زبان هستند و کد منبع لیسپ از تعدادی لیست تشکیل شده‌است. به این ترتیب برنامه‌های لیسپ می‌توانند کد منبع را به عنوان یک ساختمان داده دستکاری کنند؛ که به ماکروسیستم‌هایی می‌انجامند که به برنامه نویسان اجازه می‌دهد سینتکس یا حتی domain-specific languagesهای جدید درون لیسپ ایجاد کند. پس لیسپ‌ها برای یادگرفتن طراحی زبان و ساختن زبان‌های جدید مفیدند.
یک مسیر معقول برای یادگیری لوگو و سپس هرکدام از نسخه‌های آموزشی مانند اسکیم یا newLISP و سپس یک نسخهٔ حرفه‌ای مانند Common LISP است.

Smalltalk-based
---------------

به عنوان بخشی از پروژهٔ یک لپ تاپ برای هر بچه یک سری از زبان‌های مبتنی بر smalltalk ساخته شده‌است که هرکدام به عنوان معرفی به بعدی طراحی شده‌است. ساختار یادگیری به صورت scratch به etoys به squeak به هر smalltalk است. هر کدام یک محیط گرافیکی ارائه می‌کنند که نه تنها می‌تواند برای آموزش مفاهیم برنامه‌نویسی به کودکان استفاده شود بلکه همچنین می‌توان فیزیک، ریاضیات، تمرینات داستان گویی و غیره را از راه یادگیری محافظه کارانه آموزش داد. Smalltalk و squeak زبان‌های توسعه نرم‌افزار کامل هستند و برای دهه‌ها مورد احترام بودند. Scratch یک ابزار یادگیری برای کودکان است.

منابع
-----

مشارکت‌کنندگان ویکی‌پدیا. «List of educational programming languages». در *دانشنامهٔ ویکی‌پدیای انگلیسی*.