Skip to content

Latest commit

 

History

History
140 lines (113 loc) · 6.63 KB

README.org

File metadata and controls

140 lines (113 loc) · 6.63 KB

Programming for Data Science 2019

Programming for Data Science [2019]

Syllabus

Contacto

  • Nombre: Adolfo De Unánue
  • Oficina: Pasillo de estadística, al final
  • Horas de oficina:
  • Email: unanue@itam.mx
  • Inicio de clases: 14 de agosto de 2019

Lecturas recomendadas / Libros de texto

Esta clase no requiere libros de texto, pero los siguientes son recomendados:

  • Learn Bash the hard way, Ian Mitchell, Leanpub, 2017
  • PostgreSQL Uo and Running, Regina O. Obe and Leo S. Hsu. O’ Reilly, 2017.
  • Data Science from the command line, Jeroen Janssens, O’Reilly, 2014
  • Thinking Python 2e, Allen B. Downey, Green Tea Press,

Descripción del curso

Este curso es una introducción a las herramientas computacionales necesarias para poder resolver problemas de Ciencia de datos, Machine Learning o Inteligencia Artificial de una manera eficiente y cómoda

Este curso le enseñará a los estudiantes

  1. Sentirse cómodo con las herramientas necesarias para Ciencia de Datos.
  2. Obtener, manipular y almacenar datos que facilitarán los flujos de Ciencia de Datos.
  3. Colaborar con otros Científicos de Datos en un proyecto.
  4. Contestar preguntas de Ciencia de Datos usando la herramienta apropiada
  5. Reproducibilidad del flujo de Ciencia de Datos.

Este es un curso hands-on en el que los estudiantes usarán la computadora para implementar la solución a varios problemas de Ciencia de datos.

Pre-requisitos

  • Tener acceso a una laptop o algún dispositivo de cómputo[fn:-1-1]
  • Experiencia en cualquier lenguage de programación es recomedada, pero no necesaria.

[fn:-1-1] Si no tienes una laptop pero tienes una tablet o inclusive un teléfono móvil, podemos configurarlo de tal manera que te conectes a algún servidor remoto y puedas seguir las lecciones de este curso.

Temas

  • Terminal y Command line
  • Git y Github
  • Programación: Automatizar cosas
  • Escalar ejecución de código
  • Almacenar datos: Bases de datos y SQL
  • Reproducibilidad: Pipelines y Ambientes (docker)
  • Web Scrapping

Material del curso

El material de este curso es trabajo en progreso. El calendario es sujeto de cambio basado en los inteereses de la clase y su progreso. Adicionalmente, podríamos tener invitados especiales a platicar o compartir su experiencia.

Si tienes un tema en particular o invitados que te gustaría ver, por favor cuéntamelo.

Tareas

  • Tareas y mini-exámenes cubriendo los temas vistos en clases.
  • Habrá un examen a la mitad del semestre (Mid term). Este examen será para llevar a casa, con libro abierto, internet abierto.
  • NO habrá examen final. En su lugar cada equipo deberá entregar un reporte y una presentación oral al final del semestre.

Proyecto

Los estudiantes formarán grupos (3-4 estudiantes) y trabajarán en un proyecto que ellos propondrán a partir de la semana 5. Yo, adicionalmente, proveeré un conjunto de ideas de proyectos para ser elegidos, pero siéntanse libres de traer sus propias ideas y discutiremos si su proyecto cubre el criterio en esa clase.

Deberán de enviar una propuesta de proyecto (que será evaluada por sus peers), hacer una presentación del proyecto, enviar un update del proyecto, reporte proyecto final y hacer una presentación oral.

Calificaciones

  • Tareas y Quizzes: 40%
  • Mid-term: 15%
  • Participación en clase: 10%
  • Proyecto: 35%
    • Propuesta y presentación de la propuesta: 5%
    • Progreso del reporte: 5%
    • Reporte final: 10%
    • Presentación final: 15%

Calendario (Tentativo)

SesiónFechaTemasOtros
114/08Introducción
221/08CLI
-28/08-No hay clases
34/09CLIFormar equipos
411/09CLI
518/09git
625/09git
72/10Programming
-9/10-No hay clase: 🏥 (Ausente por enfermedad)
816/10Programming
-23/10-No hay clase: Viaje a Chile
930/10Programming
106/11ProgrammingUpdate del proyecto
119/11SQLReposición (3h) 8am-11am
1213/11SQL
1320/11SQL
1423/11PipelinesReposición (3h) 8am-11am
1527/11docker
164/12Web scrappingEntregar reporte del proyecto
1711/12ProyectoPresentación oral

Software que necesitas instalar

Constructor de máquinas virtuales
Vagrant
Administrador de máquinas virtuales
VirtualBox
Sistema de control de cambios
git
Adminsitrador de versiones de python
pyenv
Cliente de PostgreSQL
psql
Cliente general de base de datos
DBeaver
Una base de datos simple
sqlite3
Administrador de contenedores
docker, docker-compose
Shell
zsh (Windows), (GNU/Linux), (MacOS)