Contenidos
- Módulo 1: Herramientas y contextualización de espacio de desarrollo
- Herramientas y entorno del sistema operativo.
- Instalación de Code::Blocks y MS Visual Studio Code para C/C++ y Python
- Instalación y uso de herramienta GIT para gestión de código fuente y uso de comandos de línea.
- GIT en MS Windows.
- GIT en Linux.
- Herramienta alternativa visual de acceso al GIT y su uso en estudiantes.
- Entorno de desarrollo para ingeniería de software.
- Estándares y modelos internacionales.
- Módulo 2: Control de versiones
- Criterios de control de versiones.
- GIT
- Conceptos de uso
- Reservorio local
- Reservorio remoto
- GitHub
- Conceptos GIT (inglés)
- Create
- Clone
- Working directory
- Stage área
- Local repo
- Remote repo
- add
- commit
- push
- pull
- checkout
- Commands
- Herramienta comercial (uso libre para estudiantes)
- SmarGitHG
- Uso restringido
- Criterios de uso
- Módulo 3: Lenguaje para programación C/C++
- Introducción al lenguaje de programación: historia, filosofía, interprete, entre otros.
- Herramientas de desarrollo. Flujo de desarrollo (compilación, interpretación, etc.).
- Características básicas del lenguaje: tipos de datos, estructuras de control, etc.
- Aplicación de la programación orientada a objetos al lenguaje
- Técnicas particulares de programación para el lenguaje C++:
- Entorno de consola.
- Entorno IDE.
- Compilación
- Objetos.
- Librerías.
- Ejecutables.
- Librerías dinámicas.
- Manejo de memoria
- Errores típicos de compilación y manejo de excepciones.
- Automatización del proceso de compilación con Code::Blocks.
- La librería estándar: STL.
- Módulo 4: OOP programación orientada a objetos en C/C++
- Concepto de objeto en programación.
- Declaración de clase
- Instancia de objetos.
- Atributos y métodos.
- Jerarquía y herencia.
- Polimorfismo.
- Modelo de diseño orientado a objetos.
- Módulo 5: Estructuras dinámicas de datos y criterios de algoritmos
- Complejidad computacional y eficiencia de algoritmos.
- Corrección de algoritmos.
- Tipos de datos abstractos.
- Estructuras de datos:
- Importancia de las estructuras de datos
- Arreglo
- Vector
- Lista
- Pila
- Colas
- Conjuntos
- Aboles y criterios de diseño y uso
- Grafos
- Búsquedas.
- Ordenamiento.
- Algoritmos: criterios de diseño de un algoritmo.
- Métricas de diseño.
- Eficiencia de un algoritmo
- Bibliotecas: STL para manejo de estructuras dinámicas de datos.
- Módulo 6: Lenguaje de Programación Python
- Paradigma de Python y diferencias con C/C++
- Python 2.7
- Python 3.x
- Interprete de Python.
- Uso de MS Visual Studio Code
- Criterios de uso C++ vs Python.
- Uso de Python como herramienta de intercambio.
- Otros criterios: Lenguaje de Minería de datos R y diferencias con Python.
- Herramientas de desarrollo.
- Flujo de desarrollo en Python.
- Bibliotecas de Python.
- Características básicas del lenguaje: tipos de datos, estructuras de control, etc.
- Aplicación de la programación orientada a objetos al lenguaje en Python.
- OOP en Python, ventajas y desventajas.
- Estructuras de datos propias de Python.
- Módulo 7: Criterios básicos de minería de datos y uso de Python en el entorno mundial
- Criterios de ciencia de datos y minería de datos.
- Conceptos de clasificación (clustering)
- Usos de Python para manejo de datos masivos.
- Librerías de Python para manejo matemático.
- Librería Pandas y estructuras de datos.
- Conceptos de predicción de series de tiempo.
- Criterios generales
Competencias
POR DEFINIR