Roma rakamları denince çoğumuzun aklına saat kadranları, tarihî yapılar ve film jeneriklerindeki gizemli tarihler gelir. Oysa I, V, X, L, C, D ve M sembolleriyle aritmetik yapmak da mümkündür. Üstelik bunun için sayıları mutlaka onluk sisteme çevirmek gerekmez. Biraz sembol birleştirme, biraz sadeleştirme ve bolca düzenleme yeterlidir.
Devamı...

Bilgisayarlar zar atamaz, kahve falına bakamaz ve içlerinden geldiği gibi sayı seçemez. Deterministik makineler oldukları için aynı başlangıç koşullarında aynı sonucu üretirler. Buna rağmen oyunlardan simülasyonlara, testlerden kriptografiye kadar rastgele görünen sayılara ihtiyaç duyarız. İşte sözde rastgele sayı üreteçleri, kısa bir başlangıç değerini uzun ve karmaşık görünen bir diziye dönüştürerek bu ihtiyacı karşılar.
Devamı...
Her öğrenciye farklı görünen ama aynı kazanımı ölçen bir sınav hazırlamak, eğitim teknolojilerinin en eğlenceli problemlerinden biridir. Rastgele soru üretme sistemleri; hazır bir havuzdan soru seçebilir, seçeneklerin sırasını değiştirebilir veya matematiksel parametrelerden yepyeni sorular oluşturabilir. H5P hızlı etkileşimler, Moodle Question Bank kapsamlı sınav yönetimi, özel algoritmalar ise neredeyse sınırsız üretim özgürlüğü sunar.
Devamı...

Fibonacci dizisi, algoritma öğrenirken karşımıza çıkan en ünlü örneklerden biridir. Tanımı son derece basit görünür: Her sayı, kendisinden önce gelen iki sayının toplamıdır. Ancak bu masum tanımı saf özyineleme ile doğrudan koda çevirdiğimizde bilgisayarımız aynı işlemleri tekrar tekrar yapmaya başlar. Gelin bu performans tuzağının neden oluştuğunu ve memoizasyonun onu nasıl ortadan kaldırdığını inceleyelim.
Devamı...
Böl-fethet algoritmalarında kod birkaç satır görünebilir; fakat çalışma süresini hesaplamak bazen matematiksel bir bilmeceye dönüşür. Master Teorem, belirli biçimdeki özyineleme bağıntılarını uzun uzun açmadan sonuca ulaştıran pratik bir araçtır. Merge Sort, ikili arama ve benzeri algoritmaların karmaşıklığını bu yöntemle hızlıca sınıflandırabiliriz.
Devamı...

Bir alışveriş uygulamasındaki kullanıcıları, ürünleri ve siparişleri nasıl düzenli biçimde temsil edebiliriz? Cevap yalnızca sınıflarda veya veritabanı tablolarında değil, bunların matematiksel atası olan küme teorisinde saklıdır. Kümeler nesneleri gruplandırırken Kartezyen çarpım, farklı gruplardaki nesneler arasında kurulabilecek ilişkilerin uzayını oluşturur. Kısacası veri modelleme sahnesinin arkasında sessizce çalışan matematik ekibiyle tanışmaya hazır olun!
Devamı...
Bilgisayarınız iki küçük sayıyı göz açıp kapayıncaya kadar çarpabilir. Ancak binlerce veya milyonlarca basamak içeren sayılar söz konusu olduğunda, ilkokulda öğrendiğimiz klasik çarpma yöntemi pahalı hâle gelir. 1960 yılında Anatoly Karatsuba tarafından geliştirilen algoritma, zekice bir cebirsel dönüşüm kullanarak gereken küçük çarpma sayısını azaltır. Böylece büyük tam sayılarla çalışan kriptografi, matematik yazılımları ve bilimsel hesaplama sistemleri önemli ölçüde hızlanır.

Devamı...
Bir satranç tahtasına birbirini tehdit etmeyen kaleler yerleştirmek kolay görünebilir. Ancak bazı kareler yasaklandığında işin rengi değişir: Artık yalnızca kaleleri değil, kısıtlamaları da saymamız gerekir. Kale polinomları, bu tür yerleştirme problemlerini tek bir cebirsel yapı içinde özetleyerek karmaşık sayımları düzenli ve hesaplanabilir hâle getirir.

Devamı...

Ağaçlar; dosya sistemlerinden arama motorlarına, derleyicilerden oyunlardaki karar mekanizmalarına kadar birçok alanda kullanılan hiyerarşik veri yapılarıdır. Ancak düğümleri dallara yerleştirmek tek başına yeterli değildir: Bilgiye ulaşabilmek için ağacı sistemli biçimde dolaşmamız gerekir. İkili ağaçlarda en yaygın derinlik öncelikli yöntemler ön sıra, orta sıra ve son sıra dolaşmadır.
Devamı...
Bir bilgiyi öğrenmek kolay, onu üç ay sonra hatırlamak ise bambaşka bir oyundur. Flashcard uygulamaları bu oyunda beynimize küçük ama düzenli paslar atar. Anki, Mnemosyne ve Mochi aynı temel fikri, yani aralıklı tekrarı, farklı arayüzler ve çalışma modelleriyle uygular. Gelin bu üç aracı karşılaştıralım ve kartların neden doğru zamanda karşımıza çıktığını anlayalım.

Devamı...
Bir etkinliğe katılanların kaçının kahve veya çay içtiğini bulmak kulağa kolay gelir: Kahve içenlerle çay içenleri topla! Fakat bazı kişiler ikisini de içiyorsa onları iki kez saymış oluruz. Ekleme-Çıkarma İlkesi, diğer adıyla Dahil Etme-Hariç Tutma İlkesi, tam olarak bu tür çakışmaları düzeltmek için kullanılan güçlü bir sayma yöntemidir.

Devamı...
Bugün cebimizde taşıdığımız telefonlar, birkaç on yıl önce odaları dolduran bilgisayarlardan milyonlarca kat daha güçlü. Ancak bu teknolojik yolculuk bir anda başlamadı. Dişli çarklarla çalışan hesap makinelerinden vakum tüplerine, transistörlerden milyarlarca bileşen içeren işlemcilere uzanan bilgisayar tarihi; matematik, mühendislik ve insan merakının ortak ürünüdür.
Devamı...
Bir algoritmanın hızlı olduğunu söylemek tek başına pek anlamlı değildir. Hangi girdide, ne kadar hızlı ve büyüyen veri karşısında nasıl davranıyor? İşte Büyük O, Teta ve Omega notasyonları bu soruları matematiksel sınırlarla yanıtlar. Ancak yaygın inanışın aksine Büyük O doğrudan “en kötü”, Omega “en iyi”, Teta da “ortalama” durum demek değildir. Durum analizi ile asimptotik sınır, birbiriyle ilişkili ama farklı kavramlardır.
Devamı...

Bilgisayarların yalnızca sıfır ve birlerle çalışması ilk bakışta teknolojik bir sınırlama gibi görünebilir. Oysa ikili sayı sistemi, klasik mantık bulmacalarında bilgiyi düzenlemek, olasılıkları kodlamak ve en az sayıda işlemle sonuca ulaşmak için kullanılan son derece güçlü bir araçtır. Zehirli şişelerden ağırlık tartma sorularına kadar pek çok problem, doğru açıdan bakıldığında aslında gizlenmiş birer ikili kodlama egzersizidir.
Devamı...
Bir kelimeyi bugün öğrenip yarın unutmak beynimizin küçük bir şakasıdır; kötü hafızadan çok, yanlış zamanda tekrar yapmanın sonucudur. AnkiWeb, Mochi ve Mnemosyne gibi sistemler bu sorunu aralıklı tekrar algoritmalarıyla çözer. Gelin benzer bir uygulamanın arkasındaki teoriyi, araçların farklı yaklaşımlarını ve çalışır durumdaki basit bir zamanlama algoritmasını birlikte inceleyelim.

Devamı...
ChatGPT benzeri bir sohbet deneyimi oluşturmak için arayüzü sıfırdan geliştirmek zorunda değilsiniz. Open WebUI, LibreChat ve Chatbot UI; yerel ya da bulut tabanlı büyük dil modellerini kullanışlı bir web ekranıyla buluşturan üç güçlü açık kaynak seçenektir. Ancak görünüşleri benzer olsa da kurulum kolaylığı, model desteği ve hedef kullanıcı bakımından farklı karakterlere sahiptirler.
Devamı...
Veritabanını yalnızca terminal üzerinden yönetmek mümkündür; ancak yüzlerce tablo, karmaşık ilişkiler ve acil bir veri düzeltmesi söz konusu olduğunda görsel yönetim panelleri hayat kurtarır. Bu alanda phpMyAdmin köklü bir klasik, Adminer hafif bir cep çakısı, CloudBeaver ise çok sayıda veritabanını yönetebilen modern bir kontrol merkezi gibidir.
Devamı...

Bir topluluk platformu kurmak, yalnızca kullanıcıların kayıt olabileceği bir sayfa hazırlamak değildir. Profil yönetimi, içerik üretimi, bildirimler, moderasyon, yetkilendirme ve kullanıcıların geri dönmesini sağlayan sosyal mekanikler birlikte düşünülmelidir. HumHub, BuddyPress ve Discourse bu problemi farklı açılardan çözer: biri sosyal ağ, biri WordPress eklentisi, diğeri ise modern forum yaklaşımını benimser.
Devamı...
Bir hesap makinesinden beklentiniz yalnızca iki sayıyı toplamaksa işletim sisteminizdeki uygulama yeterlidir. Ancak değişken tanımlamak, uzun ifadeleri düzenlemek, fonksiyon çizmek veya Python ile küçük deneyler yapmak istiyorsanız işler değişir. SpeedCrunch masaüstünde bu alanın sevilen araçlarından biri; modern web alternatifleri ve NumWorks ise aynı rahatlığı tarayıcıya taşıyor.

Devamı...
Dijital haritalar yalnızca “buradan şuraya nasıl giderim?” sorusunu yanıtlamaz. Mağaza buluculardan afet koordinasyonuna, gezi rotalarından sensör takibine kadar pek çok uygulamanın görünmez kahramanıdır. OpenStreetMap, uMap ve Leaflet üçlüsü sayesinde lisans engellerine takılmadan etkileşimli bir konum sistemi geliştirebiliriz. Üstelik bunun için harita mühendisi şapkası takmamız gerekmiyor!
Devamı...