Upload
cacheme
View
355
Download
2
Embed Size (px)
DESCRIPTION
¿Python científico? Este es un resumen de experiencias por parte de alumnos de ingeniería química que empezaron con Python. ¡Python visto con los ojos de un novato! http://CAChemE.org
Citation preview
cacheme.org
1
Computer-aided Chemical Engineering
Python científico para ingenieros:
lecciones aprendidas*
www.cacheme.org
(*) Título y diapositivas inspiradas en la charla de Greg Wilson:Software Carpentry: Lessons Learned - PyCon 2014https://www.youtube.com/watch?v=FtKO619O5g0
cacheme.org
¿CAChemE?
• Asociación formada por ingenieros químicos
(profesionales, docentes y estudiantes) que pretende
estimular las posibilidades de software en la
ingeniería de procesos.
• Promueve las ventajas de las nuevas herramientas de
software libre disponibles y fomenta su uso en la
universidad e industria.
• Especialización en simulación y programación
matemática (optimización).
2
cacheme.org
¿Quiénes somos?
3
cacheme.org
Actividades
• Formación
• Webinars
• Desarrollo
• ¡Podcast!
4
cacheme.org
5
Esquema
• ¿Por qué empezaste con Python?
• Primeros pasos con Python: un
camino difícil
• Fallos a evitar
• Resumen de
experiencias por
parte de alumnos
que empezaron
con Python
cacheme.org
MOTIVACIÓN
¿Por qué empezaste con Python?
6
cacheme.org¿Por qué empezaste con Python?
“Programar me gusta y me pareció
algo interesante aprender algo
nuevo”
• Programar genera frustración, muchos científicos lo ven
como un problema (no una solución a sus problemas).
• Experiencias previas determinan mucho la predisposición
del alumno.
7
cacheme.org¿Por qué empezaste con Python?
“WIDGETS DE IPYTHON NOTEBOOK
ME LLAMARON LA ATENCIÓN (JUNTO A
CÓMO “HACKEAR” EL MOODEL DE MI
UNIVERSIDAD)”
• Widgets de IPNB, sencillo de implementar y útil (mejoramos
experiencia con ejercicios simples). También mostramos
aplicaciones reales y complejas para verle la utilidad final
que pueden darle.
8
cacheme.org¿Por qué empezaste con Python?
“ESTO NO LO PUEDO (O NO SÉ)
HACERLO CON MATLAB”
• Implica: Programación se enseña en métodos numéricos y
requiere además una buena base matemática (genera
frustración y requiere mucho esfuerzo). Pero además, el
alumno no le ve utilidad más allá que su asignatura.
9
cacheme.org¿Por qué empezaste con Python?
“LIBRE Y GRATUITO… OK…”
• Los estudiantes no se preocupan por un asunto tan crucial,
fallo del sistema de educación (exámenes) que opta por
herramientas comerciales habiendo equivalentes. Ejemplo:
Octave UPM.
• “Lo que aprendas con Python puedes usarlo en el trabajo de
forma legítima tal y como hace…”
10
cacheme.org
Primeros pasos con Python…
…un camino difícil
• Contaminación de otros lenguajes: Muchos alumnos sólo
conocen un “lenguaje” (mal aprendido) por lo que aprender
una sintaxis (pese a ser Python) cuesta al principio y
requiere tiempo.
11
cacheme.orgPrimeros pasos con Python…
…un camino difícil
“NO TENGO TIEMPO”
• Los lenguajes de programación quedan aislados a
asignaturas de cálculo numérico, para el resto se usa Excel.
12
cacheme.orgPrimeros pasos con Python…
…un camino difícil
“GOTO CELDA DE EXCEL”
• Excel es difícil de revisar y conlleva a errores que se pueden
evitar con Python.
• Además, con Python podemos explicar más cosas. Por
ejemplo, matemáticas (SymPy) y estadística (StatsModel).
13
cacheme.orgPrimeros pasos con Python…
…un camino difícil
“NO ENTIENDO NADA”
• Gran parte de los tutoriales e información de Python, dan
por sabidas muchas cosas. La mayoría de alumnos no
tienen base alguna de informática (“eh… ¿la terminal?”) .
Además, mucho de este contenido básico está en inglés, lo
que añade una complejidad (y requiere más tiempo).
• Una buena base (necesaria) la recogen los compañeros de
Software-Carpentry.
14
cacheme.orgPrimeros pasos con Python…
…un camino difícil
“ME DA ERROR, ¿AHORA QUÉ?“
• La resolución de errores se basa en la experiencia, pero los
mecanismos que seguimos por forma natural no se
enseñan:
• Comenzar por ejemplos similares y modificarlos
• Aprender a leer los mensajes de error
• Buscar en la documentación
• Herramientas de debug
¡No (solemos) prestamos atención a esto!
15
cacheme.org
Fallos a evitar
https://www.youtube.com/watch?v=FtKO619O5g0
http://software-carpentry.org/blog/2013/06/lessons-learned.html
16
Preguntamos a los asistentes y esto es lo que nos dijeron. El resultado
fue similar a lo que Greg Wilson de Software-Carpentry resumió en su
charla de la PyCon 2014:
cacheme.orgFallos a evitar
“¡ESTO ES MUY FÁCIL! SÓLO TIENES
QUE…”
17
• Simplemente evítalo
cacheme.orgFallos a evitar
“ … “
• Profesores expertos obvian conceptos “básicos” o conexión
entre los mismos al darlo por hecho.
• Mejor repasar conceptos clave y fomentar que parte de los
instructores sean novatos.
18
cacheme.orgFallos a evitar
“FALTA DE FEEDBACK”
• Identificas gente que se ha perdido con post-its de colores.
• Si tienes un 50% de asistentes que no pueden seguirte, no
sigas. ¿Solución?
• Colaboración entre asistentes, los que han terminado que ayuden al
compañero.
• Preguntas test, donde cada respuesta errónea identifica un fallo de
concepto común.
19
cacheme.orgFallos a evitar
“QUÉ (CÓDIGO) CÓMO (LÓGICA DEL
PROCESO) POR QUÉ (MOTIVACIÓN)”
• Busca ejemplos aplicados llamativos antes de ejercicios
simples y aburridos. Explica primero cual es la motivación,
después la lógica y por último el contenido.
20
cacheme.orgFallos a evitar
“WINDOWS, MATLAB…
TODO_LO_QUE_NO_ES_LIBRE
SUCKS!”
• Evita despreciar herramientas de trabajo de tus
compañeros, quizás sean lo único que conozcan.
• Da valor a las tuyas.
21
cacheme.orgFallos a evitar
“DERRIBAR AL ADVERSARIO”
• Tratamos de fomentar Python comparándolo con los puntos
fuertes de herramientas comerciales (especializadas) que
funcionan muy bien. Es mejor buscar las fronteras y
fomentar aquello donde los rivales son más débiles (GUIs,
IPython Notebook, control de versiones, filosofía open
source, TDD…)
22
cacheme.orgFallos a evitar
23
“¿UNA MUJER
PROGRAMANDO?”