Software Programmer Fundamentals

Software Programmer Fundamentals

Módulos

Módulo I: Introducción a la lógica de programación

1.1. Conceptos de algoritmo y su importancia

Definición de algoritmos.

Estructura de un algoritmo: Entrada, Proceso y Salida.

Tipos de algoritmos: iterativos, recursivos y algorítmicos.

Ejemplos de algoritmos en la vida real.

1.2. Pensamiento computacional y resolución de problemas

Descomposición de problemas en pasos más pequeños.

Reconocimiento de patrones y abstracción.

Estructura de la solución: Desarrollo y optimización.

Diseño de algoritmos eficientes.

1.3. Práctica: Resolución de problemas simples con pseudocódigo

Modelado de problemas reales con pseudocódigo.

Conversiones entre pseudocódigo y diagramas de flujo

Ejercicio práctico: Desarrollo de un pseudocódigo para resolver un problema matemático.

2.1. Diagramas de casos de uso

Identificación de actores.

Diagramas de escenarios principales y alternativos.

Casos de uso extendidos y generales. 2.2. Diagramas de secuencia

Representación de la interacción entre objetos y eventos.

Modelado del flujo de datos y secuencia de mensajes.

2.3. Diagramas de actividades

Representación de actividades, decisiones y flujos alternativos.

Diagramas de actividad con particiones (swimlanes).

8.1. Creación de tablas y relaciones

Sintaxis básica de SQL: CREATE TABLE, ALTER TABLE.

Definición de restricciones (PRIMARY KEY, UNIQUE, NOT NULL).

8.2. Consultas SQL: SELECT, INSERT, UPDATE, DELETE

Consultas de lectura: SELECT con filtros, operadores y ordenación. -

Consultas de inserción, modificación y eliminación de datos: INSERT INTO, UPDATE, DELETE 

8.3. Funciones de agregación: COUNT, SUM, AVG

Uso de funciones para calcular agregados sobre conjuntos de datos.

Agrupación de datos con GROUP BY y filtrado con HAVING.

4.1. Listas, tuplas, diccionarios y conjuntos

Operaciones básicas en estructuras de datos: creación, actualización, eliminación.

Métodos y operaciones avanzadas: append, pop, sort, reverse.

Diccionarios y manejo de pares clave-valor.

4.2. Algoritmos de ordenación (burbuja, selección)

Implementación paso a paso de algoritmos de ordenación.

Complejidad temporal y espacial: O(n^2), O(n log n).

Comparación entre algoritmos de ordenación: eficiencia y uso adecuado.

4.3. Algoritmos de búsqueda (binaria, lineal)

Implementación de búsqueda secuencial y búsqueda binaria.

Condiciones necesarias para usar la búsqueda binaria.

Comparación de complejidades.

4.4. Práctica: Implementación de algoritmos en Python

Ejercicios de búsqueda y ordenación con listas y diccionarios.

Optimización de código de búsqueda para grandes volúmenes de datos.

5.1. Conceptos básicos de objetos y clases

Definición de objetos, clases, atributos y métodos.

Encapsulamiento, abstracción y modularidad.

5.2. Creación de objetos y métodos

Creación y uso de objetos en Python.

Métodos públicos, privados y protegidos.

5.3. Herencia y polimorfismo

Concepto de herencia y reusabilidad de clases.

Métodos sobreescritos y polimorfismo.

5.4. Práctica: Modelado de objetos y su interacción

Ejercicio práctico para modelar entidades usando POO.

6.1. Tipos de bases de datos (relacionales y no relacionales)

Diferencias clave entre bases de datos relacionales y no relacionales.

Ejemplos de bases de datos relacionales (MySQL, PostgreSQL) y no relacionales (MongoDB).

Cuándo usar una base de datos relacional vs una no relacional.

6.2. Componentes de bases de datos: Tablas, filas, columnas

Definición y creación de tablas.

Relaciones entre tablas: uno a uno, uno a muchos y muchos a muchos.

Tipos de datos en SQL: VARCHAR, INT, DATE, etc.

7.1. Diagramas entidad-relación

Definición de entidades, atributos y relaciones.

Creación de diagramas ER para representar modelos de datos.

7.2. Claves primarias y foráneas

Definición de claves primarias y cómo garantizan la unicidad de registros.

Claves foráneas y su importancia en la vinculación de tablas.

7.3. Normalización de bases de datos

Concepto de normalización y sus niveles (1FN, 2FN, 3FN).

Ejercicios prácticos para evitar la redundancia en las bases de datos.

8.1. Creación de tablas y relaciones

Sintaxis básica de SQL: CREATE TABLE, ALTER TABLE.

Definición de restricciones (PRIMARY KEY, UNIQUE, NOT NULL).

8.2. Consultas SQL: SELECT, INSERT, UPDATE, DELETE

Consultas de lectura: SELECT con filtros, operadores y ordenación. -

Consultas de inserción, modificación y eliminación de datos: INSERT INTO, UPDATE, DELETE

Descripción

El curso Software Programmer Fundamentals está diseñado para proporcionar a los participantes los conocimientos básicos requeridos para la programación y el desarrollo de software.

Esta capacitación prepara a los estudiantes para obtener la certificación internacional Software Programmer Fundamentals (SOFTF-001), emitida por Certitalents.

El programa se enfoca en desarrollar habilidades en lógica de programación, algoritmos, modelado de software, estructuras de datos y bases de datos, asegurando que los estudiantes adquieran una base sólida en programación.

Bajo el enfoque Practical Learning Method, los participantes recibirán un Pack de ingreso a la nube para que apliquen los conceptos mediante talleres, laboratorios y proyectos en ambientes reales.

Objetivos

Al finalizar el curso, los participantes serán capaces de:

  • Comprender la lógica de programación, resolviendo problemas con algoritmos eficientes
  • Escribir código estructurado, aplicando estructuras de control y funciones
  • Modelar software con UML, utilizando diagramas de casos de uso, secuencia y actividades
  • Manejar estructuras de datos básicas, como listas, tuplas y diccionarios
  • Comprender los fundamentos de la Programación Orientada a Objetos (POO)
  • Diseñar y consultar bases de datos relacionales, utilizando SQL
  • Prepararse para la certificación internacional Software Programmer Fundamentals (SOFTF-001)

Para participar en esta capacitación, los asistentes deben cumplir con los siguientes requisitos:

  • Conocimientos básicos de informática

ofrece

Software Programmer Fundamentals Aplica
Software Programmer Fundamentals 50 horas

Metodología de Aprendizaje

La metodología de aprendizaje, independientemente de la modalidad (presencial o remota), se fundamenta en el desarrollo de talleres o laboratorios que conducen a la construcción de un proyecto, emulando la actividad real en una empresa.

El instructor(en vivo), profesional con amplia experiencia en escenarios laborales relacionados con los temas a tratar, actúa como jefe de taller, orientando la práctica de sus estudiantes mediante procesos de transferencia de conocimiento, aplicando al proyecto los conceptos del temario propuesto.

La metodología persigue que el estudiante "no memorice", sino que "entienda" los conceptos y cómo se aplican en un ambiente laboral."

Como resultado de este trabajo, al final de la capacitación el estudiante ha adquirido una experiencia real, estará preparado para el trabajo y para aprobar una entrevista, una prueba técnica y/o lograr calificaciones de nivel superior en los exámenes para certificación internacional.

Condiciones para garantizar resultados exitosos:
  • a. Una institución que exija la aplicación del modelo mediante un ordenamiento, una logística y un control estricto sobre las actividades a desarrollar por parte de los actores dentro de cada sesión de capacitación.
  • b. Un instructor ubicado en cualquier lugar del mundo, que cuente con el conocimiento profundo exigido, con la experticia, la experiencia, y unos valores superlativos, que garanticen una transferencia de conocimiento a muy alto nivel.
  • c. Un estudiante comprometido, con el espacio, el tiempo, la atención que exige el proceso formativo y con la disposición para enfocarse en entender cómo se aplican los conceptos en un ambiente laboral, y no memorizar conceptos para presentar un examen.