FRQ workshop: the 4 question types · Taller FRQ: los 4 tipos de preguntas
La sección de respuestas abiertas
- El examen AP CSA tiene dos partes. La Parte 1 es de opción múltiple. La Parte 2 es de respuestas abiertas (escribes Java a mano).
- Siempre hay 4 preguntas de respuestas abiertas (FRQ), y provienen en los mismos 4 tipos cada año.
- Esta lección es un mapa rápido de los 4 tipos. Conocer el patrón hace que el examen sea mucho menos intimidante. ¡Tú puedes!
Tipo 1: Métodos y Estructuras de Control
- Escribes uno o dos métodos usando bucles,
ify matemáticas simples conint,double,booleanyString. - No se requiere diseñar una clase — la clase ya está dada. Solo debes rellenar el cuerpo del método.
- Esta es la pregunta más de "código plano". Las Lecciones 1–8 cubren todo lo que necesitas.
public class Grades {
// Count the scores that are 60 or more.
public static int countPassing(int[] scores) {
int count = 0;
for (int s : scores) {
if (s >= 60) {
count = count + 1;
}
}
return count;
}
public static void main(String[] args) {
int[] scores = {72, 40, 95, 60, 33};
System.out.println(countPassing(scores)); // 3
}
}
Tipo 2: Diseño de Clases
- Se te da una descripción de una clase y debes escribir toda la clase.
- Eso significa: variables de instancia, un constructor y los métodos que te soliciten.
- Recuerda los campos
private, el constructor con el mismo nombre que la clase, ythis.field = field. La Lección 6 cubre esto.
public class Student {
private String name;
private int score;
public Student(String name, int score) {
this.name = name;
this.score = score;
}
public int getScore() {
return score;
}
}
Tipo 3: Array / ArrayList
- Trabajas con un
ArrayList(o a veces un array) y escribes código que lo recorra. - Tareas comunes: encontrar un valor, contar elementos, eliminar elementos o construir una nueva lista.
- Presta atención al índice cuando eliminas elementos mientras haces un recorrido. Las Lecciones 9–11 cubren esto.
// Count the Strings longer than 3 letters.
int count = 0;
for (int i = 0; i < words.size(); i++) {
if (words.get(i).length() > 3) {
count++;
}
}
return count;
Tipo 4: Array 2-D
- Trabajas con un array 2-D (una cuadrícula de filas y columnas).
- Usas bucles anidados: un bucle exterior para las filas y un bucle interior para las columnas.
- Tareas comunes: sumar una fila, sumar una columna, encontrar el valor más grande o contar coincidencias. La Lección 12 cubre esto.
// Add up every value in the grid.
int total = 0;
for (int r = 0; r < grid.length; r++) {
for (int c = 0; c < grid[r].length; c++) {
total += grid[r][c];
}
}
return total;
Estrategia del examen: lee con cuidado
- Lee toda la pregunta primero. Subraya lo que el método debe devolver y cuáles son sus parámetros.
- Mira la tabla de ejemplo que te dan. Muestra exactamente qué debe producir tu código.
- Copia el encabezado del método que te dan. No cambies su nombre, parámetros ni tipo de retorno.
Estrategia del examen: escribe métodos que funcionen
- Escribe primero la base de un bucle, luego rellena el cuerpo. Hazlo funcionar en tu mente paso a paso.
- Recorre correctamente: empieza el índice en
0, detente enlength(osize()); revisa los bordes. - Usa
returncon el tipo correcto. Si el encabezado diceint, devuelve unint.
Estrategia del examen: las pequeñas victorias suman
- Obtienes puntos por las partes que funcionan, incluso si todo el método no es perfecto. Siempre escribe algo.
- Usa solo Java que conozcas de este curso. Un código simple y correcto vence a un código ingenioso.
- Revisa tu trabajo con los valores de ejemplo de la pregunta antes de pasar a la siguiente.
Estás listo
- Los 4 tipos nunca cambian: métodos, diseño de clases, array/ArrayList y array 2-D.
- Cada habilidad que necesitas para estos cuatro tipos de FRQ está en las lecciones 1–12. Practica cada tipo unas pocas veces y el patrón se volverá familiar.
- Mantén la calma, lee con cuidado y escribe el código que sabes. ¡Buena suerte en el examen!
Errores comunes
- Coincide exactamente con el encabezado del método: el tipo de retorno y los parámetros.
- Lee todo el enunciado antes de empezar a programar.
Ahora tú intentas
- Intenta un método estilo FRQ por tu cuenta — con la misma estructura que el Tipo 1 anterior.
- Presiona Check answer para compilar y ejecutarlo en el servidor.
FRQ practice — Type 1 (Methods). Complete countAtLeast(int[] scores, int limit) so it returns how many values in scores are at least limit (greater than or equal). Use a loop and an if, like the worked example above. · Práctica FRQ — Tipo 1 (Métodos). Completa countAtLeast(int[] scores, int limit) para que devuelva cuántos valores en scores son al menos limit (mayores o iguales). Usa un bucle y un if, como en el ejemplo resuelto arriba.
Click Run to see the output here. · Haz clic en Ejecutar para ver la salida aquí.
FRQ practice — Type 2 (Class design). Complete the Rectangle class: store width and · y height from the constructor, and finish area() so it returns width × height. This is exactly what a Type 2 FRQ asks for. · Práctica FRQ — Tipo 2 (Diseño de clase). Completa la clase Rectangle: almacena width y height desde el constructor, y termina area() para que devuelva width × height. Esto es exactamente lo que pide una FRQ Tipo 2.
Click Run to see the output here. · Haz clic en Ejecutar para ver la salida aquí.