Эта статья написана как руководство или путеводитель . ( Май 2017 г. ) |
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 очень похожи на другие языки программирования и могут быть легко изучены.
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 был составлен окончательный план. После того, как этот окончательный план будет составлен, код Хаггиса будет переведен на реальный язык программирования, указанный учителем. Этот метод эффективен для повышения навыков учащихся, как упоминалось ранее, чтобы максимально подготовить их к экзамену, когда они увидят, как Хаггис применяется в контексте.