İnternetin temel iletişim protokolü olan TCP/IP, iki ana protokolden oluşur: TCP (Transmission Control Protocol) ve IP (Internet Protocol). IP, veri paketlerinin bir ağdaki kaynak cihazdan hedef cihaza yönlendirilmesinden sorumludur. Her pakete bir IP adresi atar ve bu paketlerin hedefe ulaşması için en iyi yolu bulmaya çalışır; ancak paketlerin hedefe ulaşıp ulaşmadığını veya doğru sırada gidip gitmediğini garanti etmez. Bu noktada TCP devreye girer. TCP, gönderilen veriyi daha küçük paketlere böler, her pakete bir sıra numarası verir ve alıcı tarafta bu paketlerin eksiksiz ve doğru sırada birleştiğinden emin olur. Eğer bir paket kaybolursa, TCP o paketin yeniden gönderilmesini talep eder. Bu "bağlantı yönelimli" ve "güvenilir" yapısı, web sayfalarının yüklenmesi, dosya indirme veya e-posta gönderme gibi veri bütünlüğünün kritik olduğu uygulamalar için hayati öneme sahiptir.
Bu parçaya göre, bir dosya indirirken kaybolan bir veri paketinin yeniden gönderilmesini sağlayan protokol hangisidir?
Bir işletim sisteminin çekirdeği (kernel), sistemin en temel ve merkezi bileşenidir. Donanım (CPU, bellek, diskler) ile yazılım (uygulamalar) arasında bir köprü görevi görür. Bir program çalıştığında, aslında doğrudan donanımla iletişim kurmaz; bunun yerine işletim sistemi çekirdeğinden kaynak talebinde bulunur. Çekirdek, işlemci zamanını programlar arasında paylaştırır (zamanlama), programların belleği nasıl kullanacağını yönetir (bellek yönetimi) ve dosya sistemine erişimi kontrol eder. Güvenliği sağlamak için, modern işletim sistemleri "kullanıcı modu" (user mode) ve "çekirdek modu" (kernel mode) olmak üzere iki ayrı modda çalışır. Normal uygulamalar kullanıcı modunda çalışır ve donanıma doğrudan erişimleri kısıtlıdır. Bir uygulama donanım kaynağına ihtiyaç duyduğunda, bir "sistem çağrısı" (system call) yaparak çekirdek moduna geçer ve bu isteği çekirdek yerine getirir. Bu ayrım, hatalı bir programın tüm sistemi çökertmesini engeller.
Bu parçaya göre işletim sistemlerinde "kullanıcı modu" ve "çekirdek modu" ayrımının bulunmasının temel amacı nedir?
Veritabanları, verileri organize etmek, saklamak ve yönetmek için kullanılan sistemlerdir. En yaygın veritabanı türlerinden biri "ilişkisel veritabanları"dır. Bu modelde, veriler satır ve sütunlardan oluşan tablolarda saklanır; tıpkı bir Excel tablosu gibi. Her tablo, belirli bir varlık türünü (örneğin "Öğrenciler" veya "Dersler") temsil eder. Tablolar arasındaki ilişkiler, "anahtar" adı verilen özel sütunlar aracılığıyla kurulur. Örneğin, "Öğrenciler" tablosundaki her öğrencinin benzersiz bir "Öğrenci Numarası" (birincil anahtar) bulunur. "Notlar" tablosunda ise, her notun hangi öğrenciye ait olduğunu belirtmek için o öğrencinin "Öğrenci Numarası" (yabancı anahtar) kullanılır. Bu yapı, verilerin tutarlı bir şekilde saklanmasını, tekrarının önlenmesini ve SQL (Structured Query Language) adı verilen bir dil kullanılarak karmaşık sorgularla verilerin kolayca çekilmesini sağlar.
İlişkisel bir veritabanında, "Siparişler" tablosundaki bir siparişin hangi "Müşteri" tarafından verildiğini belirtmek için "Siparişler" tablosuna hangi bilgi eklenmelidir?
HTTPS (Hypertext Transfer Protocol Secure), web tarayıcınız ile bağlandığınız web sitesi arasındaki iletişimi şifreleyen ve güvenli hale getiren bir protokoldür. Standart HTTP protokolünün üzerine, SSL (Secure Sockets Layer) veya daha modern hali olan TLS (Transport Layer Security) adı verilen bir güvenlik katmanı eklenmesiyle çalışır. Bir HTTPS sitesine bağlandığınızda, tarayıcınız ve sunucu arasında bir "el sıkışma" (handshake) süreci başlar. Bu süreçte, sunucu tarayıcınıza bir "dijital sertifika" gönderir. Bu sertifika, sunucunun kimliğini doğrular ve "açık anahtar"ını (public key) içerir. Tarayıcınız, bu açık anahtarı kullanarak sadece sunucunun "özel anahtar"ı (private key) ile çözülebilecek şifreli bir bağlantı kurar. Bu güvenli kanal kurulduktan sonra, tarayıcınız ile sunucu arasındaki tüm veri alışverişi (kullanıcı adları, şifreler, kredi kartı bilgileri) şifrelenir. Bu, aradaki birinin verileri ele geçirse bile okuyamamasını sağlar.
Bu parçaya göre HTTPS'in sağladığı temel güvenlik nedir?
Bir bilgisayar işlemcisinin (CPU) performansını etkileyen birçok faktör vardır. "Çekirdek sayısı", bir işlemcinin aynı anda kaç tane bağımsız işi yürütebileceğini belirler. Çok çekirdekli bir işlemci, birden fazla programı aynı anda daha akıcı bir şekilde çalıştırabilir. "Saat hızı" (clock speed), genellikle Gigahertz (GHz) cinsinden ölçülür ve işlemcinin saniyede ne kadar işlem döngüsü tamamladığını gösterir. Daha yüksek saat hızı, genellikle daha hızlı performans anlamına gelir. "Önbellek" (cache) ise, işlemcinin içine yerleştirilmiş çok hızlı, küçük bir bellektir. İşlemci, sık kullandığı verilere ana bellekten (RAM) daha hızlı erişmek için bu önbelleği kullanır. Önbellek ne kadar büyükse, işlemcinin verilere ulaşmak için bekleme süresi o kadar azalır. Modern işlemciler, bu üç faktörün (çekirdek sayısı, saat hızı ve önbellek boyutu) bir kombinasyonuyla performanslarını optimize ederler.
Aynı anda hem bir video düzenleme programını hem de bir internet tarayıcısını akıcı bir şekilde kullanmak isteyen bir kullanıcı için, aşağıdaki işlemci özelliklerinden hangisi en önemli hale gelir?
Sanalizasyon, tek bir fiziksel bilgisayarın donanım kaynaklarını (CPU, RAM, depolama) birden çok sanal ortama bölerek, aynı anda birden fazla işletim sisteminin veya uygulamanın çalıştırılmasını sağlayan bir teknolojidir. Bu işlemi yöneten yazılıma "hipervizör" (hypervisor) denir. Hipervizör, fiziksel donanımın üzerinde bir katman oluşturur ve her bir "sanal makine"ye (Virtual Machine - VM) ihtiyaç duyduğu sanal donanım kaynaklarını atar. Her sanal makine, kendi işletim sistemini ve uygulamalarını çalıştıran, diğerlerinden tamamen izole edilmiş bağımsız bir bilgisayar gibi davranır. Bu teknoloji, sunucu kaynaklarının daha verimli kullanılmasını, yazılım test ve geliştirme süreçlerinin kolaylaştırılmasını ve farklı işletim sistemlerini aynı anda kullanma ihtiyacını karşılamayı sağlar. Örneğin, bir Windows bilgisayar üzerinde, bir sanal makine oluşturarak aynı anda Linux işletim sistemini de çalıştırabilirsiniz.
Bu parçaya göre sanalizasyon teknolojisinin temel işlevi nedir?
Programlama dilleri, insanların bilgisayarlara ne yapacaklarını anlatmak için kullandıkları özel dillerdir. Bu diller, "derleyici" (compiler) veya "yorumlayıcı" (interpreter) adı verilen programlar aracılığıyla bilgisayarın anlayabileceği makine koduna (1'ler ve 0'lar) dönüştürülür. Bir derleyici, yazılan programın tamamını tek seferde okur, hataları kontrol eder ve ardından programın tamamını makine koduna çevirerek çalıştırılabilir bir dosya (.exe gibi) oluşturur. Bu dosya, daha sonra tekrar derlemeye gerek kalmadan doğrudan çalıştırılabilir. C++ ve Java gibi diller genellikle derleyici kullanır. Bir yorumlayıcı ise, program kodunu satır satır okur, her bir satırı anında makine koduna çevirir ve çalıştırır. Program her çalıştığında bu yorumlama işlemi yeniden yapılır. Python ve JavaScript gibi diller genellikle yorumlayıcı kullanır. Genellikle, derlenen programlar daha hızlı çalışırken, yorumlanan programlar daha esnek ve platformdan bağımsız olma eğilimindedir.
Bu parçaya göre derleyici ile yorumlayıcı arasındaki temel fark nedir?
Lidar (Light Detection and Ranging), çevrenin üç boyutlu bir haritasını oluşturmak için lazer ışınlarını kullanan bir uzaktan algılama teknolojisidir. Bir Lidar sistemi, saniyede yüz binlerce lazer atımı (pulse) gönderir. Bu lazer ışınları, çevredeki nesnelere (binalar, ağaçlar, diğer araçlar vb.) çarpar ve geri yansır. Sistem, her bir lazer atımının gidip geri dönmesi için geçen süreyi hassas bir şekilde ölçer. Işık hızı sabit olduğu için, bu süre kullanılarak lazerin çarptığı nesnenin mesafesi büyük bir doğrulukla hesaplanabilir. Bu milyonlarca mesafe ölçümü, "nokta bulutu" (point cloud) adı verilen, çevrenin ayrıntılı bir üç boyutlu modelini oluşturur. Lidar, özellikle otonom (sürücüsüz) arabaların çevrelerini algılaması, haritacılık, arkeoloji ve atmosfer bilimi gibi alanlarda kritik bir teknoloji olarak kullanılmaktadır.
Parçaya göre Lidar sisteminin bir nesnenin mesafesini hesaplamasının temel prensibi nedir?
SSD (Solid-State Drive), verileri depolamak için hareketli parçalar yerine, "NAND flash" adı verilen bellek yongalarını kullanan yeni nesil bir depolama aygıtıdır. Geleneksel sabit diskler (HDD), verileri dönen metal plakalar üzerine manyetik olarak yazar ve bir okuma/yazma kafası bu plaka üzerinde hareket ederek veriye ulaşır. Bu mekanik yapı, veri erişimini yavaşlatır ve diski sarsıntılara karşı hassas hale getirir. SSD'lerde ise hiçbir hareketli parça yoktur; veriye erişim tamamen elektroniktir. Bu durum, SSD'lerin HDD'lere göre çok daha hızlı açılma, program yükleme ve dosya aktarma süreleri sunmasını sağlar. Ayrıca, daha az güç tüketirler, daha sessiz çalışırlar ve darbelere karşı daha dayanıklıdırlar. Bu avantajları nedeniyle, günümüz bilgisayarlarında ve mobil cihazlarda standart depolama birimi haline gelmişlerdir.
Bu parçaya göre SSD'lerin geleneksel sabit disklere (HDD) göre çok daha hızlı olmasının temel nedeni nedir?
API (Application Programming Interface - Uygulama Programlama Arayüzü), farklı yazılım uygulamalarının birbiriyle konuşmasını ve veri alışverişi yapmasını sağlayan bir dizi kural ve araçtır. Bir API'yi, bir restorandaki garsona benzetebiliriz. Siz (kullanıcı), menüden (API dokümantasyonu) ne istediğinizi seçer ve garsona (API'ye) siparişinizi verirsiniz. Garson, siparişinizi mutfağa (sunucuya) iletir, yemeğin hazırlanmasını sağlar ve hazır olduğunda size geri getirir. Siz mutfağın içinde ne olduğunu veya yemeğin nasıl pişirildiğini bilmek zorunda değilsinizdir. Benzer şekilde, bir hava durumu uygulaması, hava durumu verilerini sağlayan bir sunucunun API'sini kullanarak o anki sıcaklık bilgisini ister. API, bu isteği sunucuya iletir, sunucudan aldığı cevabı (sıcaklık verisini) uygulamaya geri gönderir ve uygulama da bunu ekranda gösterir. API'ler, modern yazılım geliştirmenin temel taşıdır ve farklı servislerin birbiriyle entegre çalışmasını sağlar.
Parçadaki garson benzetmesine göre, bir API'nin temel işlevi nedir?
Bulut bilişim hizmetleri, genellikle üç ana model altında sınıflandırılır: IaaS (Infrastructure as a Service - Altyapı olarak Hizmet), PaaS (Platform as a Service - Platform olarak Hizmet) ve SaaS (Software as a Service - Yazılım olarak Hizmet). IaaS modelinde, bulut sağlayıcısı size sanal sunucular, depolama ve ağ gibi en temel bilişim altyapısını kiralar. İşletim sistemini ve üzerindeki tüm yazılımları kurmak ve yönetmek sizin sorumluluğunuzdadır. PaaS modelinde, sağlayıcı altyapıya ek olarak işletim sistemini, veritabanını ve yazılım geliştirme ortamını da size hazır olarak sunar. Sizin tek yapmanız gereken kendi uygulamanızı yazmak ve çalıştırmaktır. SaaS modelinde ise her şey sağlayıcı tarafından sunulur; siz sadece son kullanıcı olarak, genellikle bir web tarayıcısı üzerinden hazır bir yazılımı kullanırsınız. Gmail, Dropbox veya Canva gibi uygulamalar SaaS modeline birer örnektir. Bu modeller, kullanıcının ne kadar kontrol sahibi olmak istediğine ve teknik sorumluluk düzeyine göre farklılık gösterir.
Bir web tarayıcısı üzerinden, hiçbir kurulum yapmadan doğrudan kullanmaya başladığımız bir e-posta hizmeti (örneğin Gmail), hangi bulut bilişim modeline örnektir?
Kuantum bilgisayarlar, klasik bilgisayarların temel aldığı bitler yerine "kübit"leri kullanır. Klasik bir bit, sadece 0 ya da 1 değerini alabilirken, bir kübit kuantum mekaniğinin "süperpozisyon" ilkesi sayesinde aynı anda hem 0 hem de 1 değerini temsil edebilir. Bu, bir kübitin tek başına iki olasılığı aynı anda barındırması anlamına gelir. İkinci bir temel ilke olan "kuantum dolanıklık" (quantum entanglement) ise, iki veya daha fazla kübitin, aralarındaki mesafe ne olursa olsun, birbirine bağlı hale gelmesidir. Dolanık bir çiftteki kübitlerden birinin durumu ölçüldüğünde, diğerinin durumu anında ve zıt olarak belirlenir. Bu iki özellik, kuantum bilgisayarların paralel işlem yapma kapasitesini katlanarak artırır. N kübite sahip bir kuantum bilgisayar, 2^N olasılığı aynı anda işleyebilir. Bu da onların, geleneksel bilgisayarların çözmesinin milyarlarca yıl süreceği belirli türdeki problemleri (kriptografi, moleküler modelleme gibi) çok kısa sürede çözme potansiyeli taşımasını sağlar.
Bu parçaya göre bir kübitin, aynı anda hem 0 hem de 1 değerini alabilmesini sağlayan kuantum mekaniği ilkesi hangisidir?
Sürücüsüz otomobillerin yaygınlaşmasının önündeki en büyük engellerden biri teknik değil, etik bir problemdir: "Trolley Problemi"nin modern bir versiyonu. Bir otonom aracın, kaçınılmaz bir kaza anında bir karar vermesi gerektiğini düşünün. Örneğin, araç ya düz gidip yola aniden fırlayan üç yayaya çarpacak ya da manevra yapıp kaldırımdaki tek bir yayaya çarpacaktır. Başka bir senaryoda ise, araç ya yayalara çarpacak ya da şerit değiştirip bariyerlere çarparak içindeki yolcunun hayatını tehlikeye atacaktır. Bu gibi durumlarda, aracın yapay zekâsı hangi "ahlaki" kararı vermek üzere programlanmalıdır? En az sayıda can kaybını hedefleyen faydacı bir algoritma mı, yoksa aracın öncelikli görevinin içindeki yolcuyu korumak olduğunu savunan bir yaklaşım mı benimsenmelidir? Bu soruların henüz net bir cevabı yoktur ve otonom araçların yasal ve etik çerçevesinin oluşturulmasındaki en büyük zorluklardan birini teşkil etmektedir.
Bu parçada otonom araçlarla ilgili olarak vurgulanan temel sorun nedir?
Kriptografide, "simetrik" ve "asimetrik" olmak üzere iki temel şifreleme yöntemi vardır. Simetrik şifrelemede, hem şifreleme hem de şifre çözme işlemleri için aynı "gizli anahtar" kullanılır. Gönderici, mesajı bu gizli anahtarla şifreler ve alıcının da aynı gizli anahtara sahip olması gerekir. Bu yöntem çok hızlıdır, ancak temel sorunu, bu gizli anahtarın gönderici ve alıcı arasında güvenli bir şekilde nasıl paylaşılacağıdır. Asimetrik şifrelemede ise, birbiriyle matematiksel olarak ilişkili iki ayrı anahtar kullanılır: bir "açık anahtar" (public key) ve bir "özel anahtar" (private key). Açık anahtar herkesle paylaşılabilirken, özel anahtar sadece sahibi tarafından bilinir. Bir mesaj, bir kişinin açık anahtarıyla şifrelendiğinde, o mesaj sadece o kişinin özel anahtarıyla çözülebilir. Bu yöntem daha yavaştır, ancak anahtar değişimi sorununu ortadan kaldırır. Modern güvenlik sistemleri (HTTPS gibi), genellikle her iki yöntemin avantajlarını bir arada kullanır: Asimetrik şifreleme ile güvenli bir şekilde ortak bir "gizli anahtar" belirlenir, ardından asıl veri alışverişi bu hızlı gizli anahtarla (simetrik şifreleme) yapılır.
Simetrik şifrelemenin en büyük zayıflığı olarak parçada ne belirtilmiştir?
Veri sıkıştırma, bir dosyanın boyutunu, içerdiği bilgiyi mümkün olduğunca az kaybederek veya hiç kaybetmeden küçültme işlemidir. İki temel sıkıştırma türü vardır: kayıplı (lossy) ve kayıpsız (lossless). Kayıpsız sıkıştırma algoritmaları, dosya boyutunu küçültürken orijinal verinin tamamını korur. Sıkıştırılmış dosya açıldığında, orijinal dosyanın birebir aynısı elde edilir. Metin dosyaları, program kodları veya veritabanları gibi her bir bit'in önemli olduğu veriler için bu yöntem zorunludur. ZIP, RAR gibi formatlar kayıpsız sıkıştırma kullanır. Kayıplı sıkıştırma ise, dosya boyutunu çok daha fazla küçültebilmek için, insan algısının fark edemeyeceği veya tolere edebileceği bazı verileri kalıcı olarak atar. Sıkıştırılmış dosya açıldığında, orijinalinin tam aynısı değil, ona çok yakın bir kopyası elde edilir. Bu yöntem, genellikle fotoğraf (JPEG), video (MPEG) ve ses (MP3) dosyaları için kullanılır. Örneğin, bir JPEG fotoğraf, insan gözünün fark edemeyeceği bazı renk detaylarını atarak dosya boyutunu önemli ölçüde azaltır.
Bir romanın metnini içeren bir ".txt" dosyasını sıkıştırmak için hangi tür bir sıkıştırma algoritması kullanılmalıdır ve neden?
Git, günümüz yazılım geliştirmede en yaygın olarak kullanılan, dağıtık bir sürüm kontrol sistemidir. Bir proje üzerinde çalışırken, kodda yapılan her değişikliği kaydetmemizi ve yönetmemizi sağlar. Bir yazarın kitabının farklı taslaklarını kaydetmesi gibi, Git de bir yazılımın farklı "sürümlerini" kaydeder. Bir geliştirici, kodunda anlamlı bir değişiklik yaptığında, bu değişikliği bir "commit" (işleme) olarak kaydeder. Bu, projenin o anki bir anlık fotoğrafını çekmek gibidir. Eğer daha sonra bir hata yapılırsa, kolayca projenin önceki, çalışan bir sürümüne geri dönülebilir. "Dağıtık" olmasının anlamı ise, projenin tüm geçmişinin her bir geliştiricinin bilgisayarında tam bir kopyasının bulunmasıdır. Bu, merkezi bir sunucuya sürekli bağlı kalma zorunluluğunu ortadan kaldırır ve birden çok geliştiricinin aynı proje üzerinde, "branch" (dal) adı verilen farklı çalışma alanlarında eş zamanlı olarak çalışmasına ve daha sonra bu dalları birleştirmesine ("merge") olanak tanır.
Bu parçaya göre Git'in "dağıtık" bir sistem olmasının en önemli avantajı nedir?
Bir bilgisayar ağında, "switch" (anahtar) ve "router" (yönlendirici) temel ağ cihazlarıdır ancak farklı görevler yaparlar. Switch, aynı yerel ağ (Local Area Network - LAN) içindeki cihazları (bilgisayarlar, yazıcılar vb.) birbirine bağlar. Switch, kendisine bağlı cihazların MAC adreslerini (her ağ kartının kendine özgü fiziksel adresi) öğrenir ve bir veri paketi geldiğinde, onu sadece ilgili MAC adresine sahip olan hedef cihaza gönderir. Yani, yerel ağ içindeki trafiği yönetir. Router ise, farklı ağları (örneğin evinizdeki yerel ağ ile interneti) birbirine bağlar. Bir veri paketi, yerel ağınızın dışındaki bir hedefe (örneğin bir web sitesine) gidecekse, bu paketi doğru yöne, yani internete doğru yönlendiren cihaz router'dır. Router, bu yönlendirmeyi IP adreslerine bakarak yapar. Kısacası, switch bir mahalledeki evleri birbirine bağlayan yerel bir postacı gibiyken, router farklı mahalleler ve şehirler arasında posta taşıyan bir ana dağıtım merkezi gibidir.
Evinizdeki bilgisayardan bir internet sitesine bağlanmak istediğinizde, veri paketlerinin evinizdeki ağdan çıkıp internete yönlendirilmesini sağlayan cihaz hangisidir?
Sanal Makineler (VMs) ve Konteynerler (örn: Docker), uygulamaları kendi bağımlılıklarıyla birlikte paketleyip çalıştırmak için kullanılan iki temel sanalizasyon teknolojisidir, ancak çalışma biçimleri farklıdır. Bir Sanal Makine, kendi tam işletim sistemini (çekirdeğiyle birlikte) içeren, fiziksel bir bilgisayarı taklit eden bir yazılım paketidir. Bir sunucu üzerinde birden fazla VM çalıştırmak, her biri kendi işletim sistemini çalıştıran birden fazla bağımsız sunucuya sahip olmak gibidir. Bu, tam bir izolasyon sağlar ancak önemli miktarda kaynak (disk alanı, bellek) tüketir. Konteynerler ise, konak işletim sisteminin çekirdeğini paylaşırlar. Her konteyner, sadece uygulamanın kendisini ve çalışması için gerekli olan kütüphaneleri ve ayarları içerir; tam bir işletim sistemi içermez. Bu durum, konteynerleri sanal makinelere göre çok daha hafif, daha hızlı başlayan ve daha taşınabilir hale getirir. Bu nedenle, modern yazılım geliştirmede ve "mikroservis" mimarilerinde konteynerler giderek daha popüler hale gelmektedir.
Bu parçaya göre konteynerleri sanal makinelere göre daha hafif ve daha hızlı yapan temel fark nedir?
Makine öğrenmesi modelleri, temel olarak üç ana kategoriye ayrılır: gözetimli öğrenme (supervised learning), gözetimsiz öğrenme (unsupervised learning) ve pekiştirmeli öğrenme (reinforcement learning). Gözetimli öğrenmede, algoritmaya "etiketlenmiş" veriler verilir. Yani, her bir veri örneğinin doğru cevabı önceden bellidir. Örneğin, bir spam filtresini eğitmek için, binlerce e-postanın hangisinin "spam" hangisinin "spam değil" olduğu önceden etiketlenir ve model bu örneklerden öğrenir. Gözetimsiz öğrenmede ise, algoritma etiketlenmemiş verilerle çalışır ve veriler içindeki gizli yapıları veya grupları (kümeleri) kendi kendine bulmaya çalışır. Müşteri segmentasyonu veya genetik veri analizi bu yönteme örnektir. Pekiştirmeli öğrenmede ise, bir "ajan" (agent), bir ortamda deneme-yanılma yoluyla öğrenir. Ajan, doğru bir eylem yaptığında bir "ödül" alır, yanlış bir eylem yaptığında ise "ceza" alır. Amaç, zamanla toplam ödülü maksimize edecek en iyi stratejiyi (politikayı) öğrenmektir. Satranç oynayan veya bir robotun yürümeyi öğrenmesi gibi görevler bu yaklaşımla çözülür.
El yazısıyla yazılmış rakamların fotoğraflarını, her bir fotoğrafın hangi rakama ait olduğu bilgisiyle birlikte bir algoritmaya vererek, o algoritmanın yeni el yazısı rakamlarını tanımasını sağlamak, hangi öğrenme türüne bir örnektir?
Etik hacker'lık (ethical hacking) veya "beyaz şapkalı hacker'lık", bir bilgisayar sisteminin veya ağın güvenlik açıklarını, kötü niyetli bir saldırgan gibi düşünerek, ancak sistem sahibinin izniyle ve iyi niyetle bulma ve raporlama işlemidir. Bir "siyah şapkalı" hacker, bulduğu açıkları sistemi çökertmek, veri çalmak veya para sızdırmak için kullanırken, bir beyaz şapkalı hacker, aynı açıkları bularak sistem yöneticisine bildirir ve bu açıkların nasıl kapatılacağı konusunda önerilerde bulunur. Bu süreç, "sızma testi" (penetration testing) olarak da adlandırılır. Etik hacker'lar, şirketlerin ve kurumların, gerçek bir saldırı gerçekleşmeden önce kendi savunma sistemlerinin ne kadar güçlü olduğunu test etmelerini ve zayıf noktalarını görmelerini sağlarlar. Bu proaktif yaklaşım, siber güvenliğin en önemli bileşenlerinden biridir ve potansiyel milyonlarca dolarlık zararların önlenmesine yardımcı olur.
Bu parçaya göre beyaz şapkalı bir hacker ile siyah şapkalı bir hacker arasındaki temel fark nedir?
Derin öğrenme (Deep Learning), çok katmanlı yapay sinir ağları kullanarak makine öğrenmesini gerçekleştiren bir yöntemdir. Geleneksel makine öğrenmesi modellerinde, bir verinin hangi "özelliklerinin" (features) önemli olduğuna genellikle bir insan karar verir. Örneğin, yüz tanıma için göz mesafesi, burun şekli gibi özellikler önceden tanımlanır. Derin öğrenmede ise, yapay sinir ağı bu özellikleri kendi kendine, hiyerarşik bir şekilde öğrenir. Ağın ilk katmanları, piksellerden kenarlar ve köşeler gibi çok temel özellikleri tanımayı öğrenir. Daha sonraki katmanlar, bu temel özellikleri birleştirerek göz, burun gibi daha karmaşık yapıları tanır. En üst katmanlar ise bu yapıları birleştirerek yüzleri tanımayı öğrenir. Bu hiyerarşik ve otomatik özellik öğrenme yeteneği, derin öğrenmeyi özellikle görüntü tanıma, doğal dil işleme ve ses tanıma gibi çok büyük ve karmaşık veri setleriyle çalışılan alanlarda son derece başarılı kılmıştır.
Bu parçaya göre, derin öğrenmeyi geleneksel makine öğrenmesinden ayıran en temel özellik nedir?
Kuantum bilgisayarlar, klasik bilgisayarların temel aldığı bitler yerine "kübit"leri kullanır. Klasik bir bit, sadece 0 ya da 1 değerini alabilirken, bir kübit kuantum mekaniğinin "süperpozisyon" ilkesi sayesinde aynı anda hem 0 hem de 1 değerini temsil edebilir. Bu, bir kübitin tek başına iki olasılığı aynı anda barındırması anlamına gelir. İkinci bir temel ilke olan "kuantum dolanıklık" (quantum entanglement) ise, iki veya daha fazla kübitin, aralarındaki mesafe ne olursa olsun, birbirine bağlı hale gelmesidir. Dolanık bir çiftteki kübitlerden birinin durumu ölçüldüğünde, diğerinin durumu anında ve zıt olarak belirlenir. Bu iki özellik, kuantum bilgisayarların paralel işlem yapma kapasitesini katlanarak artırır. N kübite sahip bir kuantum bilgisayar, 2^N olasılığı aynı anda işleyebilir. Bu da onların, geleneksel bilgisayarların çözmesinin milyarlarca yıl süreceği belirli türdeki problemleri (kriptografi, moleküler modelleme gibi) çok kısa sürede çözme potansiyeli taşımasını sağlar.
Bu parçaya göre bir kübitin, aynı anda hem 0 hem de 1 değerini alabilmesini sağlayan kuantum mekaniği ilkesi hangisidir?
Sürücüsüz otomobillerin yaygınlaşmasının önündeki en büyük engellerden biri teknik değil, etik bir problemdir: "Trolley Problemi"nin modern bir versiyonu. Bir otonom aracın, kaçınılmaz bir kaza anında bir karar vermesi gerektiğini düşünün. Örneğin, araç ya düz gidip yola aniden fırlayan üç yayaya çarpacak ya da manevra yapıp kaldırımdaki tek bir yayaya çarpacaktır. Başka bir senaryoda ise, araç ya yayalara çarpacak ya da şerit değiştirip bariyerlere çarparak içindeki yolcunun hayatını tehlikeye atacaktır. Bu gibi durumlarda, aracın yapay zekâsı hangi "ahlaki" kararı vermek üzere programlanmalıdır? En az sayıda can kaybını hedefleyen faydacı bir algoritma mı, yoksa aracın öncelikli görevinin içindeki yolcuyu korumak olduğunu savunan bir yaklaşım mı benimsenmelidir? Bu soruların henüz net bir cevabı yoktur ve otonom araçların yasal ve etik çerçevesinin oluşturulmasındaki en büyük zorluklardan birini teşkil etmektedir.
Bu parçada otonom araçlarla ilgili olarak vurgulanan temel sorun nedir?
Kriptografide, "simetrik" ve "asimetrik" olmak üzere iki temel şifreleme yöntemi vardır. Simetrik şifrelemede, hem şifreleme hem de şifre çözme işlemleri için aynı "gizli anahtar" kullanılır. Gönderici, mesajı bu gizli anahtarla şifreler ve alıcının da aynı gizli anahtara sahip olması gerekir. Bu yöntem çok hızlıdır, ancak temel sorunu, bu gizli anahtarın gönderici ve alıcı arasında güvenli bir şekilde nasıl paylaşılacağıdır. Asimetrik şifrelemede ise, birbiriyle matematiksel olarak ilişkili iki ayrı anahtar kullanılır: bir "açık anahtar" (public key) ve bir "özel anahtar" (private key). Açık anahtar herkesle paylaşılabilirken, özel anahtar sadece sahibi tarafından bilinir. Bir mesaj, bir kişinin açık anahtarıyla şifrelendiğinde, o mesaj sadece o kişinin özel anahtarıyla çözülebilir. Bu yöntem daha yavaştır, ancak anahtar değişimi sorununu ortadan kaldırır. Modern güvenlik sistemleri (HTTPS gibi), genellikle her iki yöntemin avantajlarını bir arada kullanır: Asimetrik şifreleme ile güvenli bir şekilde ortak bir "gizli anahtar" belirlenir, ardından asıl veri alışverişi bu hızlı gizli anahtarla (simetrik şifreleme) yapılır.
Simetrik şifrelemenin en büyük zayıflığı olarak parçada ne belirtilmiştir?
Veri sıkıştırma, bir dosyanın boyutunu, içerdiği bilgiyi mümkün olduğunca az kaybederek veya hiç kaybetmeden küçültme işlemidir. İki temel sıkıştırma türü vardır: kayıplı (lossy) ve kayıpsız (lossless). Kayıpsız sıkıştırma algoritmaları, dosya boyutunu küçültürken orijinal verinin tamamını korur. Sıkıştırılmış dosya açıldığında, orijinal dosyanın birebir aynısı elde edilir. Metin dosyaları, program kodları veya veritabanları gibi her bir bit'in önemli olduğu veriler için bu yöntem zorunludur. ZIP, RAR gibi formatlar kayıpsız sıkıştırma kullanır. Kayıplı sıkıştırma ise, dosya boyutunu çok daha fazla küçültebilmek için, insan algısının fark edemeyeceği veya tolere edebileceği bazı verileri kalıcı olarak atar. Sıkıştırılmış dosya açıldığında, orijinalinin tam aynısı değil, ona çok yakın bir kopyası elde edilir. Bu yöntem, genellikle fotoğraf (JPEG), video (MPEG) ve ses (MP3) dosyaları için kullanılır. Örneğin, bir JPEG fotoğraf, insan gözünün fark edemeyeceği bazı renk detaylarını atarak dosya boyutunu önemli ölçüde azaltır.
Bir romanın metnini içeren bir ".txt" dosyasını sıkıştırmak için hangi tür bir sıkıştırma algoritması kullanılmalıdır ve neden?
Git, günümüz yazılım geliştirmede en yaygın olarak kullanılan, dağıtık bir sürüm kontrol sistemidir. Bir proje üzerinde çalışırken, kodda yapılan her değişikliği kaydetmemizi ve yönetmemizi sağlar. Bir yazarın kitabının farklı taslaklarını kaydetmesi gibi, Git de bir yazılımın farklı "sürümlerini" kaydeder. Bir geliştirici, kodunda anlamlı bir değişiklik yaptığında, bu değişikliği bir "commit" (işleme) olarak kaydeder. Bu, projenin o anki bir anlık fotoğrafını çekmek gibidir. Eğer daha sonra bir hata yapılırsa, kolayca projenin önceki, çalışan bir sürümüne geri dönülebilir. "Dağıtık" olmasının anlamı ise, projenin tüm geçmişinin her bir geliştiricinin bilgisayarında tam bir kopyasının bulunmasıdır. Bu, merkezi bir sunucuya sürekli bağlı kalma zorunluluğunu ortadan kaldırır ve birden çok geliştiricinin aynı proje üzerinde, "branch" (dal) adı verilen farklı çalışma alanlarında eş zamanlı olarak çalışmasına ve daha sonra bu dalları birleştirmesine ("merge") olanak tanır.
Bu parçaya göre Git'in "dağıtık" bir sistem olmasının en önemli avantajı nedir?
Bir bilgisayar ağında, "switch" (anahtar) ve "router" (yönlendirici) temel ağ cihazlarıdır ancak farklı görevler yaparlar. Switch, aynı yerel ağ (Local Area Network - LAN) içindeki cihazları (bilgisayarlar, yazıcılar vb.) birbirine bağlar. Switch, kendisine bağlı cihazların MAC adreslerini (her ağ kartının kendine özgü fiziksel adresi) öğrenir ve bir veri paketi geldiğinde, onu sadece ilgili MAC adresine sahip olan hedef cihaza gönderir. Yani, yerel ağ içindeki trafiği yönetir. Router ise, farklı ağları (örneğin evinizdeki yerel ağ ile interneti) birbirine bağlar. Bir veri paketi, yerel ağınızın dışındaki bir hedefe (örneğin bir web sitesine) gidecekse, bu paketi doğru yöne, yani internete doğru yönlendiren cihaz router'dır. Router, bu yönlendirmeyi IP adreslerine bakarak yapar. Kısacası, switch bir mahalledeki evleri birbirine bağlayan yerel bir postacı gibiyken, router farklı mahalleler ve şehirler arasında posta taşıyan bir ana dağıtım merkezi gibidir.
Evinizdeki bilgisayardan bir internet sitesine bağlanmak istediğinizde, veri paketlerinin evinizdeki ağdan çıkıp internete yönlendirilmesini sağlayan cihaz hangisidir?
Sanal Makineler (VMs) ve Konteynerler (örn: Docker), uygulamaları kendi bağımlılıklarıyla birlikte paketleyip çalıştırmak için kullanılan iki temel sanalizasyon teknolojisidir, ancak çalışma biçimleri farklıdır. Bir Sanal Makine, kendi tam işletim sistemini (çekirdeğiyle birlikte) içeren, fiziksel bir bilgisayarı taklit eden bir yazılım paketidir. Bir sunucu üzerinde birden fazla VM çalıştırmak, her biri kendi işletim sistemini çalıştıran birden fazla bağımsız sunucuya sahip olmak gibidir. Bu, tam bir izolasyon sağlar ancak önemli miktarda kaynak (disk alanı, bellek) tüketir. Konteynerler ise, konak işletim sisteminin çekirdeğini paylaşırlar. Her konteyner, sadece uygulamanın kendisini ve çalışması için gerekli olan kütüphaneleri ve ayarları içerir; tam bir işletim sistemi içermez. Bu durum, konteynerleri sanal makinelere göre çok daha hafif, daha hızlı başlayan ve daha taşınabilir hale getirir. Bu nedenle, modern yazılım geliştirmede ve "mikroservis" mimarilerinde konteynerler giderek daha popüler hale gelmektedir.
Bu parçaya göre konteynerleri sanal makinelere göre daha hafif ve daha hızlı yapan temel fark nedir?
Makine öğrenmesi modelleri, temel olarak üç ana kategoriye ayrılır: gözetimli öğrenme (supervised learning), gözetimsiz öğrenme (unsupervised learning) ve pekiştirmeli öğrenme (reinforcement learning). Gözetimli öğrenmede, algoritmaya "etiketlenmiş" veriler verilir. Yani, her bir veri örneğinin doğru cevabı önceden bellidir. Örneğin, bir spam filtresini eğitmek için, binlerce e-postanın hangisinin "spam" hangisinin "spam değil" olduğu önceden etiketlenir ve model bu örneklerden öğrenir. Gözetimsiz öğrenmede ise, algoritma etiketlenmemiş verilerle çalışır ve veriler içindeki gizli yapıları veya grupları (kümeleri) kendi kendine bulmaya çalışır. Müşteri segmentasyonu veya genetik veri analizi bu yönteme örnektir. Pekiştirmeli öğrenmede ise, bir "ajan" (agent), bir ortamda deneme-yanılma yoluyla öğrenir. Ajan, doğru bir eylem yaptığında bir "ödül" alır, yanlış bir eylem yaptığında ise "ceza" alır. Amaç, zamanla toplam ödülü maksimize edecek en iyi stratejiyi (politikayı) öğrenmektir. Satranç oynayan veya bir robotun yürümeyi öğrenmesi gibi görevler bu yaklaşımla çözülür.
El yazısıyla yazılmış rakamların fotoğraflarını, her bir fotoğrafın hangi rakama ait olduğu bilgisiyle birlikte bir algoritmaya vererek, o algoritmanın yeni el yazısı rakamlarını tanımasını sağlamak, hangi öğrenme türüne bir örnektir?
Etik hacker'lık (ethical hacking) veya "beyaz şapkalı hacker'lık", bir bilgisayar sisteminin veya ağın güvenlik açıklarını, kötü niyetli bir saldırgan gibi düşünerek, ancak sistem sahibinin izniyle ve iyi niyetle bulma ve raporlama işlemidir. Bir "siyah şapkalı" hacker, bulduğu açıkları sistemi çökertmek, veri çalmak veya para sızdırmak için kullanırken, bir beyaz şapkalı hacker, aynı açıkları bularak sistem yöneticisine bildirir ve bu açıkların nasıl kapatılacağı konusunda önerilerde bulunur. Bu süreç, "sızma testi" (penetration testing) olarak da adlandırılır. Etik hacker'lar, şirketlerin ve kurumların, gerçek bir saldırı gerçekleşmeden önce kendi savunma sistemlerinin ne kadar güçlü olduğunu test etmelerini ve zayıf noktalarını görmelerini sağlarlar. Bu proaktif yaklaşım, siber güvenliğin en önemli bileşenlerinden biridir ve potansiyel milyonlarca dolarlık zararların önlenmesine yardımcı olur.
Bu parçaya göre beyaz şapkalı bir hacker ile siyah şapkalı bir hacker arasındaki temel fark nedir?