Logo Studenta

PYTHON-SCIENCE

¡Estudia con miles de materiales!

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.

Continuar navegando

Materiales relacionados

300 pag.
Actas-V-JEIN-versiAn-preliminar

UBAM

User badge image

Contenidos Muy Locos

152 pag.
312 pag.
V-JEIN

UBAM

User badge image

Contenidos Muy Locos

5 pag.
Documento_completo pdf-PDFA (2)

SIN SIGLA

User badge image

Karen Marlene Valdez