/UNMSM_programacion

Curso de programación para la EP Ingeniería Geográfica - UNMSM

Primary LanguageJupyter Notebook

Curso de programación

EP Ingeniería Geográfica

Un curso de Python orientado a los estudiantes de la escuela de Ingeniería Geográfica de la UNMSM, investigadores y profesionales que trabajen o desean trabajar con las ciencias de la Tierra.

Docente Ing. Roy Yali S.


Resumen


En las últimas décadas la computación se ha convertido en un pilar de la ingeniería y el desarrollo científico-tecnológico. En la mayoría de las áreas, el trabajo computacional es un complemento fundamental de la experimentación tradicional y de la teoría, ya que cada vez más se involucra simulaciones numéricas y modelado computacional. Frecuentemente, la tarea de los profesionales involucra el uso de aplicaciones específicas que requieren un gran trabajo de procesamiento de los datos de entrada y un post-procesamiento de los resultados utilizando otras herramientas.

Este curso brinda una introducción sólida al poderoso lenguaje de programación Python (http://python.org) y a las herramientas fundamentales del "ecosistema científico" (Jupyter, Numpy, Matplotlib, Scipy, entre otras) que conforman un entorno de programación interactivo de vanguardia, simple, libre, gratuito y multiplataforma.

Sobre el docente


Roy Yali Samaniego (25) es ingeniero geógrafo de la Universidad Nacional Mayor de San Marcos; tiene experiencia en el sector público y privado en las disciplinas de geomática y ciencias atmosféricas. En la actualidad se desempeña como desarrollador GIS en el Instituto Geológico, Minero Metalúrgico de Perú - INGEMMET. Anteriormente ha laborado en importantes proyectos como parte del Servicio Nacional de Meteorología e Hidrología - SENAMHI, el Instituto Nacional de Estadística e Informática - INEI y la Autoridad Nacional del Agua - ANA. Programador desde hace algunos años, y cree ser especialista en Desarrollo GIS y ciencia de datos tanto para proyectos como para investigación geocientífica.

Más información en su blog

Programa


Clase 1:

ARQUITECTURA DE LA COMPUTADORA
●   La unidad central de proceso y memoria
●   Funcionamiento de la computadora e internet (hardware y software)

INTRODUCCIÓN A LA PROGRAMACIÓN
●   Lenguajes de programación
●   Programación orientada al desarrollo web y desktop
●   Programación orientada al análisis de datos

Clase 2:

TÉCNICAS DE PROGRAMACIÓN 
●   Programación modular
●   Programación estructurada
●   Programación orientada a objetos
●   Diagramas de flujo y Pseudocódigo

CONCEPTOS FUNDAMENTALES
●   Tipos de datos
●   Identificadores, constantes y variables.

Clase 3:

    SINTAXIS Y ESTRUCTURAS DE DATOS
●   Expresiones Aritméticas y Lógicas
●   Programas secuenciales
●   Estructura general del lenguaje Python
●   Tuplas, Listas, Diccionarios
●   Operaciones: Actualización, inserción, eliminación, modificación

Clase 4:

    ESTRUCTURAS DE CONTROL SELECTIVAS
●   La estructura simple (SI-ENTONCES)
●   La sentencia if, elif
●   Estructuras Anidadas
●   Estructuras múltiples (SI-MÚLTIPLE)

Clase 5:

ESTRUCTURAS DE CONTROL REPETITIVAS
●   Bucles y loops
●   Sentencia WHILE
●   Sentencia FOR
●   Contadores y acumuladores
●   Instrucciones BREAK, PASS, CONTINUE

Clase 6:

    FUNCIONES
●   Parámetros y argumentos
●   Funciones predefinidas
●   Funciones definidas por el usuario
●   Importación de paquetes

Clase 7:

ARCHIVOS
●   Lectura de archivos
●   Sentencia WITH, AS
●   Modificación y creación de archivos
●   Ejemplos

Clase 8:

PRIMER EXAMEN PARCIAL

Clase 9:

 ANÁLISIS DE DATOS
●   Introducción a Numpy.
●   Subsetting Numpy Arrays
●   Estadísticas básicas en numpy
●   Introducción a Pandas.
●   Matrices y Data Frames

Clase 10:

TRATAMIENTO DE DATOS
●   Creación de data.frames
●   Reshaping data
●   Resumen de datos.
●   Manejo de valores vacíos.
●   Agrupamiento de datos

Clase 11:

REPRESENTACIÓN GRÁFICA
●   Introducción a Matplotlib
●   Manipulación de datos
●   Indexación avanzada
●   Agrupación y filtrado
●   Gráficos básicos

Clase 12:

ÁLGEBRA LINEAL EN PYTHON 
●   Placeholders.
●   Creación de arrays.
●   Ordenamientos de arrays.
●   Subsetting, slicing, indexing
●   manipulación de arrays.

Clase 13:

GEOPANDAS - MANEJO DE DATOS VECTORIALES EN PYTHON
●   WKT
●   GeoJSON
●   Operaciones geoespaciales.
●   Placeholder (shapely)

Clase 14:

GOOGLE EARTH ENGINE
●   Programación cliente-servidor
●   Estructuras de datos en GEE.
●   ee.Image vs ee.ImageCollection
●   ee.Feature vs ee.FeatureCollection.

Clase 15:

INTRODUCCIÓN A MACHINE LEARNING
●   Análisis de Componentes principales
●   Clasificación supervisada
●   Clasificación no supervisada

Clase 16:

EXAMEN FINAL

Licencia


Licencia Creative Commons

Créditos


Parte de este material ha sido inspirado y/o adaptado de múltiples fuentes

  • Scipy Lectures <http://scipy-lectures.github.io/>
  • Scientific Python Lectures <https://github.com/jrjohansson/scientific-python-lectures> de J.R. Johansson
  • El tutorial de Python <http://docs.python.org.ar/tutorial/2/contenido.html> traducción al castellano por la comunidad Python Argentina <http://python.org.ar/>
  • Matplotlib tutorial <http://webloria.loria.fr/~rougier/teaching/matplotlib/> por Nicolas P. Rougier
  • Numba vs Python, take 2 <http://nbviewer.ipython.org/url/jakevdp.github.io/downloads/notebooks/NumbaCython.ipynb> de Jake Vanderplasf

*En desarrollo