Cazando Planetas con Python

¿Te has preguntado cómo los científicos encuentran planetas en otros sistemas solares?

Resumen

En este curso los estudiantes realizarán sus primeras líneas de programación en Python que usarán para formar imágenes de discos alrededor de estrellas, es aquí donde se formarán los exoplanetas. Los datos con los que trabajaremos son imágenes recientes del Telescopio Espacial Hubble alrededor de la estrella conocida como Fomalhaut donde por primera vez se detectó un exoplaneta en imagen directa en el 2007. Al final del curso, los estudiantes tendrán los conceptos básicos de programación y tratamiento de imágenes que podrán aplicar a cualquier campo científico y tecnológico que deseen desarrollar en un futuro.

Programando

¿Cuál es la habilidad más importante en programación?

  • (a) Pensar como un computador.
  • (b) Escribir código muy bien.
  • (c) Poder solucionar problemas.
  • (d) Ser muy bueno en matemática.

Un algoritmo es:

  • (a) Una solución de un problema que puede ser solucionado por un computador.
  • (b) Una lista paso-a-paso de instrucciones que si se siguen exactamente, solucionan el problema considerado.
  • (c) Una serie de instrucciones implementados en un lenguaje de programación.
  • (d) Un tipo especial de notación utilizada por programadores.

Código fuente es otro nombre para:

  • (a) Las instrucciones en un programa, almacenadas en un archivo.
  • (b) El lenguaje en el que estás programando (por ejemplo Python).
  • (c) El ambiente o herramienta en la que estás programando.
  • (d) El número o "código" que le debes dar a cada programa para decirle al computador qué hacer.

¿Cuál es la diferencia entre un lenguaje de programación de alto nivel y uno de bajo nivel?

  • (a) Es de alto nivel si estás de pie y de bajo nivel si estás sentado/a.
  • (b) Es de alto nivel si estás programando para un computador y de bajo nivel si estás programando para un teléfono o una tablet.
  • (c) Es de alto nivel si el lenguaje es más cercano al lenguaje humano y de bajo nivel si es más cercano al lenguaje de máquina.
  • (d) Es de alto nivel si es fácil de programar y es corto, es de bajo nivel si es difícil y los programas son largos.

Un programa es:

  • (a) Una secuencia de instrucciones que especifica cómo hacer un cálculo.
  • (b) Algo que sale en televisión como una novela o un programa de concurso.
  • (c) Un cálculo, así sea simbólico.
  • (d) Lo mismo que un algoritmo.

Debugging es:

  • (a) Encontrar errores de programación y corregirlos.
  • (b) Matar todos los bichos de la casa.
  • (c) Comenzar a escribir un programa.
  • (d) Desparasitar un animal.

Nuestro primer programa

La función print() nos muestra el contenido del objeto que nos interesa. Su argumento es lo que va dentro del paréntesis, y el resultado es el contenido del argumento.


In [ ]:
print(10)

In [ ]:
print("Hola")

In [ ]:
print("Hola","como","estas")

In [ ]:
print("Hola como estas")

In [ ]:
print("Uno mas uno es:",2)

In [ ]:
# Esto es un comentario
print("Uno mas uno es:",2) # Esto también

¿Para qué sirven los comentarios?

  • (a) Para decirle al computador lo que quieres decir en tu programa.
  • (b) Para que las personas que están leyendo tu código entiendan lo que hace el programa.
  • (c) Nada, es información superflua que no se necesita.
  • (d) Nada en un programa corto. Sólo se necesitan para programas grandes.

Errores


In [ ]:
print("Hola" # Error de sintaxis

In [ ]:
print(1/0) # Error de ejecución

In [ ]:
print("Uno mas uno es:",1*1) # Error semántico

Este material fue recopilado para Clubes de Ciencia Colombia 2017 por Luis Henry Quiroga (GitHub: lhquirogan) - Germán Chaparro (GitHub: saint-germain), y fue traducido y adaptado de http://interactivepython.org/runestone/static/thinkcspy/index.html

Copyright (C) Brad Miller, David Ranum, Jeffrey Elkner, Peter Wentworth, Allen B. Downey, Chris Meyers, and Dario Mitchell. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with Invariant Sections being Forward, Prefaces, and Contributor List, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled “GNU Free Documentation License”.