AP Computer Science Principles Sınav Rehberi
📢 Reklam Alanı — AdSense onayından sonra buraya reklam gelecek
📋 AP CSP · Bluebook · 2025 Sınav Rehberi
AP Computer Science Principles Sınav Rehberi
Bluebook kurulumu, sınav yapısı ve örnek sorular — Türkçe & İngilizce
📅 Mayıs 2025
💻 Bluebook (Dijital Sınav)
⏱️ 2 saat + 60 dk
🌐 TR / EN
⚙️ Bluebook Kurulumu
AP Computer Science Principles sınavı artık Bluebook uygulaması üzerinden dijital olarak yapılıyor. Sınav gününden önce mutlaka kurulumu tamamlayın!
1
Bluebook'u indir: bluebook.collegeboard.org adresinden indir. Windows, Mac veya iPad — Chromebook ve akıllı telefon desteklenmez!
2
Giriş yap: College Board hesabınla uygulamaya giriş yap.
3
Cihazını test et: "Test Your Device" aracıyla uyumluluğu kontrol et, "Test Preview" ile sınav önizlemesini dene.
⚠️ Chromebook ve akıllı telefonlar desteklenmiyor. iPad kullanıyorsan harici klavye zorunlu!
🗓️ Sınav Günü
1
Okul Wi-Fi'ine bağlan
2
Gözetmenden start code'u al ve uygulamaya gir
3
Cevaplar otomatik kaydedilir — internet kesilse bile veriler korunur
🔋 Şarj kablosunu mutlaka yanına al! Bluebook sınav süresince cihazı tam ekran modunda kilitler.
🚫 Sınav öncesi kapatılması gereken uygulamalar:
Zoom
Google Meet
Discord
Slack
WhatsApp Web
VPN
Antivirus (aktif tarama)
Notion
OneNote
Google Drive
📋 Sınav Yapısı
| Bölüm | İçerik | Süre |
|---|---|---|
| Section I | 70 çoktan seçmeli • Soru 1–62: Tek cevap • Soru 63–70: İki cevap! |
2 saat |
| Mola | — | ~10 dk |
| Section II | 4 yazılı cevap (Create Task'a dayalı) | 60 dk |
⚠️ Kritik: Soru 63–70'te iki cevap seçilmezse o soru için puan verilmez! / Questions 63–70 require TWO answers — selecting only one earns no credit!
📝 Örnek Sorular / Sample Questions
Soru / Question 1
Binary
🇹🇷 Bir okul sisteminde öğrencilere sırayla binary numara atanmaktadır. Son kayıt olan öğrenciye 1010 1011 numarası atandı. Bir sonraki öğrenciye atanacak binary sayı nedir?
🇺🇸 A school system assigns sequential binary numbers to students. The last enrolled student received 1010 1011. What binary number will be assigned to the next student?
🇺🇸 A school system assigns sequential binary numbers to students. The last enrolled student received 1010 1011. What binary number will be assigned to the next student?
A) 1010 1010
✅ B) 1010 1100
C) 1011 1011
D) 1111 1111
🇹🇷 1010 1011 + 1: Son iki bit 11+1=100, elde sola taşınır → 1010 1100
🇺🇸 1010 1011 + 1: rightmost bits 11+1=100, carry propagates → 1010 1100
🇺🇸 1010 1011 + 1: rightmost bits 11+1=100, carry propagates → 1010 1100
Soru / Question 2
Code / IF-ELSE
IF (speed > 120)
DISPLAY "Over speed limit"
ELSE
{
IF (speed > 90)
DISPLAY "Caution zone"
ELSE
DISPLAY "Normal speed"
}
🇹🇷 speed = 105 olduğunda ekranda ne görüntülenir?
🇺🇸 What is displayed when speed = 105?
🇺🇸 What is displayed when speed = 105?
A) "Over speed limit"
✅ B) "Caution zone"
C) "Normal speed"
D) 🇹🇷 Hiçbir şey / 🇺🇸 Nothing
🇹🇷 105 > 120? HAYIR → ELSE'e gir. 105 > 90? EVET → "Caution zone"
🇺🇸 105 > 120? NO → go to ELSE. 105 > 90? YES → "Caution zone"
🇺🇸 105 > 120? NO → go to ELSE. 105 > 90? YES → "Caution zone"
Soru / Question 3
Flowchart · Kolay / Easy
🇹🇷 Aşağıdaki akış şemasında number = 7 girildiğinde ekranda ne görünür?
🇺🇸 In the flowchart below, what is displayed when number = 7 is entered?
🇺🇸 In the flowchart below, what is displayed when number = 7 is entered?
✅ A) "Odd"
B) "Even"
C) "E"
D) 🇹🇷 Hiçbir şey / 🇺🇸 Nothing
🇹🇷 7 MOD 2 = 1 ≠ 0 → HAYIR dalı → "Odd" görüntülenir.
🇺🇸 7 MOD 2 = 1 ≠ 0 → NO branch → displays "Odd".
🇺🇸 7 MOD 2 = 1 ≠ 0 → NO branch → displays "Odd".
Soru / Question 3B
Flowchart · Zor / Hard
🇹🇷 Aşağıdaki FizzBuzz akış şemasında n = 15 girildiğinde ekranda ne görünür?
🇺🇸 In the FizzBuzz flowchart below, what is displayed when n = 15 is entered?
🇺🇸 In the FizzBuzz flowchart below, what is displayed when n = 15 is entered?
✅ A) "FizzBuzz"
B) "Fizz"
C) "Buzz"
D) 15
🇹🇷 15 MOD 3 = 0 ✓ VE 15 MOD 5 = 0 ✓ → İlk karar YES → "FizzBuzz" görüntülenir.
🇺🇸 15 MOD 3 = 0 ✓ AND 15 MOD 5 = 0 ✓ → First decision YES → displays "FizzBuzz".
🇺🇸 15 MOD 3 = 0 ✓ AND 15 MOD 5 = 0 ✓ → First decision YES → displays "FizzBuzz".
Soru / Question 4
Debug / Hata Ayıklama
PROCEDURE multiply(a, b)
{
result ← 0
REPEAT b TIMES
{
result ← result + b ← hatalı / incorrect
}
RETURN(result)
}
🇹🇷 Bu prosedür a×b'yi hesaplamak için tasarlandı ama hatalı. multiply(3, 4) çağrıldığında 12 yerine ne döner?
🇺🇸 This procedure is designed to compute a×b but has a bug. What does multiply(3, 4) return instead of 12?
🇺🇸 This procedure is designed to compute a×b but has a bug. What does multiply(3, 4) return instead of 12?
A) 12
✅ B) 16
C) 7
D) 0
🇹🇷 result+b yazılmış, result+a olmalıydı. b=4 ile 4 kez döner: 0+4+4+4+4 = 16. Doğru olsaydı: 0+3+3+3+3 = 12.
🇺🇸 Code says result+b but should be result+a. Loops 4 times: 0+4+4+4+4=16. Correct: 0+3+3+3+3=12.
🇺🇸 Code says result+b but should be result+a. Loops 4 times: 0+4+4+4+4=16. Correct: 0+3+3+3+3=12.
Soru / Question 5
⚠️ 2 Cevap / 2 Answers
🇹🇷 num ≤ 10 ifadesiyle eşdeğer olan iki Boolean ifadesi hangisidir?
🇺🇸 Which two Boolean expressions are equivalent to num ≤ 10?
🇺🇸 Which two Boolean expressions are equivalent to num ≤ 10?
✅ A) (num < 10) OR (num = 10)
B) (num < 10) AND (num = 10)
✅ C) NOT (num > 10)
D) NOT (num > 9)
🇹🇷 A: ≤10 = <10 VEYA =10 ✓ | B: Bir sayı hem <10 hem =10 olamaz ✗ | C: NOT(>10) = ≤10 ✓ | D: NOT(>9) = ≤9, 10'u kapsamaz ✗
🇺🇸 A: ≤10 = <10 OR =10 ✓ | B: Can't be both <10 and =10 ✗ | C: NOT(>10) = ≤10 ✓ | D: NOT(>9) = ≤9, excludes 10 ✗
🇺🇸 A: ≤10 = <10 OR =10 ✓ | B: Can't be both <10 and =10 ✗ | C: NOT(>10) = ≤10 ✓ | D: NOT(>9) = ≤9, excludes 10 ✗
✍️ Section II — Create Task Yazılı Cevaplar
Section II tamamen senin Create Task projen üzerine. Sınava Personalized Project Reference (PPR) belgenle giriyorsun — içinde liste ve prosedür kod segmentlerinin ekran görüntüleri var. 4 yazılı cevap sorusu, kendi kodunu ne kadar iyi açıklayabildiğini ölçüyor.
| Soru | Konu | Puan | Ne soruyor? |
|---|---|---|---|
| WR 1 | Program Amacı | 1 pt | Kullanıcı kim? Program hangi ihtiyacı karşılıyor? |
| WR 2a | Liste | 2 pt | Listedeki her eleman ne temsil eder? Liste olmadan karmaşıklık nasıl yönetilirdi? |
| WR 2b | Prosedür & Döngü | 2 pt | Döngü kaç kez çalışır? Sonsuz döngüye nasıl sokulur? Runtime error nasıl oluşur? |
| WR 2c | Algoritma | 1 pt | Prosedürün işlevi nedir? Parametre davranışı nasıl değiştirir? |
⚠️ Kelime limiti: Toplam 750 kelime önerilir, maksimum 850 kelime. Limite ulaşınca yazamazsın — kısa ve net yaz!
📊 Proje 1: Öğrenci Not Takip Sistemi
Öğrencilerin derslerini ve notlarını kaydeden, ortalama hesaplayan bir program.
WR 1 — Program Amacı
Soru / Question: Programın beklenen bir kullanıcısını tanımlayın. Programın tasarımının bu kullanıcının ihtiyaçlarını nasıl karşıladığını açıklayın.
Identify an expected user of your program. Describe one way your program's design meets the needs of this user.
Örnek cevap / Sample response: Beklenen kullanıcı, dönem boyunca birden fazla dersin notunu takip etmek isteyen bir lise öğrencisidir. Programın tasarımı, her ders için not girişi yapılmasını ve dönem sonunda otomatik ortalama hesaplanmasını sağlayarak öğrencinin not durumunu anında görmesine olanak tanır.
The expected user is a high school student who wants to track grades across multiple courses. The program allows the user to enter grades for each course and automatically calculates the average, enabling the student to see their grade status instantly.
Identify an expected user of your program. Describe one way your program's design meets the needs of this user.
Örnek cevap / Sample response: Beklenen kullanıcı, dönem boyunca birden fazla dersin notunu takip etmek isteyen bir lise öğrencisidir. Programın tasarımı, her ders için not girişi yapılmasını ve dönem sonunda otomatik ortalama hesaplanmasını sağlayarak öğrencinin not durumunu anında görmesine olanak tanır.
The expected user is a high school student who wants to track grades across multiple courses. The program allows the user to enter grades for each course and automatically calculates the average, enabling the student to see their grade status instantly.
WR 2a — Liste
grades ← [85, 92, 78, 96, 88]
total ← 0
FOR EACH grade IN grades {
total ← total + grade
}
average ← total / LENGTH(grades)
total ← 0
FOR EACH grade IN grades {
total ← total + grade
}
average ← total / LENGTH(grades)
Soru 2a-i / Question 2a-i:
What does each element in the
Cevap / Answer:
Each element in the
Soru 2a-ii / Question 2a-ii: Liste kullanmak karmaşıklığı nasıl yönetiyor?
How does using a list manage complexity?
Cevap / Answer: Liste olmadan her not için ayrı değişken (
Without a list, a separate variable (
grades listesindeki her eleman ne temsil eder?What does each element in the
grades list represent?Cevap / Answer:
grades listesindeki her eleman, öğrencinin bir dersteki 100 üzerinden sayısal notunu temsil eder.Each element in the
grades list represents the student's numerical grade out of 100 for one course.Soru 2a-ii / Question 2a-ii: Liste kullanmak karmaşıklığı nasıl yönetiyor?
How does using a list manage complexity?
Cevap / Answer: Liste olmadan her not için ayrı değişken (
grade1, grade2...) tanımlamak gerekirdi. grades listesi tüm notları tek bir veri yapısında tutarak döngüyle toplam hesaplamayı mümkün kılar.Without a list, a separate variable (
grade1, grade2...) would be needed for each grade. The grades list stores all grades in a single data structure, enabling the loop to calculate the total efficiently.
WR 2b — Prosedür & Döngü / Sonsuz Döngü / Runtime Error
PROCEDURE calcAverage(grades) {
total ← 0
i ← 0
REPEAT LENGTH(grades) TIMES {
total ← total + grades[i]
i ← i + 1
}
RETURN total / LENGTH(grades)
}
total ← 0
i ← 0
REPEAT LENGTH(grades) TIMES {
total ← total + grades[i]
i ← i + 1
}
RETURN total / LENGTH(grades)
}
Döngü kaç kez çalışır? / How many times does the loop execute?
If the
Sonsuz döngüye nasıl sokulur? / How to cause an infinite loop?
If the
Runtime error nasıl oluşur? / How to cause a runtime error?
If
grades listesinde 5 eleman varsa döngü 5 kez çalışır.If the
grades list has 5 elements, the loop executes 5 times.Sonsuz döngüye nasıl sokulur? / How to cause an infinite loop?
i ← i + 1 satırı silinirse i her zaman 0 kalır → sonsuz döngü.If the
i ← i + 1 line is removed, i always stays 0 → infinite loop.Runtime error nasıl oluşur? / How to cause a runtime error?
grades[i] yerine grades[i + 10] yazılırsa liste sınırı aşılır → index out of bounds runtime error.If
grades[i + 10] is used instead of grades[i], the list boundary is exceeded → index out of bounds runtime error.
🛒 Proje 2: Alışveriş Listesi Yöneticisi
Ürün ekleme, silme ve toplam fiyat hesaplama yapan bir alışveriş uygulaması.
WR 2b — Sonsuz Döngü & Logic Error
PROCEDURE findItem(items, prices, target) {
i ← 0
REPEAT LENGTH(items) TIMES {
IF items[i] = target {
RETURN prices[i]
}
i ← i + 1
}
RETURN -1
}
i ← 0
REPEAT LENGTH(items) TIMES {
IF items[i] = target {
RETURN prices[i]
}
i ← i + 1
}
RETURN -1
}
Logic error nasıl oluşur? / How to cause a logic error?
If
WR 2c — Prosedür işlevi / Procedure functionality:
The
IF items[i] = target koşulu IF items[i] ≠ target olarak değiştirilirse, eşleşen ürün bulununca fiyat döndürülmez → mantık hatası.If
IF items[i] = target is changed to IF items[i] ≠ target, the price is returned when the item does NOT match → logic error.WR 2c — Prosedür işlevi / Procedure functionality:
findItem prosedürü, items listesinde target ürününü arar ve bulursa prices listesinden fiyatını döndürür, bulamazsa -1 döndürür. target parametresi hangi ürünün aranacağını belirler.The
findItem procedure searches the items list for the target item and returns its price from the prices list, or -1 if not found. The target parameter determines which item is searched — changing it causes the procedure to search for a different item.
🌤️ Proje 3: Hava Durumu Takip Uygulaması
Günlük sıcaklık verilerini kaydeden, en yüksek/düşük sıcaklığı bulan bir uygulama.
WR 2b — Döngü & Sonsuz Döngü
PROCEDURE findMax(temps) {
maxTemp ← temps[0]
FOR EACH temp IN temps {
IF temp > maxTemp {
maxTemp ← temp
}
}
RETURN maxTemp
}
maxTemp ← temps[0]
FOR EACH temp IN temps {
IF temp > maxTemp {
maxTemp ← temp
}
}
RETURN maxTemp
}
Döngü kaç kez çalışır? / How many times does the loop execute?
If the
Bu döngü sonsuz döngüye sokulabilir mi? / Can this loop be made infinite?
A
Runtime error nasıl oluşur? / How to cause a runtime error?
If the
temps listesi 7 günlük veri içeriyorsa döngü 7 kez çalışır.If the
temps list contains 7 days of data, the loop executes 7 times.Bu döngü sonsuz döngüye sokulabilir mi? / Can this loop be made infinite?
FOR EACH döngüsü liste eleman sayısına göre otomatik ilerler — mevcut haliyle sonsuz döngüye sokulamaz. Sonsuz döngü için WHILE TRUE gibi bir yapıya çevrilmesi gerekir.A
FOR EACH loop automatically advances through list elements — it cannot become infinite as written. To cause an infinite loop, it would need to be converted to a WHILE TRUE structure.Runtime error nasıl oluşur? / How to cause a runtime error?
temps listesi boş gönderilirse temps[0] erişimi başarısız olur → runtime error.If the
temps list is empty, accessing temps[0] fails → runtime error.
💡 Section II Genel İpuçları
⏰ Süre60 dakika · 4 soru. Saat 5 dk kaldığında kırmızıya döner.
📄 PPR'ını tanıListe ve prosedür kod segmentlerini ezberleyecek kadar iyi bil.
🎯 Amaç ≠ İşlevWR1'de "ne yapar" değil "neden lazım" yaz. Kullanıcı problemini açıkla.
📝 850 kelime limitiKısa ve net yaz. Limit dolunca yazamazsın.
🔄 Sonsuz döngü formülüDöngüyü ilerleteni (i++ veya iterator) kaldır veya koşulu asla False yapmayacak şekilde boz.
⚡ Runtime error formülüListenin sınırı dışına çık (index -1 veya LENGTH+1) → anında runtime error.
🎓
AP CSP HAZIRLIK · ÖZEL DERS & GRUP KURSU
Bu Sınava Hazırlanmak İster misiniz?
Bilgisayar Mühendisi ve Bilişim Teknolojileri Öğretmeni Serkan Uğur ile AP Computer Science Principles sınavına birebir veya küçük gruplar hâlinde hazırlanabilirsiniz. College Board onaylı müfredat, Code.org platformu ve 20+ yıllık yazılım deneyimiyle desteklenen bir hazırlık programı.
👤 Birebir Özel Ders
Kendi hızınızda, kendi projenize odaklı hazırlık. Create Task danışmanlığı dahil. Esnek ders saati.
👥 Özel Grup (Max 8 Kişi)
Akranlarınızla birlikte öğrenin. Salı · Çarşamba · Perşembe sabah seansları. Temmuz–Ağustos 2026.
✅ College Board onaylı müfredat
✅ Section I & II odaklı hazırlık
✅ Create Task danışmanlığı
✅ Mersin · Online seçeneği
✅ Başarılar! AP CSP sınavında başarılar dilerim. Section II için kendi projenle bu formülleri uygula — cevapların ne kadar spesifik olursa o kadar yüksek puan alırsın!
✅ Başarılar! AP CSP sınavında başarılar dilerim. Soruların veya detayların için iletişime geçmekten çekinme!
📢 Reklam Alanı — AdSense onayından sonra buraya reklam gelecek

Serkan Uğur
BT Öğretmeni | Mersin
Scratch, Arduino, TÜBİTAK, Teknofest ve eğitim teknolojileri üzerine içerikler üretiyorum.
📢 Reklam Alanı
Kategoriler
📢 Reklam Alanı