Algoritma ve Bilişime Giriş
Bu tema, matematiğin bilgisayar bilimleriyle nasıl iç içe geçtiğini gösterir. Problem çözme becerilerinizi geliştirip, bir problemi adım adım çözmenin yollarını öğreneceksiniz.
1. Algoritma Kavramı
Algoritma, bir sorunu çözmek veya bir görevi tamamlamak için izlenen sonlu sayıdaki mantıksal ve matematiksel adımlardır. Günlük hayattaki bir yemek tarifi veya bir yere giderken izlenen yol, birer algoritma örneğidir.
İyi bir algoritmanın özellikleri:
- Girdi (Input): Sıfır veya daha fazla değer alabilir.
- Çıktı (Output): En az bir değer üretmelidir.
- Açıklık: Her adım net ve anlaşılır olmalıdır.
- Sonluluk: Belirli bir sayıda adımdan sonra sonlanmalıdır.
- Etkinlik: Her adım, bilgisayar veya insan tarafından yürütülebilir olmalıdır.
2. Akış Şemaları (Flowcharts)
Bir algoritmanın adımlarını, standart geometrik şekiller ve oklarla görsel olarak ifade etme yöntemidir. Bu şekiller, farklı işlem türlerini temsil eder.
- Başla/Bitir: Oval şekil
- İşlem (Process): Dikdörtgen şekil
- Karar (Decision): Elmas şekli
- Girdi/Çıktı (Input/Output): Paralelkenar şekli
3. Temel Algoritma Örnekleri
Bu seviyede genellikle matematiksel problemlerin çözümü üzerinde durulur.
Örnek 1: İki Sayının Toplamını Bulma
- Adım 1: Başla
- Adım 2: Birinci sayıyı (a) oku
- Adım 3: İkinci sayıyı (b) oku
- Adım 4: Toplam = a + b işlemini yap
- Adım 5: Toplam sonucunu ekrana yazdır
- Adım 6: Bitir
Örnek 2: Verilen İki Sayıdan Büyük Olanı Bulma
- Adım 1: Başla
- Adım 2: a ve b sayılarını oku
- Adım 3: Eğer a > b ise, "a büyüktür" yazdır
- Adım 4: Değilse, "b büyüktür" yazdır
- Adım 5: Bitir
4. Bilişimsel Düşünme
Algoritma oluşturma, bilişimsel düşünme becerisinin bir parçasıdır. Bu, karmaşık bir problemi; bilgisayar veya insan tarafından çözülebilecek daha küçük ve yönetilebilir alt parçalara ayırma sürecidir.
Bilişimsel düşünmenin aşamaları:
- Ayrıştırma (Decomposition): Problemi daha küçük parçalara bölmek.
- Örüntü Tanıma (Pattern Recognition): Benzerlikleri ve kalıpları bulmak.
- Yalınlaştırma (Abstraction): Önemli bilgileri ayırıp, gereksiz detayları göz ardı etmek.
- Algoritma Tasarımı (Algorithm Design): Problemi