Sizlere bilgisayar bilimlerinde alabileceğiniz en iyi kurslardan birini tanıtmak istiyorum. Ben bu kursu 2020 yılında bir arkadaşımla yaklaşık 1 ayda eş zamanlı olarak tamamlamıştım. Kursun toplam süresi fazla değil. Her biri ortalama 2 saat süren 11 dersten oluşuyor. İçeriği de her yıl güncelleniyor. Bu kursu minimum %70 başarı oranıyla tamamlayarak Harvard Üniversitesi tarafından verilen sertifikayı alabilirsiniz.
Kurs neleri içeriyor?
Kursun içeriği bilgisayar bilimlerine başlangıç için çok güzel organize edilmiş bence. 2025 versiyonu üzerinden kısaca içeriklerini anlatacağım.
Lecture 0 – Scratch: Bu derste yazılımın temelleriyle ilgili kritik bilgiler veriliyor ve Scratch adındaki program üzerinden algoritma örnekleri inceleniyor. Bu programın arayüzü benim hiç hoşuma gitmiyordu ama algoritma mantığı için güzel bir ders.
Lecture 1 – C: Sanırım kursun en zor dersiydi. Video kısmında hızlandırılmış C dersi anlatılıyor. Ödevlerde ise baya zorlayıcı bir C ödevi verildiğini hatırlıyorum. Yazılım hayatınızda C dilini öğrenmek zorunda değilsiniz. Ama Python gibi daha yüksek seviyeli dillerin bu hale nasıl geldiğini anlamanız açısından verimli olacaktır.
Lecture 2 – Arrays: Bu derste dizilerin bellekte nasıl saklandığı, string’lerin aslında karakter dizileri olduğu ve komut satırı argümanlarının işlenmesi anlatılıyor. Ayrıca basit şifreleme örnekleriyle dizilerin pratik kullanımına değiniliyor.
Lecture 3 – Algorithms: Bu derste yazılımın kalbi olan algoritmaların doğruluk ve verimlilik ölçümleri yapılıyor. Big-O notasyonu anlatılıyor. Yazdığınız kodların gittikçe daha hantal olmasını istemiyorsanız bu terimi iyi anlamanız şart.
Lecture 4 – Memory: Bu derste bilgisayarın belleğinin nasıl çalıştığını öğreniyoruz. Pointer mantığını, değişkenlerin ve dizilerin adreslerini, stack–heap farkını anlatıyorlar. malloc ve free ile belleği nasıl ayırıp serbest bırakacağımızı görüyoruz. Yine iyi seçilmiş bir konu.
Lecture 5 – Data Structures: Bu derste Veri yapıları da yazılım için olmazsa olmazlardan. Bağlı listeler, hash tabloları, ağaç yapıları, stack ve queue gibi yapıların işleyişlerini öğreniyoruz.
Lecture 6 – Python: Bu derste C dilinden Python’a geçiş yapılıyor. Bu geçişte işlerin zamanla nasıl evrildiğini, düşük seviyeli dillerden yüksek seviyeli dillere nasıl geçiş yapıldığını fark ediyorsunuz.
Lecture 7 – SQL: Bu derste veriler için olmazsa olmazlardan veri sorgulama dili olan SQL’i görüyoruz. Tablo oluşturma, veri ekleme, güncelleme, silme gibi temel sorguların yanı sıra SELECT, WHERE, JOIN gibi komutlarla veritabanından veri çekme işlemleri var. Yazılımın hangi alanında olursanız olun verilerle iç içe olacaksınız ve iyi SQL bilgisi sizin her zaman elinizi güçlendirir.
Lecture 8 – HTML, CSS, JavaScript: Bu derste web yazılım anlatılıyor. HTML, CSS ve JavaScript’in bir araya gelerek web siteleri nasıl oluşturduğunu öğreniyorsunuz. Web yazılımın sadece front-end kısmıyla sınırlı bir bölüm.
Lecture 9 – Flask: Bu derste ise web sitenin back-end tarafı için daha önce öğretilen Python’da kullanılan Flask framework anlatılıyor. Bu sayede uçtan uca web site geliştirmeyi görmüş olacaksınız.
Lecture 10 – Artificial Intelligence: Bu dersi 10 diye işaretlememişler, ara ders olarak eklemişler ama ben buraya ekliyorum. Nispeten diğer derslere göre daha kısa.
Kurs zor mu?
Yeni başlayanların bu kurs hakkında en çok yaptığı yorumlardan biri kursun zor olduğu. Anlatım olarak nispeten orta seviyeli olsa da ödevlerin içeriği yeni başlayanlar için çok zorlayıcı olabilir. Bu nedenle bu kursu isterseniz daha uzun sürelere yayarak tamamlayabilirsiniz. Unutmayın, önemli olan kendinize bir şeyler katabilmek. Kendinize bir şey katmadıktan sonra kursun da bir önemi olmayacaktır.
Kursu nasıl tamamlamalıyım?
Her dersin sonunda o dersin içeriğiyle ilgili lab ve problem set ödevleri veriliyor. Bunları gerçekten anlayarak ve zaman ayırarak çözerseniz kurstan tam verim almış olursunuz. Ben bu kursu aldığımda yazılım tecrübem olmasına rağmen zorlanmıştım. Ama inanılmaz öğretici olduğuna garanti veririm. Kursun en sonunda da tüm bilgilerinizi bir araya getiren bir final ödevi veriliyor. Bunu tamamladığınızda da sertifikanızı alabiliyorsunuz.
Kursu nereden izleyebilirim?
Direkt youtube üzerinden kursu izleyebilirsiniz. Buraya playlist olarak ekledim.
Ödevlerin ilerleyişi içinse aşağıdaki bağlantıdan kursa kayıt olup kurs içeriğindeki talimatları yerine getirmeniz gerekiyor. Github hesabınızı bağladıktan sonra yazdığınız kodları sisteme göndererek değerlendirmeye alıyorsunuz.
Bu arada kursun Türkçe hali de var. Zamanında Kodluyoruz ekibi tarafından yapıldı. Ciddi bir emek var orada da. Siz yine de İngilizce izleyebiliyorsanız terimlere aşina olabilmeniz için öyle yapın. Çok zorlanıyorsanız aşağıdaki bağlantıdan Kodluyoruz üzerinden de izleyebilirsiniz.
https://www.kodluyoruz.org/cs50x
Benim yorumlarım
Kursta emeği geçen herkese çok teşekkür etmek istiyorum. Kendime çok şey katmama yardımcı oldu. Ama daha ötesinde bu kursu izleyerek “öğretmek” eyleminin çok başka bir yetenek olduğunu fark etmiştim. Öğretmek emek vermekle, yeri geldiğinde prodüksiyon yapmakla olan bir şey. Bir insanın önüne dümdüz metinleri dizerek öğretmiş olmuyorsunuz. Bu kurstaki eğitim kalitesine her yerde ulaşılmasını diliyorum tüm samimiyetimle.
Arkadaşımla kursu aldığımız dönemde kursun ana öğretmeni olan David J. Malan Türkiye’ye özel bir toplantı düzenlemişti. Bu toplantıda kendisine yapay zekanın gidişatıyla ilgili soru sorma şansımız olmuştu. Elinden geldiğince açıklayarak bir de üstüne bana mail atın size daha da yardımcı olmak istiyorum diyip bizimle ilgilenmişti. Bu samimi yaklaşımından dolayı da David J. Malan’a ayrı bir teşekkür gönderiyorum ✍️✍️