Sílabo del curso: Fundamentos de Programación¶
1. Datos generales¶
Curso: Fundamentos de Programación
Abreviación: FP
Carrera profesional: Ingeniería de Sistemas
Institución: UPeU
Ciclo: I
Duración: 3 unidades de 5 semanas y 1 sesión final de cierre
Sesiones: 16 sesiones teórico-prácticas
Lenguaje de trabajo: Según la planificación docente
Entorno sugerido: Entorno de programación o IDE según el lenguaje seleccionado
2. Descripción del curso¶
Fundamentos de Programación es un curso de inicio de carrera orientado al desarrollo del pensamiento algorítmico y la resolución estructurada de problemas. El estudiante aprende a analizar situaciones, identificar datos de entrada, diseñar procesos, producir salidas verificables y traducir esa lógica a programas funcionales en un lenguaje de programación definido por el docente.
Por tratarse de estudiantes de primer ciclo, el curso prioriza comprensión, práctica guiada y construcción progresiva de autonomía. El énfasis no está en memorizar sintaxis, sino en aprender a pensar como programador: descomponer problemas, probar soluciones, detectar errores y mejorar el código con criterio.
3. Propósito formativo¶
Al finalizar el curso, el estudiante será capaz de diseñar algoritmos y desarrollar programas básicos en un lenguaje de programación empleando variables, operadores, estructuras condicionales, estructuras repetitivas, listas y funciones, validando sus resultados mediante pruebas simples y explicando la lógica de su solución.
Producto del curso¶
Compendio de resolución de ejercicios de programación: conjunto organizado de ejercicios resueltos, probados y explicados, que evidencian el dominio progresivo de estructuras secuenciales, condicionales, repetitivas, estructuras básicas de datos y subprogramas.
4. Enfoque pedagógico¶
El curso adopta un enfoque activo, progresivo y aplicado. En un curso de primer ciclo, una sesión de programación no debe consistir en exposición larga y copia de código. Debe combinar explicación breve, modelado del docente, práctica guiada, resolución de retos y cierre con verificación.
La lógica metodológica del curso será:
Comprender -> Diseñar -> Codificar -> Probar -> Explicar -> Mejorar
La arquitectura base de resolución de problemas será:
Problema
|
Entrada -> Proceso -> Salida
|
Código
Los 6 pasos operativos que se repetirán en cada sesión son:
1. Comprender el problema
2. Identificar entradas
3. Diseñar el proceso
4. Definir salidas
5. Casos de prueba
6. Implementar, ejecutar y corregir
5. Cómo debería ser una sesión de clase de programación¶
En Fundamentos de Programación, una sesión eficaz debe tener ritmo, práctica y retroalimentación. Para estudiantes de primer ciclo, la secuencia sugerida es la siguiente:
5.1 Inicio de la sesión¶
- Recuperar saberes previos con una pregunta o ejercicio corto.
- Presentar la meta de la sesión en lenguaje claro.
- Mostrar para qué sirve el tema en problemas reales de ingeniería o gestión de datos.
5.2 Construcción guiada¶
- Explicar el concepto central con ejemplos pequeños.
- Resolver un problema modelo paso a paso antes de escribir el código.
- Pensar en voz alta: qué entra, qué se procesa, qué sale y cómo se prueba.
5.3 Práctica acompañada¶
- El estudiante modifica ejemplos ya resueltos.
- El docente supervisa errores frecuentes de sintaxis, tipos de datos y lógica.
- Se promueve que el estudiante anticipe el resultado antes de ejecutar.
5.4 Reto aplicado¶
- El estudiante resuelve un ejercicio nuevo con menor apoyo.
- El reto debe exigir transferencia, no copia literal del ejemplo.
- Se evalúa tanto el resultado como el proceso de solución.
5.5 Cierre y metacognición¶
- Se revisan errores comunes y formas de corregirlos.
- El estudiante explica qué aprendió y qué parte aún le cuesta.
- Se deja una tarea breve o práctica de consolidación.
5.6 Estructura sugerida de tiempo¶
Para una sesión de 4 horas pedagógicas, una distribución razonable sería:
Activación y propósito 15 min
Explicación y modelado del docente 35 min
Práctica guiada 50 min
Pausa breve 10 min
Reto aplicado individual o en pares 45 min
Socialización y retroalimentación 25 min
Síntesis, autoevaluación y cierre 20 min
Esta estructura evita dos errores comunes en cursos iniciales: saturar de teoría y dejar al estudiante solo demasiado pronto.
6. Evaluación del aprendizaje¶
La evaluación será continua, práctica y formativa. En programación inicial, no basta verificar si el código "corre"; también importa si el estudiante comprende el problema, selecciona correctamente las estructuras y prueba su solución.
Criterios generales¶
- Analiza correctamente el problema y distingue entrada, proceso y salida.
- Usa variables y tipos de datos de forma coherente.
- Emplea operadores y estructuras de control según el problema.
- Escribe código legible, ordenado y funcional.
- Realiza pruebas con datos normales y casos límite básicos.
- Detecta y corrige errores de sintaxis o lógica simple.
- Explica verbalmente o por escrito la lógica de su programa.
Evidencias¶
- Guías o cuadernos desarrollados por sesión.
- Ejercicios resueltos en clase.
- Retos prácticos individuales o colaborativos.
- Evaluaciones prácticas por unidad.
- Compendio de ejercicios resueltos por unidad.
Roadmap del curso¶
flowchart TD
A[S01<br>Algoritmos, datos y variables] --> B[S02<br>Operadores y algoritmos secuenciales]
B --> C[S03<br>Decisiones]
C --> D[S04<br>Decisiones múltiples]
D --> E[S05<br>Evaluación 1]
E --> F[S06<br>For, contadores y acumuladores]
F --> G[S07<br>While y centinelas]
G --> H[S08<br>Listas y cadenas]
H --> I[S09<br>Búsqueda y ordenación]
I --> J[S10<br>Matrices]
J --> K[S11<br>Diccionarios]
K --> L[S12<br>Evaluación 2]
L --> M[S13<br>Funciones]
M --> N[S14<br>Integración y menús]
N --> O[S15<br>Archivos]
O --> P[S16<br>Evaluación final]
Unidad 1: Estructuras secuenciales y condicionales¶
Propósito de la unidad¶
Que el estudiante comprenda la lógica de resolución de problemas computacionales y desarrolle programas básicos usando datos, operadores y estructuras condicionales.
Competencias de la unidad¶
- Representa un problema mediante entrada, proceso y salida.
- Usa variables y tipos de datos para modelar información.
- Aplica operadores aritméticos, relacionales y lógicos.
- Construye algoritmos secuenciales.
- Resuelve problemas con decisiones simples, compuestas y múltiples.
- Verifica resultados mediante pruebas básicas.
Producto de unidad¶
Compendio de ejercicios resueltos sobre estructuras secuenciales y condicionales.
Sesión 1: Pensamiento algorítmico, datos y variables¶
Cuaderno de trabajo: S01_Algoritmos_Datos.ipynb
Objetivo¶
Comprender qué es un algoritmo, organizar una solución mediante entrada, proceso y salida, e identificar datos para almacenarlos en variables según su tipo.
Secuencia didáctica sugerida¶
- Activación: distinguir una instrucción cotidiana de un algoritmo.
- Modelado: resolver un problema simple usando entrada, proceso y salida.
- Práctica guiada: usar
print(),input(),int()yfloat(). - Reto: construir una ficha básica de usuario o estudiante.
- Cierre: explicar qué diferencia existe entre dato, variable y tipo.
Contenidos¶
- Concepto de algoritmo.
- Estructura entrada, proceso y salida.
- Representación de algoritmos en lenguaje natural, pseudocódigo y diagrama de flujo.
- Entorno de trabajo según el lenguaje y la herramienta seleccionada.
- Salidas con
print(). - Entradas con
input(). - Tipos de datos:
str,int,float,bool. - Variables y buenas prácticas de nombrado.
- Constantes.
- Metodología para resolver problemas y casos de prueba.
Producto esperado¶
Programa que capture y muestre datos básicos de forma estructurada.
Sesión 2: Expresiones y secuencia en la solución de problemas¶
Cuaderno de trabajo: S02_Operadores_Algoritmos_Secuenciales.ipynb
Objetivo¶
Resolver problemas secuenciales utilizando operadores y conversiones de datos en un lenguaje de programación.
Secuencia didáctica sugerida¶
- Activación: predecir el resultado de expresiones simples.
- Modelado: construir un algoritmo que calcule un promedio o costo total.
- Práctica guiada: aplicar operadores aritméticos, relacionales y lógicos.
- Reto: resolver un problema de cálculo con varias entradas.
- Cierre: justificar por qué un programa secuencial no requiere decisiones.
Contenidos¶
- Operadores de asignación.
- Operadores aritméticos.
- Operadores relacionales.
- Operadores lógicos.
- Expresiones y precedencia de operadores.
- Conversión con
int()yfloat(). - Estructura secuencial.
- Organización en entrada, proceso y salida.
- Verificación de resultados.
Producto esperado¶
Programas que leen datos, realizan cálculos y muestran resultados correctamente formateados.
Sesión 3: Decisiones simples en la lógica del programa¶
Cuaderno de trabajo: S03_Decisiones.ipynb
Objetivo¶
Construir programas que tomen decisiones usando estructuras if y if-else.
Contenidos¶
- Expresiones condicionales.
if.if-else.- Condiciones compuestas con
andyor. - Validación básica de datos.
- Casos de prueba.
Producto esperado¶
Programas que responden de manera diferente según las condiciones de entrada.
Sesión 4: Decisiones múltiples y lógica anidada¶
Cuaderno de trabajo: S04_Decisiones_Multiples.ipynb
Objetivo¶
Resolver problemas con varios caminos lógicos usando estructuras if-elif-else, match-case y condicionales anidados.
Contenidos¶
- Condicionales anidados.
- Condicionales múltiples con
if-elif-else. - Selección de casos con
match-case. - Priorización de condiciones.
- Clasificación de datos.
- Casos límite.
Producto esperado¶
Programas que clasifican y toman decisiones de acuerdo con varios criterios usando decisiones múltiples, match-case o lógica anidada.
Sesión 5: Evaluación de desempeño de la unidad 1¶
Cuaderno de trabajo: S05_Evaluacion_1.ipynb
Evidencia¶
Programa individual que integre variables, operadores, decisiones simples, múltiples o anidadas y selección con match-case, organizando la solución en entrada, proceso y salida.
Criterios específicos¶
- Analiza bien el problema.
- Usa datos y operadores con corrección.
- Implementa decisiones simples, múltiples, anidadas o
match-casesegún el problema. - Presenta resultados claros.
- Realiza pruebas con casos normales y límite antes de entregar.
Unidad 2: Estructuras repetitivas y procesamiento de datos¶
Propósito de la unidad¶
Que el estudiante automatice tareas mediante bucles y procese colecciones de datos usando listas, cadenas, búsqueda, ordenación, matrices y diccionarios simples.
Competencias de la unidad¶
- Usa estructuras repetitivas para automatizar procesos.
- Aplica contadores y acumuladores.
- Maneja listas, cadenas, matrices y diccionarios simples.
- Aplica búsqueda secuencial y ordenación básica en problemas sencillos.
- Procesa datos organizados en filas, columnas y pares clave-valor.
- Integra varias estructuras en programas de complejidad progresiva.
Producto de unidad¶
Compendio de ejercicios resueltos sobre estructuras repetitivas y procesamiento de datos.
Sesión 6: Repetición definida con for¶
Cuaderno de trabajo: S06_For.ipynb
Objetivo¶
Resolver problemas que requieren repetir una acción un número conocido de veces.
Contenidos¶
- Bucle
for. - Uso de
range(). - Contadores.
- Acumuladores.
- Sumatorias.
Producto esperado¶
Programas que usan for, contadores y acumuladores para procesar varios datos.
Sesión 7: Repetición condicionada con while¶
Cuaderno de trabajo: S07_While.ipynb
Objetivo¶
Resolver problemas en los que la repetición depende de una condición de parada.
Contenidos¶
- Bucle
while. - Condición de parada.
- Centinelas.
- Validación iterativa.
- Control de ingreso de datos.
Producto esperado¶
Programa que use while, centinelas y validación iterativa de datos.
Sesión 8: Listas, cadenas y procesamiento de colecciones¶
Cuaderno de trabajo: S08_Listas_Cadenas.ipynb
Objetivo¶
Procesar conjuntos de datos usando listas y cadenas en problemas de recorrido y análisis simple.
Contenidos¶
- Listas.
- Cadenas.
- Recorrido de colecciones.
- Conteos condicionados.
- Transformación básica de texto.
Producto esperado¶
Programa que recorra una colección, cuente elementos y transforme información textual.
Sesión 9: Búsqueda secuencial y ordenación básica¶
Cuaderno de trabajo: S09_Busqueda_Ordenacion.ipynb
Objetivo¶
Resolver problemas de localización y ordenamiento de datos usando técnicas básicas.
Contenidos¶
- Búsqueda secuencial.
- Comparación entre elementos.
- Intercambio de valores.
- Ordenación básica por intercambio.
- Análisis del proceso de búsqueda u ordenación.
Producto esperado¶
Programa que encuentre elementos y ordene listas con una estrategia elemental.
Sesión 10: Matrices y organización tabular de información¶
Cuaderno de trabajo: S10_Matrices.ipynb
Objetivo¶
Representar y procesar datos organizados en filas y columnas, incluyendo operaciones matemáticas básicas con matrices.
Contenidos¶
- Concepto de matriz o estructura bidimensional.
- Recorrido por filas.
- Recorrido por columnas.
- Promedios y totales por fila.
- Totales por columna.
- Organización tabular de información.
- Consulta y actualización de datos.
- Transpuesta.
- Producto por escalar.
- Producto de matrices.
- Inversa 2x2.
Producto esperado¶
Programa que recorra una matriz y obtenga resúmenes por filas o columnas, o que aplique operaciones matriciales básicas.
Sesión 11: Diccionarios, organización clave-valor y consulta de datos¶
Cuaderno de trabajo: S11_Diccionarios.ipynb
Objetivo¶
Modelar información mediante pares clave-valor para registrar y consultar datos de forma directa.
Contenidos¶
- Diccionarios.
- Claves y valores.
- Registro de datos.
- Consulta y actualización de datos.
Producto esperado¶
Programa que use diccionarios para guardar, consultar y actualizar información.
Sesión 12: Evaluación de desempeño de la unidad 2¶
Cuaderno de trabajo: S12_Evaluacion_2.ipynb
Evidencia¶
Programa aplicado que use ciclos y estructuras de datos de la unidad 2, integrando for, while, listas, cadenas, búsqueda, ordenación, matrices y diccionarios según el problema.
Criterios específicos¶
- Integra correctamente las estructuras estudiadas.
- Organiza el código en bloques claros.
- Procesa múltiples datos sin errores graves.
- Resuelve correctamente recorridos, búsquedas, ordenación u operaciones con matrices cuando corresponda.
- Presenta resultados comprensibles.
- Demuestra pruebas con casos normales y límite.
Unidad 3: Problemas estructurados y persistencia básica¶
Propósito de la unidad¶
Que el estudiante organice programas mediante funciones, integre colecciones con menús y use archivos de texto para resolver problemas aplicados con mayor claridad, control y continuidad de los datos.
Competencias de la unidad¶
- Diseña funciones con parámetros y retorno.
- Integra funciones, colecciones y menús simples.
- Lee, escribe y recupera información en archivos de texto.
- Relaciona datos, operaciones y estructura del programa para resolver ejercicios completos.
Producto de la unidad¶
Compendio parcial de ejercicios resueltos sobre modularización, integración y persistencia básica.
Sesión 13: Funciones, parámetros, retorno y modularización¶
Cuaderno de trabajo: S13_Funciones.ipynb
Objetivo¶
Dividir un problema en partes reutilizables mediante funciones con parámetros y retorno.
Contenidos¶
def.- Parámetros.
return.- Modularización.
- Reutilización de código.
Producto esperado¶
Programa organizado en funciones claras que resuelvan subproblemas concretos y presenten resultados verificables.
Sesión 14: Integración de funciones, colecciones y menús¶
Cuaderno de trabajo: S14_Integracion_Menus.ipynb
Objetivo¶
Construir un programa que integre funciones, estructuras de datos y un menú sencillo de opciones.
Contenidos¶
- Menús para organizar opciones del programa.
- Integración de funciones con listas o diccionarios.
- Registro, consulta, actualización y salida.
- Coordinación del flujo del programa.
- Pruebas de funcionamiento.
Producto esperado¶
Programa modular con menú que registre, consulte o actualice información en memoria.
Sesión 15: Persistencia básica de información¶
Cuaderno de trabajo: S15_Archivos.ipynb
Objetivo¶
Registrar y recuperar información simple usando archivos de texto.
Contenidos¶
- Concepto de persistencia.
- Archivos de texto.
- Escritura.
- Lectura.
- Registro y recuperación de datos.
- Procesamiento básico de información guardada.
Producto esperado¶
Programa que escriba datos en un archivo y luego los lea para mostrarlos o procesarlos.
Sesión 16: Evaluación final del curso¶
Cuaderno de trabajo: S16_Evaluacion_Final.ipynb
Evidencia¶
Evaluación práctica integradora con problemas que combinen funciones, menús, colecciones y persistencia básica, organizada en entrada, proceso y salida y acompañada por el compendio trabajado en el curso.
Criterios específicos¶
- Integra funciones, menús, colecciones y archivos según el problema.
- Organiza la solución en bloques claros y verificables.
- Presenta resultados correctos, ordenados y comprensibles.
- Demuestra comprensión integral de los fundamentos de programación mediante pruebas básicas.
7. Distribución resumida¶
Nombre del curso: Fundamentos de Programación (FP)
Producto del curso: Compendio de resolución de ejercicios de programación
Duración: 16 sesiones teórico-prácticas
Unidad 1 - U1: Estructuras secuenciales y condicionales
Producto U1: Compendio parcial de ejercicios sobre estructuras secuenciales y condicionales
s1: Pensamiento algorítmico, datos y variables (algoritmos, representación, entrada-proceso-salida, variables, tipos de datos y constantes)
s2: Algoritmos secuenciales y operadores (asignación, operadores aritméticos, relacionales y lógicos, expresiones y conversión)
s3: Decisiones simples y compuestas (if, if-else, condiciones compuestas, validación y casos de prueba)
s4: Decisiones múltiples y lógica anidada (if-elif-else, match-case, decisiones anidadas, clasificación y casos límite)
s5: Evaluación 1 (variables, operadores, decisiones y match-case)
Unidad 2 - U2: Estructuras repetitivas y procesamiento de datos
Producto U2: Compendio parcial de ejercicios sobre estructuras repetitivas y procesamiento de datos
s6: Repetición definida con for (for, range, contadores, acumuladores y sumatorias)
s7: Repetición condicionada con while (while, condición de parada, centinelas, validación y control de ingreso)
s8: Listas y cadenas (listas, cadenas, recorridos, conteos y transformación de texto)
s9: Búsqueda secuencial y ordenación básica (búsqueda, comparación, intercambio y análisis del proceso)
s10: Matrices y organización tabular (filas, columnas, recorridos y operaciones matriciales básicas)
s11: Diccionarios y organización clave-valor (claves, valores, registro, consulta y actualización)
s12: Evaluación 2 (ciclos, listas, cadenas, búsqueda, ordenación, matrices y diccionarios)
Unidad 3 - U3: Problemas estructurados y persistencia básica
Producto U3: Compendio parcial de ejercicios sobre modularización, integración y persistencia básica
s13: Funciones y modularización (funciones, parámetros, return, modularización y reutilización)
s14: Integración de funciones, colecciones y menús (menús, listas o diccionarios, flujo y opciones del programa)
s15: Persistencia básica de información (archivos de texto, escritura, lectura, registro y recuperación)
s16: Evaluación final del curso (integración de funciones, menús, colecciones y persistencia)
8. Recursos¶
- Computadora o laptop.
- Acceso a un entorno de programación o IDE según el lenguaje seleccionado.
- Guías o cuadernos de práctica por sesión.
- Lenguaje de programación definido para el curso.
- Proyector o pantalla para modelado en vivo.
- Rúbrica de evaluación práctica.
9. Recomendación pedagógica final¶
Si el curso está dirigido a estudiantes de primer ciclo de Ingeniería de Sistemas, cada sesión debe priorizar menos contenido y más práctica significativa. Es preferible que el estudiante resuelva 2 o 3 problemas bien guiados y explique su lógica, antes que exponer muchas estructuras en una sola clase sin tiempo de aplicación.
En este nivel, una buena sesión de programación se reconoce porque el estudiante:
- entiende qué problema está resolviendo,
- puede anticipar qué debería ocurrir al ejecutar,
- prueba su programa con distintos datos,
- y explica por qué su solución funciona.