Introducción a la Computación (Químicos, Físicos, Meteorólogos, Biólogos y disciplinas afines)
Edición 2do cuatrimestre 2017
IMPORTANTE
Recientemente fue aprobada la materia de posgrado Tópicos de programación para científicos computacionales que será una versión especialmente adecuada para estudiantes de posgrado que necesiten mejorar o aprender sus habilidades de programación. La página de la materia se puede encontrar en este link (si pide contraseña es que aún no la terminamos de armar).
Cambio de cuatrimestre
Entre 2013 y 2016, el DC ofreció dos comisiones de la materia Introducción a la Computación, una orientada a alumnos de Matemática, y la otra a alumnos de Biología y otras carreras. Ambas comisiones se dictaban en el primer cuatrimestre; y durante el segundo cuatrimestre no se dictaba la materia.
A partir de 2017, el DC decidió mover la comisión orientada a Biología al segundo cuatrimestre para, por un lado, responder a los reiterados pedidos de dictar la materia en ambos cuatrimestres, y por otro, lograr una planificación más racional de los recursos docentes del Departamento.
Introducción
En la actualidad, la computación se ha transformado en una herramienta imprescindible para las ciencias y la ingeniería. El siglo XXI está siendo testigo de una explosión de aplicaciones de la computación en diversas disciplinas. Podemos mencionar áreas como la Bioinformática, la Biología Sintética, la Neurociencia computacional, la Biología Computacional.
Adicionalmente, las aplicaciones dentro de disciplinas ya establecidas crecen día a día, haciéndose imprescindible saber y poder utilizar la computación en el trabajo diario de cualquier científico o ingeniero.
Objetivos de la materia
- Comprender el modelo y la organización básica de una computadora.
- Adquirir conocimientos de programación, tanto de algorítmica como de estructuras de datos.
- Adquirir conceptos y fundamentos sobre especificación y razonamientos formales para avanzar en la demostración de correctitud y terminación de programas.
- Dominar diversas técnicas algorítmicas: Divide&conquer, Backtracking, programación dinámica, etc.
- Acercarse al uso de herramientas de soporte al desarrollo distribuido de proyectos (i.e. git o svn) y a las herramientas alternativas de escritura de textos (i.e. Latex).
¿Para qué te serviría como estudiante o como científico aprender fundamentos de programación?
- Para analizar datos -en forma numérica y gráfica-.
- Para desarrollar algoritmos, modelar sistemas, y realizar simulaciones.
- Para poder crear tus propias aplicaciones, que integren diversos programas y distintos formatos de datos.
- Para automatizar tareas repetitivas, que te consumen mucho tiempo y están sujetas, además, a errores humanos.
- Para entender los fundamentos que permiten almacenar grandes cantidades de datos de forma eficiente.
En la materia usaremos el lenguaje Python. ¿Por qué ese y no otro?
- Es un lenguaje de un gran potencial y de mucha utilización actualmente.
- Es gratuito.
- Es un lenguaje de alto nivel de propósito general. Esto significa que deberías ser capaz de hacer cualquier cosa que quieras usando Python, y que debería ser relativamente fácil de programar.
- Python es un lenguaje que se puede usar en los principales sistemas operativos.
- Es usado por numerosos programadores profesionales. Esto significa que te puede servir para poder colaborar con expertos de la computación en proyectos complejos.
- Tiene paquetes de programas, que te van a ser de gran utilidad en tu carrera científica, como por ejemplo, Matplotlib y Pylab (para generación de gráficos), NumPy y SciPy (para aplicaciones numéricas y científicas), BioPython (herramientas en Python para biología computacional).
Preguntas Frecuentes
En la materia, ¿Voy a aprender a usar las aplicaciones que se utilizan en mi campo de conocimiento?
No, no nos vamos a centrar en aplicaciones puntuales. Esta materia tiene como objetivo principal enseñar fundamentos y que los alumnos puedan seguir aprendiendo luego de terminada.
La idea es que aprendan a distinguir e identificar lo computacionalmente difícil de resolver y el tipo de problemas que se pueden tratar y cuáles no.
Además, que adquieran los elementos necesarios para aprender a buscar información, a entenderla y poner en uso nuevas herramientas cuando lo necesiten. Hay que estar preparado para el cambio.
Esta materia se llama "introducción", seguramente la puedo cursar de taquito, ¿no?
¡¡¡NO!!! Es una materia que necesita de tiempo para absorber los conceptos y fijarlos mediante la práctica. Se tocan temas que implican pensar de otro modo y de razonamiento que muchos estudiantes no están acostumbrados a hacer. Para tener una aproximación, si bien no todas las personas son iguales, suele ser necesario usar tantas horas fuera de clase como en ella.
¿Es una materia solo orientada a biólogos?
Es una materia que surgió como alternativa a una ya existente que es una materia obligatoria de la orientación "Aplicada" de la Licenciatura en Matemática. Por lo tanto, no está orientada exclusivamente a biólogos, sino que está orientada a alumnos que no sean del Depto de Matemática. Invitamos a todo aquel estudiante con inquietud en estos temas a cursarla.
Soy alumno de doctorado, ¿La puedo cursar? ¿Me van a dar puntos?
Hemos armado una materia que se dicta en paralelo (mismos días y horarios) junto con esta especialmente orientada a estudiantes de posgrado, se llama Tópicos de Programación para científicos computacionales. La información de esta materia se puede encontrar en este link (si pide contraseña es que aún no la terminamos de armar).
Soy alumno de doctorado, ¿Me la van a poner tan pesada como a un alumno de grado?
La materia tanto para grado como su versión específica de doctorado requiere tiempo y esfuerzo para adquirir la práctica necesaria. Aprender a programar implica dedicarle tiempo a equivocarse y arreglar estos errores, si ya sabes que no vas a tener tiempo de práctica, quizás la materia no te sea útil.
Listas de correo de la materia
La lista de mails de alumnos y docentes es icb-alu@... y la lista de mails de docentes es icb-doc@..., en ambos casos con dominio dc.uba.ar. Las consultas deben ser enviadas a icb-doc.
- Docente: Brian Luis Curcio
- Docente: Gustavo Andres Landfried
- Docente: Emmanuel Lujan
- Docente: Esteban Eduardo Mocskos