stringtranslate.com

Haggis (lenguaje de programación)

Haggis es un lenguaje de programación de referencia de alto nivel que se utiliza principalmente para examinar la ciencia informática de los alumnos escoceses que toman cursos de 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 ningún lenguaje en particular, sino en una combinación que tiene como objetivo permitir que un alumno familiarizado con cualquiera de los muchos lenguajes que se utilizan en las aulas comprenda fácilmente la construcción sintáctica que se utiliza en un ejemplo. Tiene múltiples paradigmas de programación, funcional , imperativo y orientado a objetos, para cumplir con este propósito. [3]

Existen tres definiciones de lenguaje independientes, una para cada nivel en el que el SQA evalúa la informática; son subconjuntos propios entre sí, de modo que, por ejemplo, cualquier programa incluido en el lenguaje de nivel 5 nacional también está bien definido en los niveles Higher y Advanced Higher. Higher incluye la definición de procedimientos y funciones y el uso de tipos de registros y archivos, mientras que Advanced Higher incluye la orientación a objetos.

Los intérpretes de Haggis en línea 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 titulaciones de informática de nivel escolar las otorga la Autoridad Escocesa de Titulaciones . Se tomó la decisión de que para los cursos de informática no se exigiera una única elección del lenguaje de programación para el examen: esto permite a los profesores elegir los lenguajes según el contexto. Sin embargo, esto deja pendiente la cuestión de cómo examinar la programación, especialmente a la luz de las recientes investigaciones educativas que fomentan la enseñanza de la lectura y la comprensión de códigos como una disciplina central, que por lo tanto debería examinarse.

Inicialmente, surgió una forma de lenguaje pseudocódigo entre los examinadores para evitar cualquier 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 atrás en los exámenes de años anteriores 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 este problema. Haggis es un lenguaje de referencia definido formalmente, pero su propósito es examinar la programación, no escribir programas. Otro requisito es que no debe ser una parte obligatoria del plan de estudios, por lo que los estudiantes que nunca hayan visto el lenguaje deberían poder leerlo. Estos aspectos, junto con un intento de adaptarse lo más posible al estilo de pseudocódigo evolucionado, guiaron la especificación del lenguaje. Por lo tanto, si bien Haggis es de hecho un lenguaje de programación (aunque, en general, no todos los programas 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

Haggis fue encargado por la SQA en 2010 para proporcionar una sintaxis y un formato 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 de desarrollar 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 su pensamiento computacional y sus habilidades de programación. [1]

El 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 Escocés en la sesión 2013/2014 en el National 5, 2014/2015 para los nuevos cursos superiores [6] y en el nuevo Advanced Higher en la sesión 2015/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 usara en el currículo normal. Sin embargo, algunos profesores lo han adoptado como una forma rigurosa de pseudocódigo 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]

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 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 informática mediante la lectura de ejemplos y facilitar el paso de la conversión del pseudocódigo a la programación completa. No fue creado con la intención de pedir a los alumnos que lo escribieran en las evaluaciones, sino para proporcionar un lenguaje uniforme en el que presentar ejemplos de código a los estudiantes, garantizando que todos los alumnos tengan una comprensión justa y no se vean obstaculizados por el aprendizaje de un lenguaje de programación diferente al ejemplificado en la evaluación. [2]

Sintaxis

Un ejemplo del lenguaje de programación Haggis que imprime todos los números pares entre 0 y 100.

La sintaxis y la estructura en Haggis son muy similares a las de otros lenguajes de programación y se pueden aprender fácilmente.

Un ejemplo más complejo de algún código Haggis

Palabras reservadas

Tipos de datos

(los tipos normalmente se determinan por inferencia excepto cuando esto no sea posible)

Tipos estructurados

Las matrices se incluyen en el nivel Nacional 5, los registros en el nivel Superior y los objetos en el nivel Superior Avanzado.

Números de línea

En algunos ejemplos de exámenes se utilizan números de línea para permitir una fácil referencia; sin embargo, esto no es parte del lenguaje.

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 cualquier otra persona que pueda leer el código. Una vez más, esto no forma parte de la definición del lenguaje.

Comentarios

Se pueden hacer comentarios utilizando 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 utilizando 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 minúscula . CamelCase es cuando un nombre se concatena para formar una palabra larga, sin embargo, la primera letra de cada palabra (excepto la primera) se escribe en mayúscula.

Por ejemplo, las variables podrían llamarse:

Inicialización

La inicialización permite la declaración de una nueva variable.

DECLARE <variable’s name> INITIALLY <value>

Si no se puede determinar el tipo 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 asignar valores a las variables. La sintaxis es la siguiente:

SET <variable’s name> TO <value>

Aporte

La entrada en Haggis es similar al pseudocódigo en el sentido de que se indica el tipo de datos de la entrada que recibe el programa y también de dónde proviene la entrada, de la siguiente manera:

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

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 manera similar a las entradas.

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

Por ejemplo:

Cálculos aritméticos

SETSe 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 seccionar el código para que sea más legible y fácil de usar. Debes recordar finalizar el procedimiento como se muestra a continuación.

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

Operaciones

Haggis incluye todas las operaciones que se esperan de un lenguaje de programación para poder realizar cálculos y operaciones lógicas por igual. Para los tipos de datos INTEGER y REAL, son posibles las siguientes operaciones.

Solo para INTEGERtipos de datos, es posible el módulo , que se escribe como MOD.

Operadores de comparación:

Operaciones lógicas:

Definiendo una clase

Para definir una clase en Haggis se utiliza la sintaxis CLASS <id> IS {<parameters>} METHODS <statements> END CLASS .

Hay varios métodos que puedes declarar en Haggis, como:

 CONSTRUCTOR The users' '''Haggis''' code will then go here. END CONSTRUCTOR FUNCTION <Function Name>(<Parameters>) 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> (<Parameters>) The users' '''Haggis''' code will then go here. END PROCEDURE

Aplicación y usos

Originalmente, se implementó el Haggis y luego se esperaba que se utilizara de las siguientes maneras: a los estudiantes se les enseñaría a codificar en un lenguaje de programación que el profesor hubiera seleccionado. Luego, los estudiantes 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 el Haggis, ya que es el lenguaje que se usa en los textos de los exámenes. [2]

El Haggis se implementó de esta manera porque las investigaciones han demostrado que la capacidad de comprender programas es esencial para desarrollar más habilidades de programación. [2] Los cursos dictados por la SQA (National 5 and Higher) incluyen resultados que requieren que los estudiantes tengan esta capacidad. Debido a que el Haggis es tan fácil de entender y aprender, se ha utilizado en textos de exámenes. Se observa que a los estudiantes nunca se les pidió ni se les pedirá que escriban ningún código en Haggis durante un examen, solo se les exige que puedan leerlo y comprenderlo.

Problemas

El haggis ha tenido muy pocos problemas. Ninguno de ellos tiene que ver con el lenguaje en sí, sino más bien con la forma en que lo ven los estudiantes. El primero es que los estudiantes no tenían idea de por qué se les estaba enseñando a escribir un programa de computadora completo en dos idiomas. El otro es que estaban mezclando los dos idiomas que les habían enseñado y a menudo cometían errores de sintaxis porque se les estaban enseñando los dos idiomas al mismo tiempo, lo que causaba una pequeña confusión. [2]

Observación

El creador observó el uso de Haggis y descubrió que se utilizaba de las siguientes maneras: [2] Haggis se utilizaba como lenguaje de planificación para los programas informáticos 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 realizó un plan final utilizando Haggis. Una vez realizado este plan final, el código de 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 en el que verán Haggis aplicado en un contexto.

Referencias

  1. ^ ab Cutts, Quintin. "Enseñanza de las ciencias de la computación en las escuelas". Universidad de Glasgow . Consultado el 8 de noviembre de 2016 .
  2. ^ abcdef Tennant, Mark, J (4 de marzo de 2014). "Haggis: ¿para qué se debe utilizar?". CompEdNet . Consultado el 8 de noviembre de 2016 .{{cite web}}: CS1 maint: varios nombres: lista de autores ( enlace )
  3. ^ 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 .
  4. ^ Connor, Richard. "Analizador de Haggis". appspot . Consultado el 8 de noviembre de 2016 .
  5. ^ Quintin Cutts, Richard Connor, Greg Michaelson y Peter Donaldson. 2014. Código o (no código): separación del lenguaje formal y natural en la enseñanza de informática. En Actas del 9.º Taller sobre Educación en Computación Primaria y Secundaria (WiPSCE '14). ACM, Nueva York, NY, EE. UU., 20-28. doi :10.1145/2670757.2670780
  6. ^ ab "Lenguaje de referencia para los cuestionarios de ciencias de la computación de nivel superior" (PDF) . SQA . Consultado el 8 de noviembre de 2016 .
  7. ^ "Lenguaje de referencia para los cuestionarios de informática avanzada" (PDF) . SQA . Consultado el 8 de noviembre de 2016 .
  8. ^ ab Michaelson, Greg; Cutts, Quentin. "Documento de trabajo de Haggis". Página 4. Consultado el 8 de noviembre de 2016 .

Enlaces externos