0:00
Selamlar. Yazdığınız her bir kod
0:02
satırının arkasında aslında görünmez bir
0:05
dilin, güçlü bir mantığın yattığını hiç
0:07
düşündünüz mü? İşte bugün her
0:09
programcının alet çantasına eklemesi
0:11
gereken o temel matematik araçlarını bir
0:14
bir ortaya çıkaracağız. Hazırsanız hadi
0:16
başlayalım. Gelin işe o temel soruyla
0:20
başlayalım. Yazdığımız tüm o
0:22
algoritmaların, fonksiyonların, veri
0:24
yapılarının temelinde yatan o şey ne?
0:27
Bütün bu sistemi ayakta tutan görünmez
0:29
iskelet. O gizli mantık nedir? Cevap
0:33
tabii ki matematik. Farkında olalım ya
0:35
da olmayalım. Yazdığımız her satıra,
0:38
kurduğumuz her mantığa güç veren o
0:40
evrensel dilin ta kendisi. Şimdi gelin
0:43
bu dilin en işlevsel araçlarıyla alet
0:46
çantamızı şöyle bir donatalım. İlk
0:48
aletimiz fonksiyonlar. tıpkı
0:51
programlamada olduğu gibi matematikteki
0:53
fonksiyonlar da belli bir işi yapan
0:56
tekrar tekrar kullanabildiğimiz o harika
0:58
mantık bloklarıdır. Şimdi burada ilginç
1:01
bir detay var. Fonksiyonların simetrisi.
1:04
Bakın çift fonksiyonlar y eksenine göre
1:07
sanki bir ayna yansıması gibi davranır.
1:09
Tek fonksiyonlar ise orijin etrafında
1:11
180 derece dönmüş gibidir. Peki bu bizim
1:14
ne işimize yarar? İşte bu ayrım bir
1:17
algoritmanın belirli girdilere karşı
1:19
nasıl davranacağını öngörmemizi sağlar.
1:22
Peki bu bilgiyi gerçek bir problemde
1:24
nasıl kullanırız? Mesela bu soruya
1:26
bakalım. C şıkkı neden yanlış? Çok
1:29
basit. Çünkü ifadenin içindeki x5 terimi
1:32
tek bir fonksiyon karakteri gösteriyor.
1:34
-x² + 2 kısmı ise çift. E siz hem tek
1:37
hem de çift özelliği bir araya
1:38
getirirseniz ne olur? Ortaya ne tek ne
1:41
de çift olan yani karma bir fonksiyon
1:43
çıkar. İşte bu yüzden o ifade yanlış ve
1:46
işte bu slayt matematik ve
1:48
programlamanın aslında ne kadar aynı
1:50
şeyler olduğunun kanıtı. Bir fonksiyonun
1:52
ürettiği sonucu alıp hop diğerinin
1:55
girdisi yapmak. Yahu biz bunu her gün
1:57
yapıyoruz. Kodda buna zincirleme
1:59
diyoruz. Matematikteki adıysa bileşke
2:02
fonksiyon. Tam olarak aynı mantık. Şimdi
2:04
gelin bu bileşke fonksiyon mantığıyla
2:07
bir denklemi adım adım çözelim. İlk
2:09
işimiz denklemin sol tarafını yani g² -
2:12
a'yı bulmak. Sonucu -4a -6 olarak bulduk
2:16
cepte. Şimdi de sağ tarafa geçelim. 10'u
2:18
da hesapladık. Sonuç 10. E geriye ne
2:20
kaldı? Bu iki sonucu birbirine
2:22
eşitlemek. -4a - 6 = 10 denklemini
2:26
çözdüğümüzde de a değerini -4 olarak
2:29
buluyoruz. Tıpkı bir yapbozun
2:30
parçalarını birleştirmek gibi, değil mi?
2:33
Tamamdır. Alet çantamızdaki ikinci
2:35
aracımıza geçiyoruz. Bu araç veri
2:37
yollarını anlamlı bir şekilde organize
2:39
etmemizi ve kodumuzun akışını bir
2:40
orkestra şefi gibi yönetmemizi sağlar.
2:43
Karşınızda yazılımın iskeleti, kümeler
2:46
ve mantık. İşte size klasik bir mantık
2:48
bulmacası. Program yazarken kurduğumuz
2:51
if bloklarının temelini oluşturan bir
2:53
soru. Bu koşullu ifadenin tam tersini
2:56
yani değilini nasıl söyleriz? Bütün sır
2:59
bu kuralda gizli. Eğer P olursa Q olur
3:03
gibi bir ifadenin tersi P olmaz veya Q
3:07
olur gibi bir şey değildir. Hayır, tam
3:09
tersine P olur ama beklenen sonuç yani Q
3:13
olmaz demektir. Yani ilk koşul
3:15
gerçekleşiyor ama sonuç tam tersi
3:18
çıkıyor. İşte bu kuralı sorumuza
3:20
uyguladığımızda doğru cevabın A şıkkı
3:23
olduğunu hemen görüyoruz. Orijinal
3:25
ifadenin yanlış olduğunu
3:27
kanıtlayabilecek tek bir senaryo var.
3:29
Yarın kar yağacak ve insanlar buna
3:32
rağmen arabalarını kullanacak. Mantık bu
3:34
kadar net. Şimdi de mantıktan veri
3:37
yönetimine yani kümelere geçelim.
3:40
Elimizde bir grup öğrenci var ve bizim
3:42
görevimiz onları ders başarılarına göre
3:45
doğru bir şekilde sınıflandırmak. Çözüme
3:47
başlarken her zaman ilk adım büyük resmi
3:50
görmektir. Üzerinde çalıştığımız evrenin
3:53
tamamı ne? 140 öğrenci. Bütün
3:55
hesaplarımızı bu ana sayıya göre
3:57
yapacağız. Peki en az bir dersten geçen
4:00
kaç kişi var? Bunun için o meşhur
4:03
birleşim formülünü kullanıyoruz.
4:04
Matematikten geçenlerle fizikten
4:06
geçenleri topluyoruz ama bir saniye her
4:09
ikisini de geçen o 20 kişiyi iki kere
4:11
saymış olduk. İşte bu yüzden o kesişim
4:13
kümesini bir kere çıkarıyoruz. Sonuç
4:16
neye? 85 öğrenci en az bir dersten
4:18
başarılı olmuş. Ve işte geldik finale.
4:21
Toplam 140 öğrencimiz vardı değil mi?
4:24
Bunların 85'i en az bir dersten geçmiş.
4:27
E toplamdan bu sayıyı çıkardığımızda
4:29
geriye ne kalır? Tam olarak 55. İşte bu
4:32
55 kişi maalesef ne matematikten ne de
4:35
fizikten geçebilmiş. Geldik son
4:38
aracımıza. Limitler. Limit kavramı ilk
4:41
bakışta biraz korkutucu gelebilir ama
4:43
programcılar için anlamı çok nettir.
4:45
Limitler bir algoritmanın en uç
4:48
koşullarda yani sınırda nasıl
4:50
davrandığını anlamamızı sağlar. Hani şu
4:53
meşhur Big O notasyonu var ya işte onun
4:55
temelinde de bu limit mantığı yatar. Bu
4:58
problem bir limitin neden var
5:00
olmayabileceğini göstermek için mükemmel
5:02
bir örnek. Dikkat ederseniz x yerine
5:05
doğrudan 2 yazamıyoruz. Neden? Çünkü
5:08
payda 0 oluyor ve programlamada
5:10
bildiğimiz gibi 0a bölme hatası alırız.
5:14
O yüzden doğrudan gidemiyorsak ne
5:16
yaparız? Yanından yaklaşırız. İşte
5:19
olayın koptuğu yer burası. 2'ye sol
5:22
taraftan yani 1.9 1.99 gibi bir değerle
5:26
yaklaştığımızda mutlak değerin içi
5:28
negatif olduğu için ifade -1'e dönüşüyor
5:31
ve sonuç 1 çıkıyor. Ama 2'ye sağ
5:34
taraftan yani 2.1 2.01 gibi bir değerle
5:37
yaklaştığımızda mutlak değerin içi
5:40
pozitif kalıyor, ifade +1 oluyor ve
5:42
sonuç 3 çıkıyor. Ve işte matematiğin en
5:46
temel kurallarından biri. Bir hedefe
5:49
farklı yollardan gidiyorsanız ve bu
5:51
yollar sizi farklı yerlere çıkarıyorsa o
5:54
hedefte ortak bir buluşma noktası
5:56
yoktur. Sol limitimiz 1'e, sağ limitimiz
5:59
3'e gitti. 1 3'e eşit olmadığı için bu
6:02
fonksiyonun x = 2 noktasında bir limiti
6:04
yoktur diyoruz. Bu kadar basit. Evet.
6:07
Özetle bugün alet çantamızla gerçekten
6:10
güçlü ve bir o kadar da pratik araçlar
6:12
ekledik. Unutmayın bunlar sadece soyut
6:15
matematiksel kavramlar değil. kodu daha
6:18
iyi anlamamızı, daha verimli yazmamızı
6:20
sağlayan somut aretler. Şöyle bir
6:22
hızlıca bakalım çantamıza neler koyduk.
6:25
Artık fonksiyonların simetrisine bakıp
6:27
davranışlarını öngörebiliyoruz.
6:29
Fonksiyonları zincirleyerek kompleks
6:31
işlemleri basitleştirebiliyoruz. Küme
6:33
formülleriyle veri tabanı sorgularını
6:35
daha akıllıca yazabiliyoruz. Mantık
6:37
kurallarıyla ifı bloklarında hata yapma
6:39
riskimizi azaltıyoruz ve limitlerle bir
6:42
kodun en zorlu koşullarda bile nasıl
6:44
davranacağını test edebiliyoruz. Ve bu
6:47
analizimizi sizi biraz düşünmeye itecek
6:49
bir soruyla bitirelim. Bundan sonra
6:52
klavyenin başına oturduğunuzda
6:53
yazdığınız kodun içinde bu matematiksel
6:55
yapıları fark etmeye çalışın. Çünkü emin
6:58
olun onlar her yerdeler. Sadece görmeyi