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>
This commit is contained in:
360
docs/gece-vardiyasi/2026-09-22/29-yazar-ayni-bolum-farkli-uni.md
Normal file
360
docs/gece-vardiyasi/2026-09-22/29-yazar-ayni-bolum-farkli-uni.md
Normal file
@@ -0,0 +1,360 @@
|
||||
# 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:
|
||||
|
||||
```sql
|
||||
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)
|
||||
|
||||
```sql
|
||||
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ı
|
||||
|
||||
```sql
|
||||
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)
|
||||
|
||||
```sql
|
||||
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)
|
||||
|
||||
```sql
|
||||
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)
|
||||
|
||||
```sql
|
||||
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ı**
|
||||
|
||||
```sql
|
||||
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ı
|
||||
|
||||
```sql
|
||||
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
|
||||
|
||||
```sql
|
||||
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:
|
||||
```sql
|
||||
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)
|
||||
|
||||
```sql
|
||||
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üğü
|
||||
|
||||
```sql
|
||||
-- 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)
|
||||
|
||||
```sql
|
||||
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)
|
||||
|
||||
```sql
|
||||
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`
|
||||
|
||||
```sql
|
||||
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:
|
||||
```sql
|
||||
-- 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ı:
|
||||
```sql
|
||||
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Ü
|
||||
|
||||
```sql
|
||||
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 | 329 | 1402765). Plandaki 87, parantezli varyantları ayrı sayan bir gruplamadan geliyor. Yazı tek şehir kesitini bırakıp **ülke geneli** kesite geçti; plandaki 87 rakamı kullanılmadı. |
|
||||
| "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**.
|
||||
Reference in New Issue
Block a user