Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Proyecto de Aula Ciencias Físicas - Facultad de Ingeniería Python Science Pedro Ignacio Deaza Rincón Universidad Distrital Francisco José De Caldas Semillero de Computación Científica Liga Iberoamericana de Astronomía pdeaza@udistrital.edu.co pideazar@unal.edu.co Resumen Python Science es un proyecto científico, educativo, pedagógico y didáctico que sera propuesto y desarrollado en la facultad de Ingeniería de la Universidad Distrital Francisco José De Caldas y dependiendo su impacto tendrá una extensión en la Licenciatura en Física de la Facultad de Ciencia y Educación. Python Science esta motivado en el vertiginoso desarrollo, la gran expansión y la enorme consolidación de este lenguaje de programación científica. A lo largo de mas de dos décadas de desarrollo hoy existen varios proyectos internacionales en áreas como la astronomía, la física, la ingeniería, la educación y otros campos. Es notorio en el contexto educativo el equilibrio entre los contenidos científicos de lo que se desea impartir y enseñar y las características pedagógicas, didácticas y técnicas. Python Science se desarrollara soportado en anteriores experiencias científicas y educativas internacionales y locales. El núcleo inicial de desarrollo sera el Semillero de Computación Científica de la Facultad de Ingeniería. Las rutas de desarrollo implicaran varios caminos: Solución de problemas científicos básicos, desarrollo paralelo de estas soluciones en versiones educativas, implementación en el aula de clase. Los caminos se orientaran a una solución integral para la ciencia y la educación de nuestro tiempo y del futuro. 1. Introducción. Python Science, es un proyecto científico, educativo, pedagógico y didáctico pensado y planeado para ser desarrollado en la facultad de Ingeniería de la Universidad Distrital Francisco José De Caldas y dependiendo su impacto tendrá una extensión en la Licenciatura en Física de la Facultad de Ciencia y Educación. Python Science sera desarrollado con o sin apoyo institucional, con o sin asignación de recursos. Python science utilizara como mínimo los recursos computacionales del semillero de computación científica, de los estudiantes colaboradores del proyecto y de los estudiantes de las asignaturas en las que inicialmente se implementara el proyecto que son las ondas electromagnéticas y la física de semiconductores. Python science, esta pensado filosófica y políticamente como un trabajo colectivo e individual de autogestión y de auto construcción, de apropiación de conceptos y praxis científicos, educativos, pedagógicos y didácticos que conduzcan a una puesta al día, a una actualización en los procesos de mailto:pdeaza@udistrital.edu.co mailto:pideazar@unal.edu.co enseñanza – aprendizaje asociados a la formación científica, a la educación y a la creación pedagógica y didáctica. Python Science, espera utilizar, producir, o bien desarrollar a partir de resultados ya existentes, soluciones de problemas científicos básicos y fundamentales y a partir de ellos generar versiones pedagógicas y didácticas para ser implementadas en el aula en la formación científica, técnica e incluso divulgativa. Python Science, también espera obtener resultados científicos y técnicos aplicables específicamente en temas de frontera en el contexto del estudio de la Evolución y Actividad de los Núcleos Cometarios. Finalmente se procurara que de estos últimos resultados se deriven aplicaciones de índole general. 2. Antecedentes. Python es un lenguaje de programación creado por Guido van Rossum a comienzos de los años 90 cuyo nombre está inspirado en el grupo de cómicos ingleses “Monty Python”. Es un lenguaje con una sintaxis transparente que implica un código legible. (Rossum G. 2009). Es un lenguaje interpretado, multiplataforma y orientado a objetos. Un lenguaje interpretado es aquel que se ejecuta utilizando un programa intermedio llamado intérprete, en lugar de compilar el código a lenguaje máquina que pueda comprender y ejecutar directamente una computadora. Python posee, no obstante, muchas de las características de los lenguajes compilados, por lo que se podría decir que es semi interpretado. Desde 1995 lenta y gradualmente y a partir del año 2000, de modo rápido y creciente se ha venido desarrollando Astropy Core Package. Astropy esta constituido por una variada gama de códigos, algoritmos, herramientas y simuladores que permiten tratar todo tipo de datos y de imágenes, arreglos de datos y tablas, conversores de unidades y ajustes dimensionales, realizar gráficas en 2D, 3D y otras modernas maneras de graficar. Ofrece paquetes que permiten el manejo interactivo o en diferido de observatorios robotizados, la conexión a cluster o el anclaje a sistemas Grid para procesamiento de datos en tiempo cuasi real o en diferido. Muchas de las prestaciones incluyen herramientas computacionales perfectamente utilizables en la ingeniería y otras ciencias. (Ayars E. 2013). Matplotlib fue pensado y desarrollado desde finales de los años 1990 y comienzos de los años 2000 por John Hunter (1968-2012). Matplotlib es una librería científica muy completa, versátil y rigurosa para el trazado de gráficas 2D, 3D bien sea desde la teoría o desde los datos. Se puede utilizar en scripts python, python y en el shell ipython (ala † MATLAB ® * o Mathematica ®), servidores de aplicaciones web, y seis juegos de herramientas de interfaz gráfica de usuario. (Kiusalaas J. 2005). Physics Python, es en realidad un conjunto de proyectos independientes de desarrollo de herramientas para la física. Varias universidades desarrollan e implementan proyectos sobre python que incluyen investigación científica básica, intermedia y avanzada y también enseñanza de la física. Desde los años 1998 universidades como las de Toronto, Berkeley, Ohaio, Meryland, Chicago y muchas otras de USA, en Europa las universidades que participan en institutos como el MPI, el INAF cuentan con proyectos muy desarrollados y consolidados. (Ayars E. 2013, Landau R., Paez M. J., Bordeianu C. 2012). EMPy, ElectroMagnetic-Python, desarrollado desde el año 2000, es un conjunto de herramientas, códigos y algoritmos que constituyen una completa y poderosa suite para trabajar en electromagnetismo y teoría de campo electromagnético. (Roundy D., Ibanescu M., Bermel P. 2005). Los antecedentes locales los podemos referir a un sitio en google denominado Python Colombia, allí se resume la experiencia de desarrolladores colombianos en el contexto de Python. Pero, alli no encontramos ni un solo desarrollo o referencia a desarrollos encaminados a las ciencias básicas y su enseñanza. Nuestros antecedentes se remontan a los años 1997 y hasta el 2003, cuando se desarrollo un proyecto de ondas electromagnéticas y antenas, pues en esta contexto se desarrollaron códigos y programas en Matlab para solucionar problemas básicos de electromagnetismo, ondas electromagnéticas y antenas y de ellos se derivaron códigos paralelos para la enseñanza de los mencionados conceptos. Después del 2003, el trabajo se enfoco específicamente en las antenas de banda ancha en 2,4 Ghz. Es importante, mencionar que desde 1998 se ha mantenido un grupo flotante mínimo de estudiantes colaboradores en el área computacional para soportar el desarrollo de la investigación en el tema de La Evolución y Actividad de los Núcleos Cometarios con significativos resultados. 3. Motivación. Python science esta motivado en el vertiginoso desarrollo, la gran expansión y la enorme consolidación de este lenguaje de programación científica. En la actualidad existen una gran cantidad de paginas en la red, foros, manuales y tutoriales a todos los niveles y suficientementeclaros y expeditos para aprender y desarrollar aplicaciones, códigos y herramientas en python para cualquier área. Python cuenta con una gran cantidad de librerías, repositorios y herramientas ya desarrolladas y listas para ser adicionadas e invocadas a la hora de desarrollar aplicaciones. Python goza de una interactividad fluida con otros paquetes y software como GnuPlot, Mathematica, Máxima, QtiPlot y muchos mas e incluso interactúa muy bien con otros lenguajes de programación de reconocido desempeño científico como Fortran, C y C++. (Kiusalaas J. 2005). La facilidad a la hora de utilizarlo, permite sin temor involucrar masivamente a los estudiantes, crear todo un ambiente científico y académico con exitosos resultados. 4. Marco teórico. Se pude afirmar sin temor a equivocaciones que dado el vertiginoso desarrollo científico y tecnológico de nuestros días es impensable una praxis educativa desligada de una praxis científica. La actividad en el aula, la interactividad maestro, estudiante y recursos tecnológicos no pueden continuar limitadas a navegar en el árido discurso de los alcances de la ciencia. El aula debe ser transformada filosóficamente, políticamente, pedagógicamente, didácticamente y tecnológicamente. Se debe iniciar el camino hacia una aula científica, interactiva y tecnológica que permita simultáneamente el aprendizaje del estudiante y del maestro. El resultado de las dos anteriores ideas debe resultar ahora si y de verdad en una aula dinámica cambiante y revolucionaria. Siempre debemos dar un primer paso para construir una realidad fundamentada en la utopía que anhelamos. Esta debe ser la esperanza que acompañe a los nuevos educadores. 5. Metodología. • Incursión preliminar. El profesor y grupo voluntario inicial realizaran una incursión preliminar en busca de referencias bibliográficas, paginas en la red, manuales, proyectos en desarrollo y resultados para probar la mecánica de trabajo y la realización de ejemplos preliminares que sirvan para incentivar al grueso de los estudiantes. • Exploración en el aula. Se realizaran talleres de trabajo de aula utilizando códigos existentes para resolver ejercicios y problemas de la asignatura con el propósito de familiarizar a los estudiantes con el trabajo en el contexto de Python Science. • Tareas y ejercicios. Ejercicios, problemas, gráficas y animaciones que el estudiante desarrollara individual o colectivamente desde cero o apoyado en un desarrollo existente. • Profundización. Los resultados de las tareas, ejercicios, gráficas y animaciones serán examinados por el profesor y el grupo de estudiantes voluntarios y avanzados, para estudiar las posibilidades de ampliación, profundización y extensión orientado a su optimización. • optimización de resultados. Los resultados serán optimizados para su socialización. • Proyectos de semestre. Grupos de dos estudiantes entregaran completo un proyecto en Python sobre la asignatura. 6. Impacto y expectativas. A mediano plazo se espera que una sistemática divulgación y socialización de los resultados permita al proyecto ganar militantes e influenciar, motivar e incentivar a otros miembros de la comunidad académica a iniciar proyectos Python Science en sus respectivas asignaturas, sin importar si dichos proyectos mantienen independencia o se suman al proyecto precursor o su trabajo se reduce a un propósito especifico. Python Science aspira a promover y apoyar la creación de una cultura nueva en ciencia, educación, pedagogía, didáctica y técnica. Python Science espera iniciar un camino sin retorno hacia una educación para el futuro. Específicamente se espera gradualmente consolidar una base de recursos computacionales mínimos para la ciencia y la educación. 7. Muestra de ejemplos. A continuación se muestran algunos ejemplos ilustrativos muy vistosos. (Kumar B.P. A. 2010 Ayars E. 2013). • Gráficas 3D from mpl_toolkits.mplot3d.axes3d import Axes3D import matplotlib.pyplot as plt # imports specific to the plots in this example import numpy as np from matplotlib import cm from mpl_toolkits.mplot3d.axes3d import get_test_data # Twice as wide as it is tall. fig = plt.figure(figsize=plt.figaspect(0.5)) #---- First subplot ax = fig.add_subplot(1, 2, 1, projection='3d') X = np.arange(-5, 5, 0.25) Y = np.arange(-5, 5, 0.25) X, Y = np.meshgrid(X, Y) R = np.sqrt(X**2 + Y**2) Z = np.sin(R) surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm, linewidth=0, antialiased=False) ax.set_zlim3d(-1.01, 1.01) fig.colorbar(surf, shrink=0.5, aspect=10) #---- Second subplot ax = fig.add_subplot(1, 2, 2, projection='3d') X, Y, Z = get_test_data(0.05) ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10) plt.show() Figura 1. Gráfica que resulta del código • Ejemplo de Ondas electromagnéticas from numpy import * import pylab as pl import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import axes3d from matplotlib import cm fig = plt.figure() ax = fig.add_subplot(111, projection='3d') ax.view_init(45, -45) r = linspace(0.3,10,100) th = linspace(0,2*pi,180) r, th= meshgrid(r,th) x = r*cos(th); y = r*sin(th); font = {'family' : 'serif', 'color' : 'darkred', 'weight' : 'normal', 'size' : 16, } ax.set_xlabel('$X=rcos(\Theta)$') ax.set_ylabel('$Y=rsin(\Theta)$') ax.set_zlabel('$Z$') plt.title('Representacion de la superficie K$\lambda$', fontdict=font) z = power((sin(th+pi/2)),2)*((1/power((r),2))+1)*cos(0-r+arctan(r)); wframe = ax.plot_surface(x,y,z, rstride=1, cstride=1, cmap=cm.jet, vmin=-1.4, vmax=1.4, linewidth=.1) ax.set_zlim(-8, 8) ax.set_ylim(-10, 10) ax.set_xlim(-10, 10) plt.show() Figura 2. Resultado del código. 8. Conclusiones. • La incursión inicial en búsqueda de las primeras herramientas y un primer acercamiento al ambiente de trabajo y la obtención de resultados mínimos, fue suficientemente enriquecedora para la autoformación docente y académica y para la motivación. • Una exploración mas rigurosa condujo la interacción con académicos de otras latitudes, cuyos proyectos poseen un grado significativo de desarrollo. • La familiarización con el ambiente Python proporciona confianza y permite construir pautas concretas de desarrollo del proyecto. • El aprendizaje de las primeras soluciones, gráficas y animaciones permitió construir un panorama desde el que se trazo un plan para implementar Python Science. Referencias. Ayars E. (2013). Computational Physics With Python USA: California State University. Kiusalaas J. (2005). Numerical Methods in Engineering with Python USA: Cambridge University Press. Kumar B.P. A. (2010). Python for Education India: Inter University Accelerator Centre. Landau R., Paez M. J., Bordeianu C. (2012) A Survey of Computational Physics USA: Princeton University Press. Rossum G. (2009). El Tutorial de Python Argentina: Python Argentina. Roundy D., Ibanescu M., Bermel P. (2005). Electromagnetic Equation Propagation USA: MIT.
Compartir