Список образовательных языков программирования

Образовательный язык программирования — это язык программирования , который в первую очередь разработан как инструмент обучения и обычно используется в качестве отправной точки перед переходом к более сложным языкам программирования.

Типы образовательных языков программирования

Языки ассемблера

Первоначально машинный код был единственным методом программирования компьютеров. Язык ассемблера последовал за ним как раннее достижение, сделав его одним из старейших семейств языков программирования, используемых и по сей день. Существует множество диалектов и реализаций, каждая из которых адаптирована к определенной архитектуре процессора компьютера. Языки ассемблера считаются низкоуровневыми и более сложными в использовании, поскольку они нетипизированы и жестки. В образовательных целях были разработаны упрощенные диалекты языков ассемблера, чтобы сделать кодирование более доступным для начинающих.

Низкоуровневые языки , такие как ассемблер, должны быть написаны для конкретной архитектуры процессора. Их нельзя эффективно изучать или использовать в отрыве от оборудования, для которого они были разработаны. В отличие от языков более высокого уровня, образовательные языки ассемблера требуют некоторой формы представления процессора, либо виртуальной, либо физической. Языки ассемблера обычно используются для обучения основным операциям компьютерного процессора.

  • Little Man Computer (LMC) (1965) — это учебная модель простого компьютера с архитектурой фон Неймана . Он включает в себя основные функции современных компьютеров и может быть запрограммирован с использованием машинного кода (обычно в десятичном виде) или ассемблера. Модель имитирует компьютерную среду, используя визуальную метафору человека («Маленького человека») в комнате со 100 почтовыми ящиками ( памятью ), калькулятором (аккумулятором ) и счетчиком программ. LMC используется, чтобы помочь студентам понять основные функции процессора и управление памятью .
  • MIX (1968) и MMIX (1999) — гипотетические компьютерные модели, представленные в книге Дональда Кнута «Искусство программирования». Компьютер MIX разработан для образовательных целей, иллюстрируя, как работает базовый машинный язык. Несмотря на свою простоту, он может выполнять сложные задачи, типичные для высокопроизводительных компьютеров. MIX позволяет программировать как в двоичной, так и в десятичной системе счисления, причем для обеих моделей доступны программные эмуляторы . MMIX, которая заменила MIX, представляет собой 64-битную архитектуру набора инструкций RISC , модернизированную для обучения современной компьютерной архитектуре.
  • DLX (1994) — это архитектура процессора компьютера с сокращенным набором команд ( RISC ), созданная ключевыми разработчиками проектов MIPS и Berkeley RISC . DLX — это упрощенная версия MIPS , предлагающая 32-битную архитектуру загрузки/хранения, обычно используемую в курсах компьютерной архитектуры на уровне колледжа.
  • Next Byte Codes (NBC) (2007) — простой язык ассемблера, используемый для программирования программируемых блоков Lego Mindstorms NXT . Компилятор NBC создает машинный код, совместимый с NXT, и поддерживается в Windows, macOS и Linux.
  • Little Computer 3 (LC-3) (2019) — это язык ассемблера с упрощенным набором инструкций, позволяющий писать умеренно сложные программы ассемблера. Он включает в себя множество функций, имеющихся в более продвинутых языках, что делает его полезным для обучения основам программирования и компьютерной архитектуры . Он в основном используется на вводных курсах по информатике и инженерии.

БАЗОВЫЕ варианты

BASIC (Beginner's All-purpose Symbolic Instruction Code) был изобретен в 1964 году для предоставления доступа к компьютеру студентам, не изучающим науку. Он стал популярен на мини-компьютерах в 1960-х годах и стал стандартным языком вычислений для микрокомпьютеров в конце 1970-х и начале 1980-х годов. Цели BASIC были сосредоточены на необходимости легкого обучения программированию:

  • Быть простым в использовании для новичков,
  • Будьте интерактивны,
  • Предоставляйте понятные и понятные сообщения об ошибках,
  • Отвечайте быстро,
  • Не требует понимания компьютерного оборудования или операционных систем.

Что сделало BASIC привлекательным для образования, так это небольшой размер программ, которые могли проиллюстрировать концепцию в дюжине строк. BASIC по-прежнему часто изучают самостоятельно с помощью учебных пособий и реализаций.

См. также Список диалектов BASIC по платформам .

BASIC предлагает путь обучения от ориентированных на обучение BASIC, таких как Microsoft Small Basic , BASIC-256 и SiMPLE , до более полнофункциональных BASIC, таких как Visual Basic .NET и Gambas .

  • Microsoft Small Basic — это ограниченная версия Visual Basic, разработанная как первый язык, «направленная на возвращение „веселья“ в программирование». Язык намеренно минималистичен и содержит всего 15 ключевых слов. Предоставляя объектно-ориентированные библиотеки для тем, которые интересуют детей, они могут создавать программы как для веб-среды, так и для настольной среды. Например, с помощью 6 строк кода можно продемонстрировать случайный сетевой просмотрщик изображений, используя Flickr в качестве источника. [1] Система использует Microsoft Visual Studio IDE для предоставления автодополнения и контекстно-зависимой справки .
  • Basic-256 — простая в использовании версия BASIC, разработанная для обучения основам компьютерного программирования. Она использует традиционные структуры управления BASIC ( gosub , for loops , goto ) для простоты понимания управления потоком программы. Она имеет встроенный графический режим, который позволяет детям рисовать на экране через несколько минут.
  • SiMPLE — это система разработки программирования, созданная для того, чтобы предоставить всем, особенно непрофессионалам, простые возможности программирования. Она чем-то похожа на AppleSoft BASIC . Она скомпилирована и позволяет пользователям создавать собственные библиотеки часто используемых функций. «Simple» — это общее название для трех немного отличающихся версий языка: Micro-SIMPLE (использует всего 4 ключевых слова), Pro-SiMPLE и Ultra-SiMPLE (использует 23 ключевых слова).
  • Hot Soup Processor — это язык программирования на основе BASIC, используемый в японских школах.
  • TI-BASIC — это простой язык программирования на основе BASIC, реализованный в графических калькуляторах Texas Instruments , который часто используется студентами в качестве первого знакомства с программированием.
  • SmallBASIC — это быстрый и простой в освоении интерпретатор языка BASIC, идеальный для повседневных вычислений, скриптов и прототипов . Он включает тригонометрические , матричные и алгебраические функции , встроенную IDE , мощную библиотеку строк, системные, звуковые и графические команды, а также структурированный синтаксис программирования.

на основе C

  • Ch — это интерпретатор C / C++, разработанный для помощи студентам, не изучающим компьютерные науки, в изучении математики, вычислений и программирования на C и C++. Он расширяет C числовыми, 2D/3D графическими функциями и функциями скриптинга.

на основе Java

На основе Lisp

На основе логотипа

  • Logo — это язык, специально разработанный для того, чтобы знакомить детей с программированием. Первая часть обучения Logo посвящена «графике черепах» (происходящей от роботов-черепах ), которая использовалась еще в 1969 году с прото-Logo. В современных реализациях абстрактное устройство для рисования, называемое черепахой , используется для того, чтобы сделать программирование для детей очень привлекательным, концентрируясь на создании графики черепахи . Сеймур Паперт , один из создателей Logo, был видной фигурой в конструктивизме , разновидности конструктивистских теорий обучения . Паперт утверждал, что такие виды деятельности, как письмо, будут естественным образом изучаться гораздо более младшими детьми при условии, что они примут компьютерную культуру. [4] Таким образом, Logo был разработан для улучшения благополучия ребенка в, казалось бы, все более и более технологичном мире, « более важным, чем раннее начало интеллектуального развития, является спасение от длительного периода зависимости, в течение которого человек учится думать об обучении как о чем-то, что должно быть предоставлено более сильным другим... Такие дети не будут определять себя или позволять обществу определять их как интеллектуально беспомощных » . [4] Он использовался детьми в возрасте от 3 лет и имеет послужной список в 30 лет успеха в образовании. Поскольку Logo на самом деле является оптимизированной версией Lisp с более продвинутыми учениками, его можно использовать для введения основных понятий компьютерной науки и даже искусственного интеллекта. Logo широко доступен на различных платформах, как в бесплатной, так и в коммерческой версиях.

на основе Scala

  • Kojo — это интерактивная среда разработки настольных приложений, разработанная в первую очередь для образовательных целей, которая работает на Windows , Linux и OS X. Kojo — это обучающая среда со множеством различных функций, которые помогают в исследовании, изучении и преподавании концепций в областях компьютерного программирования и критического мышления , математики и науки, искусства, музыки и творческого мышления, компьютерной и интернет-грамотности . [5]

основанный на Smalltalk

В рамках проекта One Laptop per Child была разработана последовательность языков на основе Smalltalk, каждый из которых призван служить введением в следующий. Структура — от Scratch до Etoys, от Squeak до любого Smalltalk . [6] Каждый из них предоставляет графические среды, которые можно использовать для обучения детей не только концепциям программирования, но и физическим и математическим симуляциям, упражнениям по повествованию и т. д. с помощью конструктивного обучения . Smalltalk и Squeak — это полнофункциональные языки разработки приложений, которые существуют и пользуются уважением уже несколько десятилетий; Scratch — это инструмент обучения детей.

  • Scratch — визуальный язык, основанный на Squeak и реализованный в нем. Его цель — научить детей основам программирования и позволить им создавать игры, видео и музыку. В Scratch все интерактивные объекты, графику и звуки можно легко импортировать в новую программу и комбинировать новыми способами. Таким образом, новички могут получить быстрые результаты и быть мотивированными на дальнейшие попытки. Сообщество Scratch разработало и загрузило более 3 000 000 проектов. [7] Он разработан группой Lifelong Kindergarten [8] в MIT Media Lab .
  • Etoys основан на идее программируемых виртуальных сущностей, ведущих себя на экране компьютера. Etoys предоставляет мультимедийную среду авторинга с простой, мощной скриптовой объектной моделью для многих видов объектов, созданных конечными пользователями. Она включает в себя 2D и 3D графику , изображения , текст , частицы, презентации, веб-страницы, видео , звук и MIDI , возможность делиться рабочими столами с другими пользователями Etoys в режиме реального времени , поэтому многие формы иммерсивного наставничества и игры могут быть реализованы через Интернет . Она многоязычна и успешно используется в Соединенных Штатах , Европе , Южной Америке , Японии , Корее , Индии , Непале и других местах. Программа предназначена для детей в возрасте от 9 до 12 лет. [9]
  • Squeak — это современная, с открытым исходным кодом, полнофункциональная реализация языка и среды Smalltalk. Smalltalk — это объектно-ориентированный , динамически типизированный , рефлексивный язык программирования , созданный для поддержки «нового мира» вычислений, примером которого является «симбиоз человека и компьютера». [10] Как и Lisp , он имеет персистентность на основе образов , поэтому все можно изменять изнутри языка (см. Smalltalk#Reflection ). [11] Он оказал большое влияние на отрасль, внедрив многие концепции объектно-ориентированного программирования и компиляции «точно в срок» . Squeak — это средство для широкого спектра проектов, включая мультимедийные приложения, образовательные платформы и разработку коммерческих веб-приложений . Squeak разработан так, чтобы быть высокопортируемым и простым в отладке, анализе и изменении, поскольку его виртуальная машина полностью написана на Smalltalk.

Паскаль

  • Pascal — язык, разработанный Никлаусом Виртом примерно в 1970 году с целью обучения структурному программированию. [12] С конца 1970-х до конца 1980-х годов он был основным выбором на вводных занятиях по информатике для обучения студентов программированию как в США, так и в Европе. С тех пор его использование для приложений реального мира возросло до общего использования. [13]
  • Язык на основе Algol, включает в себя множество конструкций Algol. Algol 60 является подмножеством Pascal.
  • Ранее пользовался популярностью в сфере преподавания и науки по разным причинам:
    • Легко освоить.
    • Структурированный язык.
    • Он создает прозрачные, эффективные и надежные программы.
    • Его можно скомпилировать на различных компьютерных платформах.

Другой

Дети

  • AgentSheets и AgentCubes — два инструмента вычислительного мышления для создания 2D/3D-игр и симуляций. Создание происходит с помощью настольных приложений или приложений на основе браузера, и оно может создавать 2D/3D-игры, в которые можно играть в браузерах, совместимых с HTML5, включая мобильные.
  • Alice — это бесплатное программное обеспечение для программирования, разработанное для обучения детей объектно-ориентированному программированию, управляемому событиями. Программисты создают интерактивные истории, используя современный интерфейс IDE с перетаскиванием элементов в стиле программирования. Целевая аудитория варьируется от детей средней школы до студентов университетов. [14] Story Telling Alice — это вариант Alice, разработанный для детей младшего возраста, с еще более сильным уклоном в повествование. [15]
  • Blockly — это графический веб-язык с открытым исходным кодом, в котором пользователи могут перетаскивать блоки вместе для создания приложения без необходимости набора текста. Он был разработан Google .
  • CiMPLE был визуальным языком для программирования робототехнического набора для детей. Он был построен поверх C как DSL . ThinkLabs, индийский стартап, основанный на образовании в области робототехники, создал его для набора iPitara Robotic. Язык имел сильное сходство с языком C. По крайней мере одна школа в Бангалоре, Индия, купила набор iPitara и заставила своих учеников программировать роботов с помощью CiMPLE. [16] Более подробная информация доступна в блоге CiMPLE Original Developers Weblog. [17] [18] Похоже, что в конечном итоге ThinkLabs перешли на использование «THiNK VPL» в качестве своего программного обеспечения для визуального программирования.
  • Physical Etoys — это бесплатное расширение Etoys с открытым исходным кодом. Его философия заключается в том, что «он помогает детям исследовать собственное творчество, объединяя науку и искусство в бесконечной лаборатории». [19] Он может работать на Windows , Linux и Sugar . Благодаря своей системе блочных скриптов Physical Etoys позволяет различным электронным устройствам, таким как Lego NXT ,платы Arduino , Sphero , Kinect и джойстики Wiimote , взаимодействовать между собой.
  • Hackety Hack — это бесплатная среда на основе Ruby , призванная облегчить изучение программирования для новичков, особенно подростков. [20]
  • Karel , Karel++ и Karel J. Robot — это языки, предназначенные для начинающих, используемые для управления простым роботом в городе, состоящем из прямоугольной сетки улиц. В то время как Karel — это отдельный язык, Karel++ — это версия Karel, реализованная на C++ , а Karel J. Robot — это версия Karel, реализованная на Java .
  • Kodu — это простой язык, полностью основанный на значках. Он был выведен из Microsoft Research как проект по привлечению детей младшего возраста, особенно девочек, к использованию технологий. Программы состоят из страниц, которые делятся на правила, которые далее делятся на условия и действия. Условия оцениваются одновременно. Язык Kodu разработан специально для разработки игр и предоставляет специализированные примитивы, полученные из игровых сценариев. Программы выражаются в физических терминах, используя такие понятия, как зрение, слух и время, для управления поведением персонажа. Инструмент Kodu доступен в трех формах: для ПК в виде бесплатной загрузки в публичной бета-версии и академической форме, а также в виде недорогой загрузки Xbox 360 Live.
  • Logo — это образовательный язык для детей, разработанный в 1967 году Дэниелом Г. Бобровым , Уолли Фейрцейгом , Сеймуром Папертом и Синтией Соломон . Сегодня этот язык помнят в основном по использованию « графики черепахи », в которой команды для движения и рисования создают линейную графику с помощью небольшого робота, называемого « черепахой ». Первоначально язык был задуман для обучения концепциям программирования, связанным с Lisp , и только позже — для того, чтобы сделать возможным то, что Паперт назвал « телесно-синтонным рассуждением» , когда ученики могли понимать (и предсказывать и рассуждать) о движении черепахи, представляя, что бы они сделали, если бы они были черепахой. [21]
  • Lego Mindstorms — это линейка наборов Lego, объединяющая программируемые блоки с электродвигателями, датчиками, блоками Lego и деталями Lego Technic (такими как шестерни, оси и балки). Mindstorms произошли от программируемых сенсорных блоков, используемых в линейке образовательных игрушек. Первая розничная версия Lego Mindstorms была выпущена в 1998 году и продавалась на рынке как Robotics Invention System (RIS). Текущая версия была выпущена в 2006 году как Lego Mindstorms NXT . Для Mindstorms используется широкийот Logo до BASIC и производных Java, Smalltalk и C. Подход Mindstorm к программированию теперь имеет специальные физические сайты, называемые Computer Clubhouses .
  • Mama — это образовательный объектно-ориентированный язык, разработанный для того, чтобы помочь молодым студентам начать программирование, предоставляя все языковые элементы на родном языке студента. Язык Mama доступен на нескольких языках, с поддержкой как LTR, так и RTL направления языка. Новый вариант Mama был построен на основе среды разработки Alice от Carnegie Mellon , поддерживающей скриптинг 3D-объектов сцены. Этот вариант был разработан, чтобы помочь молодым студентам начать программирование, создавая 3D-анимацию и игры. Документ о принципах образовательного программирования объясняет соображения по дизайну Mama. [22]
  • RoboMind — это простая образовательная среда программирования, которая позволяет новичкам программировать робота. Она знакомит с популярными методами программирования, а также робототехникой и искусственным интеллектом. Робота можно программировать на арабском, китайском, голландском, немецком, английском и шведском языках.
  • Scratch — это графический язык на основе блоков, разработанный Массачусетским технологическим институтом.
  • ScratchJr — производная графического языка Scratch. Она предназначена для детей в возрасте около 5-7 лет.
  • Snap! — это бесплатныйграфический язык с открытым исходным кодом на основе блоков, реализованный на JavaScript и изначально созданный на основе Scratch Массачусетского технологического института . Snap! добавляет возможность создания новых блоков и имеет первоклассные функции , позволяющие использовать анонимные функции . Он активно поддерживается Калифорнийским университетом в Беркли . Исходный код полностью размещен на GitHub .
  • Stagecast Creator — это визуальная система программирования, основанная на программировании путем демонстрации . Пользователи показывают системе, что делать, перемещая значки на экране, и она генерирует правила для объектов (персонажей). Пользователи могут создавать двумерные симуляции, моделирующие концепции, многоуровневые игры и интерактивные истории.
  • Stencyl — это IDE для визуального программирования и разработки игр, которая используется в образовании и коммерции. Концепция блоков кода , которую она реализует, основана на визуальном языке Scratch MIT ( перечисленном выше). Она также позволяет использовать обычный типизированный код (отдельный или смешанный) через свой собственный API и язык Haxe .
  • ToonTalk — это язык и среда, которые выглядят как видеоигра. Вычислительные абстракции отображаются в конкретные аналоги, такие как роботы, дома, грузовики, птицы, гнезда и коробки. Он поддерживает большие целые числа и точные рациональные числа. Он основан на программировании с параллельными ограничениями .

Университет

  • Curry — это обучающий язык [23], разработанный для объединения наиболее важных парадигм декларативного программирования, а именно функционального программирования (вложенные выражения, функции высшего порядка, ленивые вычисления) и логического программирования (логические переменные, частичные структуры данных, встроенный поиск). Он также объединяет два наиболее важных операционных принципа, разработанных в области интегрированных функциональных логических языков: «остаток» и «сужение». [24] [25]
  • Flowgorithm — это графический инструмент для написания и выполнения программ с помощью блок-схем . Подход разработан для акцентирования внимания на алгоритме, а не на синтаксисе данного языка. Блок-схему можно преобразовать в несколько основных языков, таких как C# , Java , Visual Basic .NET и Python . [26]
  • Oz — это язык, разработанный для обучения компьютерной теории. Он поддерживает большинство основных парадигм [27] на одном языке, так что студенты могут изучать парадигмы без необходимости изучать несколько синтаксисов . Oz содержит в простом и хорошо структурированном виде большинство концепций основных парадигм программирования, включая логику, функциональное (как ленивое, так и энергичное), императивное, объектно-ориентированное, ограниченное, распределенное и параллельное программирование. Он имеет канонический учебник, Концепции, методы и модели компьютерного программирования (2004), и свободно доступную стандартную реализацию, Mozart Programming System . [ необходима цитата ]

Смотрите также

Ссылки

  1. ^ Корпорация Microsoft 2009 Руководство по началу работы с Small Basic, стр. 64.
  2. ^ Кенлон, Сет. «Изучите язык программирования Lisp в 2021 году | Opensource.com». opensource.com . Получено 14 октября 2024 г. .
  3. ^ "Что такое язык программирования Lisp (обработка списков)? – Определение с сайта TechTarget.com". WhatIs . Получено 14 октября 2024 г. .
  4. ^ ab Papert, Seymour (октябрь 1980 г.). Переосмысление детства: присутствие компьютера как эксперимент в психологии развития. Токио, Япония и Мельбурн, Австралия: 8-й Всемирный компьютерный конгресс: Конгресс IFIP.
  5. ^ "О kogics Kojo" . Получено 12 февраля 2011 г. .
  6. ^ Кавалло, Дэвид (28 мая 2007 г.). «Изучаем скрип с нуля». Новости One Laptop Per Child . Получено 3 апреля 2009 г.
  7. ^ Митчел Резник; Джон Мэлони; Натали Раск; Эвелин Истмонд; Амон Миллнер; Джей Сильвер; Эрик Розенбаум; Карен Бреннан; Амос Блэнтон. «Scratch: imagine, program, share». Массачусетский технологический институт . Получено 8 января 2013 г.
  8. ^ "Обзор группы ‹ Детский сад на всю жизнь". MIT Media Lab . Получено 8 октября 2024 г.
  9. ^ Дюкасс, Стефан (2005). Squeak: Learn Programming with Robots (Technology in Action). Apress. стр. 289 в гл. 24: A tour or eTOY . ISBN 1-59059-491-6.
  10. ^ Кей, Алан. «Ранняя история Smalltalk». Архивировано из оригинала 29 апреля 2011 г. Получено 13 сентября 2007 г.
  11. ^ Для дальнейшего обсуждения того, почему это упрощает задачу, см. Meta-circular evaluator
  12. ^ Хеммендингер, Дэвид. «Паскаль». Encyclopedia Britannica, 5 апреля 2024 г., https://www.britannica.com/technology/Pascal-computer-language. Доступ 12 июня 2024 г.
  13. ^ "Pascal - Free Pascal wiki". wiki.freepascal.org . Получено 11 октября 2024 г. .
  14. ^ "About – Alice" . Получено 7 октября 2024 г. .
  15. ^ "Рассказывание Алисы – Алиса" . Получено 7 ноября 2023 г. .
  16. EducationWorld (21 сентября 2012 г.). "ThinkLABS RoboLAB". EducationWorld . Получено 8 октября 2024 г. .
  17. ^ CiMPLE Original Developers Weblog Архивировано 21 июля 2011 г. на Wayback Machine
  18. ^ "ThinkLABS -". web.archive.org . 20 сентября 2012 г. . Получено 9 октября 2024 г. .
  19. ^ "Physical EToys - Общее описание проекта". Tecnodata .{{cite web}}: CS1 maint: url-status ( ссылка )
  20. ^ "Hackety Hack". GitHub . Получено 9 октября 2024 г.
  21. ^ HL ModTech (23 января 2018 г.). Программирование логотипов — Turtle Academy, урок 1. Получено 9 октября 2024 г. — через YouTube.
  22. ^ Принципы образовательного программирования Mama
  23. ^ М. Ханус. Обучение функциональному и логическому программированию с помощью единой модели вычислений. В трудах Девятого международного симпозиума по языкам программирования, реализациям, логике и программам (PLILP'97), стр. 335–350. Springer LNCS 1292, 1997.
  24. ^ "Curry report, Introduction". Архивировано из оригинала 4 октября 2009 г.
  25. ^ Ханус, М. (1994). «Интеграция функций в логическое программирование: от теории к практике». Журнал логического программирования . 19&20: 583–628.
  26. ^ "About". Flowgorithm . Получено 26 августа 2014 г. .
  27. ^ Плакат «Парадигмы программирования »
Получено с "https://en.wikipedia.org/w/index.php?title=Список_языков_образовательного_программирования&oldid=1251971148"