Haggis es un lenguaje de programación de referencia de alto nivel que se utiliza principalmente para examinar la informática para los alumnos escoceses que toman cursos SQA sobre el tema. [1] Haggis se utiliza como una herramienta para cerrar la brecha entre el pseudocódigo y la programación informática típica . [2]
Haggis no se basa en un solo idioma, sino en una mezcla que tiene la intención de permitir que un alumno familiarizado con cualquiera de los muchos idiomas utilizados en las aulas comprenda fácilmente la construcción sintáctica que se usa en un ejemplo. Cuenta con múltiples paradigmas de programación funcional , imperativa y orientada a objetos para adaptarse a este propósito. [3]
Hay tres definiciones de lenguaje separadas, una para cada nivel en el que la SQA evalúa la informática; Estos son subconjuntos adecuados entre sí, por lo que, por ejemplo, cualquier programa contenido en el idioma de nivel Nacional 5 también está bien definido en los niveles Superior y Avanzado Superior. Higher incluye la definición de procedimientos y funciones y el uso de tipos de registros y archivos, mientras que Advanced Higher incluye orientación a objetos.
Los intérpretes en línea de Haggis se han desarrollado para proporcionar a los examinadores y profesores una forma de comprobar que sus programas están correctamente definidos y se comportan como se espera. [4]
Descripción general
En Escocia , las calificaciones de informática de nivel escolar son otorgadas por la Scottish Qualifications Authority . Para los cursos de informática se tomó la decisión de que no se debería exigir una sola elección de lenguaje de programación para el examen: esto permite a los profesores elegir los lenguajes según corresponda al contexto. Sin embargo, esto deja la cuestión de cómo examinar la programación, especialmente a la luz de la investigación educativa reciente que fomenta la enseñanza de la lectura y la comprensión del código como una disciplina central, que por lo tanto debe ser examinada.
Inicialmente, surgió una forma de lenguaje pseudocódigo entre los examinadores, para evitar tal dependencia del lenguaje. Sin embargo, esto llevó a la situación muy indeseable de que, mientras se enseña a los estudiantes sobre la importancia del rigor de los términos en un lenguaje de programación, pueden mirar hacia atrás en años anteriores de exámenes y ver un uso no estándar de la codificación que varía de un ejemplo a otro. .
Haggis es la solución a esto. Haggis es un lenguaje de referencia definido formalmente, pero su propósito es examinar la programación, no escribir programas. Un requisito adicional es que no debe ser una parte obligatoria del plan de estudios, por lo que los estudiantes que nunca antes hayan visto el idioma deben poder leerlo. Estos aspectos, junto con un intento de ajustarse en la medida de lo posible al estilo de pseudocódigo evolucionado, dirigieron la especificación del lenguaje. Entonces, aunque Haggis es de hecho un lenguaje de programación (aunque, en general, no todos los programas de Haggis son ejecutables), no está pensado como un lenguaje en el que escribir programas.
Estos conceptos se explican con más detalle en un artículo académico. [5]
Historia
La SQA encargó a Haggis en 2010 que proporcionara una sintaxis y una forma uniformes para presentar preguntas a los alumnos en las evaluaciones. Su forma actual fue desarrollada conjuntamente por Quintin Cutts ( Universidad de Glasgow ), Greg Michaelson ( Universidad Heriot Watt ) y Richard Connor ( Universidad de Strathclyde ). El objetivo del desarrollo de Haggis era enfatizar la idea central de garantizar que los alumnos pudieran ver el código y demostrar su comprensión de su comportamiento, con el fin de desarrollar sus habilidades de programación y pensamiento computacional. [1]
Haggis se introdujo por primera vez en los exámenes de Ciencias de la Computación como parte del programa de desarrollo del Currículo para la Excelencia del Gobierno de Escocia en la sesión 2013/2014 en National 5, 2014/2015 para los nuevos cursos superiores [6] y en el nuevo Advanced Higher en 2015 / Sesión 2016. [7] El haggis no se introdujo como un idioma para reemplazar otros idiomas que ya se usaban en la educación, ni se pretendía que el idioma se enseñara o se usara en el plan de estudios normal. Sin embargo, algunos profesores lo han adoptado como una forma de pseudocódigo rigurosa para mejorar la enseñanza impartida en otro idioma. [6]
Características y filosofía
Principios básicos
Haggis fue diseñado con 8 principios básicos en mente [8]
- No estar basado en ningún lenguaje de programación existente
- Ser adaptable a los lenguajes de programación que ya se enseñan en el plan de estudios escocés.
- Proporcionar suficiente complejidad para la enseñanza superior avanzada y, al mismo tiempo, ser adecuadamente útil para los años de enseñanza anteriores.
- Proporcione un elemento instintivo, por ejemplo, los tipos de variables se especifican por sí mismos.
- Sea conciso en el uso pero abierto a la interpretación de múltiples formas de resolver un problema.
- Permitir que diferentes construcciones tengan diferentes significados cuando se utilizan en un contexto determinado
- No visualice los elementos no útiles como la memoria que se está asignando.
Uso dentro de la educación
Fue diseñado para ser funcional / secuencial y orientado a objetos con el fin de ser simple y complejo para estudiantes de National 5 / Higher y estudiantes de Advanced Higher simultáneamente. [8]
Haggis fue diseñado para permitir a los alumnos de toda Escocia mejorar el aprendizaje y la comprensión de la programación de computadoras a través de ejemplos de lectura, y ayudar en el paso de conversión de pseudocódigo a programación completa. No se creó con la intención de pedir a los alumnos que lo escribieran en las evaluaciones, sino que proporciona un lenguaje uniforme en el que presentar ejemplos de código a los estudiantes, asegurando que todos los alumnos tengan una comprensión justa y no se vea obstaculizado por el aprendizaje de un lenguaje de programación diferente al uno ejemplificado en la evaluación. [2]
Sintaxis
La sintaxis y la estructura de Haggis son muy similares a otros lenguajes de programación y se pueden aprender fácilmente.
Palabras reservadas
- Las palabras reservadas están en mayúscula; Esto generalmente se consideraría desagradable para un lenguaje de programación, pero hace que la estructura del programa sea más clara para un lector principiante del lenguaje. De manera similar, el lenguaje contiene deliberadamente una gran cantidad de redundancia sintáctica.
DECLARE
,FOR
,WHILE
, Etc.
Tipos de datos
(los tipos normalmente se determinan por inferencia, excepto cuando esto no es posible)
- Carácter (un tipo de carácter único, a partir del cual se componen las cadenas)
- Entero
- Real (incluidos números enteros)
- Booleano (verdadero o falso)
Tipos estructurados
- Array: Secuencia de los mismos tipos de datos.
- Cadena: Matriz de caracteres.
- Registro: una colección etiquetada de valores.
- Objeto: definido por los descriptores de clase.
Las matrices se incluyen en el nivel Nacional 5, los registros en el nivel superior y los objetos en el nivel avanzado superior.
Línea de números
En algunos ejemplos de los exámenes, los números de línea se utilizan para facilitar la referencia; Sin embargo, esto no es parte del idioma.
Sangría
El código dentro de otras estructuras debe tener sangría para que el compilador pueda identificarlo correctamente y para que sea más fácil de leer para el desarrollador y para cualquier otra persona que pueda estar leyendo el código. Una vez más, esto no es parte de la definición del lenguaje.
Comentarios
Los comentarios se pueden hacer usando el carácter “ #
” para cada línea de texto comentado, esto puede aparecer al principio de una nueva línea o después de un fragmento de código. Se pueden especificar grandes bloques de texto usando el <(COMMENT TEXT>
formato " ", esto se implementa principalmente para uso educativo para proporcionar un contexto más amplio para los estudiantes.
Nombres de variables
Los nombres de las variables deben escribirse en minúsculas o, si el nombre es complejo, en camelCase inferior . Camelcase es cuando un nombre se concatena para formar una palabra larga, sin embargo, la primera letra de cada palabra (aparte de la primera) está en mayúscula.
Por ejemplo, las variables podrían llamarse:
number
meaningfulName
Inicialización
La inicialización permite la declaración de una nueva variable.
DECLARE
INITIALLY ’s>
Si el tipo no se puede determinar a partir del valor de inicialización, se puede incluir un tipo opcional, como por ejemplo
DECLARE myArray AS ARRAY OF INTEGER INITIALLY []
Asignación
La asignación permite al usuario establecer valores para las variables. La sintaxis es como se muestra.
SET
TO ’s>
- Si
es una cadena, debe escribirse entre comillas, así: SET phrase TO "maybe"
- Si
es un número entero, no necesita comillas, como esta: SET number TO 23
Aporte
La entrada en Haggis es similar al pseudocódigo en que usted indica el tipo de datos de la entrada que recibe el programa y también de dónde proviene la entrada, así:
RECEIVE
FROM
También se puede utilizar la escritura opcional para una declaración, por ejemplo
DECLARE number AS INTEGER INITIALLY FROM KEYBOARD
Producción
Las salidas en Haggis se pueden escribir de forma similar a las entradas.
SEND
TO ,>
Por ejemplo:
SEND meaningfulName TO DISPLAY
Cálculos aritméticos
SET
se utiliza para asignar el resultado del cálculo.
Por ejemplo:
SET number TO 32*6
Esta es otra forma de asignación.
Procedimientos / funciones
Un procedimiento es una especie de subprograma dentro de un programa. Permite la sección de código para hacerlo más legible y más fácil de trabajar. Debe recordar finalizar el procedimiento como se muestra a continuación.
PROCEDURE ( , ...) Haggis Commands
END PROCEDURE
Operaciones
Haggis incluye todas las operaciones que esperaría de un lenguaje de programación para poder realizar cálculos y operaciones lógicas por igual. Para datos INTEGER y REAL ingresados, las siguientes operaciones son posibles.
- "-" es restar
- "+" Es agregar
- "*" Es multiplicar
- "/" Es dividir
- "^" Es exponente
INTEGER
Solo para los tipos de datos, es posible el módulo que se escribe como MOD
.
Operadores de comparación:
- "=" Es igual
- "≠" son desigualdades
- "<" Es menor que
- ">" Es mayor que
- "≤" es menor o igual que
- ">" Es mayor o igual que
Operaciones lógicas:
- "Y" es conjunción
- "OR" es disyunción
- "NO" es negación
Definiendo una clase
Definir una clase en Haggis usa la sintaxis [CLASS
.
Hay varios métodos que puede declarar en Haggis como:
CONSTRUCTOR( [Data Type][Data Name], [Data Type][Data Name]...) The users' '''Haggis''' code will then go here. END CONSTRUCTOR FUNCTION () RETURN The users' '''Haggis''' code will then go here. RETURN THIS END FUNCTION '''“THIS” is used to reference the current object invoking the method.''' PROCEDURE () The users' '''Haggis''' code will then go here. END PROCEDURE
Aplicación y usos
Haggis se implementó originalmente y luego se esperaba que se usara de las siguientes maneras. A los estudiantes se les enseñará cómo codificar en un lenguaje de programación que el profesor haya seleccionado. Los estudiantes luego harían planes en un formato de pseudocódigo en un nivel de lenguaje más alto que el código en sí. Una vez que los estudiantes se sintieran cómodos escribiendo pseudocódigo, se les presentaría Haggis, ya que es el idioma utilizado en los textos de los exámenes. [2]
Haggis se implementó de esta manera porque la investigación ha demostrado que la capacidad de comprender los programas es esencial para desarrollar más habilidades de programación. [2] Los cursos administrados por SQA (Nacional 5 y superior) incluyen resultados que requieren que los estudiantes tengan esta capacidad. Debido a que Haggis es tan fácil de entender y aprender, se ha utilizado en los textos de los exámenes. Cabe señalar que a los estudiantes se les pidió y nunca se les pedirá que escriban ningún código en Haggis durante un examen, solo se les requiere que puedan leerlo y entenderlo.
Problemas
Solo ha habido un número muy pequeño de problemas con Haggis. Ninguno tiene que ver con el idioma en sí, sino más bien con la forma en que los estudiantes lo ven. La primera es que los estudiantes no tenían idea de por qué se les enseñaba a escribir un programa de computadora completo en dos idiomas. La otra es que estaban mezclando los dos idiomas que les habían enseñado y, a menudo, se equivocaban de sintaxis porque se les enseñaba los dos idiomas al mismo tiempo, lo que estaba causando una pequeña confusión. [2]
Observación
Haggis fue observado por el creador y se encontró que se usaba de las siguientes maneras. [2] Haggis se estaba utilizando como lenguaje de planificación para los programas de computadora que se les pedía a los estudiantes que crearan. Después de que se les pidió a los estudiantes que refinaran su código a través de varias etapas de planificación, se elaboró un plan final utilizando Haggis. Una vez realizado este plan final, el código Haggis se transferiría a un lenguaje de programación real especificado por el profesor. Este método es eficaz para aumentar las habilidades de los estudiantes, como se mencionó anteriormente, para brindarles la mayor preparación posible para el examen para cuando vean la aplicación de Haggis en un contexto.
Referencias
- ^ a b Cutts, Quintin. "Educación en Ciencias de la Computación en las Escuelas" . Universidad de Glasgow . Consultado el 8 de noviembre de 2016 .
- ^ a b c d e f Tennant, Mark, J. "Haggis: ¿para qué se debe utilizar?" . CompEdNet . Consultado el 8 de noviembre de 2016 .
- ^ Michaelson, Greg. "Programación orientada a objetos a partir de la programación procedimental con un poco de pensamiento computacional" (PDF) . Universidad Herriot Watt - Ciencias de la Computación Matemática . Consultado el 8 de noviembre de 2016 .
- ^ Connor, Richard. "Haggis Parser" . appspot . Consultado el 8 de noviembre de 2016 .
- ^ Quintin Cutts, Richard Connor, Greg Michaelson y Peter Donaldson. 2014. Código o (no código): separando el lenguaje formal y natural en la educación informática. En Actas del IX Taller de Educación Informática Primaria y Secundaria (WiPSCE '14). ACM, Nueva York, NY, EE. UU., 20-28. DOI = https://dx.doi.org/10.1145/2670757.2670780
- ^ a b "Lenguaje de referencia para los artículos de preguntas de ciencias de la computación superior" (PDF) . SQA . Consultado el 8 de noviembre de 2016 .
- ^ "Lenguaje de referencia para los documentos de preguntas sobre ciencias de la computación superior avanzada" (PDF) . SQA . Consultado el 8 de noviembre de 2016 .
- ^ a b Michaelson, Greg y Cutts, Quentin. "Documento de trabajo de Haggis" . Página 4 . Consultado el 8 de noviembre de 2016 .Mantenimiento de CS1: utiliza el parámetro de autores ( enlace )
enlaces externos
- Página web de Quintin Cutts
- Analizador de Haggis en línea de SQA