Yapay zeka temelleri
Hesaplamalı Düşünme Nedir?
Hesaplamalı düşünme, problemleri ve çözümleri, bilgi işleme adımlarının bir kişi, bilgisayar ya da sistem ağı tarafından sistematik olarak yürütülebileceği şekilde formüle etme yoludur. Soyutlama ve algoritma tasarımını içerir, ancak neyin temsil edileceğine ve önerilen bir çözümün nasıl test edileceğine karar vermeyi de kapsar.
Hesaplamalı düşünme, programlamadan daha geniş bir kavramdır. Kod bir çözümü hayata geçirebilir, ancak zor iş genellikle daha önce gelir: hedefi tanımlamak, problemi parçalamak, ilgili detayları seçmek ve otomasyonun uygun olmadığı yerleri fark etmek.
Temel Çıkarımlar
- İşlemi optimize etmeden önce problemi formüle edin.
- Parçalama, karmaşık bir sistemi etkileşimli parçalara ayırır; soyutlama, seçilen seviyede alakasız detayları gizler.
- Algoritmalar, girdiler, çıktılar, varsayımlar, durma koşulları ve testler gerektirir.
- Hesaplamalı düşünme, sosyal yargıyı, belirsiz değerleri veya sorumluluğu ortadan kaldırmaz.

Problemi ve Amacı Formüle Etmek
Etkilenen kişileri, desteklenecek kararı, mevcut bilgileri ve hatanın sonuçlarını belirleyin. Belirsiz bir talebi, gerçek hedefle karıştırmadan ölçülebilir bir sonuç olarak gözlemlenebilir bir çıktıya dönüştürün.
Makine öğreniminde, tıklamaları tahmin etmek teknik olarak uygun olabilir ancak memnuniyeti temsil etmeyebilir. Hesaplamalı düşünme, bir algoritma seçmek yerine bu formülasyonu test ederek başlar.
Sistemleri ve Bağımlılıkları Parçalamak
Problemi, ayrı ayrı değerlendirilebilecek bileşenlere ayırın: veri toplama, doğrulama, dönüşüm, karar mantığı, kullanıcı etkileşimi ve izleme. Arayüzleri ve aralarındaki geri bildirimleri kaydedin, böylece yerel iyileştirmeler daha geniş sistemi zarar vermez.
Parçalama, parçalanma değildir. Bir ekip parçaları yeniden birleştirmeli ve uçtan uca davranışı test etmelidir; zamanlama, eksik girdiler ve yukarı ya da aşağı akış hizmetlerindeki hatalar dahil.
Soyutlamak ve Temsil Etmek
Bir soyutlama, bir soruya ilgili detayları tutar ve diğerlerini bastırır. Bir grafik bağlantıları temsil edebilir, bir tablo kayıtları temsil edebilir ve bir olasılık dağılımı belirsizliği temsil edebilir. Aynı gerçek dünya durumu, farklı kararlar için farklı temsiller gerektirebilir.
Tüm temsiller bir şeyleri dışlar. Birimler, kategoriler, zaman dilimleri ve eksiklikleri belgeleyin. Yapılandırılmış ve yapılandırılmamış veri arasındaki ayrım, neyin ifade edilebileceğini ve hangi dönüşümlerin bağlamı kaybedebileceğini etkiler.
Bir Algoritma Tasarlamak ve Dikkatli Otomasyon
Algoritma, girdileri, adımları ve çıktıları olan tanımlı bir prosedürdür. Doğruluk, sonlanma, karmaşıklık, bellek, hata davranışı ve sonuçların belirli mi yoksa olasılıksal mı olduğunu göz önünde bulundurun. Genelleştirmeden önce örnekler ve uç durumları kullanın.
Otomasyon, doğrulamayı ve desteklenmeyen girdilere güvenli bir yanıtı içermelidir. Hızlı çalışan ancak yanlış bir hedefi kodlayan bir süreç iyileşme değildir. İnsan incelemesi, algoritmik sistemin bir parçası olabilir; başarısızlığın kanıtı olarak görülmemelidir.
Test Etmek, Tekrarlamak ve Genelleştirmek
Birim testleri bileşenleri kontrol eder; entegrasyon testleri arayüzleri kontrol eder; senaryo testleri uçtan uca davranışı sınar. Beklenen ve gözlemlenen sonuçları karşılaştırın, hataları varsayımlara izleyin ve kanıtlar çeliştiğinde formülasyonu revize edin.
Genelleştirme, yaklaşımın tasarımda kullanılan örneklerin ötesine geçip geçemeyeceğini sorar. Geçerli kapsamı belirtin. Haklar, değerler ya da tartışmalı hedefler içeren problemler, yalnızca hesaplamaya ek olarak katılımcı yargı ve yönetişim gerektirir.
Hesaplamalı Düşünmenin Temel Uygulamaları
Hesaplamalı düşünme, bir problemi kişi ya da makinenin bir çözüm yürütmesini sağlayacak şekilde çerçeveler. Parçalama, karmaşık bir hedefi yönetilebilir parçalara ayırır; desen tanıma, tekrarlanan yapıyı belirler; soyutlama, görevle ilgili bilgileri tutar; algoritma tasarımı adımları ve koşulları belirtir. Temsil de aynı derecede önemlidir: tablolar, grafikler, durumlar, koordinatlar ve veri tipleri bazı işlemleri kolay, diğerlerini zorlaştırır. Amaç, yalnızca kod yazmayı öğrenmek değil, disiplinli problem çözmektir.
İyi bir parçalama, parçalar arasındaki arayüzleri ve sorumlulukları tanımlar. Soyutlama, doğru çalışması için gereken kısıtlamaları gizlemeden gereksiz detayları saklamalıdır. Algoritmalar, girdiler, çıktılar, önkoşullar, değişmezler, sonlanma ve hata davranışı gerektirir. Uygulamadan önce sahte kod, akış diyagramları, karar tabloları ve örnekler yardımcı olur. Verimlilik, zaman, bellek, iletişim, enerji ve insan çabasını dikkate alır, ancak optimizasyon doğru bir temel üzerine inşa edilmelidir. Bazı problemler ölçeklendirilmiş olarak kararsız veya hesaplamalı olarak çözülemez olduğundan, yaklaşıklama ve ödünleşmeler kaçınılmazdır.
Test Etme, Hata Ayıklama ve Veri Akıl Yürütme
Test, gereksinimlerden durumlar türetir: normal, sınır, boş, hatalı biçimli, tekrarlanan, aşırı ve saldırgan. Hata ayıklama hipotezler oluşturur, durumu gözlemler, nedenleri izole eder ve gerileme eklemeden bir düzeltmeyi doğrular. Tekrarlanabilirlik, girdileri, sürümleri ve ortamı kaydeder. Veri problemlerinde, gözlemlerin nasıl örneklenip ölçüldüğünü, etiketlendiğini, eksik olduğunu ve dönüştürüldüğünü sorun. Bir algoritma mükemmel çalışabilir ancak temsili ya da veri üretim varsayımı geçersiz olduğundan yanlış bir sonuca varabilir.
Otomasyon, bir süreci ve teşviklerini değiştirir. Girdiyi kim sağlayıyor, çıktıyla kim etkileniyor, hangi istisnalar var ve itiraz ya da düzeltme nasıl çalışıyor belirleyin. Gizlilik, erişilebilirlik, güvenlik ve adalet, problem tanımına dahil edilmelidir; sonradan eklenmemelidir. Kesin kurallar için belirleyici bir tanım tercih edilir; desenlerin veriden tahmin edilmesi ve hataların değerlendirilebilmesi gerektiğinde makine öğrenimi uygundur. Otomasyon seçmemek, doğru bir hesaplamalı karar olabilir.
Beceriyi Öğretmek ve Uygulamak
Öğrenciler, aynı problemi fiziksel adımlarla, sahte kodla, bir elektronik tabloyla ve kodla çözerek temsillerin akıl yürütmeyi nasıl değiştirdiğini görmelidir. Projeler, yalnızca çalışan bir çıktı değil, açıklama ve testler de gerektirmelidir. Kuruluşlarda, hesaplamalı düşünme gereksinim yazımını, iş akışı tasarımını, veri analizini ve mühendislerle iş birliğini geliştirir. Kalıcı değeri, varsayımları açıkça ortaya koyma, tekrarlanabilir bir süreç inşa etme ve belirsizlik ya da insan yargısının bir problemi basit bir algoritmaya indirgemesini engellediği noktaları tanıma yeteneğidir.
Uygulamalı Örnek: Okul Otobüsü Rotalama Algoritması Tasarlama
Öğrenciler, görevi duraklar, yolcular, kapasite, zaman dilimleri, seyahat süreleri, erişilebilirlik ve güvenlik kısıtlamaları olarak parçalar. Yol ağını bir grafik olarak temsil eder, basit bir açgözlü rota oluşturur ve bilinen çözümlere sahip küçük vakalarla test eder. Sınır testleri arasında yolcunun olmaması, ulaşılamayan bir durak, araç arızası ve erişilebilir otobüs gerektiren bir yolcu bulunur. Verimlilik, yalnızca doğruluk ve kısıtlamalar görüldükten sonra karşılaştırılır.
Sınıf daha sonra ödünleşmeleri inceler: en kısa mesafe, bireysel olarak uzun yolculuklar veya eşitsiz hizmet yaratabilir. Adalet ve dayanıklılık ölçütleri ekler, varsayımları belgeler ve planlayıcıların bir gerekçe ile geçersiz kılmasına izin verir. Kişisel adresler korunur ve örnek veri sentetiktir. Alıştırma, soyutlamanın hesaplamayı mümkün kıldığını ancak aynı zamanda modelde hangi insan ihtiyaçlarının yer alacağını belirlediğini gösterir. Hesaplamalı düşünme, temiz bir optimizasyon hedefinin önemli bir değer ya da istisna dışarıda bıraktığını fark etmeyi de içerir.
Uygulama Kanıtları ve Operasyonel Hazırlık
Üretim kararı, başarılı bir gösteriden daha fazlasını gerektirir. Hedef kullanıcıları, çalışma ortamını, girdileri, çıktıları, bağımlılıkları, sahibi ve her önemli hatanın sonucunu tanımlayın. Ayarlamadan önce tekrarlanabilir bir temel ve sürümlenmiş bir değerlendirme seti oluşturun. Normal durumları, sınır koşullarını, hatalı ya da eksik girdileri, dağılım kaymasını, bağımlılık kesintisini, kötü kullanımı ve hizmet dışı kalma ihtimali yüksek grup ya da ortamları test edin. Görev kalitesini kalibrasyon veya belirsizlik, gecikme, iş hacmi, kaynak maliyeti, erişilebilirlik, gizlilik ve güvenlik ile ölçün. Bağımsız bir gözden geçiricinin sonucu yeniden üretebilmesi ve çekici bir prototipten kanıtı ayırabilmesi için her dönüşümü ve eşiği kaydedin.
Başlamadan önce, sürüm, istisnalar, değişiklikler, geri alma ve emeklilik yetkisini atayın. Aşamalı bir dağıtım kullanın, güvenli bir geri dönüşü koruyun ve kasıtlı olarak eklenen hatalarla izlemeyi doğrulayın. Operasyonel telemetri, gereksiz hassas veri toplamayarak giriş kalitesini, çıktı davranışını, model ya da kural sürümünü, bağımlılık sağlığını, insan geçersiz kılmalarını ve onaylanmış sonuçları ortaya koymalıdır. Uyarı eşikleri ve bir yanıt sorumlusu tanımlayın, ardından dağıtımdan sonra gerçek dünya kanıtlarını gözden geçirin; çevrim dışı performansın devam edeceğini varsaymayın. Veri kaynakları, kullanıcılar, modeller, satıcılar, politikalar, donanım veya hedefler değiştiğinde yeniden değerlendirin. Bakımı yapılan bir sistem, belgelenmiş bir kurtarma, olay öğrenimi, silme ve saklama prosedürleri ve devre dışı bırakılması ya da değiştirilmesi gereken net bir noktaya da ihtiyaç duyar.
Sıkça Sorulan Sorular
Hesaplamalı düşünme kodlama ile aynı mıdır?
Hayır. Kodlama, bir programlama dilinde talimatları ifade eder; hesaplamalı düşünme ise problem formülasyonu, temsil, algoritma tasarımı, test ve değerlendirmeyi içerir.
Her problem hesaplamalı olarak çözülebilir mi?
Hayır. Bazı problemler kararsız ya da uygulanamazdır ve birçok insan problemi, hesaplamanın tek başına çözemeyeceği belirsiz hedefler veya değer çatışmaları içerir.












