Python en ciencia e ingenieria: lecciones aprendidas

Preview:

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?”

@CAChemEorg

CAChemEorg

CAChemE

info@cacheme.orgmail

www.cacheme.org

24

Recommended