Zekâ oyunları, bilgisayara sadece çözüm buldurduğumuz oyuncaklar değil; algoritmaların kas geliştirdiği küçük spor salonlarıdır. Bir labirent çözücü ya da Rubik Küp algoritması yazarken asıl soru şudur: Çözümü bulabilir miyiz? Evet. Peki çözümü makul sürede ve belleği yakmadan bulabilir miyiz? İşte eğlence burada başlar.
Devamı...
Bir sohbet botu size doğru cevabı verdiğinde etkilenirsiniz; ama size duraksayarak, şaka yaparak, konuyu hafifçe yanlış anlayıp sonra toparlayarak cevap verdiğinde ona neredeyse kişilik atfedersiniz. Turing Testi tam da bu bulanık bölgede yaşar: Mesele yalnızca kodun mantıklı çıktı üretmesi değil, insan bilişini, dil alışkanlıklarını ve sohbetin sosyal ritmini ne kadar inandırıcı taklit edebildiğidir.
Devamı...
Felsefi metinler bazen bir veritabanı gibi davranır: kavramlar tablolar, alıntılar ilişkiler, kelimeler de satırlar gibidir. Platon’dan Kant’a, İbn Sînâ’dan Nietzsche’ye uzanan devasa bir külliyatı SQL ile sorguladığınızda yalnızca kaç kez akıl kelimesi geçtiğini değil, hangi kökten gelen kelimelerin hangi düşünürlerde birlikte yoğunlaştığını da görebilirsiniz.
Bu işin teorik temeli üç katmandan oluşur: ilişkisel model, dilsel ön işleme ve semantik yakınlık. İlişkisel modelde her metin; yazar, eser, bölüm, cümle ve token gibi parçalara ayrılır. Dilsel ön işlemede kelimeler küçük harfe çevrilir, noktalama temizlenir, kök veya lemma bulunur. Semantik yakınlıkta ise kelimelerin aynı bağlamlarda görünme sıklığı ölçülür. Basit fikir şudur: İki kavram benzer cümlelerde sık görünüyorsa anlam uzayında birbirine yakındır.
Devamı...
Bir forum sitesine girdiğinizde gördüğünüz şey birkaç başlık, avatar ve cevap kutusundan ibaret gibi durur. Oysa arka planda PHP, HTTP isteğini yakalar, oturumu kontrol eder, veritabanından konuları çeker, izinleri hesaplar ve size dinamik bir HTML sayfası üretir. Topluluk odaklı platformların evrimi tam da burada başlar: statik sayfalardan, kullanıcı davranışına göre şekillenen yaşayan sistemlere geçiş.
Devamı...
Tarayıcı, sadece butonlara tıkladığımız bir ekran değil; aynı zamanda küçük ölçekli davranış deneyleri yapabileceğimiz harika bir laboratuvardır. JavaScript sayesinde kullanıcıların seçimlerini, tepki sürelerini, dikkat kaymalarını ve karar örüntülerini analiz eden etkileşimli psikoloji ya da zeka testleri tasarlayabiliriz. Elbette burada amaç “insanı çözmek” değil; etik sınırlar içinde, anonim ve öğretici deneyimler üretmektir.
Devamı...
Modern bir IDE artık sadece renkli parantez gösteren bir metin editörü değil; adeta küçük bir yazılım işletim sistemi. Aynı çalışma alanında TypeScript ile önyüz geliştirirken, Python betikleriyle otomasyon çalıştırabilir, Go ya da Java servislerini debug edebilir ve tüm bu parçaları tek bir proje akışı gibi yönetebilirsiniz. Çoklu dil mimarisi tam da burada devreye girer: IDE, farklı dillerin araçlarını ortak bir orkestrada buluşturur.
Devamı...
Go’da eşzamanlılık, “aynı anda çok iş yapıyormuş gibi” görünen kod yazmaktan daha fazlasıdır; dilin tasarım felsefesine gömülü bir üretkenlik süper gücüdür. Binlerce arka plan görevini, ağ isteğini, kuyruk işini veya zamanlayıcıyı klasik thread maliyetlerine boğulmadan yönetmek istiyorsanız, goroutine’ler tam olarak bu sahneye davul zurna ile girer.
Devamı...
Satranç motoru yazmak, kulağa “büyük ustaların laboratuvarı” gibi gelse de aslında algoritmik düşünceyi öğrenmek için harika bir oyun alanıdır. Python ile basit bir bot geliştirerek taşların değerini hesaplayabilir, olası hamleleri ağaç gibi düşünebilir ve minimax algoritmasıyla “ben oynarsam ne olur, rakip cevap verirse ne olur?” sorusunu kodla cevaplayabilirsiniz.
Devamı...
Görüntü işleme, bilgisayara bir resmi sadece ‘görmeyi’ değil, onu anlamayı da öğretme sanatıdır. Python ise bu iş için adeta İsviçre çakısı gibidir: kolay sözdizimi, güçlü kütüphaneler ve bolca topluluk desteği. Bir fotoğrafı siyah-beyaza çevirmekten yüz tanımaya, belge taramadan otonom araçlara kadar pek çok alanda görüntü işleme kullanılır.
En basit haliyle bir görüntü, sayılardan oluşan bir matristir. Gri tonlamalı bir resimde her piksel 0 ile 255 arasında değer alır. 0 siyahı, 255 beyazı temsil eder. Renkli görüntülerde ise genellikle üç kanal bulunur: kırmızı, yeşil ve mavi. Yani bir piksel aslında şöyle düşünülebilir: $(R, G, B)$.
Devamı...
Bu yazıda Python kullanarak asal sayıları bulan programlar yazacağız. Konu, 12-14 yaş seviyesine uygun olacak şekilde basit örneklerle anlatılmıştır.
Asal Sayı Nedir?
Asal sayı, sadece 1’e ve kendisine tam bölünebilen 1’den büyük doğal sayıdır.
Örnek asal sayılar:
Devamı...