Descripción
El curso está diseñado para enseñar a los estudiantes un conjunto de conocimientos con los que puedan abordar y resolver problemas ingenieriles, mediante el el desarrollo de programas de aplicación utilizando plataformas abiertas
Contenidos
-
Módulo 1: Plataformas abiertas: GNU/Linux
- Introducción: Historia, comunidad, filosofía y distribuciones
- Instalación y configuración básica de GNU/Linux como una máquina virtual y/o real usando distintas distribuciones (Debian, Ubuntu, entre otras).
- Sistema de archivos, manejo de medios de almacenamiento y particiones.
- Uso del shell y otras herramientas de línea de comandos.
- Administración de usuarios, grupos y permisos.
- Manejo de procesos y servicios.
- Paquetería.
- Conceptos básicos de redes de computadoras, y configuración de red del sistema operativo.
- Control de versiones (git).
-
Módulo 2: Programación en un lenguaje orientado a objetos (Python)
- Paradigmas de lenguajes de programación.
- Características del lenguaje: historia, filosofía, intérprete, entre otros.
- Sintaxis, tipos de datos y variables, objetos, estructuras de control, etc.
- Argumentos por línea de comandos, estructuras de datos, archivos de entrada/salida, funciones, clases, módulos y funciones del sistema.
- Clases
- Manejo de errores y debugging.
- Interfaces gráficas
-
Módulo 3: Programación en un lenguaje imperativo (C)
- Introducción al lenguaje de programación: historia, filosofía, compilador, entre otros.
- Características del lenguaje: tipos de datos, estructuras de control, etc.
- Entorno de programación: Compiladores y herramientas para el desarrollo de aplicaciones (por ejemplo gcc, IDEs, etc.).
- Automatización de proyectos: Makefiles.
- Funciones y recursión.
- Entrada y salida de archivos, manejo de archivos, funciones de sistema.
- Punteros, punteros dobles, y manejo de memoria dinámica (Stack, Heap).
- Structs y enums.
- Introducción a estructuras de datos.
Competencias
POR DEFINIR