Objetivo del módulo
Integrar todos los aprendizajes del curso en el diseño, representación, comprobación y explicación de un algoritmo completo.
Al terminar el proyecto, podrá demostrar que sabe:
- comprender una situación antes de intentar resolverla;
- convertir una descripción en requisitos verificables;
- identificar entradas, procesos, decisiones, repeticiones y salidas;
- elegir variables y explicar qué representa cada una;
- realizar cálculos en el orden correcto;
- validar datos;
- tomar decisiones con condiciones simples y combinadas;
- repetir un proceso hasta recibir un centinela;
- utilizar contadores y acumuladores;
- evitar divisiones entre cero;
- expresar una solución mediante pseudocódigo;
- representar la misma solución con un diagrama de flujo;
- diseñar casos normales, límite, inválidos y sin datos;
- realizar una prueba de escritorio;
- localizar y corregir errores;
- demostrar el funcionamiento mediante evidencia;
- comunicar una solución de manera comprensible.
El proyecto no exige escribir código en Python, Java, JavaScript, C# ni ningún otro lenguaje. Su propósito es comprobar que usted ya sabe pensar y trabajar como programador antes de aprender una sintaxis concreta.
Resultado final
Construirá un sistema lógico para registrar pedidos en la Cafetería COA.
El sistema permitirá:
- seleccionar productos;
- ingresar cantidades;
- rechazar datos inválidos;
- calcular importes;
- acumular un pedido;
- aplicar un descuento;
- calcular el costo de entrega;
- producir un resumen final;
- terminar correctamente cuando se ingrese un centinela.
El trabajo final incluirá:
- análisis del problema;
- matriz de requisitos;
- tabla de entradas, procesos y salidas;
- tabla de variables;
- ejemplos calculados manualmente;
- plan de pruebas;
- pseudocódigo;
- diagrama de flujo;
- prueba de escritorio;
- informe de resultados;
- correcciones realizadas;
- reflexión final.
Distribución exacta del tiempo
| Etapa | Producto de la etapa | Tiempo |
|---|---|---|
| Presentación y comprensión | Resumen del problema | 15 min |
| Requisitos y datos | Matrices completas | 20 min |
| Diseño de ejemplos y pruebas | Resultados esperados | 35 min |
| Construcción del pseudocódigo | Algoritmo completo | 45 min |
| Construcción del diagrama | Representación equivalente | 35 min |
| Prueba de escritorio y corrección | Evidencia de funcionamiento | 30 min |
| Documentación y armado | Archivo final organizado | 20 min |
| Evaluación, reflexión y entrega | Cierre del curso | 10 min |
| Total | 210 min |
Orden recomendado
1. LEER EL PROBLEMA COMPLETO
↓
2. SUBRAYAR REGLAS Y LÍMITES
↓
3. DEFINIR ENTRADAS Y SALIDAS
↓
4. ELEGIR VARIABLES
↓
5. CALCULAR EJEMPLOS A MANO
↓
6. DISEÑAR CASOS DE PRUEBA
↓
7. ESCRIBIR PSEUDOCÓDIGO
↓
8. CREAR DIAGRAMA DE FLUJO
↓
9. REALIZAR PRUEBA DE ESCRITORIO
↓
10. CORREGIR Y REPETIR PRUEBAS
↓
11. EXPLICAR Y ENTREGARNo se recomienda comenzar por el diagrama o por el pseudocódigo. Una representación ordenada de una idea incorrecta continúa siendo una solución incorrecta.
PARTE 1 — PREPARACIÓN
Video de inicio: analizar antes de escribir
Cómo analizar un problema antes de escribir el algoritmo — Carlos Master Web
Duración: 4 minutos y 39 segundos Canal: Carlos Master Web Tema exacto: Comprender el problema, reconocer entradas y salidas y planificar antes de escribir el algoritmo
Pregunta antes de continuar
Después del video, complete:
Antes de escribir un algoritmo necesito saber ____________, recibir ____________, aplicar ____________ y producir ____________.
No existe una única redacción correcta. La respuesta debe mencionar:
- qué problema se resuelve;
- qué datos ingresan;
- qué reglas se aplican;
- qué resultados deben mostrarse.
Regla principal del proyecto
Primero se demuestra que se comprendió el problema. Después se construye la solución.
Puede escribir un pseudocódigo con apariencia correcta y aun así resolver otro problema.
Por ejemplo:
Requisito:
Las compras de 30 o más reciben 10 % de descuento.
Interpretación incorrecta:
Las compras mayores que 30 reciben 10 %.El error parece pequeño, pero cambia el resultado exacto para 30.
El proyecto será evaluado por correspondencia:
REQUISITO ↔ PSEUDOCÓDIGO ↔ DIAGRAMA ↔ PRUEBASi las cuatro partes no expresan la misma regla, existe una inconsistencia.
PARTE 2 — SITUACIÓN DEL PROYECTO
Cafetería COA
Una cafetería necesita organizar los pedidos realizados por una persona.
La persona puede agregar varias líneas de productos. En cada línea selecciona un producto e indica una cantidad.
El sistema debe:
- reconocer el producto;
- comprobar la cantidad;
- calcular el importe de la línea;
- acumular los datos válidos;
- permitir agregar más productos;
- terminar cuando se ingrese el código 0;
- aplicar las reglas finales;
- mostrar un resumen.
No se necesitan listas, arreglos, funciones, bases de datos, interfaces gráficas ni un lenguaje de programación.
Catálogo
| Código | Producto | Precio por unidad |
|---|---|---|
| 1 | Sándwich | 4 |
| 2 | Bebida | 2 |
| 3 | Postre | 3 |
| 0 | Finalizar pedido | No aplica |
Los precios están expresados en unidades monetarias y se mantienen sin impuestos para concentrar el proyecto en la lógica.
Requisitos completos
Registro de productos
- El sistema comienza con todos los contadores y totales en 0.
- Se solicita un código de producto.
- El código 0 termina el registro.
- El código 0 no representa un producto y nunca debe contarse.
- Los códigos válidos son 1, 2 y 3.
- Cualquier otro código es inválido.
- Un código inválido muestra
"Código inválido". - Cuando el código es inválido, no se solicita cantidad para esa línea.
- Después de un código inválido, se solicita otro código.
Cantidades
- Para un producto válido se solicita una cantidad.
- Las cantidades válidas están entre 1 y 10, ambos incluidos.
- Una cantidad menor que 1 o mayor que 10 es inválida.
- Una cantidad inválida muestra
"Cantidad inválida". - Una línea con cantidad inválida no aumenta los totales válidos.
- Después de una cantidad inválida, se solicita un nuevo código.
Cálculo y acumulación
- El precio se determina según el código.
- El importe de una línea válida se calcula así:
importe_linea = precio × cantidad- Cada línea válida aumenta en 1 la cantidad de líneas válidas.
- Las unidades compradas se acumulan.
- El importe de cada línea válida se suma al subtotal.
- Cada código o cantidad inválidos aumenta en 1 el contador de entradas inválidas.
- Después de cada línea se solicita un nuevo código.
Descuento
- Si no existe ninguna línea válida, se muestra
"No se registraron productos válidos". - Si no existen líneas válidas, no se calcula promedio ni se solicita tipo de entrega.
- Un subtotal menor que 30 no recibe descuento.
- Un subtotal de 30 o más recibe un descuento del 10 %.
- El descuento se calcula sobre el subtotal.
- El importe después del descuento se calcula así:
importe_con_descuento = subtotal - descuentoEntrega
- Si existe al menos una línea válida, se solicita un tipo de entrega.
- El valor 1 significa
"Recoger en el local". - El valor 2 significa
"Entrega a domicilio". - Cualquier otro valor es inválido.
- Si el tipo de entrega es inválido, se vuelve a solicitar hasta recibir 1 o 2.
- Recoger en el local cuesta 0.
- La entrega a domicilio cuesta 3 cuando el importe con descuento es menor que 40.
- La entrega a domicilio es gratuita cuando el importe con descuento es 40 o más.
Resumen
- El total final se calcula así:
total_final = importe_con_descuento + costo_entrega- El promedio ajustado por unidad se calcula así:
promedio_por_unidad = importe_con_descuento / total_unidades- El promedio no incluye el costo de entrega.
- El resumen muestra:
- líneas válidas;
- unidades compradas;
- entradas inválidas;
- subtotal;
- descuento;
- costo de entrega;
- total final;
- promedio ajustado por unidad.
Lo que el proyecto no solicita
No agregue:
- nombres de clientes;
- inventario;
- pago con tarjeta;
- impuestos;
- propinas;
- cupones;
- almacenamiento permanente;
- varios pedidos de clientes distintos;
- productos adicionales;
- menús visuales complejos;
- funciones o procedimientos;
- arreglos o listas;
- código de un lenguaje real.
Agregar elementos no solicitados consume tiempo, introduce errores y dificulta comprobar los requisitos.
Resolver bien un alcance pequeño es mejor que construir parcialmente un sistema enorme.
PARTE 3 — CINCO EJERCICIOS PREPARATORIOS
No entregue por separado los cinco ejercicios siguientes. Incorpore sus respuestas al documento del proyecto.
Ejercicio 1 — Explique el problema sin copiar
Enunciado
Imagine que debe explicarle el sistema a una persona que no leyó los requisitos.
Redacte un párrafo de cinco a ocho oraciones que explique:
- qué información ingresa;
- cómo termina el registro;
- qué datos se consideran válidos;
- qué se acumula;
- cuándo existe descuento;
- cómo funciona la entrega;
- qué resultados aparecen.
Restricción
No copie literalmente la lista de requisitos.
Evidencia de comprensión
Una explicación correcta debe dejar claro que:
- un pedido tiene varias líneas;
- 0 finaliza;
- código y cantidad se validan por separado;
- los datos inválidos no modifican subtotal ni unidades;
- primero se calcula el descuento y luego la entrega;
- el promedio no incluye la entrega.
Ejercicio 2 — Organice entradas, procesos y salidas
Enunciado
Complete la tabla:
| Elemento | Tipo: entrada, proceso o salida | Explicación |
|---|---|---|
| Código de producto | ||
| Cantidad | ||
| Tipo de entrega | ||
| Determinar precio | ||
| Calcular importe de línea | ||
| Acumular unidades | ||
| Calcular descuento | ||
| Calcular costo de entrega | ||
| Líneas válidas | ||
| Total final | ||
| Mensaje de error | ||
| Promedio por unidad |
Preguntas
- ¿El subtotal es entrada, proceso o salida?
- ¿Puede un mismo dato participar en un proceso y mostrarse como salida?
- ¿Por qué el precio no necesita solicitarse?
- ¿Por qué el código 0 debe comprobarse antes de solicitar cantidad?
Ejercicio 3 — Diseñe las variables
Enunciado
Complete una tabla de variables antes de escribir pseudocódigo.
| Variable | Qué representa | Valor inicial | Cuándo cambia |
|---|---|---|---|
codigo | |||
cantidad | |||
precio | |||
importe_linea | |||
lineas_validas | |||
total_unidades | |||
entradas_invalidas | |||
subtotal | |||
descuento | |||
importe_con_descuento | |||
tipo_entrega | |||
costo_entrega | |||
total_final | |||
promedio_por_unidad |
Preguntas de razonamiento
- ¿Qué variables son contadores?
- ¿Qué variables son acumuladores?
- ¿Qué variables se reemplazan en cada línea?
- ¿Qué variables se calculan únicamente al terminar?
- ¿Por qué
subtotal ← importe_lineasería incorrecto? - ¿Por qué
lineas_validas ← 1sería incorrecto?
Ejercicio 4 — Calcule un pedido a mano
Enunciado
Procese manualmente:
Código 1, cantidad 5
Código 2, cantidad 5
Código 0
Tipo de entrega 2Complete:
| Concepto | Cálculo | Resultado |
|---|---|---|
| Sándwiches | ||
| Bebidas | ||
| Subtotal | ||
| Descuento | ||
| Importe con descuento | ||
| Costo de entrega | ||
| Total final | ||
| Total de unidades | ||
| Promedio ajustado por unidad |
Preguntas
- ¿Cuántas líneas válidas existen?
- ¿Cuántas unidades existen?
- ¿Se aplica descuento exactamente en 30?
- ¿La entrega es gratuita?
- ¿Qué cálculo debe hacerse antes de decidir el costo de entrega?
Ejercicio 5 — Prediga antes de construir
Enunciado
Sin escribir todavía el algoritmo completo, determine qué debe ocurrir con cada secuencia:
Caso A
Código 0Caso B
Código 9
Código 1, cantidad 0
Código 3, cantidad 2
Código 0
Tipo de entrega 1Caso C
Código 2, cantidad 10
Código 1, cantidad 10
Código 0
Tipo de entrega 2Para cada caso indique:
- líneas válidas;
- unidades;
- entradas inválidas;
- subtotal;
- descuento;
- importe con descuento;
- entrega;
- total;
- promedio o mensaje.
Objetivo
Defina los resultados esperados antes del algoritmo para evitar adaptar la respuesta a lo que produzca su solución.
PARTE 4 — DISEÑO DEL PROYECTO
Matriz de requisitos
El documento final debe incluir una matriz.
No es necesario copiar las 40 reglas como 40 filas. Se pueden agrupar sin perder información.
Utilice como mínimo estos grupos:
| ID | Grupo | Requisito verificable | Evidencia |
|---|---|---|---|
| R1 | Inicialización | Contadores y totales comienzan en 0 | Primera fila del rastreo |
| R2 | Centinela | 0 termina y no solicita cantidad | Caso sin datos |
| R3 | Códigos | Solo 1, 2 y 3 son válidos | Caso inválido |
| R4 | Cantidades | Solo 1 a 10 son válidas | Casos de límite |
| R5 | Precios | 1→4, 2→2, 3→3 | Tres líneas de ejemplo |
| R6 | Acumulación | Cuenta líneas y suma unidades e importes | Prueba de escritorio |
| R7 | Descuento | Desde subtotal 30 se aplica 10 % | Casos antes y después |
| R8 | Entrega | 1 cuesta 0; 2 cuesta 3 o 0 según 40 | Casos de entrega |
| R9 | Resumen | Calcula total y promedio protegido | Caso válido y caso vacío |
Puede dividir los grupos si desea mayor precisión.
Tabla de decisiones
Antes del pseudocódigo, complete:
Decisión del producto
| Condición | Acción |
|---|---|
codigo = 0 | |
codigo = 1 | |
codigo = 2 | |
codigo = 3 | |
| Cualquier otro |
Decisión de cantidad
| Condición | Acción |
|---|---|
cantidad < 1 | |
1 ≤ cantidad ≤ 10 | |
cantidad > 10 |
Decisión de descuento
| Condición | Descuento |
|---|---|
subtotal < 30 | |
subtotal ≥ 30 |
Decisión de entrega
| Tipo | Importe con descuento | Costo |
|---|---|---|
| 1 | Cualquier importe | |
| 2 | Menor que 40 | |
| 2 | 40 o más | |
| Otro | No aplica |
Descomposición
Divida la solución en cinco bloques.
BLOQUE A — PREPARAR
Inicializar contadores y acumuladores.
BLOQUE B — REGISTRAR
Leer códigos hasta recibir 0.
BLOQUE C — VALIDAR Y ACUMULAR
Validar código, leer cantidad, validar cantidad,
determinar precio y actualizar totales.
BLOQUE D — CALCULAR EL CIERRE
Aplicar descuento, validar entrega, calcular total y promedio.
BLOQUE E — MOSTRAR
Presentar mensaje vacío o resumen completo.Pregunta de control
¿En qué bloque debe aparecer cada acción?
subtotal ← 0LEER codigoprecio ← 3total_unidades ← total_unidades + cantidaddescuento ← subtotal × 0.10LEER tipo_entregaMOSTRAR total_final
Esqueleto del algoritmo
Antes de completar los detalles, escriba la estructura:
INICIO
INICIALIZAR
LEER primer código
MIENTRAS no sea el centinela
VALIDAR código
SI el código es válido
DETERMINAR precio
LEER cantidad
VALIDAR cantidad
SI la cantidad es válida
CALCULAR línea
ACTUALIZAR contadores y subtotal
SINO
REGISTRAR entrada inválida
FIN SI
SINO
REGISTRAR entrada inválida
FIN SI
LEER nuevo código
FIN MIENTRAS
SI existen líneas válidas
CALCULAR descuento
VALIDAR tipo de entrega
CALCULAR entrega
CALCULAR total y promedio
MOSTRAR resumen
SINO
MOSTRAR mensaje sin productos
FIN SI
FINEste esqueleto organiza la lógica, pero no constituye todavía la solución entregable.
PARTE 5 — PSEUDOCÓDIGO
Reglas de escritura
El pseudocódigo:
- puede redactarse a mano o digitalmente;
- no necesita seguir la sintaxis exacta de un lenguaje;
- debe utilizar sangría;
- debe distinguir lectura, asignación, condición, repetición y salida;
- debe conservar nombres de variables coherentes;
- debe mostrar con claridad dónde termina cada bloque;
- debe poder ser comprendido por otra persona;
- debe corresponder con el diagrama.
Palabras sugeridas
INICIO
FIN
LEER
MOSTRAR
SI
ENTONCES
SINO
FIN SI
MIENTRAS
HACER
FIN MIENTRAS
REPETIR
HASTA QUENo existe obligación de utilizar exactamente esas palabras si la notación elegida es clara y consistente.
Orden interno recomendado
Paso 1 — Inicializar
Identifique qué valores deben comenzar en 0.
Paso 2 — Realizar lectura anticipada
Lea el primer código antes del ciclo.
Paso 3 — Comprobar centinela
El ciclo continúa mientras el código sea diferente de 0.
Paso 4 — Validar código
No solicite cantidad si el código es inválido.
Paso 5 — Determinar precio
Asigne el precio correspondiente a 1, 2 o 3.
Paso 6 — Validar cantidad
Solo una cantidad entre 1 y 10 permite acumular.
Paso 7 — Actualizar
Una línea válida debe producir tres actualizaciones:
lineas_validas ← lineas_validas + 1
total_unidades ← total_unidades + cantidad
subtotal ← subtotal + importe_lineaPaso 8 — Renovar la lectura
Lea otro código antes de regresar a la condición del ciclo.
Paso 9 — Proteger el cierre
Calcule promedio y entrega únicamente si existe al menos una línea válida.
Paso 10 — Validar entrega
Repita la lectura hasta recibir 1 o 2.
Paso 11 — Mostrar
Presente todos los datos indicados en los requisitos.
Errores que deben evitarse
Procesar el centinela
INCORRECTO:
Procesar código
Después comprobar si era 0Solicitar cantidad para un código inválido
INCORRECTO:
LEER codigo
LEER cantidad
Después validar codigoReemplazar el subtotal
INCORRECTO:
subtotal ← importe_lineaReiniciar el contador
INCORRECTO:
lineas_validas ← 1Olvidar una nueva lectura
INCORRECTO:
MIENTRAS codigo ≠ 0
...
FIN MIENTRASSi codigo no cambia, el ciclo puede no terminar.
Aplicar descuento a cada línea
El requisito indica un descuento según el subtotal completo. Debe calcularse al final.
Decidir entrega con el subtotal
La entrega gratuita depende del importe con descuento, no del subtotal.
Dividir sin comprobar
El promedio solo se calcula si existen unidades válidas.
PARTE 6 — DIAGRAMA DE FLUJO
Video de apoyo
Resolver un algoritmo mediante pseudocódigo y diagrama de flujo — Ramon Mendoza Ochoa
Duración: 8 minutos y 52 segundos Canal: Ramon Mendoza Ochoa Tema exacto: Representar una misma solución mediante pseudocódigo y diagrama de flujo
Herramientas permitidas
El diagrama puede realizarse:
- a mano;
- en PSeInt;
- en diagrams.net;
- en otra herramienta de diagramación.
La herramienta no se evalúa. Se evalúa la lógica.
Una fotografía o captura es válida si:
- está enfocada;
- se puede ampliar;
- todos los textos se leen;
- ninguna flecha queda cortada;
- se distingue la dirección del flujo.
Símbolos mínimos
| Símbolo | Uso |
|---|---|
| Óvalo | Inicio o fin |
| Paralelogramo | Leer o mostrar |
| Rectángulo | Asignación o cálculo |
| Rombo | Pregunta o condición |
| Flecha | Dirección del flujo |
Esquema
( INICIO )
↓
┌─────────────┐
│ PROCESO │
└──────┬──────┘
↓
/ ENTRADA /
↓
◇ ¿CONDICIÓN?
Sí ↙ ↘ NoDecisiones que deben aparecer
El diagrama debe mostrar, como mínimo:
- ¿El código es 0?
- ¿El código es válido?
- ¿Qué precio corresponde?
- ¿La cantidad es válida?
- ¿Existe alguna línea válida?
- ¿El subtotal alcanza 30?
- ¿El tipo de entrega es 1 o 2?
- Si es domicilio, ¿el importe con descuento alcanza 40?
Regresos que deben aparecer
Debe existir una flecha de regreso:
- desde el final de cada línea hacia la lectura de un nuevo código;
- desde un código inválido hacia la lectura de un nuevo código;
- desde una cantidad inválida hacia la lectura de un nuevo código;
- desde un tipo de entrega inválido hacia la lectura del tipo de entrega.
No conecte el tipo de entrega inválido con la lectura del código. Son etapas diferentes.
Prueba de equivalencia
Utilice esta tabla para comparar pseudocódigo y diagrama:
| Elemento | Pseudocódigo | Diagrama | ¿Coinciden? |
|---|---|---|---|
| Valores iniciales | |||
| Lectura inicial del código | |||
| Centinela 0 | |||
| Validación del código | |||
| Precios | |||
| Validación de cantidad | |||
| Actualizaciones | |||
| Nueva lectura | |||
| Caso sin productos | |||
| Descuento | |||
| Validación de entrega | |||
| Costo de entrega | |||
| Total y promedio | |||
| Resumen |
Si una regla aparece solo en una representación, el proyecto aún no está listo.
PARTE 7 — PLAN DE PRUEBAS
Pruebas obligatorias
Calcule primero los resultados esperados.
Caso A — Sin productos
Código 0Comprueba:
- cero iteraciones;
- centinela como primera entrada;
- protección del promedio;
- ausencia de solicitud de entrega.
Caso B — Pedido sencillo
Código 1, cantidad 2
Código 0
Tipo de entrega 1Comprueba:
- una iteración;
- producto 1;
- recogida;
- subtotal sin descuento.
Caso C — Límite de descuento
Código 1, cantidad 5
Código 2, cantidad 5
Código 0
Tipo de entrega 2Comprueba:
- varias iteraciones;
- subtotal exactamente 30;
- descuento del 10 %;
- entrega con costo.
Caso D — Entrega gratuita
Código 3, cantidad 9
Código 2, cantidad 9
Código 0
Tipo de entrega 2Comprueba:
- cantidad válida cercana al máximo;
- subtotal 45;
- importe con descuento superior a 40;
- domicilio gratuito.
Caso E — Datos inválidos y recuperación
Código 9
Código 2, cantidad 0
Código 3, cantidad 2
Código 0
Tipo de entrega 1Comprueba:
- código inválido;
- cantidad inválida;
- continuación después de errores;
- acumulación únicamente de una línea válida;
- contador de entradas inválidas.
Caso F — Cantidades límite
Código 1, cantidad 1
Código 2, cantidad 10
Código 0
Tipo de entrega 1Comprueba:
- cantidad mínima válida;
- cantidad máxima válida;
- más de una línea;
- acumulación de unidades.
Caso G — Validación de entrega
Código 3, cantidad 1
Código 0
Tipo de entrega 7
Tipo de entrega 2Comprueba:
- rechazo de un tipo inválido;
- nueva solicitud;
- aceptación posterior;
- costo de entrega para un importe menor que 40.
Tabla de resultados
Complete antes de ejecutar:
| Caso | Líneas | Unidades | Inválidas | Subtotal | Descuento | Importe con descuento | Entrega | Total | Promedio o mensaje |
|---|---|---|---|---|---|---|---|---|---|
| A | |||||||||
| B | |||||||||
| C | |||||||||
| D | |||||||||
| E | |||||||||
| F | |||||||||
| G |
Para el caso A, escriba el mensaje en la última columna y marque los cálculos que no corresponden como No aplica.
Prueba de escritorio obligatoria
Realice el rastreo completo del caso C.
Utilice una fila cada vez que:
- se lea un código;
- se lea una cantidad;
- se determine un precio;
- se actualicen contadores;
- se actualice el subtotal;
- se calcule el descuento;
- se seleccione entrega;
- se calcule el resultado final.
Plantilla
| Paso | Código | Cantidad | Precio | Importe línea | Líneas | Unidades | Inválidas | Subtotal | Acción |
|---|---|---|---|---|---|---|---|---|---|
| 0 | — | — | — | — | 0 | 0 | 0 | 0 | Inicializar |
Después del ciclo, complete:
| Subtotal | Descuento | Importe con descuento | Tipo entrega | Costo entrega | Total final | Promedio |
|---|---|---|---|---|---|---|
Informe de ejecución
Después de probar cada caso, complete:
| Caso | Esperado | Obtenido | Estado | Observación |
|---|---|---|---|---|
| A | CORRECTO o FALLA | |||
| B | ||||
| C | ||||
| D | ||||
| E | ||||
| F | ||||
| G |
No escriba CORRECTO solo porque el algoritmo terminó. El resultado completo debe coincidir.
Registro de correcciones
Si encuentra errores, utilice:
| ID | Caso que falla | Primera diferencia | Causa | Cambio realizado | Casos repetidos | Resultado |
|---|---|---|---|---|---|---|
| E1 |
Si no encuentra errores
No invente defectos.
Escriba:
No se detectaron diferencias en los siete casos obligatorios. Esto no demuestra que el algoritmo sea perfecto, pero aporta evidencia para los requisitos y límites definidos.
PARTE 8 — RETO OPCIONAL
Producto con la línea de mayor importe
Esta ampliación no es necesaria para aprobar.
Agregue al resumen:
- nombre del producto cuya línea válida tuvo el importe más alto;
- valor de ese importe.
No utilice listas.
Reglas
- El máximo comienza en 0.
- Después de calcular una línea válida, se compara su importe con el máximo.
- Si el importe es mayor, se guardan:
- el nuevo máximo;
- el nombre del producto.
- En un empate, se conserva la primera línea.
Pregunta
¿Por qué la condición debe ser importe_linea > mayor_importe y no ≥ si se desea conservar la primera?
PARTE 9 — ENTREGABLE FINAL
Estructura obligatoria del archivo
Portada
Incluya:
- COA — Cursos Online Avanzados;
- curso Lógica de Programación;
- Módulo 6;
- nombre completo;
- fecha;
- título:
Proyecto final — Cafetería COA.
Sección 1 — Comprensión
- Respuesta del ejercicio 1.
- Explicación de lo que se encuentra dentro y fuera del alcance.
Sección 2 — Requisitos y datos
- Matriz de requisitos.
- Tabla de entradas, procesos y salidas.
- Tabla de decisiones.
Sección 3 — Variables
- Tabla de variables completa.
- Identificación de contadores y acumuladores.
Sección 4 — Resultados esperados
- Cálculo manual del ejercicio 4.
- Tabla de los siete casos obligatorios.
Sección 5 — Solución
- Pseudocódigo completo.
- Diagrama de flujo completo.
- Tabla de equivalencia.
Sección 6 — Comprobación
- Prueba de escritorio del caso C.
- Informe de ejecución de los siete casos.
- Registro de correcciones o declaración de que no se detectaron diferencias.
Sección 7 — Reflexión
Responda:
- ¿Qué parte del problema tuvo que descomponer con mayor cuidado?
- ¿Qué requisito habría sido fácil olvidar sin la matriz?
- ¿Qué diferencia existe entre líneas válidas y unidades?
- ¿Por qué el orden descuento–entrega modifica el resultado?
- ¿Qué caso de prueba encontró más valioso?
- ¿Qué error detectó o qué error considera más probable?
- ¿Qué parte de esta solución podría trasladar a otro lenguaje?
- ¿Qué aprendió sobre la forma de pensar de un programador?
Cada respuesta debe tener de dos a cuatro oraciones.
Formatos permitidos
El proyecto puede realizarse:
- completamente digital;
- completamente a mano;
- combinando texto digital con fotografías o capturas.
La entrega final debe ser un único archivo PDF.
No se evalúa:
- calidad artística;
- tipo de letra;
- herramienta utilizada;
- decoración;
- uso de colores.
Sí se evalúa:
- legibilidad;
- orden;
- correspondencia entre requisitos y solución;
- razonamiento;
- resultados;
- evidencia.
Lista de verificación
[ ] Expliqué el problema con mis propias palabras.
[ ] Respeté el alcance y no agregué funciones innecesarias.
[ ] Organicé entradas, procesos y salidas.
[ ] Completé la matriz de requisitos.
[ ] Completé la tabla de decisiones.
[ ] Definí cada variable antes de utilizarla.
[ ] Inicialicé contadores y acumuladores.
[ ] El código 0 termina sin solicitar cantidad.
[ ] Solo acepto códigos 1, 2 y 3.
[ ] Solo acepto cantidades de 1 a 10.
[ ] Los datos inválidos no modifican subtotal ni unidades.
[ ] El contador de entradas inválidas aumenta correctamente.
[ ] Cada línea válida aumenta líneas y unidades.
[ ] El subtotal acumula todos los importes válidos.
[ ] El descuento se aplica desde 30.
[ ] Calculo el importe con descuento antes de la entrega.
[ ] Valido el tipo de entrega hasta recibir 1 o 2.
[ ] La entrega gratuita depende del importe con descuento.
[ ] Protejo el caso sin productos.
[ ] El promedio no incluye entrega.
[ ] Mi pseudocódigo tiene sangría clara.
[ ] Mi ciclo recibe un nuevo código.
[ ] Mi diagrama tiene flechas legibles.
[ ] Pseudocódigo y diagrama representan la misma solución.
[ ] Calculé los esperados antes de probar.
[ ] Incluí los siete casos obligatorios.
[ ] Rastreé por completo el caso C.
[ ] Comparé esperado y obtenido.
[ ] Documenté correcciones y repetí pruebas.
[ ] Respondí la reflexión final.
[ ] Reuní todo en un único PDF legible.Rúbrica del proyecto final
| Criterio | Puntos |
|---|---|
| Comprensión y respeto del alcance | 8 |
| Matriz de requisitos | 8 |
| Entradas, procesos, salidas y decisiones | 7 |
| Diseño y uso de variables | 7 |
| Pseudocódigo: secuencia general | 8 |
| Pseudocódigo: validaciones y decisiones | 8 |
| Pseudocódigo: repetición y actualizaciones | 8 |
| Pseudocódigo: cálculos y resumen | 8 |
| Diagrama de flujo equivalente | 12 |
| Plan de pruebas y resultados esperados | 10 |
| Prueba de escritorio | 8 |
| Informe, correcciones y regresión | 4 |
| Reflexión y claridad de la entrega | 4 |
| Total | 100 |
Interpretación formativa
| Puntaje | Interpretación |
|---|---|
| 90–100 | Dominio sólido de los fundamentos |
| 75–89 | Logro satisfactorio |
| 60–74 | Comprende las bases, pero debe reforzar alguna estructura |
| Menos de 60 | Conviene revisar los módulos relacionados con los errores observados |
Importante
El certificado es de participación. La rúbrica ayuda a orientar el aprendizaje y no convierte el curso en una certificación profesional.
Mapa de retroalimentación
| Si el problema aparece en… | Repasar |
|---|---|
| Comprensión o descomposición | Módulo 1 |
| Variables, cálculos o acumuladores | Módulo 2 |
| Condiciones, rangos o validaciones | Módulo 3 |
| Ciclos, centinelas o actualizaciones | Módulo 4 |
| Casos, rastreo o correcciones | Módulo 5 |
Utilice esta tabla para identificar qué módulo debe repasar según las dificultades encontradas.
Punto de entrega
Se utiliza un solo Google Form para todo el proyecto final:
Entrega de la actividad
Último paso del proyectoUna vez completado este proyecto, sube tu solución utilizando el siguiente formulario.
El archivo debe incluir:
- Nombre completo
- Nombre del curso
- Módulo 6 — Proyecto final
- Todas las secciones obligatorias del proyecto
- Pseudocódigo, diagrama, pruebas y reflexión claramente legibles
Nombre del archivo: Modulo6_ProyectoFinal_Nombre_Apellido.pdf
Antes de enviar, verifica que el archivo tenga el nombre solicitado.
Nombre del archivo
Modulo6_ProyectoFinal_Nombre_Apellido.pdfEjemplo:
Modulo6_ProyectoFinal_Ana_Rojas.pdfPARTE 11 — EVALUACIÓN FINAL
Evaluación breve
Pregunta 1
¿Qué debe ocurrir cuando el primer código es 0?
a. Solicitar cantidad b. Solicitar entrega c. Mostrar que no hubo productos válidos d. Contar una línea
Pregunta 2
¿Por qué se valida el código antes de leer la cantidad?
a. Para que el subtotal sea mayor b. Porque un código inválido no representa un producto c. Para aplicar el descuento d. Porque toda cantidad es inválida
Pregunta 3
¿Cuál actualización acumula correctamente?
a. subtotal ← importe_linea b. subtotal ← 0 c. subtotal ← subtotal + importe_linea d. importe_linea ← subtotal
Pregunta 4
Con subtotal 30, ¿qué descuento corresponde?
a. 0 b. 3 c. 10 d. 30
Pregunta 5
¿Sobre qué valor se decide la entrega gratuita?
a. El subtotal antes de descuento b. La cantidad de líneas c. El importe con descuento d. El total después de entrega
Pregunta 6
¿Por qué el promedio no se calcula cuando no hay líneas válidas?
a. Porque no existe precio b. Porque total_unidades es 0 y no se puede dividir entre 0 c. Porque el descuento siempre es 0 d. Porque no existe entrega
Pregunta 7
¿Qué demuestra la prueba de escritorio?
a. Que el diagrama es bonito b. Cómo cambian las variables paso a paso c. Qué lenguaje se debe aprender d. Que no se necesitan requisitos
Pregunta 8
Después de corregir un caso fallido, ¿qué debe hacerse?
a. Entregar inmediatamente b. Borrar los casos anteriores c. Repetir el caso y las demás pruebas relevantes d. Cambiar los requisitos
Autoevaluación final
Marque una opción:
| Habilidad | Puedo hacerlo solo | Puedo hacerlo con apoyo | Debo practicar |
|---|---|---|---|
| Comprender una situación | |||
| Delimitar el problema | |||
| Descomponerlo | |||
| Reconocer entradas y salidas | |||
| Diseñar variables | |||
| Realizar cálculos | |||
| Construir decisiones | |||
| Validar rangos | |||
| Construir ciclos | |||
| Utilizar contadores | |||
| Utilizar acumuladores | |||
| Escribir pseudocódigo | |||
| Crear diagramas | |||
| Diseñar pruebas | |||
| Realizar un rastreo | |||
| Corregir con evidencia | |||
| Explicar mi solución |
PARTE 12 — DOCUMENTACIÓN Y RECURSOS
Lectura sobre algoritmos
Algoritmos y pseudocódigo — INTEF
Puede utilizarse para repasar:
- características de un algoritmo;
- claridad y finitud;
- resolución de problemas;
- representación mediante pseudocódigo.
Documentación de pseudocódigo
Documentación oficial de PSeInt
Puede utilizarse para:
- consultar asignaciones;
- revisar condiciones;
- revisar ciclos;
- comparar una notación más formal;
- ejecutar opcionalmente el algoritmo.
PSeInt es una herramienta de apoyo. El proyecto continúa siendo independiente de un lenguaje.
Recurso para diagramas
Permite construir el diagrama en el navegador.
No es obligatorio crear una cuenta ni utilizar esta herramienta. Un diagrama dibujado a mano tiene el mismo valor si es correcto y legible.
PARTE 13 — CIERRE DEL CURSO
Qué integró el proyecto
MÓDULO 1
Comprender, descomponer y ordenar
│
▼
MÓDULO 2
Datos, variables, operaciones y acumulación
│
▼
MÓDULO 3
Condiciones, rangos y decisiones
│
▼
MÓDULO 4
Repeticiones, contadores y centinelas
│
▼
MÓDULO 5
Pruebas, rastreo, errores y correcciones
│
▼
MÓDULO 6
Una solución completa y demostrableHabilidades obtenidas al finalizar el curso
Durante el curso, ha practicado:
- pensamiento lógico;
- pensamiento computacional;
- análisis de situaciones;
- descomposición;
- abstracción;
- reconocimiento de patrones;
- orden de operaciones;
- diseño de algoritmos;
- manejo conceptual de datos;
- variables y estado;
- decisiones;
- condiciones combinadas;
- validación;
- repetición;
- contadores;
- acumuladores;
- centinelas;
- pseudocódigo;
- diagramas de flujo;
- casos de prueba;
- pruebas de escritorio;
- diagnóstico de errores;
- corrección y regresión;
- documentación;
- explicación de soluciones.
Lo que ya puede hacer
Después del proyecto, no necesita memorizar un lenguaje para demostrar su razonamiento.
Puede recibir un problema y preguntar:
¿Qué se necesita?
¿Qué datos entran?
¿Qué reglas cambian el resultado?
¿Qué se repite?
¿Qué debe recordarse?
¿Cómo termina?
¿Qué puede salir mal?
¿Cómo demostraré que funciona?Estas preguntas son transferibles a Python, Java, C#, JavaScript y otros lenguajes.
Próximo paso recomendado
El curso siguiente puede introducir un lenguaje como Python.
Al llegar a él, encontrará nuevas reglas de escritura:
- sintaxis;
- palabras reservadas;
- tipos propios del lenguaje;
- mensajes de error;
- herramientas de ejecución.
Sin embargo, los conceptos centrales ya serán conocidos:
variable
asignación
operación
condición
repetición
contador
acumulador
entrada
salida
prueba
error lógicoEl nuevo reto será aprender a expresar una idea conocida en la sintaxis del lenguaje.
Mensaje final
Programar no comienza al escribir código.
Comienza cuando una persona:
- comprende una situación;
- separa lo importante de lo accesorio;
- transforma reglas en pasos;
- anticipa casos diferentes;
- comprueba sus decisiones;
- reconoce un error sin ocultarlo;
- corrige con evidencia;
- explica su solución.
El proyecto final no busca una página perfecta ni una sintaxis profesional. Busca demostrar una forma de pensar.
Si puede explicar por qué su algoritmo funciona, en qué casos fue probado y cómo lo corregiría, ya dio un paso real hacia la programación.
FIN DEL MÓDULO 6
Fin del curso Lógica de Programación — COA