24
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 2014 https:// www.youtube.com/watch?v=FtKO619O5g0

Python en ciencia e ingenieria: lecciones aprendidas

  • 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

Page 1: Python en ciencia e ingenieria: lecciones aprendidas

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

Page 2: Python en ciencia e ingenieria: lecciones aprendidas

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

Page 3: Python en ciencia e ingenieria: lecciones aprendidas

cacheme.org

¿Quiénes somos?

3

Page 4: Python en ciencia e ingenieria: lecciones aprendidas

cacheme.org

Actividades

• Formación

• Webinars

• Desarrollo

• ¡Podcast!

4

Page 5: Python en ciencia e ingenieria: lecciones aprendidas

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

Page 6: Python en ciencia e ingenieria: lecciones aprendidas

cacheme.org

MOTIVACIÓN

¿Por qué empezaste con Python?

6

Page 7: Python en ciencia e ingenieria: lecciones aprendidas

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

Page 8: Python en ciencia e ingenieria: lecciones aprendidas

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

Page 9: Python en ciencia e ingenieria: lecciones aprendidas

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

Page 10: Python en ciencia e ingenieria: lecciones aprendidas

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

Page 11: Python en ciencia e ingenieria: lecciones aprendidas

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

Page 12: Python en ciencia e ingenieria: lecciones aprendidas

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

Page 13: Python en ciencia e ingenieria: lecciones aprendidas

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

Page 14: Python en ciencia e ingenieria: lecciones aprendidas

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

Page 15: Python en ciencia e ingenieria: lecciones aprendidas

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

Page 16: Python en ciencia e ingenieria: lecciones aprendidas

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:

Page 17: Python en ciencia e ingenieria: lecciones aprendidas

cacheme.orgFallos a evitar

“¡ESTO ES MUY FÁCIL! SÓLO TIENES

QUE…”

17

• Simplemente evítalo

Page 18: Python en ciencia e ingenieria: lecciones aprendidas

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

Page 19: Python en ciencia e ingenieria: lecciones aprendidas

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

Page 20: Python en ciencia e ingenieria: lecciones aprendidas

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

Page 21: Python en ciencia e ingenieria: lecciones aprendidas

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

Page 22: Python en ciencia e ingenieria: lecciones aprendidas

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

Page 23: Python en ciencia e ingenieria: lecciones aprendidas

cacheme.orgFallos a evitar

23

“¿UNA MUJER

PROGRAMANDO?”

Page 24: Python en ciencia e ingenieria: lecciones aprendidas

@CAChemEorg

CAChemEorg

CAChemE

[email protected]

www.cacheme.org

24