El código de abajo utiliza la pseudocódigo AP CSP – la referencia neutra al idioma del examen. La asignación se escribe como a ← expression, y los índices de las listas comienzan en 1.
Algoritmos y Programación
AP Principios de Ciencias de la Computación · Tema 3
9:17
Algoritmos y programación
Imagina una guía telefónica con un millón de nombres, y debes encontrar uno. Revisarlos uno por uno, y podrías estar todo el día. Hay una forma de encontrarlo en aproximadamente…
Narración en inglés · Subtítulos en inglés + 中文 quemados en pantalla
3.1
Variables y Asignaciones
Syllabus
Comprensión duradera (AAP-1): Para encontrar soluciones específicas a problemas generalizables, los programadores representan y organizan datos de múltiples maneras.
Objetivo de aprendizaje AAP-1.A: Representar un valor con una variable. [Habilidad 3.A]
- AAP-1.A.1 Una variable es una abstracción dentro de un programa que puede contener un valor. Cada variable tiene almacenamiento de datos asociado que representa un valor a la vez, pero ese valor puede ser una lista u otra colección que a su vez contiene múltiples valores.
- AAP-1.A.2 El uso de nombres de variables significativos ayuda con la legibilidad del código del programa y la comprensión de qué valores están representados por las variables.
- AAP-1.A.3 Algunos lenguajes de programación proporcionan tipos para representar datos, los cuales se referencian mediante variables. Estos tipos incluyen números, booleanos, listas y cadenas.
- AAP-1.A.4 Algunos valores son más adecuados para su representación utilizando un tipo de dato en lugar de otro.
Objetivo de aprendizaje AAP-1.B: Determinar el valor de una variable como resultado de una asignación. [Habilidad 4.B]
-
AAP-1.B.1 El operador de asignación permite a un programa cambiar el valor representado por una variable.
-
AAP-1.B.2 La hoja de referencia del examen proporciona el operador "$\leftarrow$" para usarlo en la asignación. Por ejemplo,
Texto:
a ← expressionBloque:
a ← expressionevalúa
expressiony luego asigna una copia del resultado a la variablea. -
AAP-1.B.3 El valor almacenado en una variable será el valor asignado más recientemente. Por ejemplo:
a ← 1b ← aa ← 2display(b)aún muestra
1.
Fuente: College Board AP Course and Exam Description
Una variable es un lugar con nombre que almacena un valor. El operador de asignación guarda el valor del lado derecho en la variable del lado izquierdo:

a ← 5
b ← a + 3 // b is now 8
Una variable mantiene un solo valor a la vez; asignar nuevamente lo reemplaza. Las variables permiten a un programa almacenar entradas, recordar resultados y reutilizarlos.
Observar cómo una variable retiene y cambia su valor
Una variable es una caja nombrada que almacena un valor a la vez. Una asignación copia un valor dentro de la caja; asignar nuevamente sobrescribe lo que había antes.
| Inglés | Chino | Pinyin |
|---|---|---|
| variable/ˈveərɪəbl/ | 变量 | biàn liàng |
| assignment/əˈsaɪnmənt/ | 赋值 | fù zhí |
| Data abstraction/ˈdeɪtə əbˈstrækʃn/ | 数据抽象 | shù jù chōu xiàng |
| remainder/rɪˈmeɪndə/ | 余数 | yú shù |
| string/strɪŋ/ | 字符串 | zì fú chuàn |
| concatenation/kənˌkætəˈneɪʃn/ | 拼接 | pīn jiē |
| Boolean expression/ˈbuːlɪən ekˈspreʃn/ | 布尔表达式 | bù ěr biǎo dá shì |
| conditional (selection)/kənˈdɪʃənl/ | 条件语句 | tiáo jiàn yǔ jù |
| nested conditional/ˈnestɪd kənˈdɪʃənl/ | 嵌套条件 | qiàn tào tiáo jiàn |
| Iteration (a loop)/ˌɪtəˈreɪʃn/ | 迭代 | dié dài |
| infinite loop/ˈɪnfɪnət luːp/ | 无限循环 | wú xiàn xún huán |
| algorithm/ˈælɡərɪθəm/ | 算法 | suàn fǎ |
3.2
Abstracción de Datos
Syllabus
Comprensión duradera (AAP-1): Para encontrar soluciones específicas a problemas generalizables, los programadores representan y organizan datos de múltiples maneras.
Objetivo de aprendizaje AAP-1.C: Representar una lista o cadena mediante una variable. [Habilidad 3.A]
-
AAP-1.C.1 Una lista es una secuencia ordenada de elementos. Por ejemplo,
[value1, value2, value3, ...]describe una lista donde
value1es el primer elemento,value2es el segundo elemento,value3es el tercer elemento, y así sucesivamente. -
AAP-1.C.2 Un elemento es un valor individual en una lista que tiene asignado un índice único.
-
AAP-1.C.3 Un índice es un método común para hacer referencia a los elementos en una lista o cadena utilizando números naturales.
-
AAP-1.C.4 Una cadena es una secuencia ordenada de caracteres.
Objetivo de aprendizaje AAP-1.D: Para la abstracción de datos: a. Desarrollar la abstracción de datos utilizando listas para almacenar múltiples elementos. [Habilidad 3.B] b. Explicar cómo el uso de la abstracción de datos gestiona la complejidad en el código del programa. [Habilidad 3.C]
-
AAP-1.D.1 La abstracción de datos proporciona una separación entre las propiedades abstractas de un tipo de dato y los detalles concretos de su representación.
-
AAP-1.D.2 Las abstracciones de datos gestionan la complejidad en los programas al dar un nombre a una colección de datos sin hacer referencia a los detalles específicos de la representación.
-
AAP-1.D.3 Las abstracciones de datos pueden crearse utilizando listas.
-
AAP-1.D.4 Desarrollar una abstracción de datos para implementar en un programa puede resultar en un programa más fácil de desarrollar y mantener.
-
AAP-1.D.5 Las abstracciones de datos a menudo contienen diferentes tipos de elementos.
-
AAP-1.D.6 El uso de listas permite tratar varios elementos relacionados como un solo valor. Las listas se denominan de diferentes maneras, como array, dependiendo del lenguaje de programación.
- Declaración de exclusión (EK AAP-1.D.6): El uso de listas vinculadas está fuera del alcance de este curso y del Examen AP.
-
AAP-1.D.7 La hoja de referencia del examen proporciona la notación
[value1, value2, value3, ...]para crear una lista con esos valores como el primer, segundo, tercer elemento, y así sucesivamente. Por ejemplo,
-
Texto:
aList ← [value1, value2, value3, ...]
Bloque:
aList ← value1, value2, value3crea una nueva lista que contiene los valores
value1,value2,value3y...en los índices1,2,3y...respectivamente, y la asigna aaList.-
Texto:
aList ← []
Bloque:
aList ←(vacío)crea una nueva lista vacía y la asigna a
aList.-
Texto:
aList ← bList
Bloque:
aList ← bListasigna una copia de la lista
bLista la listaaList. Por ejemplo, sibListcontiene[20, 40, 60], entoncesaListtambién contendrá[20, 40, 60]después de la asignación. -
-
AAP-1.D.8 La hoja de referencia del examen describe una estructura de lista cuyos valores de índice van desde 1 hasta el número de elementos en la lista, inclusive. Para todas las operaciones de lista, si un índice de lista es menor que 1 o mayor que la longitud de la lista, se produce un mensaje de error y el programa terminará.
Fuente: College Board AP Course and Exam Description
La abstracción de datos le permite gestionar la complejidad al dar un solo nombre a una colección de datos — por ejemplo, una lista en lugar de docenas de variables separadas. Oculta detalles: usted usa la colección nombrada sin preocuparse por cómo está almacenada. Las listas (más abajo) son la principal abstracción de datos del curso.
| Inglés | Chino | Pinyin |
|---|---|---|
| list/lɪst/ | 列表 | liè biǎo |
3.3
Expresiones Matemáticas
Syllabus
Comprensión duradera (AAP-2): La forma en que se secuestran y combinan las declaraciones en un programa determina el resultado calculado. Los programas incorporan constructos de iteración y selección para representar repeticiones y tomar decisiones con el fin de manejar valores de entrada variados.
Objetivo de aprendizaje AAP-2.A: Expresar un algoritmo que utilice secuenciación sin usar un lenguaje de programación. [Habilidad 2.A]
- AAP-2.A.1 Un algoritmo es un conjunto finito de instrucciones que cumplen una tarea específica.
- AAP-2.A.2 Más allá de los lenguajes de programación visuales y textuales, los algoritmos pueden expresarse de diversas formas, como lenguaje natural, diagramas y pseudocódigo.
- AAP-2.A.3 Los algoritmos ejecutados por programas se implementan mediante lenguajes de programación.
- AAP-2.A.4 Todo algoritmo puede construirse utilizando combinaciones de secuenciación, selección e iteración.
Objetivo de aprendizaje AAP-2.B: Representar un proceso algorítmico paso a paso utilizando sentencias de código secuenciales. [Habilidad 2.B]
- AAP-2.B.1 La secuenciación es la aplicación de cada paso de un algoritmo en el orden en que aparecen las sentencias de código.
- AAP-2.B.2 Una sentencia de código es una parte del código de un programa que expresa una acción que debe llevarse a cabo.
- AAP-2.B.3 Una expresión puede constar de un valor, una variable, un operador o una llamada a procedimiento que devuelve un valor.
- AAP-2.B.4 Las expresiones se evalúan para producir un único valor.
- AAP-2.B.5 La evaluación de expresiones sigue un orden de operaciones definido por el lenguaje de programación.
- AAP-2.B.6 Las sentencias secuenciales se ejecutan en el orden en que aparecen en el segmento de código.
- AAP-2.B.7 La claridad y la legibilidad son consideraciones importantes al expresar un algoritmo en un lenguaje de programación.
Objetivo de aprendizaje AAP-2.C: Evaluar expresiones que utilizan operadores aritméticos. [Habilidad 4.B]
-
AAP-2.C.1 Los operadores aritméticos forman parte de la mayoría de los lenguajes de programación e incluyen los operadores de suma, resta, multiplicación, división y módulo.
-
AAP-2.C.2 La hoja de referencia del examen proporciona
a MOD b, que se evalúa como el residuo cuandoase divide porb. Asumir queaes un entero mayor o igual a0ybes un entero mayor que0. Por ejemplo,17 MOD 5se evalúa como2. -
AAP-2.C.3 La hoja de referencia del examen proporciona los operadores aritméticos
+,-,*,/yMOD.Texto y Bloque:
a + ba - ba * ba / ba MOD b
Estos se utilizan para realizar operaciones aritméticas sobre
ayb. Por ejemplo,17 / 5se evalúa como3.4. -
AAP-2.C.4 El orden de operaciones utilizado en matemáticas se aplica al evaluar expresiones. El operador
MODtiene la misma precedencia que los operadores*y/.
Fuente: College Board AP Course and Exam Description
Los programas calculan con los operadores +, -, *, / y MOD (el resto de una división, p. ej., 17 MOD 5 es 2). Las expresiones siguen el orden de operaciones habitual. MOD es especialmente útil para probar divisibilidad (n MOD 2 = 0 significa que n es par) y para envolver valores alrededor de un rango.
Evaluar una expresión paso a paso
Una expresión se evalúa siguiendo la jerarquía de operaciones: la multiplicación y la división ocurren antes que la suma y la resta, de izquierda a derecha.
3.4
Cadenas de texto
Syllabus
Comprensión Duradera (AAP-2): La forma en que las sentencias se secuencian y combinan en un programa determina el resultado calculado. Los programas incorporan construcciones de iteración y selección para representar la repetición y tomar decisiones con el fin de manejar valores de entrada variados.
Objetivo de Aprendizaje AAP-2.D: Evaluar expresiones que manipulan cadenas. [Habilidad 4.B]
- AAP-2.D.1 La concatenación de cadenas une dos o más cadenas extremo con extremo para formar una nueva cadena.
- AAP-2.D.2 Una subcadena es parte de una cadena existente.
Fuente: College Board AP Course and Exam Description
Una cadena es una secuencia ordenada de caracteres, como "hello". Los programas unen cadenas (concatenación) y encuentran su longitud. Las cadenas representan texto — nombres, mensajes, secuencias — y son una entrada y salida comunes de programas.
3.5
Expresiones Booleanas
Syllabus
Comprensión Duradera (AAP-2): La forma en que se secuencian y combinan las instrucciones en un programa determina el resultado calculado. Los programas incorporan constructos de iteración y selección para representar repeticiones y tomar decisiones para manejar valores de entrada variados.
Objetivo de Aprendizaje AAP-2.E: Para relaciones entre dos variables, expresiones o valores: a. Escribir expresiones utilizando operadores relacionales. [Habilidad 2.B] b. Evaluar expresiones que utilizan operadores relacionales. [Habilidad 4.B]
-
AAP-2.E.1 Un valor booleano es verdadero o falso.
-
AAP-2.E.2 La hoja de referencia del examen proporciona los siguientes operadores relacionales:
=,≠,>,<,≥y≤.Texto y Bloque:
a = ba ≠ ba > ba < ba ≥ ba ≤ b
Estos se utilizan para probar la relación entre dos variables, expresiones o valores. Una comparación que utiliza un operador relacional evalúa a un valor booleano. Por ejemplo,
a = bevalúa atruesiaybson iguales; de lo contrario, evalúa afalse.
Objetivo de Aprendizaje AAP-2.F: Para relaciones entre valores booleanos: a. Escribir expresiones utilizando operadores lógicos. [Habilidad 2.B] b. Evaluar expresiones que utilizan operadores lógicos. [Habilidad 4.B]
-
AAP-2.F.1 La hoja de referencia del examen proporciona los operadores lógicos
NOT,ANDyOR, los cuales evalúan a un valor booleano. -
AAP-2.F.2 La hoja de referencia del examen proporciona
Texto:
NOT conditionBloque:
NOT conditionque evalúa a
truesiconditionesfalse; de lo contrario evalúa afalse. -
AAP-2.F.3 La hoja de referencia del examen proporciona
Texto:
condition1 AND condition2Bloque:
condition1 AND condition2que evalúa a
truesi tantocondition1comocondition2sontrue; de lo contrario evalúa afalse. -
AAP-2.F.4 La hoja de referencia del examen proporciona
Texto:
condition1 OR condition2Bloque:
condition1 OR condition2que evalúa a
truesicondition1estrueo sicondition2estrueo si tantocondition1comocondition2sontrue; de lo contrario evalúa afalse. -
AAP-2.F.5 El operando para un operador lógico es ya sea una expresión booleana o un único valor booleano.
Fuente: College Board AP Course and Exam Description
Una expresión booleana se evalúa como true (verdadero) o false (falso). Utiliza operadores relacionales (=, ≠, <, >, ≤, ≥) y operadores lógicos NOT (NO), AND (Y), OR (O):

NOTinvierte un valor,ANDes verdadero solo cuando ambos lados son verdaderos,ORes verdadero cuando al menos uno de los lados es verdadero.
Estas condiciones guían cada decisión y bucle.
Probar la tabla de verdad OR
Una expresión Booleana es verdadera (1) o falsa (0). OR es verdadera cuando al menos una entrada es verdadera; invierte las entradas para ver todos los casos.
3.6
Condicionales
Syllabus
Comprensión Duradera (AAP-2): La forma en que se secuencian y combinan las instrucciones en un programa determina el resultado calculado. Los programas incorporan constructos de iteración y selección para representar la repetición y tomar decisiones para manejar valores de entrada variados.
Objetivo de Aprendizaje AAP-2.G: Expresar un algoritmo que utilice selección sin usar un lenguaje de programación. [Habilidad 2.A]
- AAP-2.G.1 La selección determina qué partes de un algoritmo se ejecutan basándose en si una condición es
trueofalse.
Objetivo de Aprendizaje AAP-2.H: Para la selección: a. Escribir instrucciones condicionales. [Habilidad 2.B] b. Determinar el resultado de las instrucciones condicionales. [Habilidad 4.B]
-
AAP-2.H.1 Las instrucciones condicionales, o "instrucciones if", afectan el flujo secuencial del control ejecutando diferentes instrucciones basándose en el valor de una expresión booleana.
-
AAP-2.H.2 La hoja de referencia del examen proporciona
Texto:
IF(condition){<block of statements>}Bloque:
IF conditionblock of statementsen el cual el código en
block of statementsse ejecuta si la expresión booleanaconditionse evalúa comotrue; no se realiza ninguna acción siconditionse evalúa comofalse. -
AAP-2.H.3 La hoja de referencia del examen proporciona
Texto:
IF(condition){<first block of statements>}ELSE{<second block of statements>}Bloque:
IF conditionfirst block of statementsELSEsecond block of statementsen el cual el código en
first block of statementsse ejecuta si la expresión booleanaconditionse evalúa comotrue; de lo contrario, se ejecuta el código ensecond block of statements.
Fuente: College Board AP Course and Exam Description
Un condicional (selección) elige qué código ejecutar. IF ejecuta un bloque solo cuando su condición es verdadera; ELSE ofrece una alternativa:

IF (score ≥ 60)
{
DISPLAY("Pass")
}
ELSE
{
DISPLAY("Fail")
}
Seguir una decisión if / else
Una condicional ejecuta una rama u otra dependiendo de si su condición es verdadera. Desliza el valor a través del umbral y observa qué rama se toma.
3.7
Condicionales Anidados
Syllabus
Comprensión duradera (AAP-2): La forma en que se secencian y combinan las instrucciones en un programa determina el resultado calculado. Los programas incorporan constructos de iteración y selección para representar repeticiones y tomar decisiones para manejar valores de entrada variados.
Objetivo de aprendizaje AAP-2.I: Para la selección anidada: a. Escribir sentencias condicionales anidadas. [Habilidad 2.B] b. Determinar el resultado de las sentencias condicionales anidadas. [Habilidad 4.B]
- AAP-2.I.1 Las sentencias condicionales anidadas consisten en sentencias condicionales dentro de otras sentencias condicionales.
Fuente: College Board AP Course and Exam Description
Un condicional anidado coloca un IF dentro de otro (o encadena ELSE IF) para elegir entre más de dos rutas. Solo se ejecuta la primera rama coincidente:
IF (g ≥ 90) { grade ← "A" }
ELSE IF (g ≥ 80) { grade ← "B" }
ELSE { grade ← "C" }
3.8
Iteración
Syllabus
Comprensión Duradera (AAP-2): La forma en que se secuencian y combinan las instrucciones en un programa determina el resultado calculado. Los programas incorporan estructuras de iteración y selección para representar repeticiones y tomar decisiones para manejar valores de entrada variados.
Objetivo de Aprendizaje AAP-2.J: Expresar un algoritmo que utilice iteración sin emplear un lenguaje de programación. [Habilidad 2.A]
- AAP-2.J.1 La iteración es una parte repetitiva de un algoritmo. La iteración se repite un número especificado de veces o hasta que se cumple una condición dada.
Objetivo de Aprendizaje AAP-2.K: Para la iteración: a. Escribir instrucciones de iteración. [Habilidad 2.B] b. Determinar el resultado o efecto secundario de las instrucciones de iteración. [Habilidad 4.B]
-
AAP-2.K.1 Las instrucciones de iteración modifican el flujo secuencial de control repitiendo un conjunto de instrucciones cero o más veces, hasta que se cumple una condición de parada.
-
AAP-2.K.2 La hoja de referencia del examen proporciona
Texto:
REPEAT n TIMES{<block of statements>}Bloque:
REPEAT n TIMESblock of statementsen el cual se ejecuta
block of statementsnveces. -
AAP-2.K.3 La hoja de referencia del examen proporciona
Texto:
REPEAT UNTIL(condition){<block of statements>}Bloque:
REPEAT UNTIL conditionblock of statementsen el cual el código en
block of statementsse repite hasta que la expresión booleanaconditionse evalúa comotrue. -
AAP-2.K.4 En la iteración
REPEAT UNTIL(condition), se produce un bucle infinito cuando la condición final nunca se evaluará comotrue. -
AAP-2.K.5 En la iteración
REPEAT UNTIL(condition), si la condición se evalúa inicialmente comotrue, el cuerpo del bucle no se ejecuta en absoluto, debido a que la condición se verifica antes del bucle.
Fuente: College Board AP Course and Exam Description
Iteración (un bucle) repite instrucciones. La pseudocódigo AP tiene dos formas:

REPEAT 5 TIMES // a fixed count
{
DISPLAY("hi")
}
REPEAT UNTIL (found) // until a condition becomes true
{
...
}
Un bucle que nunca cumple su condición de parada es un bucle infinito.
Rastrear un bucle una pasada a la vez
Un bucle repite un bloque mientras su contador recorre un rango. Avanza paso a paso para ver cómo el contador y el total acumulado se actualizan en cada pasada.
3.9
Desarrollo de Algoritmos
Syllabus
Comprensión Duradera (AAP-2): La forma en que se secuencian y combinan las sentencias en un programa determina el resultado calculado. Los programas incorporan constructos de iteración y selección para representar repeticiones y tomar decisiones que manejen valores de entrada variados.
Objetivo de Aprendizaje AAP-2.L: Comparar múltiples algoritmos para determinar si producen el mismo efecto secundario o resultado. [Habilidad 1.D]
- AAP-2.L.1 Los algoritmos pueden escribirse de diferentes formas y aún así lograr las mismas tareas.
- AAP-2.L.2 Los algoritmos que parecen similares pueden producir efectos secundarios o resultados diferentes.
- AAP-2.L.3 Algunas sentencias condicionales pueden escribirse como expresiones booleanas equivalentes.
- AAP-2.L.4 Algunas expresiones booleanas pueden escribirse como sentencias condicionales equivalentes.
- AAP-2.L.5 Se pueden desarrollar o utilizar diferentes algoritmos para resolver el mismo problema.
Objetivo de Aprendizaje AAP-2.M: Para los algoritmos: a. Crear algoritmos. [Habilidad 2.A] b. Combinar y modificar algoritmos existentes. [Habilidad 2.B]
- AAP-2.M.1 Los algoritmos pueden crearse a partir de una idea, mediante la combinación de algoritmos existentes o modificando algoritmos existentes.
- AAP-2.M.2 El conocimiento de algoritmos existentes puede ayudar a construir nuevos. Algunos algoritmos existentes incluyen:
- Determinar el valor máximo o mínimo de dos o más números
- Calcular la suma o el promedio de dos o más números
- Identificar si un número entero es o no divisible exactamente por otro número entero
- Determinar la trayectoria de un robot a través de un laberinto
- AAP-2.M.3 Utilizar algoritmos correctos existentes como bloques de construcción para crear otro algoritmo tiene beneficios como reducir el tiempo de desarrollo, reducir las pruebas y simplificar la identificación de errores.
Fuente: College Board AP Course and Exam Description

Un algoritmo no es lo mismo que código. Más allá de los lenguajes de programación visuales y textuales, un algoritmo puede expresarse de una variedad de formas: en lenguaje natural (oraciones ordinarias), como un diagrama tal como un diagrama de flujo, o en pseudocódigo. Esas formas son para personas — le permiten verificar la lógica y estar de acuerdo en ella antes de elegir cualquier lenguaje, y luego el mismo algoritmo puede escribirse en cualquier lenguaje.
Cuando lo escribe en un lenguaje de programación, la claridad y legibilidad son consideraciones importantes, no adornos: nombres de variables significativos, sangría consistente y comentarios que expliquen el porqué en lugar del qué. El programa debe ser leído y modificado después por alguien — a menudo usted — y un algoritmo que nadie puede seguir no se puede mantener ni depurar.
Un algoritmo es una secuencia finita de pasos que resuelve un problema, construida a partir de secuenciación, selección e iteración. Diferentes algoritmos pueden resolver el mismo problema, y debería poder combinar y modificar algoritmos existentes (por ejemplo, contar los valores en una lista que cumplen una condición, o encontrar el mayor). Rastree un algoritmo a mano para verificar que sea correcto.

3.10
Listas
Syllabus
Comprensión duradera (AAP-2): La forma en que las sentencias se secuencian y combinan en un programa determina el resultado calculado. Los programas incorporan constructos de iteración y selección para representar repeticiones y tomar decisiones con el fin de manejar valores de entrada variados.
Objetivo de aprendizaje AAP-2.N: Para operaciones sobre listas: a. Escribir expresiones que utilicen indexación de listas y procedimientos de lista. [Habilidad 2.B] b. Evaluar expresiones que utilicen indexación de listas y procedimientos de lista. [Habilidad 4.B]
- AAP-2.N.1 La hoja de referencia del examen proporciona operaciones básicas sobre listas, incluyendo:
-
acceder a un elemento por índice
Texto:
aList[i]Bloque:
aList iaccede al elemento de
aListen el índicei. El primer elemento deaListestá en el índice1y se accede mediante la notaciónaList[1]. -
asignar el valor de un elemento de una lista a una variable
Texto:
x ← aList[i]Bloque:
x ← aList iasigna el valor de
aList[i]a la variablex. -
asignar un valor a un elemento de una lista
Texto:
aList[i] ← xBloque:
aList i ← xasigna el valor de
xaaList[i].Texto:
aList[i] ← aList[j]Bloque:
aList i ← aList jasigna el valor de
aList[j]aaList[i]. -
insertar elementos en un índice dado
Texto:
INSERT(aList, i, value)Bloque:
INSERT aList, i, valuedesplaza hacia la derecha cualquier valor en
aListen índices mayores o iguales ai. La longitud de la lista aumenta en 1, yvaluese coloca en el índiceienaList. -
añadir elementos al final de la lista
Texto:
APPEND(aList, value)Bloque:
APPEND aList, valueaumenta la longitud de
aListen 1, yvaluese coloca al final deaList. -
eliminar elementos
Texto:
REMOVE(aList, i)Bloque:
REMOVE aList, ielimina el ítem en el índice
ienaListy desplaza hacia la izquierda cualquier valor en índices mayores quei. La longitud deaListdisminuye en 1. -
determinar la longitud de una lista
Texto:
LENGTH(aList)Bloque:
LENGTH aListevalúa al número de elementos actualmente en
aList.
-
- AAP-2.N.2 Los procedimientos de lista se implementan de acuerdo con las reglas de sintaxis del lenguaje de programación.
Objetivo de aprendizaje AAP-2.O: Para algoritmos que involucran elementos de una lista: a. Escribir sentencias de iteración para recorrer una lista. [Habilidad 2.B] b. Determinar el resultado de un algoritmo que incluye recorridos de lista. [Habilidad 4.B]
-
AAP-2.O.1 Recorrer una lista puede ser un recorrido completo, donde se accede a todos los elementos de la lista, o un recorrido parcial, donde solo se accede a una parte de los elementos.
- Exclusión (EK AAP-2.O.1): Recorrer múltiples listas al mismo tiempo utilizando el mismo índice para ambas (recorridos paralelos) está fuera del alcance de este curso y del Examen AP.
-
AAP-2.O.2 Las sentencias de iteración pueden utilizarse para recorrer una lista.
-
AAP-2.O.3 La hoja de referencia del examen proporciona
Texto:
FOR EACH item IN aList{<block of statements>}Bloque:
FOR EACH item IN aListblock of statementsLa variable
itemse asigna el valor de cada elemento deaListsecuencialmente, en orden, desde el primer elemento hasta el último elemento. El código enblock of statementsse ejecuta una vez por cada asignación deitem. -
AAP-2.O.4 El conocimiento de algoritmos existentes que usan iteración puede ayudar a construir nuevos algoritmos. Algunos ejemplos de algoritmos existentes que a menudo se utilizan con listas incluyen:
- determinar un valor mínimo o máximo en una lista
- calcular una suma o promedio de una lista de números
-
AAP-2.O.5 Los algoritmos de búsqueda lineal o búsqueda secuencial revisan cada elemento de una lista, en orden, hasta que se encuentra el valor deseado o se han revisado todos los elementos de la lista.
Fuente: College Board AP Course and Exam Description
Una lista es una colección ordenada de valores bajo un solo nombre, la abstracción de datos clave del curso. La pseudocódigo AP indexa desde 1:

scores ← [88, 74, 95]
DISPLAY(scores[1]) // 88
scores[2] ← 80 // replace the 2nd value
APPEND(scores, 60) // add to the end
INSERT(scores, 1, 100) // insert at index 1
REMOVE(scores, 3) // delete the 3rd element
LENGTH(scores) // how many elements
Recorra una lista con un bucle para sumar, contar, buscar o encontrar un máximo:
FOR EACH x IN scores
{
total ← total + x
}
3.11
Búsqueda Binaria
Syllabus
Comprensión duradera (AAP-2): La forma en que se secuncian y combinan las instrucciones en un programa determina el resultado calculado. Los programas incorporan constructos de iteración y selección para representar repeticiones y tomar decisiones para manejar valores de entrada variados.
Objetivo de aprendizaje AAP-2.P: Para los algoritmos de búsqueda binaria: a. Determinar el número de iteraciones necesarias para encontrar un valor en un conjunto de datos. [Habilidad 1.D] b. Explicar los requisitos necesarios para completar una búsqueda binaria. [Habilidad 1.A]
- AAP-2.P.1 El algoritmo de búsqueda binaria comienza en el medio de un conjunto de datos numéricos ordenados y elimina la mitad de los datos; este proceso se repite hasta que se encuentra el valor deseado o se han eliminado todos los elementos.
- Afirmación de exclusión (EK AAP-2.P.1): Las implementaciones específicas del algoritmo de búsqueda binaria están fuera del alcance del curso y del examen AP.
- AAP-2.P.2 Los datos deben estar en orden para utilizar el algoritmo de búsqueda binaria.
- AAP-2.P.3 La búsqueda binaria suele ser más eficiente que la búsqueda secuencial/lineal cuando se aplica a datos ordenados.
Fuente: College Board AP Course and Exam Description

La búsqueda binaria encuentra un valor en una lista ordenada mucho más rápido que revisar cada elemento. Mira el elemento del medio, luego descarta la mitad que no puede contener el objetivo, repitiendo hasta encontrarlo. Cada paso reduce a la mitad el espacio de búsqueda, por lo que una lista de $n$ elementos toma aproximadamente $\log_2 n$ pasos. Requiere que los datos estén ordenados primero.

Ejemplo resuelto. Al buscar en una lista ordenada de $8$ elementos, la búsqueda binaria reduce el rango a la mitad en cada paso: $8\rightarrow4\rightarrow2\rightarrow1$, como máximo $3$ comparaciones ($\log_2 8=3$), mientras que una búsqueda lineal podría tomar hasta $8$. La ventaja crece exponencialmente: unos $1{,}000$ elementos necesitan solo $\approx10$ pasos de búsqueda binaria (pero hasta $1{,}000$ lineales), y $1{,}000{,}000$ elementos necesitan solo $\approx20$. Reducir a la mitad es lo que lo convierte en un algoritmo de tiempo razonable.
| Inglés | Chino | Pinyin |
|---|---|---|
| Binary search/ˈbaɪnəri sɜːtʃ/ | 二分搜索 | èr fēn sōu suǒ |
3.12
Llamadas a Procedimientos
Syllabus
Comprensión duradera (AAP-3): Los programadores dividen los problemas en piezas más pequeñas y manejables. Al crear procedimientos y aprovechar los parámetros, los programadores generalizan procesos que pueden reutilizarse. Los procedimientos permiten a los programadores recurrir a código existente que ya ha sido probado, lo que les permite escribir programas más rápidamente y con mayor confianza.
Objetivo de aprendizaje AAP-3.A: Para las llamadas a procedimientos: a. Escribir sentencias para llamar a procedimientos. [Habilidad 3.B] b. Determinar el resultado o efecto de una llamada a procedimiento. [Habilidad 4.B]
-
AAP-3.A.1 Un procedimiento es un grupo nombrado de instrucciones de programación que puede tener parámetros y valores devueltos.
-
AAP-3.A.2 Los procedimientos se denominan de manera diferente, como método o función, dependiendo del lenguaje de programación.
-
AAP-3.A.3 Los parámetros son variables de entrada de un procedimiento. Los argumentos especifican los valores de los parámetros cuando se llama a un procedimiento.
-
AAP-3.A.4 Una llamada a procedimiento interrumpe la ejecución secuencial de las sentencias, haciendo que el programa ejecute las sentencias dentro del procedimiento antes de continuar. Una vez que se ejecuta la última sentencia del procedimiento (o una sentencia return), el flujo de control se devuelve al punto inmediatamente posterior a donde se llamó al procedimiento.
-
AAP-3.A.5 La hoja de referencia del examen proporciona
procName(arg1, arg2, ...)como una forma de llamar a
Texto:
PROCEDURE procName(parameter1, parameter2, ...){<block of statements>}Bloque:
PROCEDURE procName parameter1, parameter2,...block of statementsque toma cero o más argumentos;
arg1se asigna aparameter1,arg2se asigna aparameter2, y así sucesivamente. -
AAP-3.A.6 La hoja de referencia del examen proporciona el procedimiento
Texto:
DISPLAY(expression)Bloque:
DISPLAY expressionpara mostrar el valor de
expression, seguido de un espacio. -
AAP-3.A.7 La hoja de referencia del examen proporciona la
Texto:
RETURN(expression)Bloque:
RETURN expressionsentencia, que se utiliza para devolver el flujo de control al punto donde se llamó al procedimiento y para devolver el valor de
expression. -
AAP-3.A.8 La hoja de referencia del examen proporciona
result ← procName(arg1, arg2, ...)para asignar a
resultel "valor del procedimiento" que está siendo devuelto por la llamada aTexto:
PROCEDURE procName(parameter1, parameter2, ...){<block of statements>RETURN(expression)}Bloque:
PROCEDURE procName parameter1, parameter2,...block of statementsRETURN expression -
AAP-3.A.9 La hoja de referencia del examen proporciona el procedimiento
Texto:
INPUT()Bloque:
INPUTque acepta un valor del usuario y devuelve el valor de entrada.
Fuente: College Board AP Course and Exam Description
Un procedimiento (función) es un bloque de código con nombre y reutilizable. Llamarlo ejecuta su código con los argumentos que usted proporcione, y puede devolver un valor:
sum ← Add(3, 4) // call, passing 3 and 4
Los procedimientos le permiten usar código sin conocer sus mecanismos internos — abstracción procedural.
3.13
Desarrollo de Procedimientos
Syllabus
Comprensión duradera (AAP-3): Los programadores descomponen los problemas en piezas más pequeñas y manejables. Al crear procedimientos y aprovechar los parámetros, los programadores generalizan procesos que pueden reutilizarse. Los procedimientos permiten a los programadores utilizar código existente que ya ha sido probado, lo que les permite escribir programas más rápidamente y con mayor confianza.
Objetivo de aprendizaje AAP-3.B: Explicar cómo el uso de la abstracción procedural gestiona la complejidad en un programa. [Habilidad 3.C]
- AAP-3.B.1 Un tipo común de abstracción es la abstracción procedural, la cual proporciona un nombre para un proceso y permite usar un procedimiento conociendo solo qué hace, no cómo lo hace.
- AAP-3.B.2 La abstracción procedural permite basar la solución de un problema grande en las soluciones de subproblemas más pequeños. Esto se logra creando procedimientos para resolver cada uno de los subproblemas.
- AAP-3.B.3 La subdivisión de un programa informático en subprogramas separados se denomina modularidad.
- AAP-3.B.4 Una abstracción procedural puede extraer características compartidas para generalizar la funcionalidad en lugar de duplicar el código. Esto permite la reutilización del código del programa, lo que ayuda a gestionar la complejidad.
- AAP-3.B.5 El uso de parámetros permite generalizar los procedimientos, posibilitando su reutilización con una variedad de valores o argumentos de entrada.
- AAP-3.B.6 El uso de la abstracción procedural mejora la legibilidad del código.
- AAP-3.B.7 El uso de la abstracción procedural en un programa permite a los programadores cambiar los aspectos internos del procedimiento (para hacerlo más rápido, más eficiente, utilizar menos almacenamiento, etc.) sin necesidad de notificar a los usuarios del cambio, siempre que se conserve lo que hace el procedimiento.
Objetivo de aprendizaje AAP-3.C: Desarrollar abstracciones procedurales para gestionar la complejidad en un programa mediante la escritura de procedimientos. [Habilidad 3.B]
-
AAP-3.C.1 La hoja de referencia del examen proporciona
Texto:
PROCEDURE procName(parameter1, parameter2, ...){<block of statements>}Bloque:
PROCEDURE procName parameter1, parameter2,...block of statementsque se utiliza para definir un procedimiento que toma cero o más argumentos. El procedimiento contiene
block of statements. -
AAP-3.C.2 La hoja de referencia del examen proporciona
Texto:
PROCEDURE procName(parameter1, parameter2, ...){<block of statements>RETURN(expression)}Bloque:
PROCEDURE procName parameter1, parameter2,...block of statementsRETURN expressionque se utiliza para definir un procedimiento que toma cero o más argumentos. El procedimiento contiene
block of statementsy devuelve el valor deexpression. La instrucciónRETURNpuede aparecer en cualquier punto dentro del procedimiento y provoca un retorno inmediato desde el procedimiento hasta la instrucción llamante.
Fuente: College Board AP Course and Exam Description
Usted define un procedimiento con un nombre, parámetros (entradas) y un cuerpo, y opcionalmente RETURN (devolver) un resultado:

PROCEDURE Add(a, b)
{
RETURN(a + b)
}
Escribir sus propios procedimientos reduce la repetición, divide un problema grande en piezas nombradas, y hace que los programas sean legibles y más fáciles de probar — la esencia de la abstracción.
| Inglés | Chino | Pinyin |
|---|---|---|
| procedure (function)/prəˈsiːdʒə/ | 过程 | guò chéng |
| procedural abstraction/prəˈsiːdʒərəl əbˈstrækʃn/ | 过程抽象 | guò chéng chōu xiàng |
| abstraction/əbˈstrækʃn/ | 抽象 | chōu xiàng |
| library/ˈlaɪbrəri/ | 库 | kù |
| simulation/ˌsɪmjʊˈleɪʃn/ | 模拟 | mó nǐ |
| Efficiency/ɪˈfɪʃənsi/ | 效率 | xiào lǜ |
| heuristic/hjuːˈrɪstɪk/ | 启发式 | qǐ fā shì |
| undecidable/ˌʌndɪˈsaɪdəbl/ | 不可判定 | bù kě pàn dìng |
3.14
Bibliotecas
Syllabus
Comprensión duradera (AAP-3): Los programadores descomponen los problemas en partes más pequeñas y manejables. Al crear procedimientos y aprovechar parámetros, los programadores generalizan procesos que pueden reutilizarse. Los procedimientos permiten a los programadores utilizar código existente que ya ha sido probado, lo que les permite escribir programas de forma más rápida y con mayor confianza.
Objetivo de aprendizaje AAP-3.D: Seleccionar bibliotecas o segmentos de código existentes adecuados para usarlos en la creación de nuevos programas. [Habilidad 2.B]
- AAP-3.D.1 Una biblioteca de software contiene procedimientos que pueden utilizarse en la creación de nuevos programas.
- AAP-3.D.2 Los segmentos de código existentes pueden provenir de fuentes internas o externas, como bibliotecas o código escrito previamente.
- AAP-3.D.3 El uso de bibliotecas simplifica la tarea de crear programas complejos.
- AAP-3.D.4 Las interfaces de programación de aplicaciones (API) son especificaciones sobre cómo se comportan y pueden usarse los procedimientos de una biblioteca.
- AAP-3.D.5 La documentación de una API/biblioteca es necesaria para comprender los comportamientos que ofrece la API/biblioteca y cómo utilizarlos.
Fuente: College Board AP Course and Exam Description
Una biblioteca es una colección de procedimientos hechos listos que otros pueden reutilizar. Una API (Interface de Programación de Aplicaciones) documenta qué hace cada procedimiento, sus parámetros y su resultado — para que pueda usarla sin ver su código. Las bibliotecas ahorran tiempo y le permiten construir sobre trabajo existente y probado.
La documentación es parte de la biblioteca. La documentación de una API o biblioteca es necesaria para comprender los comportamientos que proporciona y cómo usarlos — qué espera cada procedimiento como parámetro, qué devuelve y qué hace en los bordes. Sin ella, tendría que leer el código fuente, lo cual anula el propósito de la abstracción; con ella, puede usar un procedimiento correctamente sin saber cómo funciona internamente.
| Inglés | Chino | Pinyin |
|---|---|---|
| Interface/ˈɪntəfeɪs/ | 应用程序接口 | yìng yòng chéng xù jiē kǒu |
3.15
Valores Aleatorios
Syllabus
Comprensión duradera (AAP-3): Los programadores descomponen los problemas en piezas más pequeñas y manejables. Al crear procedimientos y aprovechar parámetros, los programadores generalizan procesos que pueden reutilizarse. Los procedimientos permiten a los programadores recurrir a código existente que ya ha sido probado, lo que les posibilita escribir programas de manera más rápida y con mayor seguridad.
Objetivo de aprendizaje AAP-3.E: Para la generación de valores aleatorios: a. Escribir expresiones para generar valores posibles. [Habilidad 2.B] b. Evaluar expresiones para determinar los resultados posibles. [Habilidad 4.B]
-
AAP-3.E.1 La hoja de referencia del examen proporciona
Texto:
RANDOM(a, b)Bloque:
RANDOM a, bque genera y devuelve un número entero aleatorio desde
ahastab, inclusive. Cada resultado tiene la misma probabilidad de ocurrir. Por ejemplo,RANDOM(1, 3)podría devolver1,2o3. -
AAP-3.E.2 El uso de la generación de números aleatorios en un programa significa que cada ejecución puede producir un resultado diferente.
Fuente: College Board AP Course and Exam Description
RANDOM(a, b) devuelve un entero aleatorio de a a b (inclusive), permitiendo que un programa produzca resultados impredecibles — para juegos, muestreo o simulaciones. Cada llamada puede dar un valor diferente, por lo que un programa que usa aleatoriedad se comporta de manera diferente en cada ejecución.
3.16
Simulaciones
Syllabus
Comprensión perdurable (AAP-3): Los programadores descomponen problemas en partes más pequeñas y manejables. Al crear procedimientos y aprovechar parámetros, los programadores generalizan procesos que pueden reutilizarse. Los procedimientos permiten a los programadores recurrir a código existente que ya ha sido probado, lo que les posibilita escribir programas de forma más rápida y con mayor seguridad.
Objetivo de aprendizaje AAP-3.F: Para las simulaciones: a. Explicar cómo las computadoras pueden utilizarse para representar fenómenos o resultados del mundo real. [Habilidad 1.A] b. Comparar simulaciones con contextos del mundo real. [Habilidad 1.D]
- AAP-3.F.1 Las simulaciones son abstracciones de objetos o fenómenos más complejos con un propósito específico.
- AAP-3.F.2 Una simulación es una representación que utiliza conjuntos variables de valores para reflejar el estado cambiante de un fenómeno.
- AAP-3.F.3 Las simulaciones a menudo imitan eventos del mundo real con el fin de extraer inferencias, permitiendo la investigación de un fenómeno sin las limitaciones del mundo real.
- AAP-3.F.4 El proceso de desarrollo de una simulación abstracta implica eliminar detalles específicos o simplificar la funcionalidad.
- AAP-3.F.5 Las simulaciones pueden contener sesgos derivados de las elecciones de elementos del mundo real que fueron incluidos o excluidos.
- AAP-3.F.6 Las simulaciones son más útiles cuando los eventos del mundo real son imprácticos para experimentos (p. ej., demasiado grandes, demasiado pequeños, demasiado rápidos, demasiado lentos, demasiado costosos o demasiado peligrosos).
- AAP-3.F.7 Las simulaciones facilitan la formulación y refinamiento de hipótesis relacionadas con los objetos o fenómenos bajo consideración.
- AAP-3.F.8 Los generadores de números aleatorios pueden utilizarse para simular la variabilidad que existe en el mundo real.
Fuente: College Board AP Course and Exam Description
Una simulación es un programa que modela un proceso del mundo real para estudiarlo de forma segura y económica. Las simulaciones simplifican la realidad (omitirán detalles) y a menudo usan aleatoriedad para imitar eventos fortuitos. Le permiten probar escenarios que serían demasiado costosos, lentos o peligrosos en la vida real — pero sus resultados son tan buenos como sus supuestos.
Una simulación es una forma de hacer ciencia, no solo una imagen. Debido a que puede ejecutarse muchas veces, económicamente y cambiando una variable a la vez, una simulación facilita la formulación y refinamiento de hipótesis sobre el objeto o fenómeno bajo consideración: usted propone una explicación, ejecuta el modelo, compara el resultado con la realidad y ajusta ya sea la hipótesis o el modelo. Por eso importan las simplificaciones de una simulación — un resultado solo apoya una hipótesis sobre el mundo real en la medida en que lo que se omitió no importa.
3.17
Eficiencia Algorítmica
Syllabus
Comprensión Duradera (AAP-4): Existen problemas que las computadoras no pueden resolver, y aún cuando una computadora puede resolver un problema, es posible que no pueda hacerlo en un tiempo razonable.
Objetivo de Aprendizaje AAP-4.A: Para determinar la eficiencia de un algoritmo: a. Explicar la diferencia entre algoritmos que se ejecutan en un tiempo razonable y aquellos que no. [Habilidad 1.D] b. Identificar situaciones en las que una solución heurística puede ser más apropiada. [Habilidad 1.D]
- AAP-4.A.1 Un problema es una descripción general de una tarea que puede (o no puede) resolverse algorítmicamente. Una instancia de un problema también incluye una entrada específica. Por ejemplo, ordenar es un problema; ordenar la lista (2,3,1,7) es una instancia del problema.
- AAP-4.A.2 Un problema de decisión es un problema con una respuesta de sí/no (p. ej., ¿hay un camino de A a B?). Un problema de optimización es un problema cuyo objetivo es encontrar la solución "mejor" entre muchas (p. ej., ¿cuál es el camino más corto de A a B?).
- AAP-4.A.3 La eficiencia es una estimación de la cantidad de recursos computacionales utilizados por un algoritmo. La eficiencia se expresa típicamente como una función del tamaño de la entrada.
- Declaración de exclusión (EK AAP-4.A.3): El análisis formal de algoritmos (Big-O) y el razonamiento formal mediante fórmulas matemáticas están fuera del alcance de este curso y del examen AP.
- AAP-4.A.4 La eficiencia de un algoritmo se determina mediante un razonamiento formal o matemático.
- AAP-4.A.5 La eficiencia de un algoritmo puede medirse informalmente determinando el número de veces que se ejecuta una declaración o un grupo de declaraciones.
- AAP-4.A.6 Diferentes algoritmos correctos para el mismo problema pueden tener diferentes eficiencias.
- AAP-4.A.7 Los algoritmos con una eficiencia polinomial o más lenta (constante, lineal, cuadrática, cúbica, etc.) se dice que se ejecutan en un tiempo razonable. Los algoritmos con eficiencias exponenciales o factoriales son ejemplos de algoritmos que se ejecutan en un tiempo irrazonable.
- AAP-4.A.8 Algunos problemas no pueden resolverse en un tiempo razonable porque no existe un algoritmo eficiente para resolverlos. En estos casos, se buscan soluciones aproximadas.
- AAP-4.A.9 Una heurística es un enfoque para un problema que produce una solución que no está garantizada como óptima, pero que puede utilizarse cuando las técnicas que garantizan siempre encontrar una solución óptima son imprácticas.
- Declaración de exclusión (AAP-4.A.9): Las soluciones heurísticas específicas están fuera del alcance de este curso y del examen AP.
Fuente: College Board AP Course and Exam Description
Eficiencia es cuánto tiempo (o memoria) necesita un algoritmo a medida que crece su entrada. Un algoritmo de tiempo razonable crece como un polinomio del tamaño de la entrada (p. ej., lineal o cuadrático); un algoritmo de tiempo irrazonable crece mucho más rápido (p. ej., duplicándose con cada elemento añadido), volviéndose impráctico para entradas grandes. Un algoritmo más rápido puede hacer solucionable un problema que antes era imposible. A veces una respuesta exacta tarda demasiado, por lo que se usa en su lugar una heurística — un enfoque que encuentra una respuesta lo suficientemente buena rápidamente.

3.18
Problemas Indecidibles
Syllabus
Comprensión Duradera (AAP-4): Existen problemas que las computadoras no pueden resolver, e incluso cuando una computadora puede resolver un problema, puede que no sea capaz de hacerlo en un tiempo razonable.
Objetivo de Aprendizaje AAP-4.B: Explicar la existencia de problemas indecisibles en la ciencia de la computación. [Habilidad 1.A]
- AAP-4.B.1 Un problema decidible es un problema de decisión para el cual se puede escribir un algoritmo que produzca una salida correcta para todas las entradas (p. ej., "¿Es el número par?").
- AAP-4.B.2 Un problema indecisible es aquel para el cual no se puede construir ningún algoritmo que esté siempre en condiciones de proporcionar una respuesta correcta de sí o no.
- Enunciado de exclusión (EK AAP-4.B.2): Determinar si un problema dado es indecible está fuera del alcance de este curso y del Examen AP.
- AAP-4.B.3 Un problema indecisible puede tener algunas instancias que tienen una solución algorítmica, pero no existe ninguna solución algorítmica que pueda resolver todas las instancias del problema.
Fuente: College Board AP Course and Exam Description
Algunos problemas son ind decidibles: ningún algoritmo puede resolver todos sus casos con una respuesta correcta de sí/no. Esta es una limitación fundamental de la computación — no un tema de necesitar una computadora más rápida, sino una prueba de que tal algoritmo no puede existir.
Habilidad de examen: poder determinar el resultado de un segmento de código rastreándolo, comparar la eficiencia de dos algoritmos (tiempo razonable vs irrazonable) y reconocer la abstracción procedural y de datos en un programa.
3.18
Consejos para el examen
- Sepa que una variable es un almacenamiento con nombre para un valor y rastree cómo la asignación la actualiza paso a paso.
- Lea la pseudocódigo AP cuidadosamente —
a <- expressionasigna, y las listas están indexadas desde 1 en la hoja de referencia del examen. - Distinga una variable de una lista (una colección accedida por índice) y use correctamente las operaciones de lista.
- Evalúe expresiones con la precedencia correcta y la lógica booleana (
AND,OR,NOT). - Elija nombres de variables claros y significativos — las tareas escritas recompensan el código legible.
Lecciones interactivas sobre este tema
Trátalo paso a paso, con ejercicios de verificación instantánea.
- Variables y Asignaciones
- Abstracción de Datos
- Expresiones Matemáticas
- Cadenas
- Expresiones Booleanas
- Condicionales
- Condicionales Anidados
- Iteración
- Desarrollo de Algoritmos
- Listas
- Búsqueda binaria
- Procedimientos de llamada
- Desarrollo de Procedimientos
- Bibliotecas
- Valores Aleatorios
- Simulaciones
- Eficiencia Algorítmica
- Problemas Indecidibles