AP

AP Computer Science A FRQ: Güncel Soru Türleri

Selin Yıldız6 dk okuma

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örevYazı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şlemleriHazı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öntemHer nesnenin hangi bilgiyi sakladığını ve çağrıların durumu nasıl değiştirdiğini izleyin.
3. Data Analysis with ArrayListArrayList 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öntemSatı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?

  1. İstenen yöntem başlığını ve önkoşulları aynen okuyun.
  2. Girdinin değişmesine izin verilip verilmediğini belirleyin.
  3. Küçük, sınırda ve normal bir örneği elle izleyin.
  4. Gerekli bütün durumlarda dönüş değerini veya nesne durumunu kontrol edin.
  5. 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?
Yöntem ve kontrol yapıları, sınıf tasarımı, ArrayList ile veri analizi ve iki boyutlu dizi işlemleridir. Güncel görevleri College Board'un sınav sayfası ve Course and Exam Description belgesiyle kontrol edin.
Her CSA FRQ sorusu 9 puan mı?
Hayır. 2026'da yayımlanan değerlendirme rehberindeki dört soru 7, 7, 5 ve 6 puandır. Çözdüğünüz sorunun kendi ölçütlerini kullanın; tek bir dağılımı bütün sorulara uygulamayın.
ArrayList içinde silme yaparken neden eleman atlanabilir?
Silme sonrasında sonraki elemanlar sola kayar. İleri döngüde indeks hemen artırılırsa yeni gelen eleman atlanabilir. Geriye doğru tarama veya uygun indeks yönetimi bu sorunu önleyebilir.
Buradaki Java örnekleri gerçek AP soruları mı?
Hayır. Bu yazı için hazırlanmış özgün öğretim örnekleridir. Yayımlanmış AP soruları ve resmî puanlama belgeleri College Board'un sitesindedir.

Resmî kaynaklar

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.

AP Computer Science AFRQJavaArrayListStringiki boyutlu dizi

Son güncelleme: 15 Ekim 2026

AP Hazırlık İçin Sonraki Adımı Seçin

Grup kursu, birebir özel ders ve hibrit program seçeneklerini inceleyerek hedefinize uygun hazırlık yolunu netleştirin.

WhatsApp