| Los candidatos deben ser capaces de: | Notas y orientación |
|---|---|
| 1 Comprender el ciclo de vida del desarrollo de programas, limitado a: análisis, diseño, codificación y pruebas | • Incluyendo identificar cada etapa y realizar estas tareas para cada una: – análisis: abstracción, descomposición del problema, identificación del problema y los requisitos – diseño: descomposición, diagramas estructurales, diagramas de flujo, pseudocódigo – codificación: escritura de código de programa y pruebas iterativas – pruebas: prueba del código de programa utilizando datos de prueba |
| 2 (a) Comprender que todo sistema informático está compuesto por sub-sistemas, que a su vez están compuestos por más sub-sistemas (b) Comprender cómo un problema puede descomponerse en sus partes componentes | • Incluyendo: – entradas – procesos – salidas – almacenamiento |
| (c) Utilizar diferentes métodos para diseñar y construir una solución a un problema | • Incluyendo: – diagramas estructurales – diagramas de flujo – pseudocódigo |
| 3 Explicar el propósito de un algoritmo dado | • Incluyendo: – indicar el propósito de un algoritmo – describir los procesos implicados en un algoritmo |
| 4 Comprender los métodos estándar de solución | • Limitado a: – búsqueda lineal – ordenamiento burbuja – totales – conteo – encontrar valores máximos, mínimos y promedios |
| 5 (a) Comprender la necesidad de realizar comprobaciones de validación sobre los datos de entrada y los diferentes tipos de comprobación de validación | • Incluyendo: – comprobación de rango – comprobación de longitud – comprobación de tipo – comprobación de presencia – comprobación de formato – dígito de control |
| (b) Comprender la necesidad de realizar comprobaciones de verificación sobre los datos de entrada y los diferentes tipos de comprobación de verificación | • Incluyendo: – comprobación visual – comprobación de doble entrada |
| 6 Sugerir y aplicar datos de prueba adecuados | • Limitado a: – normales – anómalos – extremos – de límite • Los datos extremos son el valor aceptable más grande/más pequeño • Los datos de límite son el valor aceptable más grande/más pequeño y el valor rechazado correspondiente más pequeño/más grande |
| 7 Completar una tabla de seguimiento para documentar una ejecución en seco de un algoritmo | • Incluyendo, en cada paso de un algoritmo: – variables – salidas – indicaciones al usuario |
| 8 Identificar errores en algoritmos dados y sugerir formas de corregir estos errores | |
| 9 Escribir y modificar algoritmos para problemas o escenarios dados, utilizando: pseudocódigo, código de programa y diagramas de flujo | • Se requiere precisión al escribir algoritmos, por ejemplo, x > y es aceptable pero x es mayor que y no lo es • Véase la sección 4 para los símbolos de los diagramas de flujo • Véase la sección 4 para el pseudocódigo |
Diseño de algoritmos y resolución de problemas
IGCSE Ciencias de la Computación · Tema 7
9:17
Ciclo de vida del desarrollo de programas
Cada aplicación en tu teléfono fue escrita por alguien como esto. Pero no empezaron escribiendo código. Antes de la primera línea, el problema fue estudiado, la solución…
Narración en inglés · Subtítulos en inglés + 中文 quemados en pantalla
Syllabus
Fuente: Plan de estudios Cambridge International
7.1
El ciclo de vida del desarrollo de programas
El ciclo de vida del desarrollo de programas (程序开发生命周期) es el conjunto de etapas utilizadas para crear un programa. Existen cuatro etapas.

| Etapa | Qué se hace |
|---|---|
| análisis 分析 | estudiar el problema y determinar qué se necesita |
| diseño 设计 | planificar cómo funcionará el programa |
| codificación 编码 | escribir el código del programa y probarlo a medida que se avanza |
| pruebas 测试 | ejecutar el programa terminado con datos de prueba para encontrar errores |


Análisis
En el análisis se comprende el problema. Dos habilidades clave ayudan:
- abstracción 抽象 — conservar solo los detalles importantes e ignorar el resto;
- descomposición 分解 — dividir un problema grande en partes más pequeñas y fáciles.
Diseño
En el diseño se planifica la solución, utilizando a menudo la descomposición. Se pueden mostrar las partes como sub-sistemas 子系统 en un diagrama de estructura 结构图 (un gráfico que divide un sistema en cajas más pequeñas).
Codificación y pruebas
En la codificación se escribe el código del programa. Se utiliza la prueba iterativa 迭代测试 — probar pequeñas partes repetidamente a medida que se construyen. En las pruebas se ejecuta todo el programa con datos de prueba 测试数据 para verificar que funcione.
| Inglés | Chino | Pinyin |
|---|---|---|
| program development life cycle/ˈprəʊɡræm dɪˈveləpmənt laɪf ˈsaɪkl/ | 程序开发生命周期 | chéng xù kāi fā shēng mìng zhōu qī |
| analysis/əˈnæləsɪs/ | 分析 | fēn xī |
| design/dɪˈzaɪn/ | 设计 | shè jì |
| coding/ˈkəʊdɪŋ/ | 编码 | biān mǎ |
| testing/ˈtestɪŋ/ | 测试 | cè shì |
| abstraction/əbˈstrækʃn/ | 抽象 | chōu xiàng |
| decomposition/ˌdiːkɒmpəˈzɪʃn/ | 分解 | fēn jiě |
| sub-systems/sʌb ˈsɪstəmz/ | 子系统 | zi xì tǒng |
| structure diagram/ˈstrʌktʃə ˈdaɪəɡræm/ | 结构图 | jié gòu tú |
| iterative testing/ˈɪtərətɪv ˈtestɪŋ/ | 迭代测试 | dié dài cè shì |
| test data/test ˈdeɪtə/ | 测试数据 | cè shì shù jù |
| flowchart/ˈfləʊtʃɑːt/ | 流程图 | liú chéng tú |
7.2
Herramientas de diseño
Se puede planificar una solución de tres formas principales.
- un diagrama de estructura — muestra las partes de un sistema y cómo se integran;
- un diagrama de flujo 流程图 — un diagrama que usa cajas y flechas para mostrar los pasos en orden;
- pseudocódigo 伪代码 — pasos escritos en inglés simple similar al código (no un lenguaje real).

7.3
Algoritmos
Un algoritmo 算法 es un conjunto de pasos, en el orden correcto, que resuelve un problema. Todo algoritmo se puede dividir en tres partes:
- entrada 输入 — los datos que entran;
- procesamiento 处理 — el trabajo realizado sobre los datos;
- salida 输出 — el resultado que sale.
Esto se llama descomposición en entradas, procesos y salidas. Por ejemplo, para "encontrar el promedio de tres notas": las entradas son las tres notas; el procesamiento es sumarlas y dividirlas entre 3; la salida es el promedio.

| Inglés | Chino | Pinyin |
|---|---|---|
| bubble sort/ˈbʌbl sɔːt/ | 冒泡排序 | mào pào pái xù |
| totalling/ˈtəʊtəlɪŋ/ | 求和 | qiú hé |
| counting/ˈkaʊntɪŋ/ | 计数 | jì shù |
| maximum/ˈmæksɪməm/ | 最大值 | zuì dà zhí |
| minimum/ˈmɪnɪməm/ | 最小值 | zuì xiǎo zhí |
7.4
Validación y verificación
Cuando se ingresan datos, se verifican para reducir errores.
La validación 验证 verifica que los datos sean lógicos y sigan las reglas. No puede verificar que los datos sean verdaderos, solo que estén permitidos.
| Verificación de validación | Qué verifica |
|---|---|
| verificación de rango 范围检查 | el valor está entre un valor mínimo y máximo permitido |
| verificación de longitud 长度检查 | el número de caracteres es permitido (ej. una contraseña ≥ 8) |
| verificación de tipo 类型检查 | los datos son del tipo correcto (ej. un número, no letras) |
| verificación de presencia 存在性检查 | algo ha sido realmente ingresado (no dejado en blanco) |
| verificación de formato 格式检查 | los datos están en el patrón correcto (ej. una fecha como dd/mm/yyyy) |
| dígito de control 校验码 | un dígito adicional confirma que un número fue ingresado correctamente |
La verificación 核实 verifica que los datos fueron copiados o ingresados correctamente (sin errores mientras se tecleaban). Dos métodos:
- verificación visual 目视检查 — una persona compara los datos tecleados con el original;
- doble entrada 双重输入 — los datos se ingresan dos veces y se comparan las dos copias.
7.5
Tablas de trazado
Una tabla de trazado 追踪表 registra el valor de cada variable a medida que un algoritmo se ejecuta, paso a paso. Ayuda a:

- verificar que un algoritmo funciona correctamente;
- averiguar qué hace un algoritmo siguiéndolo con datos dados.
Ejemplo: tracee este algoritmo con la entrada 5.
INPUT N
Total ← 0
FOR I ← 1 TO N
Total ← Total + I
NEXT I
OUTPUT Total
| i | total | OUTPUT |
|---|---|---|
| 1 | 1 | |
| 2 | 3 | |
| 3 | 6 | |
| 4 | 10 | |
| 5 | 15 | 15 |
El trazado muestra que el algoritmo suma del 1 a n. Con la entrada 5, la salida es 15.
Ejemplo resuelto. Tracee este algoritmo y dé la salida.
X ← 20
Count ← 0
WHILE X > 1
X ← DIV(X, 2)
Count ← Count + 1
ENDWHILE
OUTPUT Count
DIV devuelve solo la parte de número entero de una división. Tome una fila por pasada: x se convierte en 10 (count 1), luego 5 (count 2), luego 2 (count 3), luego 1 (count 4). Ahora x > 1 es falso, así que el bucle se detiene y la salida es 4. Dos hábitos protegen estas calificaciones: probar la condición antes de cada pasada en lugar de después, y escribir una nueva fila para cada pasada — intentar retener los valores en su cabeza es lo que hace que los trazados fallen.
Una tabla de seguimiento
Paso a paso por el bucle y complete la tabla de seguimiento, una fila por pasada.
| Inglés | Chino | Pinyin |
|---|---|---|
| pseudocode/ˈsuːdəʊkəʊd/ | 伪代码 | wěi dài mǎ |
| algorithm/ˈælɡərɪθəm/ | 算法 | suàn fǎ |
| input/ˈɪnpʊt/ | 输入 | shū rù |
| processing/ˈprəʊsesɪŋ/ | 处理 | chǔ lǐ |
| output/ˈaʊtpʊt/ | 输出 | shū chū |
| validation/ˌvælɪˈdeɪʃn/ | 验证 | yàn zhèng |
| range check/reɪndʒ tʃek/ | 范围检查 | fàn wéi jiǎn chá |
| length check/leŋθ tʃek/ | 长度检查 | cháng dù jiǎn chá |
| type check/taɪp tʃek/ | 类型检查 | lèi xíng jiǎn chá |
| presence check/ˈprezəns tʃek/ | 存在性检查 | cún zài xìng jiǎn chá |
| format check/ˈfɔːmæt tʃek/ | 格式检查 | gé shì jiǎn chá |
| check digit/tʃek ˈdɪdʒɪt/ | 校验码 | jiào yàn mǎ |
| verification/ˌverɪfɪˈkeɪʃn/ | 核实 | hé shí |
| visual check/ˈvɪʒuːəl tʃek/ | 目视检查 | mù shì jiǎn chá |
| double entry/ˈdʌbl ˈentri/ | 双重输入 | shuāng chóng shū rù |
| trace table/treɪs ˈteɪbl/ | 追踪表 | zhuī zōng biǎo |
7.6
Datos de prueba
Los datos de prueba 测试数据 son los datos que usa para probar un programa. Hay cuatro tipos que debe conocer.
| Tipo | Significado | Ejemplo (edad 0–120 permitida) |
|---|---|---|
| normal 正常数据 | datos lógicos que deberían ser aceptados | 25 |
| anormal 异常数据 | datos incorrectos que deberían ser rechazados | -4 o "cat" |
| extremo 极端数据 | los valores más grandes y pequeños aún permitidos | 0 y 120 |
| límite/borde 边界数据 | los valores a ambos lados de un límite (uno permitido, uno no) | 120 y 121 |
| Inglés | Chino | Pinyin |
|---|---|---|
| normal/ˈnɔːml/ | 正常数据 | zhèng cháng shù jù |
| abnormal/əbˈnɔːml/ | 异常数据 | yì cháng shù jù |
| extreme/ekˈstriːm/ | 极端数据 | jí duān shù jù |
| boundary/ˈbaʊndəri/ | 边界数据 | biān jiè shù jù |
7.7
Métodos estándar de solución
Debe conocer estos algoritmos comunes.
Búsqueda lineal
Una búsqueda lineal 线性查找 revisa cada elemento de una lista, uno por uno, hasta que encuentra el valor deseado o llega al final.
Found ← FALSE
FOR I ← 0 TO 9
IF List[I] = SearchValue
THEN
Found ← TRUE
ENDIF
NEXT I
OUTPUT Found

Ordenamiento burbuja
Un ordenamiento burbuja 冒泡排序 coloca una lista en orden. Compara cada par de elementos adyacentes y los intercambia si están en el orden incorrecto. Repite esto hasta que no se necesiten más intercambios.
FOR I ← 0 TO 8
IF List[I] > List[I + 1]
THEN
Temp ← List[I]
List[I] ← List[I + 1]
List[I + 1] ← Temp
ENDIF
NEXT I

Sumatoria y conteo
- sumatoria 求和 — seguir sumando valores a un total acumulado (
Total ← Total + Value). - conteo 计数 — sumar 1 a un contador cada vez que ocurre algo (
Count ← Count + 1).
Máximo, mínimo y promedio
- para encontrar el máximo 最大值: guardar el valor más grande visto hasta ahora.
- para encontrar el mínimo 最小值: guardar el valor más pequeño visto hasta ahora.
- para encontrar el promedio 平均值: dividir el total por cuántos valores hay.
Total ← 0
FOR I ← 0 TO 9
Total ← Total + List[I]
NEXT I
Average ← Total / 10
OUTPUT Average
| Inglés | Chino | Pinyin |
|---|---|---|
| linear search/ˈlɪnɪə sɜːtʃ/ | 线性查找 | xiàn xìng chá zhǎo |
| average/ˈævrɪdʒ/ | 平均值 | píng jūn zhí |
7.8
Consejos para el examen
- Aprenda las cuatro etapas del ciclo de vida: análisis → diseño → codificación → pruebas. La abstracción conserva solo los detalles importantes; la descomposición divide un problema en partes más pequeñas.
- La validación verifica que los datos sean lógicos (verificaciones de rango, longitud, tipo, presencia, formato); la verificación verifica que fueron copiados correctamente (una verificación visual o doble entrada).
- Aprenda los cuatro tipos de datos de prueba: normal (aceptado), anormal (rechazado), extremo (el más grande/más pequeño aún permitido), límite/borde (los valores a ambos lados de un límite).
- Para averiguar qué hace un algoritmo, complete una tabla de trazado — anote el valor de cada variable en cada paso.
- Conozca los algoritmos estándar: búsqueda lineal (revisar cada elemento por turno) y ordenamiento burbuja (intercambiar pares adyacentes hasta que no se necesiten más intercambios).
Lecciones interactivas sobre este tema
Trátalo paso a paso, con ejercicios de verificación instantánea.