Bölüm 2 — Ek Sorular

Her ana başlık için 10 çoktan seçmeli değerlendirme sorusu. Bölüm sonu sınav veya pekiştirme amaçlıdır.


Ana Başlık 1 için 10 Soru

SORU 1: for başlığındaki üç parça sırasıyla neyi kontrol eder?

A) Dosya, ağ, bellek

B) Başlangıç, devam koşulu, artış/adım

C) Renk, stroke, fill

D) HTML, CSS, JS

E) Yalnızca fare olayları

Doğru cevap: B

Genel açıklama: Bu soru ana başlık kazanımını ölçer. İlgili Konu: 1.1


SORU 2: draw() içinde while (true) yazmak genelde neye yol açar?

A) Animasyonu güvenle hızlandırır

B) Frame bitmez; animasyon yavaşlar veya tarayıcı kilitlenebilir

C) Yalnızca rengi değiştirir

D) for döngüsünü zorunlu kılar

E) Hiçbir etkisi olmaz

Doğru cevap: B

Genel açıklama: Bu soru ana başlık kazanımını ölçer. İlgili Konu: 1.2


SORU 3: break ne yapar?

A) Programı yeniden başlatır

B) En içteki döngüyü hemen sonlandırır

C) Tuvali siler

D) FPS’i 60 yapar

E) String birleştirir

Doğru cevap: B

Genel açıklama: Bu soru ana başlık kazanımını ölçer. İlgili Konu: 1.3


SORU 4: continue ne yapar?

A) Döngüyü başa sarıp tüm programı bitirir

B) Bu turdaki kalan gövdeyi atlayıp sonraki tura geçer

C) setup’ı siler

D) mousePressed zorunlu kılar

E) Diziyi sıralar

Doğru cevap: B

Genel açıklama: Bu soru ana başlık kazanımını ölçer. İlgili Konu: 1.4


SORU 5: «for, while ve Döngü Kontrolü» bağlamında hangisi daha iyi bir sonraki adım geliştirmedir?

A) Konu dışı bir CSS animasyonu eklemek

B) Mevcut sketch’e ölçülebilir bir kural (skor, sınır, durum) eklemek

C) Tuvali silip boş bırakmak

D) setup’ı tamamen kaldırmak

E) Rastgele sözdizimi hatası bırakmak

Doğru cevap: B

Genel açıklama: Geliştirme mevcut öğrenilen API ile kural ekler. İlgili Konu: 1.uygulama


SORU 6: Aşağıdaki hangi seçenek tipik bir çeldirici bug senaryosudur?

A) dist ile isabet, ardından skoru bir kez artırmak

B) draw içinde koşulsuz skor artışı

C) createCanvas’ı setup içinde bir kez çağırmak

D) background ile frame temizlemek

E) keyIsDown ile sürekli hareket

Doğru cevap: B

Genel açıklama: Koşulsuz artış her frame şişer — görünür bug. İlgili Konu: 1.uygulama


SORU 7: Kod okuma: if (x > width) { x = 0; } ne yapar?

A) Y’yi sıfırlar

B) X tuval sağını aşınca sola sarar

C) FPS’i sıfırlar

D) Fareyi kilitler

E) Diziyi temizler

Doğru cevap: B

Genel açıklama: Yatay sarma (wrap) kalıbı. İlgili Konu: 1.uygulama


SORU 8: Bu ana başlıkta (for, while ve Döngü Kontrolü) hangi uygulama en uygundur?

A) Öğrenilen API’yi bilinçli yok sayıp rastgele hazır kütüphane çağırmak

B) Anlatılan kavramı küçük bir sketch’te görünür çıktıyla denemek

C) Konuyu yalnızca okuyup hiç kod yazmamak

D) Tuval boyutunu her frame rastgele değiştirmek

E) Hata ayıklamadan uzun kod kopyalamak

Doğru cevap: B

Genel açıklama: Seçenek konu başlığıyla örtüşür; diğerleri alandan kopuk. İlgili Konu: 1.uygulama


SORU 9: console.log ayıklamada asıl faydası nedir?

A) Tuval çözünürlüğünü artırır

B) Ara değerleri görüp yanlış varsayımı yakalamayı sağlar

C) Otomatik çarpışma ekler

D) draw’ı durdurur

E) Kaynakça üretir

Doğru cevap: B

Genel açıklama: Gözlemlenebilir ara durum. İlgili Konu: 1.uygulama


SORU 10: Bir fonksiyonu parametreli yazmanın faydası?

A) FPS’i kilitlemek

B) Aynı mantığı farklı argümanlarla yeniden kullanmak

C) setup’ı kaldırmak

D) HTML’i silmek

E) Rengi yasaklamak

Doğru cevap: B

Genel açıklama: Modülerlik ve yeniden kullanım. İlgili Konu: 1.uygulama


Ana Başlık 2 için 10 Soru

SORU 1: 10×10 ızgarada iç içe for kaç hücre ziyaret eder?

A) 10

B) 20

C) 100

D) 1000

E) 2

Doğru cevap: C

Genel açıklama: Bu soru ana başlık kazanımını ölçer. İlgili Konu: 2.1


SORU 2: Dama deseni için tipik ifade hangisidir?

A) satir * sutun

B) (satir + sutun) % 2

C) frameRate()

D) createCanvas

E) keyCode

Doğru cevap: B

Genel açıklama: Bu soru ana başlık kazanımını ölçer. İlgili Konu: 2.2


SORU 3: sin animasyonda genelde ne sağlar?

A) Dosya indirme

B) −1…+1 arası yumuşak salınım

C) HTML bilgisini

D) APA atıfı

E) CSS seçici

Doğru cevap: B

Genel açıklama: Bu soru ana başlık kazanımını ölçer. İlgili Konu: 2.3


SORU 4: Pac-Man’de her hayaletin yönünü sırayla hesaplamak hangi programlama fikrine örnektir?

A) Tek bir if ile tüm hayaletleri aynı anda yönetmek

B) Liste / dizideki her eleman için döngüyle aynı tür işlemi tekrarlamak

C) Yalnızca background çağırmak

D) createCanvas boyutunu değiştirmek

E) APA kaynakça yazmak

Doğru cevap: B

Genel açıklama: Bu soru ana başlık kazanımını ölçer. İlgili Konu: 2.4


SORU 5: «İç İçe Döngüler, Izgara ve Animasyon» bağlamında hangisi daha iyi bir sonraki adım geliştirmedir?

A) Konu dışı bir CSS animasyonu eklemek

B) Mevcut sketch’e ölçülebilir bir kural (skor, sınır, durum) eklemek

C) Tuvali silip boş bırakmak

D) setup’ı tamamen kaldırmak

E) Rastgele sözdizimi hatası bırakmak

Doğru cevap: B

Genel açıklama: Geliştirme mevcut öğrenilen API ile kural ekler. İlgili Konu: 2.uygulama


SORU 6: Aşağıdaki hangi seçenek tipik bir çeldirici bug senaryosudur?

A) dist ile isabet, ardından skoru bir kez artırmak

B) draw içinde koşulsuz skor artışı

C) createCanvas’ı setup içinde bir kez çağırmak

D) background ile frame temizlemek

E) keyIsDown ile sürekli hareket

Doğru cevap: B

Genel açıklama: Koşulsuz artış her frame şişer — görünür bug. İlgili Konu: 2.uygulama


SORU 7: Kod okuma: if (x > width) { x = 0; } ne yapar?

A) Y’yi sıfırlar

B) X tuval sağını aşınca sola sarar

C) FPS’i sıfırlar

D) Fareyi kilitler

E) Diziyi temizler

Doğru cevap: B

Genel açıklama: Yatay sarma (wrap) kalıbı. İlgili Konu: 2.uygulama


SORU 8: Bu ana başlıkta (İç İçe Döngüler, Izgara ve Animasyon) hangi uygulama en uygundur?

A) Öğrenilen API’yi bilinçli yok sayıp rastgele hazır kütüphane çağırmak

B) Anlatılan kavramı küçük bir sketch’te görünür çıktıyla denemek

C) Konuyu yalnızca okuyup hiç kod yazmamak

D) Tuval boyutunu her frame rastgele değiştirmek

E) Hata ayıklamadan uzun kod kopyalamak

Doğru cevap: B

Genel açıklama: Seçenek konu başlığıyla örtüşür; diğerleri alandan kopuk. İlgili Konu: 2.uygulama


SORU 9: console.log ayıklamada asıl faydası nedir?

A) Tuval çözünürlüğünü artırır

B) Ara değerleri görüp yanlış varsayımı yakalamayı sağlar

C) Otomatik çarpışma ekler

D) draw’ı durdurur

E) Kaynakça üretir

Doğru cevap: B

Genel açıklama: Gözlemlenebilir ara durum. İlgili Konu: 2.uygulama


SORU 10: Bir fonksiyonu parametreli yazmanın faydası?

A) FPS’i kilitlemek

B) Aynı mantığı farklı argümanlarla yeniden kullanmak

C) setup’ı kaldırmak

D) HTML’i silmek

E) Rengi yasaklamak

Doğru cevap: B

Genel açıklama: Modülerlik ve yeniden kullanım. İlgili Konu: 2.uygulama


Ana Başlık 3 için 10 Soru

SORU 1: hedefCiz(); satırı ne yapar?

A) Fonksiyon tanımı yazar

B) Tanımlı hedefCiz fonksiyonunu çağırır / çalıştırır

C) Tuvali siler

D) Dizi oluşturur

E) FPS ölçer

Doğru cevap: B

Genel açıklama: Parantezli isim fonksiyon çağrısıdır; tanım değildir. İlgili Konu: 4.1. Fonksiyon Kavramı ve Sözdizimi


SORU 2: [Kod okuma] Aşağıdaki kod çalıştırıldığında ekrana yazdırılan değer nedir? Kod 1.

javascript
function topla(a, b) {  return a + b;} let sonuc = topla(4, 7);// sonuc değişkeninin değeri soruluyor

A) "47"

B) 11

C) true

D) undefined

E) 3

Doğru cevap: B

Genel açıklama: return a + b toplamı döndürür; sonuc 11 olur. İlgili Konu: 4.3. return ile Değer Döndürme


SORU 3: return a + b; ile return; arasındaki fark nedir?

A) İkisi de aynıdır

B) Biri değer döndürür, diğeri yalnızca fonksiyondan çıkar

C) Yalnızca setup() içinde kullanılabilirler

D) İkisi de tuval boyutunu değiştirir

E) İkisi de diziyi siler

Doğru cevap: B

Genel açıklama: return değer sonuç iletir; çıplak return erken çıkıştır. İlgili Konu: 4.3. return ile Değer Döndürme


SORU 4: Sketch'te tuval oluşturmak için createCanvas(400, 400) yazılmıştır; ancak fonksiyon adı yanlışlıkla function kurulum() olarak tanımlanmış ve içinde createCanvas çağrılmıştır. p5.js tuvali oluşturmaz. En olası neden nedir?

A) createCanvas yalnızca draw() içinde çalışır

B) p5.js otomatik olarak setup adlı fonksiyonu arar; farklı isim kullanıldığında başlangıç kodu çalışmaz

C) 400 piksel çok küçüktür

D) Dizi tanımlanmamıştır

E) background eksiktir

Doğru cevap: B

Genel açıklama: setup p5.js'in tanıdığı sabit başlangıç adıdır; isim değişince otomatik çağrılmaz. İlgili Konu: 4.1. Fonksiyon Kavramı ve Sözdizimi


SORU 5: Modüler kodda draw() içinde birçok yardımcı fonksiyon çağırmak neden tercih edilir?

A) FPS düşürmek için

B) Görevleri isimlendirilmiş parçalara ayırarak okunabilirliği artırmak için

C) Diziyi silmek için

D) Klavyeyi kapatmak için

E) Tuvali küçültmek için

Doğru cevap: B

Genel açıklama: Modülerlik bakım ve okumayı kolaylaştırır. İlgili Konu: 4.5. Modüler Kod ve Oyun Mimarisi


SORU 6: [Kod okuma] oyunBitti = true iken aşağıdaki mousePressed() çağrıldığında ne olur? Kod 2.

javascript
function mousePressed() {  if (oyunBitti) {    return;  }  skor = skor + 1;}

A) skor bir artar

B) skor değişmez; fonksiyon erken biter

C) draw() durur

D) Tuval silinir

E) oyunBitti false olur

Doğru cevap: B

Genel açıklama: return sonrası satırlar çalışmaz; skor güncellenmez. İlgili Konu: 4.3. return ile Değer Döndürme


SORU 7: [Kod okuma] Aşağıdaki draw() gövdesinde kaç kez hucreCiz çağrılır? (SATIR = 2, SUTUN = 2) Kod 3.

javascript
function draw() {  background(0);  for (let satir = 0; satir < SATIR; satir = satir + 1) {    for (let sutun = 0; sutun < SUTUN; sutun = sutun + 1) {      hucreCiz(sutun * 40, satir * 40, 40, satir, sutun);    }  }}

A) 1

B) 2

C) 4

D) 8

E) 16

Doğru cevap: C

Genel açıklama: 2×2 = 4 hücre; her biri bir fonksiyon çağrısı. İlgili Konu: 4.4. p5.js'te Yardımcı Çizim Fonksiyonları


SORU 8: yeniHedefKonumu() fonksiyonu Daire Tıklama'da hangi görevi toplar?

A) Skoru ekrana yazmak

B) Hedef koordinatlarını rastgele yeniden atamak

C) Tuvali silmek

D) Diziyi dolaşmak

E) while döngüsü koşulunu test etmek

Doğru cevap: B

Genel açıklama: Koordinat ataması tek fonksiyonda toplanır; tekrar azalır. İlgili Konu: 4.5. Modüler Kod ve Oyun Mimarisi


SORU 9: I. Kullanıcı tanımlı fonksiyonlarda camelCase örfi yaygındır.
II. draw yerine Draw yazmak p5.js davranışını değiştirmez.
III. Parametreli fonksiyon aynı kodu farklı verilerle tekrar kullanmayı kolaylaştırır.

Hangileri doğrudur?

A) Yalnız I

B) I ve III

C) Yalnız II

D) II ve III

E) I, II ve III

Doğru cevap: B

Genel açıklama: I ve III doğru. II yanlış; p5.js küçük harf draw arar. İlgili Konu: 4.1–4.3


SORU 10: hucreCiz(x, y, boyut, satir, sutun) içinde (satir + sutun) % 2 kullanılmasının amacı nedir?

A) FPS ölçmek

B) Hücre rengini satır/sütuna göre alternatif yapmak

C) Diziye push yapmak

D) Klavye okumak

E) Fonksiyonu silmek

Doğru cevap: B

Genel açıklama: Dama deseni parametreli hücre fonksiyonunda uygulanır. İlgili Konu: 4.4



Ana Başlık 4 için 10 Soru

SORU 1: FPS neyi ifade eder?

A) Saniyedeki frame sayısı

B) Tuval genişliği

C) Dosya boyutu

D) Renk kanalı

E) Git commit sayısı

Doğru cevap: A

Genel açıklama: Bu soru ana başlık kazanımını ölçer. İlgili Konu: 4.1


SORU 2: Aşağıdaki yaklaşımlardan hangisi oyun sketch’inde daha sağlam bir geliştirmedir?

A) Konu dışı teknolojiye (biçim/dil dışı) sapıp temel kuralı atlamak

B) Öğrenilen p5.js API’si ile ölçülebilir bir oyun kuralı eklemek

C) draw içinde createCanvas tekrarlamak

D) Skoru her frame koşulsuz artırmak

E) Hata ayıklamadan uzun kodu olduğu gibi bırakmak

Doğru cevap: B

Genel açıklama: Geliştirme, öğrenilen araçlarla kural eklemeyi hedefler; alandan kopuk şıklar elenir. İlgili Konu: Pekiştirme


SORU 3: Sabit x += 5 hareketi düşük FPS’te genelde nasıl görünür?

A) Daha yavaş ilerler

B) Her zaman aynı gerçek hızda kalır

C) setup’ı siler

D) Rengi değiştirir

E) Klavyeyi kilitler

Doğru cevap: A

Genel açıklama: Bu soru ana başlık kazanımını ölçer. İlgili Konu: 4.3


SORU 4: Aşağıdaki yaklaşımlardan hangisi oyun sketch’inde daha sağlam bir geliştirmedir?

A) Konu dışı teknolojiye (biçim/dil dışı) sapıp temel kuralı atlamak

B) Öğrenilen p5.js API’si ile ölçülebilir bir oyun kuralı eklemek

C) draw içinde createCanvas tekrarlamak

D) Skoru her frame koşulsuz artırmak

E) Hata ayıklamadan uzun kodu olduğu gibi bırakmak

Doğru cevap: B

Genel açıklama: Geliştirme, öğrenilen araçlarla kural eklemeyi hedefler; alandan kopuk şıklar elenir. İlgili Konu: Pekiştirme


SORU 5: «Oyun Döngüsü, FPS ve frameRate» bağlamında hangisi daha iyi bir sonraki adım geliştirmedir?

A) Konu dışı bir CSS animasyonu eklemek

B) Mevcut sketch’e ölçülebilir bir kural (skor, sınır, durum) eklemek

C) Tuvali silip boş bırakmak

D) setup’ı tamamen kaldırmak

E) Rastgele sözdizimi hatası bırakmak

Doğru cevap: B

Genel açıklama: Geliştirme mevcut öğrenilen API ile kural ekler. İlgili Konu: 4.uygulama


SORU 6: Aşağıdaki hangi seçenek tipik bir çeldirici bug senaryosudur?

A) dist ile isabet, ardından skoru bir kez artırmak

B) draw içinde koşulsuz skor artışı

C) createCanvas’ı setup içinde bir kez çağırmak

D) background ile frame temizlemek

E) keyIsDown ile sürekli hareket

Doğru cevap: B

Genel açıklama: Koşulsuz artış her frame şişer — görünür bug. İlgili Konu: 4.uygulama


SORU 7: Kod okuma: if (x > width) { x = 0; } ne yapar?

A) Y’yi sıfırlar

B) X tuval sağını aşınca sola sarar

C) FPS’i sıfırlar

D) Fareyi kilitler

E) Diziyi temizler

Doğru cevap: B

Genel açıklama: Yatay sarma (wrap) kalıbı. İlgili Konu: 4.uygulama


SORU 8: Bu ana başlıkta (Oyun Döngüsü, FPS ve frameRate) hangi uygulama en uygundur?

A) Öğrenilen API’yi bilinçli yok sayıp rastgele hazır kütüphane çağırmak

B) Anlatılan kavramı küçük bir sketch’te görünür çıktıyla denemek

C) Konuyu yalnızca okuyup hiç kod yazmamak

D) Tuval boyutunu her frame rastgele değiştirmek

E) Hata ayıklamadan uzun kod kopyalamak

Doğru cevap: B

Genel açıklama: Seçenek konu başlığıyla örtüşür; diğerleri alandan kopuk. İlgili Konu: 4.uygulama


SORU 9: console.log ayıklamada asıl faydası nedir?

A) Tuval çözünürlüğünü artırır

B) Ara değerleri görüp yanlış varsayımı yakalamayı sağlar

C) Otomatik çarpışma ekler

D) draw’ı durdurur

E) Kaynakça üretir

Doğru cevap: B

Genel açıklama: Gözlemlenebilir ara durum. İlgili Konu: 4.uygulama


SORU 10: Bir fonksiyonu parametreli yazmanın faydası?

A) FPS’i kilitlemek

B) Aynı mantığı farklı argümanlarla yeniden kullanmak

C) setup’ı kaldırmak

D) HTML’i silmek

E) Rengi yasaklamak

Doğru cevap: B

Genel açıklama: Modülerlik ve yeniden kullanım. İlgili Konu: 4.uygulama


Ana Başlık 1 — Açık Uçlu

A1. «for, while ve Döngü Kontrolü» konusundaki merkezi kavramı kendi cümlelerinizle açıklayın ve bunu somut bir mini oyun / sketch örneğine bağlayın.

A2. «for, while ve Döngü Kontrolü» için küçük bir varyasyon tasarlayın (yeni kural, sınır durumu veya görsel geri bildirim). Hangi fonksiyonlar değişir? Madde madde yazın.

A3. Bu ana başlıkta sık yapılan bir yanlış varsayımı (yanlış indeks, sıra, durum veya veri modeli) seçin; neden hatalı olduğunu ve doğru yaklaşımı iki–üç cümleyle yazın.


Ana Başlık 2 — Açık Uçlu

A1. «İç İçe Döngüler, Izgara ve Animasyon» konusundaki merkezi kavramı kendi cümlelerinizle açıklayın ve bunu somut bir mini oyun / sketch örneğine bağlayın.

A2. «İç İçe Döngüler, Izgara ve Animasyon» için küçük bir varyasyon tasarlayın (yeni kural, sınır durumu veya görsel geri bildirim). Hangi fonksiyonlar değişir? Madde madde yazın.

A3. Bu ana başlıkta sık yapılan bir yanlış varsayımı (yanlış indeks, sıra, durum veya veri modeli) seçin; neden hatalı olduğunu ve doğru yaklaşımı iki–üç cümleyle yazın.


Ana Başlık 3 — Açık Uçlu

A1. draw() içinde 50 satırlık tek blok yerine fonksiyonlara ayırmanın bakım açısından faydalarını açıklayın.

Örnek yanıt unsurları: Okunabilirlik, hata ayıklama, yeniden kullanım, ekip çalışması.
Değerlendirme: En az iki gerekçe somut mu?

A2. setup yerine kurulum adlı bir fonksiyon tanımlansa p5.js sketch'inde ne beklenir? Neden?

Örnek yanıt unsurları: p5.js yalnızca belirli adları otomatik çağırır; tuval oluşmaz.
Değerlendirme: Yerleşik olay adı kavramı doğru mu?

A3. XOX tahtası için tahtaCiz ve tasCiz(x, y, tur) gibi iki fonksiyonun sorumluluklarını nasıl bölerdiniz?

Örnek yanıt unsurları: tahta = ızgara/hücre; taş = X veya O sembolü; parametrelerle konum.
Değerlendirme: Görev ayrımı net mi?



Ana Başlık 4 — Açık Uçlu

A1. «Oyun Döngüsü, FPS ve frameRate» konusundaki merkezi kavramı kendi cümlelerinizle açıklayın ve bunu somut bir mini oyun / sketch örneğine bağlayın.

A2. «Oyun Döngüsü, FPS ve frameRate» için küçük bir varyasyon tasarlayın (yeni kural, sınır durumu veya görsel geri bildirim). Hangi fonksiyonlar değişir? Madde madde yazın.

A3. Bu ana başlıkta sık yapılan bir yanlış varsayımı (yanlış indeks, sıra, durum veya veri modeli) seçin; neden hatalı olduğunu ve doğru yaklaşımı iki–üç cümleyle yazın.