Logic Programming Learning using Graphic Computation

APRENDIZAJE DE LA LÓGICA DE PROGRAMACIÓN UTILIZANDO COMPUTACIÓN GRÁFICA

INTRODUCCIÓN

En la formación de un Ingeniero de Sistemas es indispensable desarrollar las competencias necesarias para crear software, instruyéndose en diseñar algoritmos que conlleven a dar solución a problemas específicos.

En la actualidad, el área de programación se constituye en el principal foco de deserción, puesto que un buen número de estudiantes no se destacan precisamente en el fundamento lógico de la programación.

El proyecto “Enseñanza de la Lógica de Programación utilizando Computación Gráfica”, nace como una necesidad de mejorar el proceso de aprendizaje en una etapa temprana.

PROPUESTA

El conjunto de problemas que tradicionalmente se trabajan en el proceso de aprendizaje, utilizan para la verificación de resultados una interface en donde el estudiante debería ingresar y recibir datos en forma textual. Si bien es cierto que esta forma de interacción con los datos y los resultados es buena, no proporciona de forma evidente cuatro principios básicos:

Motivación:

Estimula al educando hacia la adquisición de nuevo conocimiento.

Simplicidad:

Es importante no recargar al estudiante de elementos irrelevantes que puedan distraer o conllevar a la confusión.

Verificación inmediata de Resultados:

La revisión oportuna y efectiva de resultados es importante en el proceso académico ya que entre más prolongado sea el tiempo en detección de errores se disipa más el concepto estudiado.

Facilidad de corrección:

Reparar un error es parte del aprendizaje, puesto que amerita una revisión del proceso anterior; sin embargo, si esta actividad se tarda más de lo adecuado puede ocasionar en el educando desmotivación y abandono.

Por este motivo se plante un curso de aprendizaje de programación que (sin perder sus estrategias tradicionales) incluyera ejercicios relacionados con computación gráfica y la utilización de una herramienta que permitiera lograr los cuatros principios básicos expuestos anteriormente y adicionalmente conservara la sintaxis del lenguaje C++ que siempre ha sido utilizada para este curso.

EJERCICIOS

Constantes y Variables

ex101-swastika
Se pretende desarrollar una esvástica, es una tipo de cruz con brazos iguales en sentido de las manecillas del reloj. Tiene un margen de 20 px de alto y 20 px de ancho. Tiene un grosor de 20 px.
ex102-frame
Se pretende crear un marco con un ancho y un alto de 30 px y sus esquinas un arco de 90 grados.
ex103-abstract
Se pretende crear unas figuras abstractas con un margen de 30 px. En la equina superior izquierda se va dibujaran dos lineas rectas una vertical y la otra horizontal con un arco que las conecta, igualmente en la parte superior derecha. En el centro se dibujara una especie de plano cartesiano y en en segundo y tercer cuadrante se dibujara unos arcos que conecten sus esquinas.
ex104-cross
Se dibujara en el centro una linea vertical de 200 px y una linea horizontal de 300 px formando una cuz y en cada una de sus esquinas se dibujara un circulo con un radio de 20 px. Las lineas deben atravezar el circulo hasta la distancia de su radio.

Instrucciones de Entrada y Salida

ex202-redizedcircles
Se dibujaran 3 circulos rediseñados en cualquier punto de la pantalla cada vez que se de click derecho, el primer circulo tiene un radio de 150 px, el segundo circulo un radio de 100 px y el tercer circulo con un radio de 50 px.
ex203-Mirror
Se pretende simular un espejo, donde la pantalla estara dividida por una linea vertical en el centro de la pantalla, al momemnto de dar click en la parte derecha, se dibuja un circulo con un radio de 20 px y automaticamente se crea el circulo espejo del otro lado de la linea.
ex204-customstar
Se va a dibujar una estrella personalizada en cualquier punto del display, la estrella consta de 4 puntas que se forman al dibujar 4 arcos y tiene un tamaño aproximado de 100 px.
ex205-Join
Se vas a dibuja una union de lineas rectas dependiendo del punto que se escoja, se puede dar clicke n cualquier punto del display y automaticamente se dubujan cuatro lineas rectas desde los extremos hasta el punto.
ex206-findcenter
Se va a dibujar en cualquier punto de la pantalla que sea seleccionado un circulo con un radio de 20 px y ademas se debe seleccionar otro punto para que se dibuje un circulo con un radio de 20 px y una linea recta que conecta ambos circulos desde su centro, tambien, se debe encontar el centro entre ambos circlos y se dibujará un circulo en esa posicion.
ex207-findintersection
Se pretende dibujar una linea recta entre dos puntos seleccionados de cualquier area de la pantalla y encontrar la interseccion de dicah recta.

Estructuras de decisión

ex301-circleorrectangle

Se pretende dibujar una linea recta horizontal. Si se hace click en la parte superiors se deberá dibujar un circulo y si es en la parte inferior se dibujará un rectangulo.
ex303-colors
Se desea dibujar en la pantalla 5 cuadrados de 20 px cada uno, el primer cuadrado será de color negro, el siguiente color rojo, el siguiente color azul, el siguiente color verde y el ultimo color amarillo. Se puede seleccionar cualquiera de dicho rectangulos que van a trabajar como un tipo de checkbox y permiten seleccionar el color que se vas a dibujar la figura. Al momento de seleccionar el color se selecciona cualquier punto de la pantalla y se dibuja un circulo de 50 px de radio del color seleccionado.
ex304-quadrantshape



Se dibujara una cruz en el centro de la panatalla que representara un plano cartesiano y dependiendo del cuadrante en el que se haga click se deberá dibujar una cruz, un reloj de arena, un triangulo o un rombo.
ex305-customquadrantsshapes
Se pretende dibujar un cuadrante personalizado en cualquier punto que sea seleccionado de la pantalla, formado por dos lineas rectas.

Ciclos

ex401-lines
Se quiere dibujar una cuadricula con un margen de 20 px, formado por lineas verticales azules y lineas horizontales rojas, se dibujaran con una distancia de 20 px de ancho y 20 px de alto.
ex402-rectangle
Se dibujará unos rectangulos conectados de las esquinas formando una escalera desde la esquina superior izquierda de la pantalla hasta la esquina inferior derecha. Cada rectangulo tiene un tamañi de 20 px cada uno..
ex403-circles
Se desea dibujar en linea recta una cadena de circulos conectados entre sí, tendran un margen superior de 35 px. Cada circulo tendra un radio de 15 px y se conectara con otro circulo desde la distancia de la margen mas 10 px.
ex404-board
Se quiere dibujar una board compuesta por rectangulos con un margen de 10 px y un tamaño de 10 px de cada rectangulo.
ex405-boardcircles
Se quiere dibujar una board compuesta por circulos con un margen de 15 px y un tamaño de 5 px por cada circulo.
ex406-shine
Se quiere dibujar una especie de Shine con un margen de 40 px, que estara formado por lineas rectas que van desde el margen hasta el centro de la pantalla.
ex407-stair
Se quiere dibujar una especie de escalera compuesta por rectangulos que van desde el mas pequeño con un tamaño de 20 px hasta el mas grande con un tamaño de 280 px y separados por una distancia de 20 px.
ex408-ovals
Se quiere dibujar una especie de amplificador de sonido compuesto por ovalos formados con arcos, comienza desde el verticalmente desde el centro y horizontalmente con un margen de 45 px. Los arcos formados con un angulo de 360 grados se forman pegado al anterior y aumentan un tamaño de 15 px cada uno.
ex409-shot
Se pretende dibujar una especie de onda, puede ser de señal wifi, la cualq se va a dibujar en cualquier punto que se seleccione de la pantalla y sera formada por 9 arcos que se incrementaran en 5 px.

Vectores