AP Computer Science A: что действительно важно
Практическое руководство по экзамену AP CS A — что проверяется, где теряются баллы и на что сосредоточить оставшееся время подготовки.
Экзамен AP Computer Science A награждает студентов, которые знают особенности Java в совершенстве, а не просто понимают программирование в целом. Две части, по 90 минут каждая: 40 вопросов с выбором ответа, стоящие 50% баллов, и 4 вопроса с развёрнутым ответом, стоящие остальные 50%. Большинство студентов теряют баллы на вопросах с развёрнутым ответом не потому, что не понимают концепцию, а потому, что неправильно работают с синтаксисом Java под давлением времени.
Четыре вопроса с развёрнутым ответом — это не случайность
College Board годами держит структуру FRQ постоянной. Вопрос 1 почти всегда касается методов и управляющих структур в одном классе. Вопрос 2 включает класс, который реализует интерфейс или наследует другой класс. Вопрос 3 — манипуляция двумерными массивами. Вопрос 4 охватывает ArrayList или другие классы коллекций. Зная это заранее, можно практиковать каждый тип вопроса конкретно, а не решать обобщённые «задачи подготовки к AP CS».
Для вопроса 3 особенно важно запомнить паттерн вложенного цикла для обхода двумерного массива как по строкам, так и по столбцам:
for (int row = 0; row < arr.length; row++) {
for (int col = 0; col < arr[row].length; col++) {
// process arr[row][col]
}
}
Проверяющие (их называют «Readers») используют рубрику, которая дарует частичный зачёт за конкретные строки корректной логики, даже если окончательный ответ неправильный. Написать return null; как заполнитель, когда вы застрял на методе, возвращающем объект, — это лучше, чем оставить его пустым.
Ловушки в вопросах с выбором ответа, которые возникают каждый год
Вопросы о == в сравнении с .equals() для сравнения строк появляются почти на каждом тестировании. == сравнивает ссылки для объектов; .equals() сравнивает содержимое. Это озадачивает студентов, потому что пул строковых литералов Java иногда заставляет == возвращать true для строк, которые логически не должны быть равны по ссылке — это именно тот вид подвоха, который экзамен любит проверять.
Приоритет операторов и целочисленное деление — другие постоянные ловушки. 7 / 2 даёт 3, а не 3.5, потому что оба операнда — целые числа. Приведите один операнд к double, например (double) 7 / 2, чтобы получить результат с десятичной частью. Вопросы также проверяют, что происходит, когда вы смешиваете int и double в выражениях без явного приведения — знайте, что Java автоматически преобразует типы в смешанной арифметике, но обрезает, когда присваиваете результат double переменной int.
Наследование и полиморфизм весят больше, чем кажется
Big Idea 4 (Class и Object Oriented Programming) появляется в обеих частях, не только в посвящённых наследованию вопросах. Разберитесь в разнице между переопределением и перегрузкой, и знайте, что Java разрешает переопределённые методы во время выполнения на основе фактического типа объекта, а не объявленного типа ссылки:
Animal a = new Dog();
a.makeSound(); // вызывает версию Dog, не Animal
Это полиморфизм времени выполнения, и экзамен проверяет его, давая вам ссылку одного типа, указывающую на объект подкласса, а затем спрашивая, какой метод на самом деле выполняется. Статические методы и переменные экземпляра не следуют этому правилу — они разрешаются на основе объявленного типа, и это различие — любимая ловушка экзамена.
Механика массивов и ArrayList, которые должны быть автоматическими, а не подсматриваемыми
Доступа к документации Java на экзамене у вас не будет. Запомните эти моменты без колебаний:
array.length(без скобок, это поле)list.size()(со скобками, это метод)list.add(index, element)сдвигает всё вправоlist.remove(index)сдвигает всё влево и возвращает удалённый элемент- Удаление элементов из ArrayList во время итерации вперёд с циклом for-each вызывает
ConcurrentModificationException; вместо этого итерируйте в обратном направлении с индексированным циклом
Этот последний момент действительно одна из самых распространённых логических ошибок в ответах FRQ, и Readers видят её постоянно.
Как потратить последние две недели
Решайте полные прошлые FRQ в условиях реального времени — College Board публикует реальные прошлые экзамены с руководствами по оценке, точно показывающими, как были присуждены баллы. Внимательно прочитайте руководства по оценке; они раскрывают, насколько детальным на самом деле является частичный зачёт, иногда вплоть до одной корректно объявленной переменной. Для вопросов с выбором ответа сосредоточьте время повторения на трассировании рекурсии и индексировании двумерных массивов, потому что там небрежные ошибки стоят больше всего баллов относительно того, насколько проста на самом деле базовая концепция.
Если вы хотите более солидно разобраться с основами Java, лежащими в основе всего этого, или посмотреть разработанные примеры классов, наследования и манипуляции массивами, расписанные пошагово, обратитесь к сегментам Python и Computer Science в библиотеке Korra Studio для более структурированной практики.
Написано с помощью ИИ, проверено и опубликовано Михалом Пильхом (CISSP), Korra Studio.
Это одна заметка из базы знаний Korra Studio — платформа сочетает каждую тему с наставничеством один на один.
Начать бесплатноarrow_forward