Хаггис (язык программирования)


Из Википедии, бесплатной энциклопедии
  (Перенаправлено из HAGGIS )
Перейти к навигации Перейти к поиску

Haggis - это эталонный язык программирования высокого уровня, используемый в основном для изучения информатики для шотландских школьников, проходящих курсы SQA по этому предмету. [1] Хаггис используется как инструмент для преодоления разрыва между псевдокодом и типичным компьютерным программированием . [2]

Хаггис основан не на каком-то одном языке, а на смеси, которая предназначена для того, чтобы ученик, знакомый с любым из многих языков, используемых в классах, мог легко понять синтаксическую конструкцию, используемую в примере. Для этой цели он имеет несколько парадигм программирования: функционального , императивного и объектно-ориентированного . [3]

Есть три отдельных определения языка, по одному для каждого уровня, на котором вычисления оцениваются SQA; они являются собственными подмножествами друг друга, поэтому, например, любая программа, содержащаяся на национальном языке 5 уровня, также четко определена на уровнях высшего и продвинутого высшего. Higher включает определение процедур и функций и использование типов записей и файлов, в то время как Advanced Higher включает объектную ориентацию.

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

Обзор

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

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

Хаггис - решение этой проблемы. Haggis - это формально определенный справочный язык, но его цель - изучать программирование, а не писать программы. Еще одно требование состоит в том, что он не должен быть обязательной частью учебной программы, поэтому учащиеся, которые никогда раньше не видели язык, должны уметь его читать. Эти аспекты, наряду с попыткой максимально соответствовать развитому стилю псевдокода, направили спецификацию языка. Итак, хотя Haggis на самом деле является языком программирования (хотя, в общем, не все программы Haggis являются исполняемыми), он не предназначен в качестве языка для написания программ.

Эти концепции более полно объясняются в академической статье. [5]

История

В 2010 году SQA поручило Хаггису обеспечить единообразный синтаксис и форму представления вопросов ученикам при оценивании. Его нынешняя форма была совместно разработана Квинтином Каттсом ( Университет Глазго ), Грегом Майклсоном ( Университет Хериот-Ватт ) и Ричардом Коннором ( Университет Стратклайда ). Цель развития Хаггиса заключалась в том, чтобы подчеркнуть основную идею - дать ученикам возможность просматривать код и демонстрировать свое понимание его поведения, чтобы развить свое вычислительное мышление и навыки программирования. [1]

Впервые Хаггис был представлен на экзаменах по информатике в рамках программы повышения квалификации правительства Шотландии на сессии National 5, 2014/2015 гг., Для новых высших курсов [6] и для новых высших курсов высшего уровня в 2015 г. / Сессия 2016 г. [7] Хаггис не был введен в качестве языка для замены других языков, уже используемых в образовании, и не предполагалось, что этот язык должен преподаваться или использоваться в обычной учебной программе. Однако некоторые учителя приняли его как строгую форму псевдокода, чтобы улучшить преподавание на другом языке. [6]

Особенности и философия

Основные принципы

Хаггис был разработан с учетом 8 основных принципов [8]

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

Использование в образовании

Он был разработан как функциональный / последовательный и объектно-ориентированный, чтобы быть простым и сложным одновременно для студентов национальных 5 / старших классов и продвинутых студентов. [8]

Haggis был разработан, чтобы позволить ученикам по всей Шотландии улучшить изучение и понимание компьютерного программирования посредством чтения примеров и помочь на этапе перехода от псевдокода к полному программированию. Он не был создан с намерением просить учеников записывать его в тестах, но предоставить единый язык для представления ученикам примеров кода, гарантируя, что все ученики имеют четкое понимание и что им не мешает изучение другого языка программирования, отличного от один проиллюстрирован в оценке. [2]

Синтаксис

Пример языка программирования Haggis, который выводит все четные числа от 0 до 100.

Синтаксис и структура в Haggis очень похожи на другие языки программирования и могут быть легко изучены.

Более сложный пример некоторого кода Хаггиса

Зарезервированные слова

  • Зарезервированные слова пишутся с заглавной буквы; это обычно считается некрасивым для языка программирования, но делает структуру программы более ясной для начинающего читателя языка. Точно так же язык намеренно содержит много синтаксической избыточности.
  • DECLARE, FOR, WHILEИ т.д.

Типы данных

(типы обычно определяются путем вывода, за исключением случаев, когда это невозможно)

  • Символ (одиночный символьный тип, из которого состоят строки)
  • Целое число
  • Реальный (включая целые числа)
  • Логическое значение (истина или ложь)

Структурированные типы

  • Массив: последовательность одинаковых типов данных.
  • Строка: массив символов.
  • Запись: помеченный набор значений.
  • Объект: как определено дескрипторами класса.

Массивы включены в национальный 5-й уровень, рекорды на более высоком уровне и объекты на продвинутом более высоком уровне.

Номера строк

В некоторых примерах экзаменационных работ номера строк используются для облегчения ссылки; однако это не часть языка.

Отступ

Код в других структурах должен иметь отступ, чтобы его мог правильно идентифицировать компилятор и облегчить чтение для разработчика и для всех, кто может читать код. Еще раз, это не часть определения языка.

Комментарии

Комментарии могут быть сделаны с использованием #символа « » для каждой строки прокомментированного текста, он может появляться либо в начале новой строки, либо после фрагмента кода. Большие блоки текста могут быть указаны с использованием <(COMMENT TEXT>формата « », это в первую очередь реализовано для образовательных целей, чтобы предоставить учащимся более широкий контекст.

Имена переменных

Имена переменных должны быть написаны строчными буквами или, если имя сложное, строчными буквами . Camelcase - это когда имя объединяется в одно длинное слово, однако первая буква каждого слова (кроме первой) пишется с заглавной буквы.

Например, переменные могут называться:

  • number
  • meaningfulName

Инициализация

Инициализация позволяет объявить новую переменную.

DECLARE <variable’s name> INITIALLY <value>

Если тип не может быть определен из инициализирующего значения, может быть включен дополнительный тип, например

DECLARE myArray AS ARRAY OF INTEGER INITIALLY []

Назначение

Присваивание позволяет пользователю устанавливать значения для переменных. Синтаксис такой, как показано.

SET <variable’s name> TO <value>
  • Если <значение> является строкой, ее следует писать в кавычках, например: SET phrase TO "maybe"
  • Если <значение> является целым числом, кавычки не нужны, например: SET number TO 23

Вход

Ввод в Haggis похож на псевдокод в том, что вы указываете тип данных ввода, который получает программа, а также откуда поступает ввод, например:

RECEIVE <variable that will store input> FROM <INPUT DEVICE>

Также может использоваться необязательная типизация для объявления, например

DECLARE number AS INTEGER INITIALLY FROM KEYBOARD

Выход

Выходы в Haggis можно записывать аналогично входам.

SEND <variable, value or text> TO <OUTPUT DEVICE>

Например:

  • SEND meaningfulName TO DISPLAY

Арифметические расчеты

SET используется для присвоения результата расчета.

Например:

SET number TO 32*6

Это еще одна форма назначения.

Процедуры / функции

Процедура - это своего рода подпрограмма внутри программы. Он позволяет разбивать код на разделы, чтобы сделать его более читаемым и более легким в работе. Вы должны не забыть завершить процедуру, как показано ниже.

PROCEDURE <Procedure ID/Name>(<Data Type> <Variable>,<Data Type> <Variable>...) Haggis Commands
END PROCEDURE

Операции

Haggis включает в себя все операции, которые вы ожидаете от языка программирования, чтобы иметь возможность выполнять как вычисления, так и логические операции. Для данных типа INTEGER и REAL возможны следующие операции.

  • «-» - вычесть
  • «+» - это добавить
  • «*» - это умножение
  • «/» - это разделить
  • «^» - показатель степени

Для INTEGERтипов данных в одиночку, то по модулю возможно , который записывается в виде MOD.

Операторы сравнения:

  • «=» Равно
  • «≠» не равно
  • «<» Меньше чем
  • «>» Больше, чем
  • «≤» меньше или равно
  • «>» Больше или равно

Логические операции:

  • «И» - это соединение
  • «ИЛИ» - дизъюнкция
  • «НЕ» - это отрицание

Определение класса

При определении класса в Haggis используется синтаксис [CLASS <Class Name>()].

В Haggis можно объявить различные методы, например:

 CONSTRUCTOR( [Data Type][Data Name], [Data Type][Data Name]...) The users' '''Haggis''' code will then go here. END CONSTRUCTOR FUNCTION <Function Name>() RETURN <Data Type> The users' '''Haggis''' code will then go here. RETURN THIS <Class Property> END FUNCTION '''“THIS” is used to reference the current object invoking the method.''' PROCEDURE <Procedure Name> () The users' '''Haggis''' code will then go here. END PROCEDURE

Применение и использование

Изначально Haggis был реализован, а затем ожидалось, что он будет использоваться следующим образом. Студентов научат программировать на языке программирования, выбранном учителем. Затем студенты будут строить планы в формате псевдокода на более высоком уровне языка, чем сам код. Как только студенты почувствуют себя комфортно при написании псевдокода, их познакомят с Хаггисом, поскольку это язык, используемый в экзаменационных текстах. [2]

Haggis был реализован таким образом, потому что исследования показали, что способность понимать программы имеет важное значение для развития дальнейших навыков программирования. [2] Курсы, проводимые SQA (национальный 5 и выше), включают результаты, требующие от студентов наличия этой способности. Поскольку Haggis настолько прост для понимания и усвоения, его использовали в экзаменационных текстах. Отмечается, что студентов никогда не просили написать какой-либо код на Haggis во время экзамена, от них требуется только уметь читать и понимать его.

Проблемы

С Хаггисом всегда было очень мало проблем. Ни один из них не имеет отношения к самому языку, а больше связан с тем, как его видят студенты. Во-первых, студенты понятия не имели, почему их учили писать законченную компьютерную программу на двух языках. Во-вторых, они смешивали два языка, которым их учили, и часто ошибались в синтаксисе, потому что их обучали двум языкам одновременно, что вызывало небольшую путаницу. [2]

Наблюдение

Создатель наблюдал за Хаггисом, и было обнаружено, что он используется следующим образом. [2] Хаггис использовался в качестве языка планирования компьютерных программ, которые просили создать учащиеся. После того, как студентов попросили усовершенствовать свой код на нескольких этапах планирования, с помощью Haggis был составлен окончательный план. После того, как этот окончательный план будет составлен, код Хаггиса будет переведен на реальный язык программирования, указанный учителем. Этот метод эффективен для повышения навыков учащихся, как упоминалось ранее, чтобы максимально подготовить их к экзамену, когда они увидят, как Хаггис применяется в контексте.

использованная литература

  1. ^ a b Каттс, Квинтин. «Образование в области информатики в школах» . Университет Глазго . Проверено 8 ноября +2016 .
  2. ^ a b c d e f Теннант, Марк, Дж. «Хаггис - для чего его использовать?» . CompEdNet . Проверено 8 ноября +2016 .
  3. ^ Майклсон, Грег. «Объектно-ориентированное программирование на основе процедурного программирования с небольшим вычислительным мышлением» (PDF) . Университет Херриот Ватт - математические вычислительные науки . Проверено 8 ноября +2016 .
  4. ^ Коннор, Ричард. "Парсер Хаггиса" . appspot . Проверено 8 ноября +2016 .
  5. ^ Квинтин Каттс, Ричард Коннор, Грег Михельсона, и Питер Дональдсон. 2014. Код или (не код): разделение формального и естественного языка в образовании CS. В материалах 9-го семинара по начальному и среднему компьютерному образованию (WiPSCE '14). ACM, Нью-Йорк, Нью-Йорк, США, 20-28. DOI : 10,1145 / 2670757,2670780
  6. ^ a b «Справочный язык для вопросов по высшим компьютерным наукам» (PDF) . SQA . Проверено 8 ноября +2016 .
  7. ^ «Справочный язык для экзаменационных листов по высшим компьютерным наукам» (PDF) . SQA . Проверено 8 ноября +2016 .
  8. ^ a b Майклсон, Грег и Каттс, Квентин. «Рабочий документ Хаггиса» . Стр. 4 . Проверено 8 ноября +2016 .CS1 maint: использует параметр авторов ( ссылка )

внешние ссылки

  • Веб-страница Квинтина Каттса
  • SQA Online Haggis Parser
Получено с https://en.wikipedia.org/w/index.php?title=Haggis_(programming_language)&oldid=1038088363 "