Estadística Computacional

El Curso

Objetivos:

  • El alumno se sentirá cómodo interactuando con línea de comandos.
  • El alumno podrá mantener un repositorio de código versionado de sus archivos y programas.
  • El alumno se sentirá cómodo con herramientas del cli.
  • El alumno se sentirá familiarizado con los lenguajes de programación: R y Python
  • El alumno analizará problemas y encontrará la mejor manera de resolverlos con herramientas programáticas.
  • El alumno se familiarizará con los conceptos base de la nube
  • El alumno se familiarizará con Docker y herramientas de contenedores.
  • El alumno estará cómodo generando consultas complejas de SQL.

Comunicación

Correo

Escribe a miguel.escalante@itam.mx y por favor que el subject del correo diga [Estadística Computacional 2021].

Discord

¿Cómo será el curso?

  • Pasaremos el tiempo de la clase aprendiendo a codificar para resolver problemas de ingeniería o ciencia.
  • Algunas actividades requerirán que se haga Programación en pares
  • Las tareas estarán basadas en las habilidades que desarrolles en clase ¡Trata de no faltar!
  • Practicar es la única manera de volverse bueno en esto. Lo más probable es que pases de 8 a 12 horas por semana (además del tiempo de la clase) escribiendo y debugeando código.
  • Si tienes problemas con la tarea, pregúntame, o busca ayuda de tus compañeros. NO esperes a que sea demasiado tarde para tomar tu destino en tus manos.

Temario

  • Git + Github
  • R
    • Basics
    • Rproj
    • Dplyr
    • Rmarkdown
    • Shiny
    • Visualización
  • Cli
    • SED
    • Awk
    • cat
    • grep
    • pipe
  • Python
  • SQL
  • Docker
  • Aws

Evaluación

La calificación final está compuesta de la manera siguiente:

EntregablePorcentaje
Tareas20%
Proyecto intermedio30%
Proyecto Final50%

Calificación

Se usará la siguiente escala para las tareas

PuntosDescripción
5Excelente. Código limpio, conciso, documentado y exploró los conceptos en profundidad.
4Completo y correcto. Incluye el análisis, el programa, el caso de pruebas y responde a las preguntas planteadas.
3Contiene unos cuentos errores menores.
2Entrega parcial o tiene errores mayores.
1Le faltó mucho.
0Ni lo intentó :(

Calificación de los proyectos

El proyecto se evaluará promediando las siguientes categorías. Se usará la escala recién mostrada en cada una de ellas.

CategoríaDescripción
DiseñoEl proyecto está bien organizado, fácil de seguir y se especifica claramente el problema a resolver.
DocumentaciónInstrucciones de como ejecutar el código. Nombres de las variables y funciones son descriptivas. Incluye comentarios para que el lector pueda seguir el algoritmo. Se incluyen casos de prueba.
CompletezTodos los elementos del proyecto están incluidos.
CorrectoLa lógica del código es correcta y produce resultados con sentido.
AnálisisTodas las preguntas de análisis en la descripción del proyecto fueron resueltas. La interpretación del resultado está incluida.

Demostración del proyecto

Al final del curso, tendrás que mostrar tu proyecto en 40 minutos a la clase. Se calificará por mí y por tus compañeros.

Aclaraciones

  • El código NO es la respuesta.
  • La gráfica NO es la respuesta.
  • Debes de mostrar que entendiste la solución y el problema.

Código de conducta académica

Adaptado del departamento de ciencias de la computación de Grand Valley State University y de George Washington University)

  • Se espera que tú…
    • Crees / desarrolles tus tareas (incluyendo el código fuente).
    • Entiendas tus soluciones
    • Reconozcas la ayuda de otros en la escritura.
    • Cites la fuente en la tarea.
    • Te protejas de sospecha al no permitir que otros vean tu tarea antes de que sea enviada.
    • Contactes al profesor para aclarar los requerimientos de las tareas.
    • Uses extensivamente Github para socializar el conocimiento, soluciones, dudas, etc.
  • Se prefiere que tú…
    • Discutas diversos caminos para alcanzar la solución.
    • Compartas tu conociemiento con otros estudiantes acerca de errores de sintáxis, trucos de código, etc.
    • Proveas y recibas ayuda respecto a errores de ejecución.
    • Proveas y recibas ayuda usando el ambiente de computación.
    • Participes, junto con otros estudiantes, en discuiones hacer de las tareas, requerimientos, estrategais de solución, etc.
  • Eres culpable de romper el código de conducta si …
    • Le das tu código fuente a cualquiera en formato electrónico o analógico.
    • Recibes de otro estudiante la solución en formato electrónico o analógico.
    • Subes al repositorio como tuyos otros archivos, soluciones o documentos.
    • Subes tareas sin indicar que colaboraste con alguien.
    • Realizas modificaciones al código en un esfuerzo de ocultar un engaño.
    • Usas material no permitido en examen o te comunicas con alguien de manera no autorizada durante el examen.

Ligas de interes

Finalmente…

Primer tarea!!

  1. Instalar git
    1. Si estás en una distro de GNU/Linux tipo Debian: sudo apt-get install git.
    2. Si estás en una MacOS sigue las instrucciones de aquí y sigue las instrucciones.
  2. Crea una cuenta en github
  3. Crear una llave ssh y conectarla a Github.
  4. Forkear este repositorio
  5. Instalar docker
  6. Instalar un editor de textos
    1. GNU/Emacs
    2. VsCode

Emacs.

Después de tener converso al director de la Maestría, estoy convencido del valor que provee tener una herramienta como Emacs disponible, tanto para temas de escritura científica, como para programación, durante el curso verán que uso esta herramienta. Denle una oportunidad aunque su curva de aprendizaje sea un poco inclinada. :)