AP Computer Science A: Apa yang Benar-Benar Penting
Panduan praktis untuk ujian AP CS A — apa yang diuji, bagaimana poin hilang, dan di mana harus fokus sisa waktu belajar Anda.
Ujian AP Computer Science A memberikan penghargaan kepada siswa yang menguasai keunikan Java secara mendalam, bukan hanya siswa yang memahami pemrograman secara abstrak. Dua bagian, masing-masing 90 menit: 40 pertanyaan pilihan ganda senilai 50% dari skor Anda, dan 4 pertanyaan jawaban bebas senilai 50% sisanya. Kebanyakan siswa kehilangan poin pada bagian jawaban bebas bukan karena mereka tidak memahami konsepnya, tetapi karena mereka salah menangani sintaks Java di bawah tekanan waktu.
Empat pertanyaan jawaban bebas bukanlah acakan
College Board telah menjaga struktur FRQ tetap konsisten selama bertahun-tahun. Pertanyaan 1 hampir selalu tentang metode dan struktur kontrol pada satu kelas. Pertanyaan 2 melibatkan kelas yang mengimplementasikan antarmuka atau memperluas kelas lain. Pertanyaan 3 adalah manipulasi array 2D. Pertanyaan 4 mencakup ArrayList atau kelas koleksi lainnya. Mengetahui hal ini sebelumnya berarti Anda dapat berlatih setiap jenis pertanyaan secara spesifik alih-alih mengerjakan "soal praktik AP CS" generik.
Untuk Pertanyaan 3 khususnya, hafalkan pola nested-loop untuk melintasi array 2D baik row-major maupun column-major:
for (int row = 0; row < arr.length; row++) {
for (int col = 0; col < arr[row].length; col++) {
// process arr[row][col]
}
}
Penilai (disebut "Readers") menggunakan rubrik yang memberikan kredit parsial untuk baris-baris logika yang benar secara spesifik, bahkan jika jawaban akhir Anda salah. Menulis return null; sebagai placeholder ketika Anda terjebak pada metode yang mengembalikan objek bernilai lebih daripada membiarkannya kosong.
Jebakan pilihan ganda yang muncul setiap tahun
Pertanyaan tentang == versus .equals() untuk perbandingan String muncul hampir setiap kali ujian diselenggarakan. == membandingkan referensi untuk objek; .equals() membandingkan konten. Ini membingungkan siswa karena kumpulan literal string Java terkadang membuat == mengembalikan true untuk string yang secara logis tidak harus sama berdasarkan referensi, yang merupakan jenis gotcha yang ujian ini suka uji.
Prioritas operator dan pembagian bilangan bulat adalah jebakan berulang lainnya. 7 / 2 menghasilkan 3, bukan 3.5, karena kedua operan adalah int. Ubah cast satu operan ke double, seperti (double) 7 / 2, untuk mendapatkan hasil desimal. Pertanyaan juga menguji apa yang terjadi ketika Anda mencampur int dan double dalam ekspresi tanpa cast eksplisit — ketahui bahwa Java mempromosikan secara otomatis dalam aritmatika campuran tetapi memotong ketika menetapkan hasil double kembali ke variabel int.
Inheritance dan polymorphism membawa bobot lebih dari yang terlihat
Big Idea 4 (Class dan Object Oriented Programming) muncul di kedua bagian, bukan hanya dalam pertanyaan inheritance khusus. Pahami perbedaan antara overriding dan overloading, dan ketahui bahwa Java menyelesaikan metode yang di-override pada runtime berdasarkan tipe objek aktual, bukan tipe referensi yang dideklarasikan:
Animal a = new Dog();
a.makeSound(); // calls Dog's version, not Animal's
Ini adalah polymorphism runtime, dan ujian mengujinya dengan memberikan Anda referensi satu tipe yang menunjuk ke objek subkelas, kemudian menanyakan metode mana yang benar-benar dieksekusi. Metode statis dan variabel instance tidak mengikuti aturan ini — mereka diselesaikan berdasarkan tipe yang dideklarasikan, dan perbedaan itu adalah jebakan ujian favorit.
Mekanika array dan ArrayList yang harus otomatis, bukan dicari
Anda tidak akan memiliki akses ke dokumentasi Java selama ujian. Hafalkan ini tanpa ragu:
array.length(tanpa tanda kurung, ini adalah field)list.size()(dengan tanda kurung, ini adalah metode)list.add(index, element)menggeser semuanya ke kananlist.remove(index)menggeser semuanya ke kiri dan mengembalikan elemen yang dihapus- Menghapus elemen dari ArrayList sambil melakukan iterasi maju dengan for-each loop melempar
ConcurrentModificationException; lakukan iterasi mundur dengan loop terindeks sebagai gantinya ketika menghapus
Poin terakhir adalah benar-benar salah satu bug logika paling umum dalam respons FRQ, dan Readers melihatnya secara konsisten.
Bagaimana menghabiskan dua minggu terakhir Anda
Kerjakan FRQ masa lalu lengkap di bawah kondisi waktu aktual — College Board menerbitkan ujian masa lalu nyata dengan panduan penilaian yang menunjukkan dengan tepat bagaimana poin diberikan. Baca panduan penilaian dengan cermat; mereka mengungkapkan betapa detail kredit parsialnya, kadang-kadang hingga ke variabel yang dideklarasikan dengan benar. Untuk pilihan ganda, fokuskan waktu ulasan pada pelacakan rekursi dan pengindeksan array 2D, karena itulah kesalahan ceroboh paling banyak mengurangi poin relatif terhadap betapa sederhananya konsep yang mendasarinya.
Jika Anda ingin membangun dasar fundamental Java di bawah semua ini lebih solid, atau melihat contoh kelas, inheritance, dan manipulasi array yang dipecah langkah demi langkah, lihat segmen Python dan Computer Science di perpustakaan Korra Studio untuk latihan yang lebih terstruktur.
Ditulis dengan bantuan AI, ditinjau dan dipublikasikan oleh Michal Pilch (CISSP), Korra Studio.
Ini satu catatan dari basis pengetahuan Korra Studio — platform ini memasangkan setiap topik dengan bimbingan privat.
Mulai gratisarrow_forward