- CMU'nun CS251 dersi; evrenin, toplumun, yeni teknolojilerin ve bunları anlamaya çalışan zihnimizin temel bir unsuru olan hesaplamanın sıkı bir incelemesine odaklanır.
- Hesaplamayı incelemek için uygun dil ve araçlara sahip olmak önemlidir.
- Bu derste, hesaplamanın doğasına ilişkin temel sonuçlar ve sorular incelenir.
Hesaplamanın Biçimselleştirilmesi
Modül 1: Giriş
- Temel amaç, teorik bilgisayar biliminin ne olduğunu yüksek seviyede açıklamak ve ileride ele alınacak konular için uygun bir bağlam oluşturmaktır.
- Veriyi biçimsel olarak nasıl ifade edeceğimiz ve hesaplama problemleri kavramını nasıl biçimsel olarak tanımlayacağımız ile başlanır.
Modül 2: Sonlu Otomatlar
- Basit ve sınırlı bir hesaplama modeli olan deterministik sonlu otomatı (DFA) tanıtmak amaçlanır.
- DFA'lar kendi başlarına ilgi çekici ve faydalı uygulamalara sahip olsa da, algoritma kavramını biçimsel olarak tanımlamaya yönelik ilk adım olarak kullanılır.
Modül 3: Hesaplamanın Biçimselleştirilmesi
- Her türlü hesaplama aygıtı için standart matematiksel model olan Turing makinesinin tanımını sunmak temel hedeftir.
- Turing makinelerinin titiz biçimde incelenmesi, yalnızca bir dizüstü bilgisayarın neler yapabileceğine değil, evrenin hesaplama açısından neleri yapıp yapamayacağına dair de içgörü sağlar.
Modül 4: Hesaplamanın Sınırları
- Problemlerin çoğunun karar verilemez olduğu kanıtlanır ve karar verilemez problemlere somut örnekler verilir.
- Köşegenleme ve indirgeme olmak üzere iki temel teknik kullanılır.
Modül 5: İnsan Akıl Yürütmesinin Sınırları
- Matematiksel akıl yürütmeyi matematiksel olarak biçimselleştirme çalışması gerekliydi; bu da "algoritma" veya "hesaplama" kavramlarını biçimselleştirmeyi içeriyordu.
- Teorik bilgisayar biliminin dili kullanılarak matematiğin temellerine dair önemli sorulara etkili yanıtlar verilir.
Hesaplama Karmaşıklığı
Modül 6: Zaman Karmaşıklığı
- Birçok problem aslında karar verilebilir olsa da, en verimli algoritma çok fazla hesaplama adımı gerektiriyorsa, o problem pratikte karar verilemez hale gelir.
- Zaman karmaşıklığı dahil çeşitli kaynaklar açısından hesaplama karmaşıklığı incelenir, ancak odak zaman karmaşıklığı üzerindedir.
Modül 7: Grafik Kuramı
- Grafikler, bilgisayar biliminde ortaya çıkan hesaplama problemlerini soyutlamada çok temel bir rol oynar.
- Grafik kuramına ilişkin geniş literatürden yararlanarak grafik problemlerinin hesaplama karmaşıklığını daha iyi anlayabiliriz.
Modül 8: P ve NP
- NP karmaşıklık sınıfı tanıtılır ve bilgisayar biliminin en önemli açık problemi olan P ve NP problemi tartışılır.
- NP içinde yer alan birçok doğal ve iyi incelenmiş dili polinomsal zamanda karara bağlayabilseydik, şaşırtıcı uygulamalar mümkün olurdu.
Modül 9: Rastgeleleştirilmiş Algoritmalar
- Rastgelelik, doğayı modellemek ve analiz etmek için vazgeçilmez bir kavram ve araçtır.
- Rastgeleleştirilmiş algoritmalar, rastgele sayı üreteci gibi bir rastgelelik kaynağına erişebilen ve çok küçük bir hata olasılığıyla yanlış sonuç üretebilen algoritmalardır.
Modül 10: Kriptografi
- Bilgisayar bilimi devrimiyle birlikte kriptografi alanı büyük ölçüde gelişmeye başladı.
- Hesaplama karmaşıklığının incelenmesi, kriptografiyi bütünüyle dönüştürdü.
Teorik Bilgisayar Biliminin Öne Çıkan Başlıkları
Modül 11: Ek Konular
- Teorik bilgisayar biliminden seçilmiş öne çıkan başlıklar sunulur.
GN⁺ Görüşü
- Bu ders, bilgisayar biliminin kuramsal yönlerine dair derin bir anlayış sunar ve öğrencilere hesaplamanın doğasını keşfetme, karmaşıklık teorisi ve kriptografi gibi önemli konuları öğrenme fırsatı verir.
- Özellikle P ve NP gibi açık problemlere ilişkin tartışmalar, öğrencilere bilgisayar biliminin en ileri noktasında yürütülen araştırmalar hakkında içgörü sağlar.
- Bu ders, bilgisayar biliminin temellerini sağlamlaştırmada önemli bir rol oynar ve kuramsal altyapıya sahip bir yazılım mühendisi olmak için gerekli bilgiyi sunar.
- Kriptografi modülü, modern toplumda veri güvenliği ve gizliliğin önemini vurgular ve bu alanda uzmanlaşmak için temel oluşturur.
- Bu ders, bilgisayar bilimi alanında kariyer yapmak isteyen öğrencilerin gerekli kuramsal altyapıyı ve problem çözme becerilerini edinmesine yardımcı olduğu için oldukça değerlidir.
2 yorum
Ah.. üniversite öğrencisiyken saç baş yolup zorlandığım günleri hatırladım..
Muhtemelen hâlâ anlamayacağım ama yine de dikkatle dinlemem gerekecek sanırım.
Hacker News görüşleri
Bu ders, çeşitli kavramları tanıtıyor ve özellikle problem çözme becerisini geliştirmeye odaklanıyor.
Teorik bilgisayar bilimi eğlenceli olabilir, ama bazen oldukça can sıkıcı da olabilir.
Reddit'te teorik bilgisayar bilimiyle ilgili bir problemin nasıl çözüleceğini soran bir gönderi gördüm; bunun Iowa State University'nin COMS 331 (Theory of Computing) ödevini kopya çekerek çözme girişimi olduğu ortaya çıktı.
Bu fikirleri programlama yoluyla doğrudan öğrenmek istiyorsanız, Tom Stuart'ın "Understanding Computation From Simple Machines to Impossible Programs" kitabını öneririm.
Bu dersin daha kapsamlı bir versiyonu YouTube oynatma listesinde izlenebilir.
Bu dersin, "olasılıksal yöntem"ü de içeren başka bir versiyonu var; ayrıca topolojik çözüm uzayı engellerine ilişkin bir ispatı, modern ontolojik (yapıcı olmayan) ispatları düşünme biçimi olmadan hayal edemiyorum.
Bu konuyla ilgileniyorsanız, Boaz Barak'ın web sitesine ve PDF olarak sunulan ders kitabına göz atabilirsiniz.
Teorik bilgisayar bilimindeki en önemli iki fikir:
quicksortgibi), çoğu zaman en kötü durumda bile rastgeleleştirilmemiş algoritmalarla aynı süreyi alır, ama pratikte rastgeleleştirilmemiş türlerinden çok daha hızlıdır.Bu dersin başka alanlardaki bir versiyonu nasıl görünürdü?
Üniversitedeyken zaman karmaşıklığı üzerine bir dersi hatırlıyorum. Profesör rastgele öğrencileri seçip karmaşık algoritmaların zaman karmaşıklığını soruyordu; cevap yanlışsa başka bir öğrenciyi seçiyordu.
Hesaplamayı evrenin temel bir özelliği olarak nasıl anlayabiliriz? Bitkiler ve hayvanlar hesaplamayı nasıl gerçekleştirir?