Kısa cevap
AP Computer Science A FRQ bölümünde dört görev vardır: yöntem ve kontrol yapıları, sınıf tasarımı, ArrayList ile veri analizi ve iki boyutlu dizi işlemleri. Değerlendirme ölçütleri soruya özeldir; tek bir puan listesini bütün sorulara uygulamayın.
AP Computer Science A FRQ bölümünde verilen açıklamaya uygun Java kodu yazmanız beklenir. Güncel dört görev; yöntem ve kontrol yapıları, sınıf tasarımı, ArrayList ile veri analizi ve iki boyutlu dizi işlemleridir. Her göreve aynı puan listesini uygulamak yerine, sorunun istediği davranışı ve o soruya ait değerlendirme ölçütlerini birlikte okuyun.
Güncel sınavda hangi dört görev var?
College Board'un güncel sınav açıklamasında çoktan seçmeli bölüm 42 soru ve 90 dakika; FRQ bölümü dört soru ve 90 dakikadır. Bölümlerin sınav sonucundaki ağırlıkları sırasıyla %55 ve %45'tir. Sınav Bluebook üzerinde dijital olarak yapılır; Java Quick Reference sınavda erişilebilen kütüphane yöntemlerini gösterir.
| Görev | Yazılması beklenen kod | İlk kontrol |
|---|---|---|
| 1. Methods and Control Structures | İki yöntem veya bir kurucu ve bir yöntem; ilk kısımda koşul/döngü ve verilen sınıfın yöntem çağrıları, ikinci kısımda String işlemleri | Hazır yöntemleri, imzaları ve metin işleminin sınırlarını belirleyin. |
| 2. Class Design | İstenen sınıf başlığı, nesne değişkenleri, kurucu ve yöntem | Her nesnenin hangi bilgiyi sakladığını ve çağrıların durumu nasıl değiştirdiğini izleyin. |
| 3. Data Analysis with ArrayList | ArrayList içindeki veriyi kullanan, analiz eden veya değiştiren bir yöntem | İndekslerin ve liste değişikliklerinin sonraki adımlara etkisini kontrol edin. |
| 4. 2D Array | İki boyutlu dizideki veriyi kullanan, analiz eden veya değiştiren bir yöntem | Satır ve sütun sınırlarını ayrı okuyun. |
Kalıtım ve arayüzleri dördüncü FRQ kategorisi olarak sıralamak bu güncel görev dağılımını yansıtmaz. Önceki yılların sorularını kullanırken College Board'un uyum uyarısını ve güncel Course and Exam Description belgesini kontrol edin.
Puanlama: çalışan sonuç ile ölçüt aynı şey mi?
Doğru kod, istenen davranışı bütün geçerli girdilerde üretir. Değerlendirme ise bu davranışın belirli bileşenlerini ayrı ölçütlerle inceler. 2026'da yayımlanan puanlama rehberinde dört soru sırasıyla 7, 7, 5 ve 6 puandır; toplam 25 ham puan eder. Bu sayıları her yıl ve her öğretmen alıştırması için değişmez bir dağılım gibi kullanmayın. Ham FRQ puanını tek başına 1–5 AP sonucuna çevirmeyin.
Aynı rehber bazı küçük yazım hatalarını, amaç açık olduğunda ve ilgili ölçüt aksini söylemediğinde göz ardı edebilir. Bu, bütün söz dizimi hatalarının önemsiz olduğu anlamına gelmez. Yöntem imzasını değiştirmek, gerekli veriyi yanlışlıkla değiştirmek veya adımları yanlış sırada kurmak değerlendirilen algoritmayı etkileyebilir. Açıklama satırı, eksik kodun yerine otomatik puan sağlamaz.
Özgün örnek 1: yöntem çağrısı ve String sınırı
Aşağıdaki görevler bu yazı için hazırlanmış küçük öğretim örnekleridir; yayımlanmış AP soruları veya resmî puanlama anahtarları değildir. Tam sınav sorusunun tüm ayrıntılarını temsil etmezler.
Bir SlotPlan sınıfında isReady(int slot) yöntemi hazır verilsin. Geçerli zaman aralıkları 0–4 olsun. countReady, bu beş aralık içinde hazır olanların sayısını döndürmelidir. Hazır yöntemin iç işleyişini yeniden yazmak yerine verilen sözleşmesine göre çağırırız:
public int countReady()
{
int count = 0;
for (int slot = 0; slot < 5; slot++)
{
if (isReady(slot))
{
count++;
}
}
return count;
}
Yalnız 0, 2 ve 4 hazırsa sonuç 3 olur. Döngüde slot < 4 kullanmak son aralığı atlar; slot <= 5 ise sözleşmenin dışındaki 5'i sorgular. Bunlar hangi girdilerin işlendiğiyle ilgili hatalardır; sabit bir puan kaybı sayısı değildir.
Aynı sınıfta label adlı, null olmayan bir String saklansın. topic, etiketteki ilk ":" işaretinden önceki bölümü; işaret yoksa etiketin tamamını döndürsün:
public String topic()
{
int end = label.indexOf(":");
if (end == -1)
{
return label;
}
return label.substring(0, end);
}
"ALG:12" için sonuç "ALG", "ALG" için yine "ALG" olur. indexOf işaret bulunmadığında −1 verir; bu kontrol olmadan substring(0, -1) geçersizdir. substring bitiş indeksini sonuç metnine dahil etmez.
Özgün örnek 2: iki nesnenin durumunu ayırın
ReadingLog, bir kişinin adını ve kaydettiği toplam sayfa sayısını saklasın. Kurucu toplamı sıfırlasın; recordPages yeni sayfa sayısını ekleyip güncel bilgiyi metin olarak döndürsün. Ad null değildir; sayfa sayıları negatife düşmez ve toplam int aralığında kalır.
public class ReadingLog
{
private String owner;
private int totalPages;
public ReadingLog(String name)
{
owner = name;
totalPages = 0;
}
public String recordPages(int pages)
{
totalPages += pages;
return owner + ": " + totalPages;
}
}
new ReadingLog("Ada") ile oluşturulan nesnede 12 ve ardından 8 sayfa kaydedilirse dönüşler "Ada: 12" ve "Ada: 20" olur. Ayrı bir new ReadingLog("Can") nesnesine 5 sayfa eklemek "Can: 5" üretir; Ada'nın toplamını değiştirmez. Bu yüzden burada totalPages nesne değişkenidir, static değildir.
Kurucunun adı sınıf adıyla aynıdır ve dönüş türü yazılmaz. Bu örnek belirli bir kurucu ve yöntem ister; her sınıf sorusuna gereksiz getter, setter veya ikinci bir kurucu eklemek çözümün gereği değildir.
Özgün örnek 3: silinen elemandan sonra listeyi izleyin
Null olmayan String'lerden oluşan bir ArrayList<String> içindeki, uzunluğu limit değerinden küçük bütün adları silip silinenlerin sayısını döndürmek istiyoruz. limit sıfır veya pozitiftir.
public static int removeShort(ArrayList<String> names, int limit)
{
int removed = 0;
for (int i = names.size() - 1; i >= 0; i--)
{
if (names.get(i).length() < limit)
{
names.remove(i);
removed++;
}
}
return removed;
}
["a", "bb", "Can", "Ada", "x"] ve limit = 3 için üç eleman silinir; liste ["Can", "Ada"] kalır. Geriye doğru ilerlemek, silme sırasında sola kayan elemanın atlanmasını önler. İleri döngü de uygun indeks yönetimiyle doğru yazılabilir; önemli olan kullanılan yöntemin bütün gerekli elemanları işlemesidir.
String içeriğini karşılaştırırken equals kullanın; == nesne referanslarını karşılaştırır. Ham türde ArrayList yazmak Java'da her durumda derleme hatası değildir, ancak tür güvenliğini azaltır. FRQ'da istenen tür ve yöntem sözleşmesini açıkça koruyun.
Özgün örnek 4: satır sayısı sütun sayısı değildir
columnSums, dikdörtgen biçimindeki bir int dizisinin her sütununun toplamını döndürsün. En az bir satır ve bir sütun vardır; toplamlar int aralığında kalır. Girdi dizisi değiştirilmez.
public static int[] columnSums(int[][] data)
{
int[] sums = new int[data[0].length];
for (int col = 0; col < data[0].length; col++)
{
for (int row = 0; row < data.length; row++)
{
sums[col] += data[row][col];
}
}
return sums;
}
[[2, -1, 4], [0, 5, 3]] için sonuç [2, 4, 7] olur. Burada data.length 2 satırı, data[0].length 3 sütunu verir. Kare olmayan bir örnek, iki sınırın yanlışlıkla birbirinin yerine kullanılmasını görünür kılar.
Çözümünüzü neye göre kontrol edebilirsiniz?
- İstenen yöntem başlığını ve önkoşulları aynen okuyun.
- Girdinin değişmesine izin verilip verilmediğini belirleyin.
- Küçük, sınırda ve normal bir örneği elle izleyin.
- Gerekli bütün durumlarda dönüş değerini veya nesne durumunu kontrol edin.
- Resmî bir soruyu çözdüyseniz yalnız o sorunun puanlama ölçütleriyle karşılaştırın.
Dört görevin hepsine eşit süre ayırmak bir zorunluluk değildir. Çalışırken hangi işlemde hata yaptığınızı kaydedin: yöntem çağrısı, durum güncellemesi, metin indeksi, liste kayması veya satır–sütun sınırı. Programı çalıştırmak hataları bulmaya yardımcı olur; resmî FRQ değerlendirmesinin yerine geçmez.
Dersin kapsamı için AP Computer Science A sayfasına bakabilirsiniz.
Sık sorulan sorular
AP Computer Science A'nın güncel FRQ kategorileri nelerdir?
Her CSA FRQ sorusu 9 puan mı?
ArrayList içinde silme yaparken neden eleman atlanabilir?
Buradaki Java örnekleri gerçek AP soruları mı?
Resmî kaynaklar
- College Board — güncel CSA sınavı ve dört FRQ görevi
- College Board — Fall 2025 CSA Course and Exam Description
- College Board — 2026 CSA değerlendirme rehberi
- College Board — önceki sorular ve güncel sınava uyum uyarısı
Kaynak kontrolü: 14 Ekim 2026. Soru türleri güncel sınav açıklamasına; sayısal puan örneği yalnız 2026'da yayımlanan değerlendirme rehberine dayanır.
Son güncelleme: 15 Ekim 2026