Mansilla-gladys

  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Mansilla-gladys as PDF for free.

More details

  • Words: 1,644
  • Pages: 7
APRENDIENDO LOS MÉTODOS NUMÉRICOS PROGRAMANDO APPLETS

Gladys Mansilla Gómez Instituto de Informática Universidad Austral de Chile [email protected]

RESUMEN

El presente trabajo pretende mostrar como los alumnos de Ingeniería Civil en Informática enfrentan una asignatura de segundo ciclo como es el Software numérico y cuales son los resultados obtenidos al incorporar el uso de Matlab y la programación de tareas en Java applets. Los alumnos integran conceptos de Métodos Numéricos con los conocimientos adquiridos en el primer ciclo, es así como utilizan para los trabajos prácticos conocimientos de Programación, Álgebra de Matrices, Cálculo y ecuaciones diferenciales. En general deben programar los diversos algoritmos tomando en cuenta el manejo eficiente de memoria , buenas practicas de programación y despliegue gráfico Palabras claves: Lenguajes, Java, Applets, Métodos numéricos Áreas temáticas: Ciencias Básicas en Ingeniería, Innovaciones Metodológicas

INTRODUCCIÓN

El año 2000 se llevó a cabo un cambio curricular en la carrera de Ingeniería Civil en Informática, pasando de régimen anual a semestral y modificando sustancialmente la malla curricular. Además se comenzó a enseñar Java como primer lenguaje, esto unido a que la asignatura Software numérico fue reducida en un semestre nos obligó a cambiar notoriamente la forma de dictar la asignatura a partir de año 2003, es así como normalmente las tareas grupales que eran desarrolladas en lenguajes como C, C++, Delphi o Visual Basic, comenzaron a ser programadas en Java, se parcializaron las tareas grupales y se reforzaron con Matlab en laboratorio los diversos métodos . Como una forma de motivar a los alumnos se les instó a programar en Applets de Java con la posibilidad de publicar las mejores tareas en el portal Siveduc, que es el portal educativo de la Universidad Austral de Chile. Es de todos sabido que los alumnos de informática enfrentan de manera especial el estudio y aplicación del Métodos numéricos, ellos mas que usuarios de software empaquetado programan los diversos algoritmos tomando en cuenta el manejo eficiente de memoria , buenas practicas de programación y despliegue gráfico esto lleva a organizar la asignatura de modo de dar importancia a como se enfrenta computacionalmente un método o algoritmo numérico es por ello que la asignatura lleva por nombre “Software” Numérico. La figura de la siguiente página muestra el área de materiales de la asignatura en el portal Siveduc que incluye una de las mejores tareas desarrollada por los alumnos. Esta tarea es ejecutable en el mismo entorno.

Figura 1: Asignatura en portal Siveduc con tarea incluida

DESARROLLO

La realización de sus propios programas permite a los alumnos comprender que los problemas algebraicos se pueden resolver gráfica o numéricamente tan bien como con la manipulación algebraica y además tener la satisfacción de verificar resultados anteriores. Métodos Los métodos programados en Java applets por los alumnos son: Para sistemas lineales Gauss, Gauss Jordan, Crout, Doolittle, Cholesky, Gauss-Seidel, Jacobi, Relajación. Polinomio característico Krylov, Soriau, Danilevsky (Bairstow para raices) Para Valores y vectores propios: Potencia y deflación, Jacobi clásico y cíclico, QR y Householder [1], [4] Los demás métodos (integración, aproximación, interpolacion, ecs y sist no lineales , diferencias finitas,) tienen libertad para resolverlos con Matlab, Excel, Maple, o lo que prefieran siempre que entreguen la solución gráfica. [5] Conceptos Un Java applet es un applet escrito en el lenguaje de programación Java. Los applets de Java pueden correr en un navegador web utilizando la Maquina virtual de Java (en inglés Java Virtual Machine, JVM), o en el AppletViewer de Sun. [URL3] Se trata de pequeños programas hechos en Java, que se transfieren con las páginas web y que el navegador ejecuta en el espacio de la página. Java es compatible con todos los sistemas (multiplataforma) porque basa su funcionamiento en los Byte Codes, que no es más que una precompilación del código fuente de Java. Estos Byte Codes no son el programa en Java propiamente dicho, sino un archivo que contiene un código intermedio que puede manejar la Máquina Virtual de Java. Cada sistema operativo dispone de una Maquina Virtual de Java que puede interpretar los Byte Codes y transformarlos a sentencias ejecutables en el sistema [URL2] Aplicaciones Cuando los alumnos programan deben utilizar de la mejor manera: • los contenedores, Panels y Windows • los gestores de diseño • los elementos de control (botones, menús, selectores, áreas de texto, líneas, rótulos, barras de desplazamiento y listas) [6] y aplicarlos a diversas soluciones, a pesar de conocer el lenguaje

Java [2],[3] aquí deben dedicar mucho tiempo al ingreso y presentación de la información y eso es algo nuevo para ellos. Por ejemplo, con el concepto de norma y distancia pueden programar la representación gráfica de elementos geométricos utilizando geometrías distintas de la Euclidiana . La figura siguiente muestra la representación grafica de un círculo utilizando distintas métricas, la Euclidiana (con norma 2 ), la del supremo (con norma infinito) la uno (con norma 1) y p (con norma p, p>2), Dada la definición de circunsferencia centrada en el. origen y la definición de norma , grafican círculos en las diversas geometrías.

{

Norma inf = max x , y

Distancia

}≤ R

d[ (x,y) , (0,0) ]

Norma 1 = x + y ≤ R

≤ R , || (x, y) || ≤ R Norma 2 = x 2 + y 2

(

p

Norma p = x + y

≤R

)

p 1/ p

≤R

Figura 2 Círculos en diversas geometrías A medida que p aumenta pueden observar como un círculo se ve como un cuadrado. Los alumnos además de programar los diversos métodos, programan la validación de las condiciones de aplicación , convergencia y estabilidad de los métodos, por ejemplo condiciones de simetría, definición positiva, dominancia diagonal, etc. Las figuras siguiente muestran la validación de una condición de convergencia, además de la solución de un problema con valores propios en el campo de los complejos.

Figura3: Valida condición de convergencia

Figura4: Método de Danilevsky y Bairstow , valores complejos

Gran parte de los algoritmos que deben programar consideran el manejo de matrices, con ello el alumno práctica el uso de arreglos y la reutilización de matrices como ahorro de memoria, a continuación se presenta un extracto de código que verifica que la matriz ingresada es triangular inferior public boolean verSiEsTrianInferior(int n, double A[][]) { for(int i = 0; i < n-2; i++) { for(int j = n-1; j > 0; j--) { if(i < j) { if(A[i][j] != 0) return false; } } } return true; } Figura5: condición de triangular inferior

Rendimiento Se ha visto que el promedio de la nota de presentación ha aumentado en los últimos años, según se muestra en la figura de la siguiente página.

Rendimiento 6 4,51

4,67

5,7

5,3

4,7

60 50 40

4

30

3

20

2

10

1

0

alumnos

nota

5

5,3

nota al

2000(a) 2001(a) 2002(a) 2003(s) 2004(s) 2005(s) Año

Figura 6: Rendimiento En la gráfica anterior se ve que el promedio ha aumentando mas de medio punto, esto se debe al uso de matlab en el laboratorio guiados por ayudantes quienes refuerzan los contenidos y al hecho que las tareas se entregan gradualmente lo que permite que los alumnos hayan programado completamente los métodos antes de las evoluciones teóricas. Los alumnos inicialmente entregan la interfaz web con la parte uno de la tarea y paulatinamente van entregando las partes faltantes a medida que se completa la materia, lo que consiste básicamente en entregar un archivo html o el archivo class si así está definido. También influye el hecho que los alumnos se ven mas motivados a entregar una buena tarea pues las mejores son puestas en el portal educativo Siveduc, no solo el año que cursan si no también el siguiente como ejemplo para sus compañeros. Los contenidos de los cursos anuales y semestrales son aproximadamente los mismos, pero los alumnos semestrales dedican mas tiempo de trabajo personal, ya sea en el desarrollo pequeñas tareas como en la lectura de materiales digitalizados. El promedio de las tareas grupales se mantiene relativamente constante en 5.7 mas o menos , por lo que el aumento se debe a las evaluaciones teóricas las que son individuales, lo que indicaría que los alumnos comprenden mejor la materia. El apoyo de Ayudantes de cursos superiores que aprobaron la asignatura y ejercitan los algoritmos en el laboratorio es fundamental para el proceso, estos semanalmente en sesiones de de hora y media, entregan un material previamente acordado con el profesor, ejercitan en Matlab los conceptos y solicitan al final de la sesión el envío inmediato al área de trabajos del portal de una pequeña aplicación de lo allí tratado. Con esto se garantiza la asistencia y atención en ayudantías.

CONCLUSIONES

El uso de software como Matlab y programación en Java Applets ayuda a establecer un puente entre el desarrollo teórico de la asignatura y sus aplicaciones prácticas y además ayuda a reforzar el proceso de aprendizaje de los conceptos involucrados. Los Applets permiten realizar un desarrollo incremental de la tarea, lo que permite la asignación de pequeñas porciones de materia, y la incorporación posterior de los nuevos métodos, facilitando así su comprensión previo a las evaluaciones teóricas y contribuyendo al aumento del promedio. En resumen, esta experiencia fue satisfactoria, tanto para los estudiantes, ayudantes como para el profesor a cargo.

BIBLIOGRAFÍA

[1] Castillo, Enrique.” Java TM : - un lenguaje de programación multiplataforma para Internet”. 2a. ed. Madrid : Paraninfo, 2000 [2] Cevallos Sierra Fco. Javier “Java 2 Curso de Programación”. 2000 Alfaomega [3] Jamsa, Kris “Aprenda y practique Java. México” : Oxford University, 2000 [4] Lau Hang “A Numerical Library in Java for Scientists and Engineers”. ENGnetBASE 'Engineering Database Online [5] Mathews, John H. Fink , Kurtis D. “Métodos numéricos con MATLAB” Madrid : PrenticeHall, . 3ª Ed. 1999 [6] Ramirez V Ibar. Tutorial “Programación en Java”. INFONOR’97 [URL1] Franco G.,Angel “Procedimientos Numéricos en Lenguaje Java”: Diciembre http://www.sc.ehu.es/sbweb/fisica/cursoJava/numerico/ejemplos.htm [URL2] Desarrollo Web http://www.desarrolloweb.com/ [URL3] Wikipedia : http://es.wikipedia.org/wiki/Portada

2001