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

  1. 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
  2. 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,
  3. 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,
  4. 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

  1. La información,
    • Medición de la información: Bits y Bytes
    • Codificación y transmisión de datos: ASCII, Unicode
  2. Historia y evolución de la computación,
    • Máquinas de Turing,
    • Microprocesadores,
    • Internet
  3. Sistemas operativos,
    • Componentes de los SO
    • Funciones y objetivos de los SO
    • Tipos de SO
  4. 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

  1. 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,
  2. Conceptos Básicos
    • Pensamiento Lógico y Resolución de Problemas,
    • Algoritmos: qué son y cómo se usan,
    • Lógica de programación,
  3. 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

  1. 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

  1. Lógica y conjuntos
    • Operaciones lógicas y de conjuntos,
    • Diagramas de Venn, silogismos,
  2. 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

  1. Matrices y Vectores
    • Operaciones con matrices y vectores,
    • Aplicaciones en gráficos por computadora y machine learning,
  2. Espacios Vectoriales y Transformaciones Lineales
    • Conceptos básicos de espacios vectoriales,
    • Aplicaciones en animaciones y simulaciones,

Programación visual con bloques

  1. Juegos y animaciones interactivas
    • Scratch,
    • Roblox, <Construct 3, GameSalad>
  1. Hardware y Robótica
    • LEGO Mindstorms,
    • Arduino,
    • Raspberry Pi,

Programación basada en código

  1. Pseudocódigo
  2. Entornos de Desarrollo
    • Instalación y configuración de un IDE,
    • Uso básico de un IDE,
  3. 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
  4. Estructuras de Control
    • Condicionales: if-else y switch-case,
    • Bucles: for, while, do-while,
  5. Estructuras de datos lineales
    • Arrays,
    • Listas enlazadas,
    • Pilas,
    • Colas,
  1. Estructuras de datos no lineales
    • Árboles,
    • Grafos,
    • Tablas Hash,
  2. Estructuras de datos avanzadas
    • Árboles de Búsqueda Binaria,
    • Heaps,
    • Conjuntos y Diccionarios,
  3. Algoritmos asociados a Estructuras de Datos
    • Algoritmos de ordenamiento,
    • Algoritmos de búsqueda,
    • Algoritmos de grafos,
  4. Abstracción de Datos y Memoria
    • Memoria: stack vs. heap, punteros.
    • Abstracciones de datos: structs, enums.
  1. 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

  1. Estilo de Código y Convenciones de Nomenclatura,
  2. Comentarios y Documentación,
  3. Debugging y Manejo de Errores,

Control de versiones avanzado

  1. Ramas y Fusiones en Git
    • Crear, cambiar y fusionar ramas,
    • Entender y resolver conflictos de fusión,
    • Mejores prácticas de Git
  2. Colaboración en GitHub
    • Crear y gestionar issues,
    • Contribuir a proyectos mediante pull requests,
  3. Revisión de Código
    • Trabajar con forks y branches,
    • Revisión de código y discusiones en GitHub,
  4. 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

  1. Introducción al Desarrollo Web
    • ¿Qué es el desarrollo web?,
    • Front-end vs Back-end,
    • Introducción a servidores web locales y hosting,
  2. Estructura de un Sitio Web
    • Fundamentos y Sintaxis básica de HTML,
    • Sintaxis básica de MarkDown,
  3. Estilizando Páginas Web
    • Sintaxis básica de CSS,
    • Selectores,
    • Modelo de caja,
    • Layouts en CSS: Flexbox y Grid,
    • Responsive Design y Media Queries,
  4. 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)

  1. Python
    • Sintaxis básica
  2. 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)

  1. 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
  2. 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
  3. 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)
  4. Introducción a las Bases de Datos NoSQL
  5. 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
  6. Rendimiento y Optimización
    • Análisis de rendimiento y ajuste de bases de datos
    • Estrategias de indexación y particionado

Seguridad Informática

  1. 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.