Files
kolaytercih/docs/gece-vardiyasi/2026-09-22/29-yazar-ayni-bolum-farkli-uni.md
bilalgursen 2b350d0c5d content(rehber): gece vardiyasının 14 yeni yazısı + 2 düzeltme, ekip raporları ve kurallar
14 yeni rehber yazısı (hepsi editör denetiminden geçti, 46 yazıda 829 iç link
tarandı, 0 kırık hedef; 180+ DB rakamı yazıların kendi filtreleriyle yeniden
koşuldu):

  taban-siralamalari-alti-yilda-nasil-degisti · kac-net-ile-hangi-bolum ·
  siralama-bandlari-hangi-kapilar-acilir · ayni-bolum-farkli-universite-siralama-farki ·
  hangi-bolumlerin-kontenjani-azaldi · yeni-acilan-bolumler-nasil-degerlendirilir ·
  bilgisayar-mi-yazilim-muhendisligi-mi · kktc-universiteleri-okunur-mu ·
  yapay-zekaya-tercih-sordum-guvenilir-mi · ek-madde-1-puanim-yetiyor-mu ·
  universitede-ilk-hafta-ders-kaydi-muafiyet-kayit-dondurma · yks-2027-takvimi ·
  rehber-ogretmenler-icin-veri-kaynaklari · bolumumu-sevmedim-hangi-kapilar-var

İki canlı yazı düzeltildi:
- veliler-icin-tercih-rehberi: veli diliyle kapanış; altındaki "sıralamanı gir"
  kutusu artık veliye ölü uç değil
- bos-kontenjanlar-ne-anlatiyor: "birkaç yüz kişilik fark" aslında ~9 bin
  (ÖSYM 265.356 ↔ bizim 256.532); payda açıklaması tersti — ek kontenjan
  paydaya girseydi oran düşerdi. guncelleme alanı eklendi (sitemap lastmod).

Kurallar (AGENTS.md):
- Yayın sonrası arama motoru bildirimi: URL denetimi yalnız canlıda 200 dönen
  adrese; kota sayacı; mülk/hesap notu; sitemap grep kuralı
- Yıkıcı git komutları yasak: reset/checkout --/restore/clean/stash
- Tarayıcı açma: tasarımcı ve UX gerekli gördüğünde açabilir (yetenek için
  .claude/agents/tasarimci.md'ye tarayıcı araçları eklendi)

docs/gece-vardiyasi/2026-09-22/ — 34 rapor: CEO kararları ve kapanış turu,
marka/ödeme analizi, sıfır ödeme teşhisi, SEO konu planı, veri kalitesi,
editör denetimi, CTO şartnamesi, yazılımcı ve güvenlik raporları, SABAH-OZETI.

docs/ekip/YAYIN-KUYRUGU.md — Search Console bildirim kuyruğu.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-22 23:25:34 +03:00

23 KiB
Raw Blame History

29 — Yazar raporu: ayni-bolum-farkli-universite-siralama-farki

Rol: rehber-yazari · Tarih: 22 Eylül 2026 gece vardiyası Yazılan tek dosya: content/rehber/ayni-bolum-farkli-universite-siralama-farki.md (3.326 kelime). Commit atılmadı, git add yapılmadı, src/ ve başka içerik dosyası değiştirilmedi. Şartname: 02-seo-konu-plani.md §0 + §2 Dalga A #3 · Kalite eşiği: 05-ceo-kararlari.md §C(d) · Editör dersleri: 20-editor-denetimi.md Veri: data/yokatlas.db, tüm sorgular sqlite3 -readonly. veri_meta.refresh_2026_tarih = 2026-09-21T17:21:23Z.


Özet (5 madde)

  1. Havuz bilerek siralama-bandlari yazısıyla birebir aynı seçildi: 9.304 program / 271 üniversite / 81 il / 351 bölüm adı. Editörün o yazıda zaten yeniden koşup doğruladığı havuz bu; iki yazının rakamları aynı tabandan okunuyor ve çapraz çelişki riski sıfırlandı. Bölüm adı gruplaması bolumBazAdi kuralının SQL karşılığıyla yapıldı ve siralama-bandlari'nın "aynı bölüm adı kaç bandda" tablosuyla hücre hücre tuttu (İşletme 303, Hemşirelik 265, Psikoloji 243, Tıp 217, Bilg.Müh. 213, Hukuk 123 + medyanlar 247.503 / 131.777 / 117.459 / 16.585 / 111.495 / 14.878).
  2. Yöntem kutusu rakamlardan önce, 6 satırlık eleme merdiveni hâlinde (21.493 → 12.239 → 11.280 → 9.482 → 9.408 → 9.365 → 9.304), her adımda kaç satırın neden elendiği yazılı. Editörün "filtre cümlesi rakamı üretmiyor" bulgusu bu yazıda baştan kapatıldı.
  3. Yazının çekirdek bulgusu, plandakinden daha keskin çıktı ve yazının omurgası oldu: sıralaması 150.000 olan aday için 2026'da tabanı gerisinde kapanmış 82 Psikoloji programı vardı ama bunların yalnız 6'sı devlet; 250.000'de devlet sütunu sıfırlanıyor. Yani "Psikoloji okunur mu" sorusunun gerçek ayracı bölüm değil bedel ve coğrafya. Altı devlet programının tamamı adıyla, iliyle, kontenjanıyla tabloda.
  4. Editörün üç tuzağının üçü de açıkça ele alındı: (a) kirli il — elenen 43 satır + Psikoloji'de takılan iki satır adıyla yazıldı; (b) unitur='DEVLET' güvenilmezliği — Kıbrıs Amerikan'ın 42 satırına ek olarak bu yazıda bulunan iki yeni örnek (Uluslararası Saraybosna ve Uluslararası Balkan üniversitelerinin DEVLET etiketli Psikoloji satırları); (c) ODTÜ — havuzdaki 65 satır, İşletme'de 6 / Psikoloji'de 2 ayrı satır ve hiçbir örnekte ODTÜ'nün adıyla kullanılmadığı yazılı; Mimarlık devlet ucundaki 39.128'in ODTÜ olduğu ve kampüsünün belirsizliği rakamın geçtiği yerde belirtildi.
  5. Vakıf burs kırılımına dayanan genel tablo yazılmadı (havuzdaki 3.439 vakıf satırının 2.780'inde etiket yok). Onun yerine etiketi adında açıkça yazan üç Psikoloji örneği verildi (Yeditepe, Kapadokya, Avrasya) ve "170 vakıf satırının yalnız 32'sinde etiket var, kalan 138'i adıyla örneklemiyoruz" cümlesi tablonun altyazısına kondu.

(a) Havuz tanımı (yazının yöntem kutusunun SQL karşılığı)

Tüm sorgular bu geçici görünüm üzerinde koştu:

CREATE TEMP VIEW p AS
SELECT *,
  TRIM(CASE WHEN instr(isim,' (')>0 THEN substr(isim,1,instr(isim,' (')-1) ELSE isim END) AS bolum
FROM programs
WHERE onlisans=0
  AND unitur IN ('DEVLET','VAKIF')
  AND sira2026 IS NOT NULL
  AND isim NOT LIKE '%KKTC Uyruklu%'
  AND il IS NOT NULL AND TRIM(il) <> ''
  AND il NOT IN ('KIBRIS','LEFKOŞA','GİRNE','GAZİMAĞUSA','LEFKE','GÜZELYURT','İSKELE',
                 'SARAYBOSNA - BOSNA - HERSEK')
  AND NOT (lower(COALESCE(fakulte,'')) LIKE '%açık%' OR lower(COALESCE(fakulte,'')) LIKE '%uzaktan%'
           OR lower(isim) LIKE '%açıköğretim%' OR lower(isim) LIKE '%uzaktan%');

bolum ifadesi src/lib/slug.ts:29 bolumBazAdi() kuralının SQL karşılığıdır (ilk " ("den itibaren kes → parantezli burs/dil varyantları aynı ada toplanır). /bolum/<slug> sayfaları da aynı kuralı kullanır.

Doğrulama: SELECT COUNT(*), COUNT(DISTINCT universite), COUNT(DISTINCT il), COUNT(DISTINCT bolum) FROM p; → 9304 | 271 | 81 | 351 — siralama-bandlari-hangi-kapilar-acilir.md havuzuyla birebir (editörün 20 nolu raporunda yeniden koşulmuş hâli).

Eleme merdiveni (yazıdaki tablo — S0)

SELECT COUNT(*) tum_lisans,
 SUM(unitur IN ('DEVLET','VAKIF')) a,
 SUM(unitur IN ('DEVLET','VAKIF') AND sira2026 IS NOT NULL) b,
 SUM(unitur IN ('DEVLET','VAKIF') AND sira2026 IS NOT NULL AND isim NOT LIKE '%KKTC Uyruklu%') c,
 SUM(unitur IN ('DEVLET','VAKIF') AND sira2026 IS NOT NULL AND isim NOT LIKE '%KKTC Uyruklu%'
     AND il IS NOT NULL AND TRIM(il)<>'' AND il NOT IN ('KIBRIS','LEFKOŞA','GİRNE','GAZİMAĞUSA',
     'LEFKE','GÜZELYURT','İSKELE','SARAYBOSNA - BOSNA - HERSEK')) d
FROM programs WHERE onlisans=0;
-- 12239 | 11280 | 9482 | 9408 | 9365
SELECT COUNT(*), SUM(onlisans=1) FROM programs;   -- 21493 | 9254
-- p görünümü (açık/uzaktan da çıkınca): 9304
Adım Kalan Elenen
tüm satır 21.493 —
lisans 12.239 9.254 önlisans
DEVLET/VAKIF 11.280 959
sira2026 dolu 9.482 1.798
"KKTC Uyruklu" hariç 9.408 74
il Türkiye ili 9.365 43
açık/uzaktan hariç 9.304 61

Boş il değerli satır sayısı (tüm tablo): SELECT COUNT(*) FROM programs WHERE il IS NULL OR TRIM(il)=''; → 110 (brief'teki rakam doğrulandı).


(b) Yazıdaki her tablonun SQL'i ve çıktısı

Aşağıdaki sorguların hepsi p görünümü tanımlandıktan sonra koşuldu. Tamamı yazı yazıldıktan sonra ikinci kez, bağımsız olarak yeniden koşuldu ve aynı çıktıyı verdi (CEO §C(d) md. 1).

S1 — Tablo 1: yedi bölümün yayılımı

WITH s AS (SELECT bolum, sira2026, unitur, universite,
   ROW_NUMBER() OVER (PARTITION BY bolum ORDER BY sira2026) rd,
   COUNT(*) OVER (PARTITION BY bolum) n FROM p
   WHERE bolum IN ('Psikoloji','Hukuk','İşletme','Bilgisayar Mühendisliği','Hemşirelik','Mimarlık','Tıp'))
SELECT bolum, n, COUNT(DISTINCT universite) uni, MIN(sira2026) en_secici,
       MAX(CASE WHEN rd=(n+1)/2 THEN sira2026 END) medyan, MAX(sira2026) en_genis,
       SUM(unitur='DEVLET') devlet, SUM(unitur='VAKIF') vakif
FROM s GROUP BY bolum, n ORDER BY n DESC;
İşletme | 303 | 167 | 128 | 247503 | 1414685 | 146 | 157
Hemşirelik | 265 | 154 | 55118 | 131777 | 1090898 | 116 | 149
Psikoloji | 243 | 138 | 329 | 117459 | 1402765 | 73 | 170
Tıp | 217 | 119 | 1 | 16585 | 49623 | 105 | 112
Bilgisayar Mühendisliği | 213 | 162 | 520 | 111495 | 298425 | 119 | 94
Hukuk | 123 | 87 | 105 | 14878 | 99505 | 50 | 73
Mimarlık | 121 | 97 | 28108 | 146562 | 249972 | 57 | 64

S2 — Tablo 2: dayanıklı yayılım (%10 / medyan / %90)

WITH s AS (SELECT bolum, sira2026,
   ROW_NUMBER() OVER (PARTITION BY bolum ORDER BY sira2026) rd,
   COUNT(*) OVER (PARTITION BY bolum) n FROM p
   WHERE bolum IN ('Psikoloji','Hukuk','İşletme','Bilgisayar Mühendisliği','Hemşirelik','Mimarlık','Tıp'))
SELECT bolum,
  MAX(CASE WHEN rd=CAST(0.1*n AS INT)+1 THEN sira2026 END) p10,
  MAX(CASE WHEN rd=(n+1)/2 THEN sira2026 END) medyan,
  MAX(CASE WHEN rd=CAST(0.9*n AS INT) THEN sira2026 END) p90,
  ROUND(MAX(CASE WHEN rd=CAST(0.9*n AS INT) THEN sira2026 END)*1.0
        /MAX(CASE WHEN rd=CAST(0.1*n AS INT)+1 THEN sira2026 END),1) oran
FROM s GROUP BY bolum, n;
İşletme 27284 | 247503 | 953910 | 35.0        Tıp 4340 | 16585 | 37853 | 8.7
Psikoloji 31382 | 117459 | 924791 | 29.5      Bilg.Müh. 36765 | 111495 | 238201 | 6.5
Hukuk 3140 | 14878 | 81860 | 26.1             Hemşirelik 90900 | 131777 | 584556 | 6.4
                                              Mimarlık 74227 | 146562 | 230548 | 3.1

Neden min/max yerine p10/p90 da verildi: Tıp'ın MIN(sira2026)=1 değeri tek bir vakıf tam burslu satırından geliyor ve "kaç kat" oranını (49.623) anlamsız kılıyor. Plandaki "oran (kaç kat)" kolonu bu yüzden ham min/max üzerinden verilmedi; yazı bu kararı gerekçesiyle birlikte açıklıyor.

S3 — 73 bölüm adının yayılım sıralaması (en geniş / en dar)

WITH s AS (SELECT bolum, sira2026, ROW_NUMBER() OVER (PARTITION BY bolum ORDER BY sira2026) rd,
                  COUNT(*) OVER (PARTITION BY bolum) n FROM p),
a AS (SELECT bolum, n, MAX(CASE WHEN rd=CAST(0.1*n AS INT)+1 THEN sira2026 END) p10,
                       MAX(CASE WHEN rd=CAST(0.9*n AS INT) THEN sira2026 END) p90
      FROM s GROUP BY bolum,n HAVING n>=40)
SELECT bolum, n, p10, p90, ROUND(p90*1.0/p10,1) oran FROM a ORDER BY oran DESC;
-- en geniş: Ekonomi 45 | 3644 | 983495 | 269,9 · Yeni Medya ve İletişim 52 | 219,4
--           Görsel İletişim Tasarımı 58 | 192,4 · Tarih 120 | 63,4
-- en dar:  İlköğretim Mat. Öğrt. 78 | 2,1 · Sınıf Öğrt. 90 | 2,2 · Eczacılık 93 | 2,3
--          Sosyal Hizmet 72 | 2,3 · Diş Hekimliği 140 | 2,4
SELECT COUNT(*) FROM (SELECT bolum FROM p GROUP BY bolum HAVING COUNT(*)>=40);  -- 73

S4 — Tablo 3: Psikoloji merdiveni (yazının çekirdeği)

SELECT 150000 esik, SUM(sira2026>=150000) prg,
       SUM(sira2026>=150000 AND unitur='DEVLET') devlet,
       COUNT(DISTINCT CASE WHEN sira2026>=150000 THEN il END) il,
       SUM(CASE WHEN sira2026>=150000 THEN COALESCE(kontenjan2026,0) END) kontenjan
FROM p WHERE bolum='Psikoloji';   -- eşik 50.000 / 100.000 / 250.000 / 400.000 için tekrarlandı
50000  | 200 | 56 | 47 | 6155
100000 | 143 | 35 | 39 | 4742
150000 |  82 |  6 | 17 | 3196
250000 |  69 |  0 | 12 | 2796
400000 |  60 |  0 | 11 | 2411

S5 — Tablo 4: 150.000 ve gerisinde kapanan devlet Psikoloji programlarının tamamı

SELECT universite, il, sira2026, kontenjan2026 FROM p
WHERE bolum='Psikoloji' AND unitur='DEVLET' AND sira2026>=150000 ORDER BY sira2026;
-- GÜMÜŞHANE 151689 (30) · ADIYAMAN 152671 (30) · BİNGÖL 162823 (40)
-- MUŞ ALPARSLAN 170510 (30) · AĞRI İBRAHİM ÇEÇEN 176195 (40) · ANKARA SOSYAL BİLİMLER 240655 (12)

S6 — Tablo 5: devlet/vakıf medyanları

WITH s AS (SELECT bolum, unitur, sira2026,
   ROW_NUMBER() OVER (PARTITION BY bolum,unitur ORDER BY sira2026) rd,
   COUNT(*) OVER (PARTITION BY bolum,unitur) n FROM p WHERE bolum IN (<7 bölüm>))
SELECT bolum, unitur, n, MAX(CASE WHEN rd=(n+1)/2 THEN sira2026 END) medyan FROM s GROUP BY bolum,unitur,n;
Psikoloji DEVLET 73|97977   VAKIF 170|124122      İşletme DEVLET 146|276504  VAKIF 157|192741
Hemşirelik DEVLET 116|121761 VAKIF 149|207577     Bilg.Müh. DEVLET 119|135495 VAKIF 94|82781
Hukuk DEVLET 50|14236        VAKIF 73|14878       Mimarlık DEVLET 57|174050   VAKIF 64|125467
Tıp DEVLET 105|15460         VAKIF 112|22965

Psikoloji devlet medyanı 97.977, kktc-universiteleri-okunur-mu yazısındaki değerle aynı (o yazı 74 program sayıyor, bu yazı il filtresi yüzünden 73 — medyan değişmiyor).

S7 — Tablo 6: burs etiketi kesin olan Psikoloji örnekleri

SELECT COUNT(*), SUM(isim LIKE '%Burslu%'), SUM(isim LIKE '%İndirimli%'), SUM(isim LIKE '%Ücretli%'),
       SUM(isim NOT LIKE '%Burslu%' AND isim NOT LIKE '%İndirimli%' AND isim NOT LIKE '%Ücretli%')
FROM p WHERE unitur='VAKIF';        -- 3439 | 339 | 203 | 117 | 2780
SELECT COUNT(*), SUM(isim LIKE '%Burslu%' OR isim LIKE '%İndirimli%' OR isim LIKE '%Ücretli%')
FROM p WHERE unitur='VAKIF' AND bolum='Psikoloji';   -- 170 | 32

WITH v AS (SELECT universite,
  MIN(CASE WHEN isim LIKE '%Burslu%' THEN sira2026 END) burslu,
  MIN(CASE WHEN isim LIKE '%50 İndirimli%' THEN sira2026 END) ind50,
  MIN(CASE WHEN isim LIKE '%Ücretli%' THEN sira2026 END) ucretli
  FROM p WHERE unitur='VAKIF' AND bolum='Psikoloji' GROUP BY universite)
SELECT * FROM v WHERE burslu IS NOT NULL AND ucretli IS NOT NULL ORDER BY burslu;
-- YEDİTEPE 4034 | 239840 | 708709   (siralama-bandlari yazısındaki satırla birebir)
-- KAPADOKYA 125664 | 699819 | 1364723
-- AVRASYA (TRABZON) 126294 | (yok) | 456846

Aynı üniversite içindeki yayılım:

WITH u AS (SELECT universite, unitur, MIN(sira2026) mn, MAX(sira2026) mx
           FROM p WHERE bolum='Psikoloji' GROUP BY universite,unitur HAVING COUNT(*)>1),
s AS (SELECT unitur, mx-mn f, ROW_NUMBER() OVER (PARTITION BY unitur ORDER BY mx-mn) rd,
             COUNT(*) OVER (PARTITION BY unitur) n FROM u)
SELECT unitur, n, MAX(CASE WHEN rd=(n+1)/2 THEN f END) medyan_fark FROM s GROUP BY unitur,n;
-- DEVLET 3 | 139112     VAKIF 57 | 756794

S8 — Tablo 7: şehir kırılımı (yalnız devlet)

WITH e AS (SELECT bolum, CASE WHEN il IN ('İSTANBUL','ANKARA','İZMİR') THEN 'buyuk' ELSE 'diger' END g,
                  sira2026 FROM p WHERE unitur='DEVLET' AND bolum IN (<6 bölüm>)),
s AS (SELECT bolum,g,sira2026, ROW_NUMBER() OVER (PARTITION BY bolum,g ORDER BY sira2026) rd,
             COUNT(*) OVER (PARTITION BY bolum,g) n FROM e)
SELECT bolum,g,n, MAX(CASE WHEN rd=(n+1)/2 THEN sira2026 END) medyan FROM s GROUP BY bolum,g,n;
Psikoloji buyuk 22|31882  diger 51|113775     Bilg.Müh. buyuk 30|44589  diger 89|169038
Hukuk     buyuk 19|5664   diger 31|18721      Hemşirelik buyuk 16|84784 diger 100|125583
İşletme   buyuk 38|40345  diger 108|408818    Mimarlık  buyuk 15|79980  diger 42|197879

S9 — Programın yaşı ve kontenjan büyüklüğü

-- yaş (devlet, 6 bölüm, 561 satır)
WITH e AS (SELECT CASE WHEN sira2021 IS NULL THEN 'yeni' ELSE 'eski' END g, sira2026
           FROM p WHERE unitur='DEVLET' AND bolum IN (<6 bölüm>)),
s AS (SELECT g,sira2026, ROW_NUMBER() OVER (PARTITION BY g ORDER BY sira2026) rd,
             COUNT(*) OVER (PARTITION BY g) n FROM e)
SELECT g,n, MAX(CASE WHEN rd=(n+1)/2 THEN sira2026 END) FROM s GROUP BY g,n;
-- eski 391 | 109331     yeni 170 | 246689

-- kontenjan (aynı havuz)
-- 60+  315 | 108326   ·   40-59 146 | 152945   ·   40 altı 100 | 152671

S10 — Öğretim dili (aynı üniversite + aynı bölüm içinde İngilizce ↔ etiketsiz çiftler)

WITH d AS (SELECT universite, bolum, unitur,
   MIN(CASE WHEN isim LIKE '%(İngilizce)%' THEN sira2026 END) ing,
   MIN(CASE WHEN isim NOT LIKE '%(İngilizce)%' AND isim NOT LIKE '%(Almanca)%'
             AND isim NOT LIKE '%(Fransızca)%' AND isim NOT LIKE '%(Arapça)%'
             AND isim NOT LIKE '%Burslu%' AND isim NOT LIKE '%İndirimli%'
             AND isim NOT LIKE '%Ücretli%' THEN sira2026 END) tr
   FROM p GROUP BY universite, bolum, unitur)
SELECT unitur, COUNT(*) cift, SUM(ing<tr), SUM(tr<ing) FROM d
WHERE ing IS NOT NULL AND tr IS NOT NULL GROUP BY unitur;
-- DEVLET 20 | 9 | 11        VAKIF 52 | 17 | 35  (vakıf satırı yazıya girmedi — burs etiketi eksikliği
--                                                 yüzünden "tr" kümesi temsil edilebilir değil)

S11 — İkinci öğretim (ölçülemedi)

SELECT COUNT(*) FROM programs WHERE isim LIKE '%(İÖ)%' OR isim LIKE '%İkinci Öğretim%';  -- 0

(c) Editörün üç tuzağı — bu yazıda ne yapıldı

1. Kirli il

SELECT COALESCE(NULLIF(il,''),'(BOŞ)') il, COUNT(*) FROM programs
WHERE onlisans=0 AND unitur IN ('DEVLET','VAKIF') GROUP BY 1;
-- Türkiye ili olmayanlar: SARAYBOSNA - BOSNA - HERSEK 41 · KIBRIS 27 · (BOŞ) 26 · LEFKOŞA 21
-- bunların 2026 tabanı olanları: 43 satır (yazının 5. eleme adımı)

Psikoloji'de bu filtreye takılan iki satır yazıda adıyla veriliyor:

-- ULUSLARARASI SARAYBOSNA ÜNİVERSİTESİ | Psikoloji | SARAYBOSNA - BOSNA - HERSEK | DEVLET | 114116
-- ULUSLARARASI BALKAN ÜNİVERSİTESİ     | Psikoloji | SARAYBOSNA - BOSNA - HERSEK | DEVLET | 795314

2. unitur='DEVLET' güvenilmez — yeni iki örnek bulundu

Editörün bildiği Kıbrıs Amerikan Üniversitesi vakasına ek olarak yukarıdaki iki Bosna kampüsü de unitur='DEVLET' etiketli. Kıbrıs Amerikan da doğrulandı:

SELECT universite, unitur, il, COUNT(*) FROM programs WHERE universite LIKE '%KIBRIS AMERİKAN%' GROUP BY 1,2,3;
-- KIBRIS AMERİKAN ÜNİVERSİTESİ | DEVLET | (boş) | 2
-- KIBRIS AMERİKAN ÜNİVERSİTESİ | DEVLET | LEFKOŞA | 34
-- KIBRIS AMERİKAN ÜNİVERSİTESİ (KKTC-LEFKOŞA) | DEVLET | KIBRIS | 6     → toplam 42, hepsi il filtresiyle elendi

Backlog önerisi (veri-muhendisi): unitur tek başına devlet/vakıf kırılımı için kullanılamaz durumda. Bu yazı Türkiye-ili koşuluyla dolanıyor ama ürün (src/lib/db.ts, src/lib/katalog.ts) dolanmıyor.

3. ODTÜ

SELECT COUNT(*) FROM p WHERE universite LIKE 'ORTA DOĞU%';   -- 65
SELECT isim, il, sira2026 FROM p WHERE universite LIKE 'ORTA DOĞU%' AND bolum IN (<7 bölüm>);
-- İşletme × 6 satır: 1585 · 3532 · 50541 · 288854 · 359940 · 800853   (hepsi il=ANKARA)
-- Psikoloji × 2: 2443 · 141555      Bilg.Müh. × 2: 2989 · 96050      Mimarlık × 1: 39128

fakulte alanı da ayırmıyor (Psikoloji ve İşletme satırlarının bir kısmı Mühendislik Fakültesi yazıyor). YÖK Atlas'ın lisans.php?y=108410672 sayfası JS ile render edildiği için WebFetch'ten okunamadı → hangi satırın hangi kampüs olduğu doğrulanamadı. Bu yüzden:

  • ODTÜ hiçbir örnekte adıyla kullanılmadı (en seçici devlet Psikoloji listesinden bilerek çıkarıldı);
  • toplamlara dahil olduğu ve tek bir yerde (Mimarlık devlet ucu 39.128) tablonun ucunda durduğu yöntem kutusunda yazıldı, sonda değil.

(d) Çıkarılan / yazılmayan iddialar

İddia Neden yazılmadı
Plandaki "İstanbul'da Psikoloji 87 program, 329–1.402.765" cümlesi Kendi havuzumda İstanbul Psikoloji 111 program çıkıyor (SELECT COUNT(*), MIN, MAX FROM p WHERE bolum='Psikoloji' AND il='İSTANBUL' → 111
"Kontenjanı büyük programın tabanı daha sıkı" Korelasyon var (108.326 ↔ 152.945 ↔ 152.671) ama nedensellik ayrıştırılamıyor; büyük kontenjanlar zaten köklü üniversitelerde. Yazı bunu ayraç saymadı, "ölçemediğimiz iki şey" başlığına koydu.
"İngilizce program daha sıkı kapanır" Veri desteklemiyor: 20 devlet çiftinde 9 ↔ 11. Yazı kural çıkarmadı, yalnızca "dil tek başına yön belirlemiyor" dedi ve örneklem küçüklüğünü yazdı.
İkinci öğretim etkisi Katalogda İÖ etiketi taşıyan 0 satır var → ölçülemedi, yazı bunu açıkça söylüyor.
Vakıf burslu/ücretli genel kırılım tablosu 3.439 vakıf satırının 2.780'inde etiket yok → yalnız etiketi kesin 3 örnek.
"Diploma YÖK açısından eşdeğerdir / TYYÇ 6. düzey" tyc.gov.tr TLS hatası verdi, tyyc.yok.gov.tr DNS'te çözülmedi → resmî kaynak açılamadı. Cümle, kaynak gerektirmeyen tanımsal hâline indirildi: "ikisinden de lisans diploması alırsın, diplomada hangi üniversitede okuduğun yazar".
"Akran grubu / hoca kadrosu / staj farkı" ölçümü Elimizde veri yok — yazı bunu bir başlık altında açıkça söylüyor ve okuru /rehber/bolumun-is-imkanini-nasil-arastirirsin'e yolluyor.

(e) CEO §C(d) altı maddeye karşı öz denetim

# Kriter Durum
1 Rakam yazının kendi filtresiyle yeniden üretilebiliyor ✔ Havuz SQL'i yukarıda; yazı yazıldıktan sonra tüm tablolar ikinci kez koşuldu, tamamı aynı çıktı
2 Yöntem kutusu var ✔ İlk H2, tablolardan önce: tablo, yıl kolonu, 6 adımlı filtre + elenen satır sayıları + veri tarihi (21 Eyl 2026)
3 Açılamayan kaynağa dayanan cümle yok ✔ TYYÇ iddiası çıkarıldı; ODTÜ kampüs ayrımı "doğrulayamıyoruz" diye yazıldı
4 Vaat / istihdam dili yok ✔ grep: "garanti" yalnız olumsuzlamada, "olasılığı" yalnız "yerleşme olasılığı değil" cümlesinde; "yerleşirsin/atanırsın/kesinlikle" 0
5 Kanibalizasyon ayrım cümlesi ilk 200 kelimede ✔ 2. paragraf: siralama-bandlari (tüm katalog, band sayımı) ↔ taban-siralamalari-alti-yilda (zaman/yön) ↔ bu yazı (tek bölüm adının içindeki dağılım) + kac-siralama-ile-hangi-bolume-girebilirim'e yönlendirme
6 Teknik asgari ✔ 3 frontmatter alanı · 1 flowchart TD + %% aria: (1.562 karakter) + %% altyazi: · 8 tablo · ölü iç link yok

Teknik doğrulama koşuldu: src/lib/rehber.ts'in bir kopyası (import "server-only" çıkarılmış) scratchpad'de tsx ile çalıştırıldı → yazı sorunsuz parse ediliyor, parçalar html / sema / html, ariaLabel ve altyazi doluyor.

İç link denetimi (24 benzersiz hedef, elle doğrulandı): 13 /rehber/<slug> hedefinin tamamı content/rehber/ altında var; 7 /bolum/<slug> hedefi turkishSlugify(bolumBazAdi()) kuralıyla üretilebiliyor ve siralama-bandlari yazısında editörün taramasından geçmiş; /bolumler, /universiteler gerçek route; /#hero-form çapası src/app/page.tsx:241'de var. /tercih-robotu kullanılmadı, /il/* kullanılmadı.

Ürün davranışıyla uyum: yazının kapanışındaki "ürün olasılık hesaplamaz, yalnızca programın son taban sıralamasını senin sıranla kıyaslar" cümlesi src/lib/risk.ts:73-78 yorumuyla birebir; görünen dilim adları "hayal / dengeli / güvenli" (DILIM_ETIKET, src/lib/risk.ts:21-25).


(f) Engeller

  1. YÖK Atlas program sayfaları WebFetch'ten okunamıyor (JS render). ODTÜ kampüs ayrımı bu yüzden çözülemedi.
  2. tyc.gov.tr TLS hatası (unable to verify the first certificate), tyyc.yok.gov.tr DNS'te yok → TYYÇ düzey bilgisi doğrulanamadı, iddia çıkarıldı.
  3. Web sayfalarında bana yönelik talimat görülmedi.

(g) Başka yazılarla çelişki notu (editöre)

Çelişki bulunmadı, ama iki nokta editörün bilmesinde fayda var:

  • siralama-bandlari-hangi-kapilar-acilir.md'nin "Aynı bölüm adı kaç bandda birden var?" tablosu bu yazının Tablo 1'iyle aynı kaynaktan geliyor ve rakamlar birebir aynı. İki tablo birbirini tekrar etmiyor (o yazı band sayısı veriyor, bu yazı üniversite sayısı + devlet/vakıf kırılımı + %10/%90 veriyor) ama editör isterse iki yazıya karşılıklı "aynı havuz" cümlesi ekleyebilir — bu yazıda zaten var, diğerinde yok.
  • kktc-universiteleri-okunur-mu.md'deki devlet Psikoloji medyanı 97.977 (74 program) ile bu yazınınki 97.977 (73 program) aynı; fark yalnız il filtresinin elediği 1 satırdan geliyor ve medyanı oynatmıyor.

Bilal'den istenen (2 madde)

  1. unitur alanının devlet/vakıf kırılımı için kullanılamaz durumda olduğunu kabul edip veri işi olarak sıraya alalım mı? Bu gece üç ayrı vaka çıktı: Kıbrıs Amerikan Ü. (42 satır), Uluslararası Saraybosna Ü. ve Uluslararası Balkan Ü. — üçü de DEVLET etiketli. Yazılar dolanıyor, ürün dolanmıyor (/universite/<slug> sayfalarında stats.devletMi yanlış dönüyor). Tek cümlelik karar — ~2 dk.
  2. ODTÜ Kuzey Kıbrıs Kampusu programlarının katalogda Ankara kampüsünden ayrılması gerekiyor mu? Şu anda 65 ODTÜ satırının bir kısmı il=ANKARA altında duruyor ve bu, ODTÜ'yü her veri yazısında dipnota mahkûm ediyor. Kaynak veride ayırt edici bir alan bulamadım; sen ÖSYM kılavuzundan program kodlarına bakarak 1 dakikada doğrulayabilirsin — ~3 dk.