IB ESS’te Succession Nedir ve Nasıl Test Edilir?
Yıllar önce yanmış, simsiyah bir ormanı hayal et. Ağaçlar yok olmuş, yer yer kül ve çıplak toprak görünüyor. Sonra yıllar geçiyor; önce minik otlar çıkıyor,
IB Computer Science alıyorsan, ister Standard Level (SL), ister Higher Level (HL) ol, aklındaki en büyük soru çoğu zaman aynı oluyor: Java mı Python mu? Her ikisi de IB Computer Science müfredatında resmi olarak kabul edilen diller ve 2025 syllabus’unda da aktif şekilde kullanılıyor.
Dil seçiminin Paper 1, Paper 2 ya da Grade Boundary’ni doğrudan değiştirmediğini bilmek rahatlatıcı, ama yine de bu tercih Internal Assessment (IA), projeler ve üniversite hazırlığı açısından epey fark yaratabiliyor. Özellikle “Hangi dil benim için daha kolay?”, “IB’de hangisi daha mantıklı?”, “Üniversite ve kariyer için hangisi bana daha iyi temel sağlar?” sorularının cevabı için dil seçimi önemli.
Bu yazının sonunda, hedeflerine, çalışma stiline ve stres seviyene göre hangi dilin sana daha uygun olduğuna dair çok daha net bir fikrin olacak.
IB Diploma Programme genel olarak konsepte odaklanan bir yapı kullanır, bu yüzden IB Computer Science için de asıl amaç, programlama dilini değil, düşünme şeklini öğretmektir. Syllabus; system fundamentals, computer organization, networking, databases ve machine learning gibi konuları içerir, Java ve Python bu konulara pratik araç olarak eklenir.
Paper 1 ve Paper 2’deki sorular, sen Java yazıyorsun diye farklı, Python yazıyorsun diye daha kolay veya zor hale gelmez. Sınavın resmi kısmı her öğrenci için aynıdır, dil tercihi daha çok sınıf içi çalışmalar, IA ve proje tarzını etkiler. IB ile AP arasındaki genel farkları görmek istersen, IB Diploma’yı özetleyen bu kısa tanım sana genel çerçeveyi anlamada yardımcı olabilir.
IB Computer Science sınavlarında gerçek Java veya Python kodu yazmaktan çok, Pseudocode çözüyorsun. Pseudocode, gerçek bir dilin syntax’ına tam olarak bağlı olmayan, herkesin okuyup anlayabileceği ortak bir “yarı kod” biçimi, bu yüzden asıl test edilen şey, algoritma ve veri yapısı mantığını ne kadar iyi kurduğun.
Python syntax’ı, indentation ve sade anahtar kelimeler nedeniyle Pseudocode’a görünüş olarak biraz daha yakın duruyor, bu yüzden bazı öğrenciler kendilerini daha rahat hissedebiliyor. Yine de, IB’nin resmi Computer Science guide’ına baktığında, odak noktasının dil değil, kavramlar olduğunu net görürsün; merak edersen bu IB Computer Science guide PDF buna iyi bir örnek.
Kısacası, Pseudocode’u iyi okuyup yazabildiğin sürece, Java ya da Python kullanıyor olman sınavda sorunun mantığını çözme becerini gölgede bırakmaz.
Grade Boundary, belli bir sınav döneminde 7, 6, 5 gibi notları almak için gereken minimum puan aralıklarını ifade eder. Bu aralıklar, tüm dünyadaki IB öğrencilerinin performansına göre belirlenir, tek tek okulların hangi dili öğrettiğine göre değil.
Resmi olarak Java ya da Python seçmen Grade Boundary’yi değiştirmez, yani kimse “Python yazdığı için 7 daha kolay geldi” gibi bir avantaja sahip olmaz. Notunu etkileyen asıl şeyler; syllabus’taki kavramları ne kadar anladığın, Pseudocode sorularındaki algoritma adımlarını doğru kurup kurmadığın ve soruyu dikkatle okuyup yorumlayabilmendir. Dil seçimi, bu becerileri öğrenirken yaşayacağın konfor veya zorluk seviyesini asıl belirleyen tarafta durur.
Bu noktadan sonra, farklara öğrencinin gözünden bakmak daha mantıklı, yani aklında sürekli şu soru dursun: “Bu fark benim günlük ders çalışmama nasıl yansıyacak?”
Java, daha uzun ve daha katı bir syntax yapısına sahiptir; her değişken için type declaration yazman gerekir, class yapıları olmadan program neredeyse başlamaz ve satır sonlarında semicolon unutursan hata alırsın. Ekrana basit bir metin yazmak için bile class, main method ve birkaç satır ek kod görürsün.
Python’da ise aynı işi çoğu zaman tek satırla halledebilirsin, indentation ile blokları belirtirsin, semicolon gibi küçük detaylarla uğraşmazsın. Bu fark, özellikle ilk aylarda motivasyon üzerinde etkili olur, çünkü Python’la daha çabuk sonuç görüp deneme yapabilirsin, Java’da ise hata ayıklamak için biraz daha sabırlı olman gerekir.
OOP, kabaca; class, object, inheritance, encapsulation ve polymorphism gibi kavramlarla bir sistemi parçalara ayırma yöntemidir. Java’da neredeyse her şey bir class içinde yaşar, bu da seni doğal olarak OOP mantığını öğrenmeye zorlar, sınıflar arası ilişki kurmadan proje yazmak pek mümkün değildir.
Python da OOP’yi gayet iyi destekler, fakat seni buna zorlamaz; fonksiyonel tarzda, tek dosyalık script’lerle de rahatça IA fikrini hayata geçirebilirsin. IB Computer Science syllabus içinde OOP öğrenme hedefleri bulunduğu için, Java ile çalışmak bu hedefleri daha sistematik bir şekilde sindirdiğini hissettirebilir, Python ile ise daha esnek ama biraz dağınık bir öğrenme süreci yaşayabilirsin.
Array, list, stack, queue, searching, sorting gibi temel kavramlar, Java ve Python ile rahatlıkla öğretilebilir, çünkü bu yapıların arkasındaki fikir dile bağlı değil, tamamen kavramsaldır. IB müfredatında da odak, “binary search nasıl çalışır?” sorusuna verdiğin cevapta, kullandığın dilde değil.
Java’nın type safety tarafı, explicit tür tanımları sayesinde bazı öğrencilere daha net bir zihinsel çerçeve sunar; her değişkenin türünü baştan görmek, neyin nerede kullanılacağını daha açık hale getirir. Python’da ise list gibi esnek veri yapıları, hızlı deneme yapmana ve algoritma fikrini çabuk test etmene izin verir, ama bu esneklik bazen tip karışıklığına da yol açabilir. Hangi dili kullanırsan kullan, Pseudocode ile aynı mantığı kurman gerektiğini unutmamak gerekir.
Debugging, kodunun neden çalışmadığını bulup düzeltme sürecidir ve IB öğrencisi için çoğu zaman en çok zaman alan kısımdır. Python’da hata mesajları genelde daha okunabilir görünür, satır numarası ve beklenen yapı daha net yazar, syntax sade olduğu için yeni başlayan biri hatayı gözünde daha çabuk canlandırabilir.
Java’da compiler hataları bazen uzun ve göz korkutucu olabilir, özellikle type ile ilgili problemler yaşadığında karşına karmaşık mesajlar çıkar. Öte yandan, bu durum uzun vadede type kavramını, method imzalarını ve class ilişkilerini daha dikkatli kurmayı öğretir. Zaman baskısı seni çok geriyorsa, ilk yılda Python ile hızlı ilerleyip özgüven toplamak mantıklı bir tercih olabilir.
IA, gerçek hayattaki bir probleme çözüm ürettiğin, planlama, tasarım, development, testing ve documentation içeren bireysel bir proje. Burada dil seçimi, hem proje fikrini nasıl kurduğunu, hem de deadline’lara yetişip yetişemeyeceğini doğrudan etkiler.
Java ile genelde daha yapılandırılmış, OOP ağırlıklı, orta karmaşıklıkta projeler güçlü görünür; örneğin rezervasyon sistemleri, küçük yönetim yazılımları veya basit inventory takip araçları gibi projelerde class hiyerarşileri gayet şık durur. Python ise hızlı prototip, basit GUI, hafif web entegrasyonu ya da veri işleme içeren fikirlerde parlayabilir; küçük bir quiz uygulaması, mini veri analiz aracı veya otomasyon script’i gibi projelerde hız sağlar.
En sağlıklı yaklaşım, önce problemi ve kullanıcıyı düşünmek, sonra bu probleme hangi dilin daha rahat hizmet edeceğine karar vermektir, yani dil değil, çözmek istediğin ihtiyaç başlangıç noktası olmalı.
IA raporunda examiner için en önemli şey, kullandığın dil değil, çözümünü ne kadar açık, tutarlı ve teknik olarak doğru anlattığındır. Java kodu daha uzun olduğu için, class diagram, UML benzeri şemalar ve method açıklamalarıyla yapını anlatmak bazen daha “kurumsal” bir görünüm kazandırabilir.
Python’da kod daha kısa olduğu için, özellikle reasoning kısmında algoritmanın mantığını, veri akışını ve kullanılan yapıları detaylı açıklamak kritik hale gelir. Examiner genelde kodu satır satır incelemekten çok, tasarım kalitesine ve problemle çözüm arasındaki uyuma bakar.
IB’de aynı dönemde Extended Essay, TOK ve diğer derslerle uğraşırken, IA’ye ayrılan zaman sıkışabilir. Python ile daha az satır kodla çalışan bir prototipe ulaşmak, sana testing ve reflection bölümleri için ekstra gün kazandırabilir, bu da stresi azaltır.
Java’da başta daha fazla hazırlık süresi gerekir, ama iyi bir planlama ve erken başlangıç ile bu dezavantaj kapanır. Kod yazarken çabuk sıkılan, çok syntax hatası yapan ve zaman baskısını yoğun hisseden biriysen, Python IA sürecinde daha pratik bir seçenek olabilir.
IB’den sonra Computer Science ya da mühendislik okumayı düşünüyorsan, dil seçiminin uzun vadeli etkisini merak etmen çok normal.
Pek çok üniversitede giriş seviyesi Computer Science dersleri, Java gibi statically typed dillerle yürütülüyor, örnek olarak giriş seviyesinde kodlama dersi veren Georgia Tech Distance Computer Science Program tarzı programlarda bu yaklaşımı görebilirsin. Java ile çalışmak, type system, class design ve OOP pattern’leri konusunda sağlam bir iskelet oturtmana yardımcı olur.
Bu temel, üniversitedeki data structures, algorithms ve software engineering derslerine geçişte sana rahatlık sağlar, çünkü kavramlar sana yabancı gelmez. Yine de, IB düzeyinde Java biliyor olman tek başına dev bir avantaj yaratmaz, asıl farkı problem çözme disiplinin ve çalışma alışkanlıkların oluşturur.
Python günümüzde data analysis, machine learning, scripting, automation ve küçük web projelerinde çok yaygın kullanılıyor. IB IA içinde büyük ML kütüphaneleri kullanman çoğu zaman gerekmez, ama ileride pandas, numpy veya scikit-learn gibi kütüphaneleri öğrenmek istersen, Python ekosistemi seni bekliyor olacak.
Kısa sürede çalışan küçük projeler üretmekten hoşlanıyorsan, sonuç gördükçe motive oluyorsan ve “daha az syntax, daha çok fikir” tarzı bir öğrenme seziyorsan, Python hem IB’de hem üniversite sonrası projelerde seni daha heyecanlı tutabilir.
Öğrencilerin sık yaptığı hata, sadece “gelecekte popüler” diye dil seçmek ve kendi çalışma stilini hiç hesaba katmamaktır. IB seviyesinde asıl önceliğin kavramları öğrenmek, düzgün study habit geliştirmek ve IA’yi zamanında tamamlamak olmalı.
Kendine dürüstçe şu soruları sorabilirsin: Zamana karşı baskı hissettiğinde nasıl tepki veriyorsun, hatalarla uğraşırken sabrın ne kadar, soyut OOP kavramlarını parça parça incelemeyi seviyor musun, yoksa hızlıca çalışan bir prototip görmek seni daha mı motive ediyor, matematiksel düşünce ve detaylı type kuralları sana çekici mi geliyor, yoksa bunlar seni gereksiz yavaşlatıyor mu? Cevapların Java’ya doğru kayıyorsa, daha disiplinli syntax ve güçlü OOP temeli sana iyi gelecektir; cevapların Python tarafında toplanıyorsa, kısa kod ve hızlı denemeler seni daha mutlu eder.
Özetlemek gerekirse, IB Computer Science içinde Java ve Python, syllabus açısından resmi olarak eşit diller, Grade Boundary ya da final sınav notunu dil seçimin belirlemiyor. Farkı yaratan şey; algoritma, veri yapıları ve OOP mantığını ne kadar iyi anladığın ve bunları Pseudocode ile ne kadar temiz ifade edebildiğin.
Kafanda küçük bir karar rehberi kalabilir: Java için, daha disiplinli syntax, güçlü OOP temeli, üniversite Computer Science derslerine yakın yapı; Python için, hızlı öğrenme, kısa ve okunaklı kod, IA için pratik geliştirme ve zaman avantajı. Yine de, okulunun hangi dili desteklediğini ve öğretmeninin hangi kaynaklara sahip olduğunu mutlaka konuş, bazı okullar sadece Java, bazıları sadece Python altyapısına hazır olabiliyor.
Sonuçta, hangi dili seçersen seç, düzenli pratik, iyi planlama ve istikrarlı çalışma, Internal Assessment, Extended Essay ve final sınav sürecinde gerçek farkı yaratacak olan en önemli alışkanlık olacak. Kendi stilini tanı, buna uygun dili seç ve seçimine güven, gerisi düzenli çalışma ile zaten gelecektir.
Yıllar önce yanmış, simsiyah bir ormanı hayal et. Ağaçlar yok olmuş, yer yer kül ve çıplak toprak görünüyor. Sonra yıllar geçiyor; önce minik otlar çıkıyor,
Gezegenin her köşesinde habitatlar küçülüyor, türler kayboluyor ve iklim krizi yaşam alanlarını hızla değiştiriyor. Böyle bir ortamda biodiversity conservation artık sadece bilim insanlarının konusu değil,
Sabah okula giderken gri, sisli bir şehrin içinde yürüdüğünü düşün; maske takan insanlar, sürekli öksüren çocuklar, artan astım spreyleri. Bunlar artık uzak haber başlıkları değil,
IB Environmental Systems and Societies içindeysen, ister öğrenci, ister öğretmen, ister veli ol, renewable resources ve non-renewable resources konusu senin için temel taşlardan biri olacak.
IB Environmental Systems and Societies öğrencisiysen, muhtemelen IA taslağına bakıp şunu düşündün: “Research Question tamam, Methodology fena değil, Results çıktı, peki Evaluation kısmında tam olarak
IB Environmental Systems and Societies öğrencisiysen, food production systems başlığının ne kadar sık karşına çıktığını muhtemelen fark etmişsindir. Hem eski syllabus içinde hem de 2026
Ek olarak kullandığın her su damlasının, yediğin her öğünün ve bindiğin her aracın gezegen üzerinde bıraktığı bir “iz” olduğunu düşün; işte ecological footprint tam olarak
İklim krizi, enerji geçişi, su kıtlığı, gıda fiyatları, hızlı şehirleşme… Bütün bu başlıklar kulağa sadece çevre bilimi konusu gibi geliyor olabilir, fakat aslında hepsinin kalbinde
“Sera etkisi ile küresel ısınma aynı şey mi?”Kısa cevap: Hayır. Greenhouse effect (sera etkisi) doğal ve yaşam için gerekli bir ısınma sürecidir, global warming (küresel
IB Environmental Systems and Societies (ESS) okuyorsan, iklim değişikliği mutlaka karşına çıkıyor ve 2026 first assessment döneminde climate change mitigation daha da merkezde duracak. Bu