Curso introductorio
- Lección 1: Cómo utilizar este curso
- Lección 2: Bienvenido al curso
- Lección 3: Conoce a los instructores
Uso de las Herramientas de aprendizaje
- Introducción a los Directorios y Archivos
- ¿Qué son los archivos?
- ¿Qué son los directorios?
- Sistema de archivos
- Rutas absolutas y relativas
- Buenas prácticas y consejos
- Introducción a las CLI
- ¿Qué son las CLI?
- Historia y evolución de las CLI,
- Diferencias entre CLI, Terminal, Consola y Shell,
- Comandos básicos de Shell,
- Uso eficiente y seguro de la Terminal,
- Automatización con Scripts de Shell,
- Introducción a Git
- Conceptos básicos y la importancia del control de versiones,
- ¿Qué es Git? Historia y filosofía,
- Instalación y configuración inicial de Git,
- Entender la estructura de un repositorio Git,
- Introducción a GitHub
- Navegar y entender la interfaz de GitHub,
- Crear una cuenta y configurar un perfil,
- Crear y clonar repositorios,
- Uso básico de Git: add, commit, push, pull,
- Entender el ciclo de vida de los estados de los archivos en Git,
- Etiquetas (tags) y releases,
Fundamentos de la computación
- La información,
- Medición de la información: Bits y Bytes
- Codificación y transmisión de datos: ASCII, Unicode
- Historia y evolución de la computación,
- Máquinas de Turing,
- Microprocesadores,
- Internet
- Sistemas operativos,
- Componentes de los SO
- Funciones y objetivos de los SO
- Tipos de SO
- Redes de computadoras,
- Tipos de redes: LAN, MAN, WAN, Internet
- Protocolos y arquitecturas de red: TCP/IP, modelo OSI
- Encriptación, protocolos seguros como HTTPS, SSL/TLS.
Fundamentos de la programación
- Introducción a la programación
- ¿Qué es la programación?,
- Componentes de un programa: código fuente, compilador, intérprete
- Historia y evolución de la programación,
- Conceptos Básicos
- Pensamiento Lógico y Resolución de Problemas,
- Algoritmos: qué son y cómo se usan,
- Lógica de programación,
- Lenguajes de programación
- Historia y evolución de los lenguajes de programación,
- Tipos de lenguajes: de alto nivel, de bajo nivel, interpretados, compilados,
- Aplicaciones,
- Los lenguajes,
- Criterios para elegir un lenguaje,
Aritmética
- Sistemas Numéricos
- Tipos de sistemas numéricos: decimal (base 10), binario (base 2), octal (base 8), hexadecimal (base 16),
- Conversiones entre sistemas numéricos,
- Operaciones Bitwise y Lógica Binaria,
Matemáticas discretas
- Lógica y conjuntos
- Operaciones lógicas y de conjuntos,
- Diagramas de Venn, silogismos,
- Teoría de Grafos y Álgebra Booleana
- Grafos y sus aplicaciones en informática,
- Álgebra booleana y su aplicación en circuitos lógicos y programación,
Álgebra lineal
- Matrices y Vectores
- Operaciones con matrices y vectores,
- Aplicaciones en gráficos por computadora y machine learning,
- Espacios Vectoriales y Transformaciones Lineales
- Conceptos básicos de espacios vectoriales,
- Aplicaciones en animaciones y simulaciones,
Programación visual con bloques
- Juegos y animaciones interactivas
- Scratch,
- Roblox, <Construct 3, GameSalad>
- Hardware y Robótica
- LEGO Mindstorms,
- Arduino,
- Raspberry Pi,
Programación basada en código
- Pseudocódigo
- Entornos de Desarrollo
- Instalación y configuración de un IDE,
- Uso básico de un IDE,
- Programación secuencial
- Comentarios en el código,
- Constantes, Variables y Tipos de datos,
- Operadores aritméticos, lógicos y de comparación
- Construcción de expresiones y asignaciones
- Estructuras de Control
- Condicionales: if-else y switch-case,
- Bucles: for, while, do-while,
- Estructuras de datos lineales
- Arrays,
- Listas enlazadas,
- Pilas,
- Colas,
- Estructuras de datos no lineales
- Árboles,
- Grafos,
- Tablas Hash,
- Estructuras de datos avanzadas
- Árboles de Búsqueda Binaria,
- Heaps,
- Conjuntos y Diccionarios,
- Algoritmos asociados a Estructuras de Datos
- Algoritmos de ordenamiento,
- Algoritmos de búsqueda,
- Algoritmos de grafos,
- Abstracción de Datos y Memoria
- Memoria: stack vs. heap, punteros.
- Abstracciones de datos: structs, enums.
- Programación Estructurada
- Funciones y Procedimientos,
- Definición y llamada de funciones,
- Parámetros y valores de retorno,
- Alcance y Duración de las Variables
- Uso de Bibliotecas,
Buenas prácticas de programación
- Estilo de Código y Convenciones de Nomenclatura,
- Comentarios y Documentación,
- Debugging y Manejo de Errores,
Control de versiones avanzado
- Ramas y Fusiones en Git
- Crear, cambiar y fusionar ramas,
- Entender y resolver conflictos de fusión,
- Mejores prácticas de Git
- Colaboración en GitHub
- Crear y gestionar issues,
- Contribuir a proyectos mediante pull requests,
- Revisión de Código
- Trabajar con forks y branches,
- Revisión de código y discusiones en GitHub,
- Funcionalidades Adicionales de GitHub
- Alojar páginas web estáticas con GitHub Pages,
- Automatización de flujos de trabajo con GitHub Actions,
- Documentación de proyectos con Wikis,
Fundamentos del desarrollo web
- Introducción al Desarrollo Web
- ¿Qué es el desarrollo web?,
- Front-end vs Back-end,
- Introducción a servidores web locales y hosting,
- Estructura de un Sitio Web
- Fundamentos y Sintaxis básica de HTML,
- Sintaxis básica de MarkDown,
- Estilizando Páginas Web
- Sintaxis básica de CSS,
- Selectores,
- Modelo de caja,
- Layouts en CSS: Flexbox y Grid,
- Responsive Design y Media Queries,
- Interactividad en la Web
- Sintaxis básica de JavaScript,
- Manipulación del Document Object Model (DOM),
- Manejo de eventos y formularios,
Programación Orientada a Objetos (OOP)
- Python
- Conceptos Básicos de OOP
- Clases y Objetos,
- Atributos y Métodos,
- Clase Constructor,
- Herencia y Polimorfismo,
- Interfaces,
- Manejo de excepciones,
- Módulos y paquetes.
Bases de datos (BDs)
- Introducción a las Bases de Datos
- Conceptos básicos de BDs: Tablas, Campos, Índices, etc.
- Tipos de BDs: Relacionales vs. No relacionales
- Motores de BDs
- Modelado de Datos
- Estructura y elementos de una base de datos relacional
- Diagramas Entidad-Relación (ER)
- Modelado de atributos, entidades y relaciones
- Conversión de modelos ER a esquemas de base de datos
- Normalización y formas normales: 1NF, 2NF, 3NF, BCNF
- Diseño de llaves primarias y foráneas
- SQL: Lenguaje de consulta estructurado
- Creación de bases de datos y tablas (DDL): CREATE, ALTER, TRUNCATE, DROP
- Creación de otros objetos con DDL: Indices y Secuencias
- Manipulación de datos (DML): INSERT, UPDATE, DELETE
- Consultas básicas de SQL: SELECT
- Cláusulas WHERE, ORDER BY y GROUP BY
- Funciones en SQL: SUM, COUNT, MAX, AVG y MIN
- Relaciones entre tablas: JOINs y tipos de JOIN
- Subconsultas y consultas compuestas
- Vistas
- Procedimientos almacenados
- Disparadores (Triggers)
- Introducción a las Bases de Datos NoSQL
- Seguridad en Bases de Datos
- Conceptos de seguridad en bases de datos
- Control de acceso y autenticación
- Inyección SQL y otras vulnerabilidades
- Medidas y técnicas de protección
- Rendimiento y Optimización
- Análisis de rendimiento y ajuste de bases de datos
- Estrategias de indexación y particionado
Seguridad Informática
- Conceptos Básicos
- Seguridad,
- Criptografía,
- Inyección SQL, XSS,
Diseño de Software y Depuración
- Principios de diseño de software.
- UML
- Herramientas de depuración y buenas prácticas.