# 13 — Rehber yazısı: `bilgisayar-mi-yazilim-muhendisligi-mi` **Tarih:** 22 Eylül 2026, gece · **Rol:** rehber-yazari · **Dosya:** `content/rehber/bilgisayar-mi-yazilim-muhendisligi-mi.md` (170 satır, yeni) · **Commit atılmadı.** Kanıt işaretleri: **[D]** DB sorgusu / birincil kaynak açıldı · **[A]** yalnızca arama özeti · **[Ç]** çıkarım · **[doğrulanmalı]** yayın öncesi teyit şart. --- ## Özet (5 madde) 1. Yazı fikir değil veri üzerine kuruldu. Ana bulgu: **iki bölümü birden açan ve ikisinde de 2026 tabanı oluşan 56 üniversitenin 54'ünde Bilgisayar Mühendisliği daha seçici kapandı** (ortanca fark 19.550 sıra); 2 istisna Fırat ve Harran. Devlet tarafındaki 23 üniversitenin tamamı tablo hâlinde yazıda; vakıftan 13 örnek verildi (33'ünün 33'ünde Bilgisayar daha seçici). 2. İkinci ayırt edici bulgu doluluk: devlette iki bölüm de doluyor (BM %99,8 · YM %102,1), vakıfta ayrışıyor (BM %60,7 · **YM %32,9**). "Yazılım Mühendisliği daha kolay mı?" sorusu bu iki tabloyla dürüstçe yanıtlandı: sayısal olarak evet girmesi daha kolay, ama bunun nedeni bölümün kendisi değil **hangi üniversitelerde açıldığı** (BM 173 üniversite, YM 74). 3. Müfredat karşılaştırması uydurulmadı: Çankaya Üniversitesi'nin **kendi yayımladığı** iki zorunlu ders listesi (ceng + yazilim bölüm siteleri) yan yana konuldu, "bu tek bir üniversitenin planıdır, müfredatlar üniversiteye göre değişir" cümlesi hem tablo öncesinde hem sonrasında yazıldı. 4. İş imkânı/maaş konusunda **hiç rakam verilmedi**; okur `bolumun-is-imkanini-nasil-arastirirsin` yazısına yollandı ve arz tarafı yalnızca kendi kontenjan verimizle (17.267 kontenjan / 14.179 yerleşen) anlatıldı. 5. **Veri kalitesi bulgusu (veri-muhendisi'ne):** `programs` tablosunda ODTÜ Kuzey Kıbrıs Kampusu programları ana kampüsle **aynı `universite` ve `il` değeri** altında duruyor. Bu yüzden ODTÜ head-to-head tablosundan çıkarıldı ve neden çıkarıldığı yazıda açıkça belirtildi. Ayrıntı aşağıda. --- ## Yazının iskeleti ve format uyumu - Frontmatter: `baslik`, `aciklama` (tırnaksız), `tarih: 2026-09-22`. ✔ - İlk paragraf "Kısa cevap:" ile başlıyor, tek başına cevap veriyor. ✔ - **1 adet** ```mermaid `flowchart TD`, içinde `%% aria:` (tam düz metin anlatım) ve `%% altyazi:`. Renkler `uyari`/`garanti`/`hayal` classDef'leriyle mevcut yazılarla aynı; **her kutuda metin etiketi var**, renk tek başına anlam taşımıyor. ✔ - **4 tablo** (özet kıyas, devlet head-to-head 23 satır, vakıf head-to-head 13 satır, müfredat kıyası). ✔ - Bütün H2'ler soru biçiminde. ✔ - Sonda erişim tarihli "Kaynaklar". ✔ - Vaat/garanti dili yok; yerleşme olasılığı verilmedi. ✔ - **50 iç link, 0 kırığı** — betikle doğrulandı (`/bolum/*` slug'ları `bolumBazAdi`+`turkishSlugify` ile DB'deki `isim` kümesinden, `/universite/*` slug'ları `uniSayfaSlug` ile DB'deki `universite` kümesinden, `/rehber/*` slug'ları `content/rehber/` dosya listesinden, `/tercih-robotu` `next.config.ts` kalıcı yönlendirmesinden). Görevde istenen 6 iç linkin tamamı kullanıldı. - Mermaid bloğunun `%% aria` / `%% altyazi` ayrıştırması `src/lib/rehber.ts` beklentisine uyuyor (betikle kontrol edildi). Mermaid'in kendi `parse`'ı Node'da DOM olmadığı için koşmadı (`DOMPurify.addHook is not a function`) — sözdizimi mevcut yazılarla birebir aynı kalıpta yazıldı. [Ç] --- ## Kullanılan SQL sorguları ve çıktıları Hepsi `sqlite3 -readonly data/yokatlas.db` ile çalıştırıldı. Ortak havuz tanımı (her sorguda tekrar eder): ```sql WHERE (isim LIKE 'Bilgisayar Mühendisliği%' OR isim LIKE 'Yazılım Mühendisliği%') AND onlisans = 0 AND unitur IN ('DEVLET','VAKIF') AND isim NOT LIKE '%KKTC Uyruklu%' ``` `/bolum/` sayfaları parantezli varyantları (İngilizce, Burslu, %50 İndirimli…) aynı bölümde topladığı için havuz da `isim LIKE '%'` ile kuruldu — katalogla aynı gruplama. ### S1 — Program sayısı, kontenjan, yerleşen, doluluk (yazıdaki 1. tablo) ```sql WITH t AS ( SELECT CASE WHEN isim LIKE 'Bilgisayar Mühendisliği%' THEN 'BM' ELSE 'YM' END AS bolum, unitur, kontenjan2026, yerlesen2026, sira2026 FROM programs WHERE (isim LIKE 'Bilgisayar Mühendisliği%' OR isim LIKE 'Yazılım Mühendisliği%') AND onlisans = 0 AND unitur IN ('DEVLET','VAKIF') AND isim NOT LIKE '%KKTC Uyruklu%') SELECT bolum, COUNT(*) program, SUM(unitur='DEVLET') devlet, SUM(unitur='VAKIF') vakif, SUM(COALESCE(kontenjan2026,0)) kontenjan, SUM(COALESCE(yerlesen2026,0)) yerlesen, ROUND(100.0*SUM(COALESCE(yerlesen2026,0))/SUM(COALESCE(kontenjan2026,0)),1) doluluk, SUM(sira2026 IS NOT NULL) tabani_olan FROM t GROUP BY bolum; ``` | bolum | program | devlet | vakif | kontenjan | yerlesen | doluluk | tabanı olan | |---|---|---|---|---|---|---|---| | BM | 303 | 134 | 169 | 12.993 | 11.285 | %86,9 | 214 | | YM | 133 | 44 | 89 | 4.274 | 2.894 | %67,7 | 83 | ### S2 — Devlet/vakıf kırılımında doluluk Aynı sorgu `GROUP BY bolum, unitur` ile: | bolum | unitur | program | kontenjan | yerlesen | doluluk | tabanı olan | |---|---|---|---|---|---|---| | BM | DEVLET | 134 | 8.700 | 8.680 | %99,8 | 120 | | BM | VAKIF | 169 | 4.293 | 2.605 | %60,7 | 94 | | YM | DEVLET | 44 | 2.148 | 2.194 | %102,1 | 40 | | YM | VAKIF | 89 | 2.126 | 700 | %32,9 | 43 | ### S3 — Programı bulunan üniversite sayısı ```sql SELECT CASE WHEN isim LIKE 'Bilgisayar Mühendisliği%' THEN 'BM' ELSE 'YM' END bolum, COUNT(DISTINCT universite) uni_sayisi FROM programs WHERE GROUP BY 1; ``` → **BM 173 · YM 74.** (Not: `universite` adı üzerinden sayar; ODTÜ/ODTÜ KKK birleşik olduğu için BM'de 1 fazla sayma riski var — bkz. veri kalitesi notu. [Ç]) Kapsama örtüşmesi (yazıda kullanılmadı ama karar verdirdi): ```sql WITH t AS (SELECT universite, unitur, CASE WHEN isim LIKE 'Bilgisayar Mühendisliği%' THEN 'bm' ELSE 'ym' END b FROM programs WHERE ), u AS (SELECT universite, unitur, MAX(b='bm') bm, MAX(b='ym') ym FROM t GROUP BY universite, unitur) SELECT unitur, SUM(bm=1 AND ym=1) ikisi_de, SUM(bm=1 AND ym=0) sadece_bm, SUM(bm=0 AND ym=1) sadece_ym, COUNT(*) toplam FROM u GROUP BY unitur; ``` → DEVLET: 25 ikisi de / 84 sadece BM / 8 sadece YM (117 üni). VAKIF: 35 / 29 / 6 (70 üni). ### S4 — Devlet programlarında en seçici, medyan, en açık taban sırası ```sql WITH t AS ( SELECT CASE WHEN isim LIKE 'Bilgisayar Mühendisliği%' THEN 'BM' ELSE 'YM' END bolum, sira2026 FROM programs WHERE AND unitur='DEVLET' AND sira2026 IS NOT NULL), n AS (SELECT bolum, sira2026, ROW_NUMBER() OVER (PARTITION BY bolum ORDER BY sira2026) rn, COUNT(*) OVER (PARTITION BY bolum) c FROM t) SELECT bolum, c AS tabani_olan, MIN(sira2026) en_secici, MAX(sira2026) en_acik, (SELECT sira2026 FROM n n2 WHERE n2.bolum=n.bolum AND n2.rn=(n.c+1)/2) medyan FROM n GROUP BY bolum; ``` | bolum | tabanı olan program | en seçici | medyan | en açık | |---|---|---|---|---| | BM | 120 | 2.503 | **135.495** | 274.606 | | YM | 40 | 62.224 | **191.877** | 299.241 | > Uyarı: YM'nin `en_acik` değeri 299.241, ODTÜ KKK satırından geliyor. Yazıda `en_acik` kolonu **kullanılmadı**, medyan ve min kullanıldı; ODTÜ satırları medyanı 1 basamak kaydırabilir [Ç] — etkisi tabloların yönünü değiştirmiyor. ### S5 — Sıralama bandına göre erişilebilir program sayısı ```sql WITH t AS (SELECT CASE WHEN isim LIKE 'Bilgisayar Mühendisliği%' THEN 'BM' ELSE 'YM' END bolum, sira2026 FROM programs WHERE AND sira2026 IS NOT NULL) SELECT bolum, SUM(sira2026<=50000) ilk50k, SUM(sira2026<=100000) ilk100k, SUM(sira2026<=150000) ilk150k, SUM(sira2026<=200000) ilk200k, COUNT(*) toplam FROM t GROUP BY bolum; ``` → BM: 33 / 98 / 146 / 173 (toplam 214). YM: **1** / 24 / 51 / 61 (toplam 83). ### S6 — En seçici 10 program (yazıda 520 ve 41.275 rakamlarının kaynağı) ```sql SELECT universite, isim, unitur, kontenjan2026, yerlesen2026, sira2026 FROM programs WHERE isim LIKE 'Bilgisayar Mühendisliği%' AND AND sira2026 IS NOT NULL ORDER BY sira2026 LIMIT 10; -- YM için isim LIKE 'Yazılım Mühendisliği%' ``` → BM tepe: Koç 520 · İTÜ 2.503 · Bilkent 2.646 · ODTÜ 2.989 · Boğaziçi 4.560. → YM tepe: **Bahçeşehir 41.275** · TED 50.763 · Ankara Üni 62.224 · İzmir Ekonomi 65.718. ### S7 — Head-to-head (yazının ana bulgusu) Kural: her üniversitede o bölümün **en seçici** (MIN `sira2026`) programı alınır; ODTÜ hariç. ```sql WITH t AS ( SELECT universite, unitur, CASE WHEN isim LIKE 'Bilgisayar Mühendisliği%' THEN 'bm' ELSE 'ym' END b, sira2026 FROM programs WHERE AND sira2026 IS NOT NULL AND universite <> 'ORTA DOĞU TEKNİK ÜNİVERSİTESİ'), u AS (SELECT universite, unitur, MIN(CASE WHEN b='bm' THEN sira2026 END) bm, MIN(CASE WHEN b='ym' THEN sira2026 END) ym FROM t GROUP BY universite, unitur) SELECT unitur, COUNT(*) cift, SUM(bm **Yöntem notu — neden MIN, neden "en büyük kontenjanlı satır" değil?** Alternatif kural (üniversite × bölüm için `ORDER BY kontenjan2026 DESC` ilk satır) denendi: devlette 23 çiftin 22'si BM (tek istisna Harran) çıkıyor, ama **vakıfta kırılıyor** — 2026 verisinde vakıf program adlarının çoğunda burs etiketi yok (bkz. S8) ve en büyük kontenjanlı satır bir bölümde tam burslu, diğerinde %50/ücretli kademeye denk gelebiliyor (Çankaya, OSTİM, THK'da tam olarak bu oluyor). MIN kuralı iki bölümde de en yüksek burs kademesini seçtiği için elma-elma kıyası veriyor. Yazıda kullanılan kural MIN'dir ve yazıda açıkça anlatılmıştır. ### S8 — Vakıf burs kademeleri (yazıda rakam olarak KULLANILMADI, yöntem kararını verdirdi) ```sql ... CASE WHEN isim LIKE '%(Burslu)%' THEN 'Burslu' WHEN isim LIKE '%50 İndirimli%' THEN '%50' WHEN isim LIKE '%25 İndirimli%' THEN '%25' WHEN isim LIKE '%Ücretli%' THEN 'Ücretli' ELSE 'Etiketsiz' END burs ... ``` → Vakıf BM'de 169 programın **130'u**, YM'de 89 programın **72'si** etiketsiz. Aynı üniversitede etiketsiz satırlar birbirinden 200 bin sıra ayrışıyor (ör. Çankaya BM: 57.882 ve 265.073) — yani etiket gerçekte var, veride yok. ### S9 — 2025 → 2026 yönü ```sql WITH t AS (SELECT CASE WHEN isim LIKE 'Bilgisayar Mühendisliği%' THEN 'BM' ELSE 'YM' END bolum, sira2025, sira2026 FROM programs WHERE AND sira2025 IS NOT NULL AND sira2026 IS NOT NULL) SELECT bolum, COUNT(*) iki_yil, SUM(sira2026sira2025) gevsedi FROM t GROUP BY bolum; ``` → BM: 202 programın **185'i gevşedi**, 17'si sıkılaştı. YM: 81'in **79'u gevşedi**, 2'si sıkılaştı. --- ## Doğrulanan dış bilgiler + URL'ler | İddia | Kaynak | Durum | |---|---|---| | 2026-YKS yerleştirme sonuçları 18 Ağustos 2026'da açıklandı | https://www.osym.gov.tr/2026-yks-yerlestirme-sonuclari-aciklandi (duyuru tarihi ve metni okundu) | **[D]** teyit edildi | | Çankaya Bilgisayar Müh. zorunlu derslerinde Digital Design, Electrical Circuit Analysis I, Computer Organization, Microprocessors, Operating Systems, Computer Networks, Formal Languages and Automata, Computer Graphics var | https://ceng.cankaya.edu.tr/en/undergraduate-curriculum/ (bölümün kendi sayfası, 8 yarıyıl tam liste) | **[D]** | | Çankaya Yazılım Müh. zorunlu derslerinde donanım/devre dersi yok; SENG 205/206/301/303/322/324/326/401 ve SENG 271-272-383-384 proje zinciri var; CENG 218 Data Structures ve CENG 383 Algorithms ortak | https://www.yazilim.cankaya.edu.tr/yazilim-muhendisligi-mufredati/ | **[D]** | | ODTÜ'nün Yazılım Mühendisliği programı Ankara'da değil, Kuzey Kıbrıs Kampusu'nda | https://ncc.metu.edu.tr/tr/sng/anasayfa (+ aynı kampüste ayrıca Bilgisayar Müh.: https://ncc.metu.edu.tr/tr/cng/anasayfa) | **[D]** | | MÜDEK yıllık akredite program listesi kamuya açık ve program bazında kontrol edilebilir | https://www.mudek.org.tr/tr/akredit/akredite2026.shtm ("01 Temmuz 2026 itibarıyla" başlığı okundu) | **[D]** — yalnızca bağlantı verildi, sayı verilmedi | Web sayfalarında bana yönelik talimat görülmedi. --- ## Çıkarılan / yazılmayan iddialar 1. **MÜDEK akredite program sayıları.** Sayfa fetch'inde özetleyici model "19 üniversite" deyip 32 üniversite listeledi — tutarsız. Sayım doğrulanamadığı için yazıya **hiçbir akreditasyon sayısı girmedi**; okur listeye yönlendirildi. [doğrulanmalı — isteyen editör sayfayı elle sayabilir] 2. **İş imkânı ve maaş rakamları.** Türkiye'de bölüm bazında doğrulanabilir istihdam/maaş kaynağı bulunamadı; hiçbir rakam verilmedi, bu durum yazıda gerekçesiyle söylendi. 3. **"Yazılım Mühendisliği daha yeni bir bölüm" cümlesi.** Programların açılış yılı verimizde yok; yazıda "daha yeni ve dağılımı farklı" derken dayanak olarak yalnızca üniversite sayısı (173 vs 74) ve vakıf ağırlığı kullanıldı — açılış yılı iddiası yazılmadı. [Ç] 4. **Genel müfredat iddiası.** "Bilgisayar Müh. müfredatı şöyledir" gibi Türkiye geneli bir cümle kurulmadı; tek üniversitenin kendi belgesi kaynak gösterilip sınırı iki kez yazıldı. 5. **ODTÜ head-to-head satırı.** Ham veri ODTÜ için BM 2.989 vs YM 299.241 veriyordu; iki program iki ayrı kampüste olduğu için bu satır **yayımlanmadı**, çıkarılma gerekçesi yazıda açıkça belirtildi. 6. **Devlet YM dolulukta %102,1.** Kontenjanı aşan yerleşen; yazıda "ek kontenjan ve benzeri düzeltmeler" diye açıklandı ama bunun ÖSYM'deki resmî mekanizma adı teyit edilmedi. [doğrulanmalı — düşük risk] --- ## Engeller - `www.ankara.edu.tr/programlar/...` ve `bilgipaketi.cankaya.edu.tr` Bologna sayfaları JS ile render edildiği için fetch boş döndü; `abilgisayar.kocaeli.edu.tr` ECONNRESET verdi. Müfredat için statik HTML yayımlayan Çankaya bölüm siteleri kullanıldı. - Mermaid'i Node'da `parse` ile doğrulayamadım (DOM yok). Sözdizimi mevcut yazıların kalıbıyla birebir aynı tutuldu. --- ## Başka yazılarla çelişki / editöre notlar (`rehber-editoru`) - `bos-kontenjanlar-ne-anlatiyor` yazısında "Bilgisayar Müh. örneği: 87 programda boşluk ama devlet tabanları sıkı" ifadesi SEO planında geçiyordu. Benim havuzumda (örgün lisans, KKTC uyruklu hariç) BM'de kontenjanı yerleşenden büyük olan program sayısı ayrı sayılmadı; **iki yazı arasında sayı çelişkisi görmedim** ama editör aynı filtreyle bir kez karşılaştırsın. - `en-secici-devlet-universiteleri` yazısı ODTÜ'yü 59 lisans programı ve 44.568 medyanla listeliyor. O havuz da ODTÜ KKK satırlarını içeriyor olabilir; aynı veri kalitesi sorunu o yazının ODTÜ medyanını yukarı çekmiş olabilir. **Düzeltmedim** — editörün/veri-mühendisinin işi. [Ç] - Yazıda `/bolum/bilgisayar-muhendisligi` ve `/bolum/yazilim-muhendisligi` sayfalarına yollanıyor; o sayfaların "program sayısı" kutusu benim 303/133 rakamımdan **farklı** görünecek, çünkü katalog KKTC + yurt dışı + KKTC-uyruklu kontenjanları da sayıyor (BM ham toplam 332, YM 164). Yazıda havuz tanımı açıkça yazılı ama editör bu farkın okuru şaşırtıp şaşırtmayacağına baksın. --- ## Bilal'den istenen (yayın öncesi kontrol) 1. Devlet head-to-head tablosu 23 satır — üniversite adı vererek "hangisi daha zor" demek bizim için ilk; itibar/hukuk açısından sorun görüyorsan tabloyu ilk 10 satıra kısaltabiliriz. (2 dk okuma) 2. ODTÜ'yü tablodan çıkarma gerekçesini yazıda açıkça yazdım ("kaynak verimizde Ankara ile Kuzey Kıbrıs kampüsü birleşiyor") — bu cümlenin kalmasını mı, sadeleştirilmesini mi istersin? (1 dk) 3. `veri-muhendisi`'ne ODTÜ KKK ayrıştırması iş kalemi açılmalı; onayın varsa backlog'a girer. (1 dk)