34 puan yazan GN⁺ 2024-03-17 | 2 yorum | WhatsApp'ta paylaş
  • 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

 
quack337 2024-03-19

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.

 
GN⁺ 2024-03-17

Hacker News görüşleri

  • Bu ders, çeşitli kavramları tanıtıyor ve özellikle problem çözme becerisini geliştirmeye odaklanıyor.

    • Dersin işleyişi, öğrencilere her hafta yeni bir konuyla ilgili yalnızca temel tanımları verip, o konuyu uzman düzeyinde ele alan bir derste 3. haftada karşılaşabilecekleri problemleri çözmelerini istemek üzerine kurulu.
    • Bu yaklaşım tekrar tekrar uygulanıyor ve oldukça sinir bozucu olabiliyor, ancak bu kasıtlı.
    • Sürekli ulaşılması zor problemleri çözmeye çalışarak, verilen bir problem üzerine düşünmek için daha iyi stratejiler geliştiriliyor.
  • 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ı.

    • Kimse yardım etmedi ve gönderiyi paylaşan kişi gönderiyi sildi.
    • Problem ilginç görünüyordu, ben de bunu kısa süreli keyifli bir meydan okuma olarak görüp denedim.
    • Matematik bölüm mezunuydum ve teorik bilgisayar biliminin tüm lisans derslerini almıştım; ama bunun üzerinden yaklaşık 35 yıl geçtiği için pek çok şeyi unutmuştum. Yine de problem COMS 331'in ilk ödev setinden geldiği için temel şeyleri hatırlarım diye düşündüm.
    • Birkaç gün harcadım ama hiç ilerleme kaydedemedim; o zamandan beri de problemi birkaç kez yeniden düşünüp saatlerimi ya da bir günümü verdim, ama yine başarısız oldum.
  • 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:

    1. Move-to-front listeleri, en iyi liste sıralama arama süresine göre en fazla 2 kat daha uzun sürebilir, ancak çoğu zaman statik liste sıralamasından çok daha iyidir.
    2. Rastgeleleştirilmiş algoritmalar (quicksort gibi), ç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ü?

    • Teorik fizik, deneysel fizik, iktisat gibi alanlarda birer "harika fikirler" dersi hayal edebiliriz.
    • Bir keresinde "Bilgi Çağı Buluşları" adlı bir ders verdim; burada yazıdan modern bilişim altyapısına kadar, medeniyetin bizim bilgi çağımızı yeniden üretebilmesi için gereken tüm buluşları ve fikirleri tartışıyorduk. Tek bir disipline ait bir ders olmadığı için daha da eğlenceliydi.
  • Ü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?