Hesaplama ve Hesaplamalı Düşünme
Giriş
Öğrenme Çıktıları
Verinin kurallara göre işlenmesini açıklamak.
Bir problemi girdi, çıktı ve sonlu adımlarla tanımlamak.
Sıralı, koşullu ve döngülü işlemleri ayırt etmek.
Ayrıştırma, örüntü, soyutlama ve algoritma tasarımını uygulamak.
Giriş
Programlama
Programlama, bir bilgisayarın gerçekleştireceği işlemleri programlama diliyle ifade etme sürecidir.
- Bilgisayar talimatları eksiksiz ve kesin biçimde uygular.
- Doğru program, doğru tanımlanmış problem ve algoritmayla başlar.
Giriş
Hesaplama
İşlenecek veri veya durum.
Matematiksel, mantıksal veya veri düzenleme adımları.
İşlem sonucunda üretilen değer veya eylem.
Zaman, bellek, enerji ve iletişim kapasitesi.
Giriş
Hesaplamanın Yapı Taşları
Nicelikler ve ilişkiler üzerinde işlem.
Koşulların doğru veya yanlış değerlendirilmesi.
Problemin temsil edilen girdileri ve ara sonuçları.
İşlemlerin sonlu ve düzenli sırası.
Adımları fiziksel olarak yürüten sistem.
Algoritmayı bilgisayara ifade etme aracı.
Bilgisayar Bilimi
Bilgisayar Bilimi
Bilgisayar bilimi yalnızca araç kullanmayı değil, bilginin nasıl temsil edildiğini ve problemlerin nasıl çözülebileceğini inceler.
Gereksiz ayrıntıları gizleyerek önemli yapıya odaklanmak.
Çözüm adımlarını tasarlamak ve analiz etmek.
Donanım ve yazılımın birlikte çalışmasını anlamak.
Teknolojinin etkilerini, güvenliğini ve etiğini değerlendirmek.
Bilgisayar Bilimi
Teknoloji ve Sorumluluk
Farklı kullanıcıların teknolojiye eşit biçimde erişebilmesi.
Kişisel verilerin amaçla sınırlı ve güvenli kullanılması.
Veri ve algoritmaların ayrımcı sonuç üretmemesi.
Enerji, donanım ömrü ve elektronik atığın dikkate alınması.
Tarih
Hesaplama Tarihinde Dönüm Noktaları
| Dönem | Gelişme |
|---|---|
| 1800'ler | Babbage'ın Analitik Makine tasarımı ve Lovelace'ın algoritma notları |
| 1930'lar | Turing'in hesaplama modeli; elektronik dijital deneyler |
| 1940'lar | Colossus ve ENIAC gibi elektronik makineler |
| 1950'ler | Saklanan program yaklaşımının yaygınlaşması; Fortran |
| Günümüz | Mobil, bulut, yapay zeka ve büyük ölçekli dağıtık sistemler |
Tarih
Sabit ve Depolanan Program
| Yaklaşım | Program nasıl belirlenir? | Esneklik |
|---|---|---|
| Sabit programlı | Makinenin fiziksel düzeni veya özel mekanizması | Belirli görev |
| Depolanan programlı | Komutlar bellekte veri gibi saklanır | Program değiştirilerek farklı görevler |
| Genel amaçlı | Çok farklı programları çalıştırabilen mimari | Geniş uygulama alanı |
Hesaplama Modelleri
Evrensel Turing Makinesi
Turing makinesi, algoritmik hesaplamayı açıklamak için kullanılan soyut bir modeldir.
- Başlık bir sembolü okur, yeni sembol yazabilir ve sağa veya sola hareket eder.
- Geçiş kuralı mevcut durum ve sembole göre sonraki adımı belirler.
- Model, hesaplanabilirlik sınırlarını incelemek için kullanılır.
Hesaplama Modelleri
Bilgisayarların Sınırları
Büyük girdiler bazı algoritmaları pratik olmaktan çıkarabilir.
Veri ve ara sonuçlar sonlu depolama kullanır.
Her işlem ve veri aktarımı enerji tüketir.
Bazı problemler için her durumda sonuç veren algoritma yoktur.
Eksik veya hatalı girdi doğru sonucu engeller.
Program gerçek dünyanın yalnızca seçilmiş özelliklerini temsil eder.
Bilgi ve Algoritma
Bilgi Türleri
Neyin doğru olduğunu veya bir kavramın ne olduğunu açıklar.
Bir üçgenin iç açıları toplamı 180°'dir.Bir sonuca nasıl ulaşılacağını adımlarla açıklar.
Bir sayının karekökünü yaklaşık hesapla.Bilgi ve Algoritma
Algoritma
Algoritma, belirli bir problemi çözmek veya görevi tamamlamak için tanımlanmış sonlu adımlar dizisidir.
Sıfır veya daha fazla veri alabilir.
En az bir sonuç üretir.
Her adım açık ve uygulanabilir olmalıdır.
Belirli sayıda adımdan sonra durmalıdır.
Geçerli girdiler için beklenen sonucu vermelidir.
Zaman ve belleği makul kullanmalıdır.
Bilgi ve Algoritma
Öklid Algoritması
İki pozitif tam sayının en büyük ortak bölenini tekrar eden kalan işlemleriyle bulur.
GCD(a, b)
while b ≠ 0
r = a mod b
a = b
b = r
return aProblem Çözme
Problem Tanımı
Program yazmadan önce problemin sınırları ve beklenen davranışı açıkça belirlenir.
Hangi sorunun çözüleceği.
Hangi veri ve koşulların verildiği.
Hangi sonucun ve biçimin beklendiği.
Boyut, süre, doğruluk ve kaynak sınırları.
Beklenen davranışı somutlaştıran durumlar.
Geçersiz veya eksik girdide yapılacak işlem.
Problem Çözme
Girdi ve Çıktı Örneği
Verilen iki sayının toplamını bul.
Girdi: X ve Y sayıları
Çıktı: Z = X + Y
Girdi: X = 5, Y = 3
İşlem: 5 + 3
Çıktı: Z = 8
Problem Çözme
Sözde Kod
Sözde kod, algoritmanın mantığını belirli bir programlama diline bağlı kalmadan açıklar.
BAŞLA A değerini oku B değerini oku TOPLAM = A + B TOPLAM değerini yaz BİTİR
- Doğal dile yakın, kısa ve tutarlı ifadeler kullanılır.
- Girinti, koşul ve döngülerin kapsamını gösterir.
- Amaç sözdizimi değil, algoritmayı anlaşılır hale getirmektir.
Kontrol Yapıları
Temel Kontrol Yapıları
Adımlar yazıldıkları sırada bir kez yürütülür.
Bir koşulun sonucuna göre farklı yol seçilir.
Bir koşula veya sayaca göre adımlar tekrarlanır.
Kontrol Yapıları
Sıralı İşlemler
boy = oku() agirlik = oku() bmi = agirlik / (boy * boy) yaz(bmi)
Kontrol Yapıları
Koşullu İşlemler
Koşul doğruysa bir yol, yanlışsa başka bir yol yürütülür.
eğer puan >= 60 ise
yaz("Geçti")
aksi halde
yaz("Kaldı")Doğru veya yanlış sonuç veren ifade.
Olası sonuçlara karşılık gelen işlem yolları.
Her dalda hangi adımların çalışacağını belirler.
Kontrol Yapıları
Döngülü İşlemler
Döngü, devam koşulu doğru olduğu sürece gövdesindeki adımları tekrarlar.
i = 1
toplam = 0
while i <= 5
toplam = toplam + i
i = i + 1
yaz(toplam)Algoritma Örnekleri
Örnek: Dikdörtgen Alanı
BAŞLA taban değerini oku yükseklik değerini oku alan = taban * yükseklik alan değerini yaz BİTİR
Taban ve yükseklik.
İki değeri çarpma.
Dikdörtgenin alanı.
Algoritma Örnekleri
Örnek: Büyük Sayıyı Bulma
ilk sayıyı oku
ikinci sayıyı oku
eğer ilk > ikinci ise
ilk sayıyı yaz
aksi halde
ikinci sayıyı yazİki sayı eşitse bu sözde kod ikinci sayıyı yazar. Eşitlik için ayrı mesaj isteniyorsa üçüncü bir durum tanımlanmalıdır.
Algoritma Örnekleri
Örnek: Listedeki En Büyük Değer
enBuyuk = listenin ilk elemanı
her eleman için
eğer eleman > enBuyuk ise
enBuyuk = eleman
enBuyuk değerini yaz- Başlangıç değeri 0 seçilirse yalnızca negatif sayılardan oluşan listede hata oluşabilir.
- İlk elemanla başlamak bu varsayımı ortadan kaldırır.
- Algoritma her elemanı bir kez inceler.
Hesaplamalı Düşünme
Hesaplamalı Düşünme
Hesaplamalı düşünme, problemleri bilgisayarın veya insanın sistemli biçimde çözebileceği yapılara dönüştürme yaklaşımıdır.
Büyük problemi yönetilebilir alt problemlere bölme.
Benzerlikleri ve tekrar eden yapıları bulma.
Çözüm için önemli ayrıntılara odaklanma.
Çözümü açık ve sıralı adımlarla ifade etme.
Hesaplamalı Düşünme
Ayrıştırma
Bir çevrim içi kayıt sistemini tek parça olarak ele almak yerine alt görevlere ayırabiliriz.
- Her alt problem ayrı geliştirilebilir ve test edilebilir.
- Alt problemlerin girdi ve çıktıları açıkça tanımlanır.
- Bağımlılıklar erken fark edilir.
Hesaplamalı Düşünme
Örüntü ve Soyutlama
Öğrenci, personel ve ziyaretçi kayıtlarında ad, kimlik ve iletişim alanlarının tekrar ettiğini fark etmek.
Bu kayıtları ortak bir Kişi modeliyle ifade edip yalnızca gerekli ayrıntıları tutmak.
Hesaplamalı Düşünme
Algoritma Tasarımı ve Test
- Normal, en küçük, en büyük ve geçersiz girdiler düşünülür.
- Her adımın beklenen durumu ürettiği izlenir.
- Hata bulunduğunda yalnızca belirti değil, temel neden düzeltilir.
Özet
Bölüm Özeti
- Programlama, algoritmaları bilgisayarın uygulayabileceği talimatlara dönüştürür.
- Algoritma açık, sonlu, doğru ve uygulanabilir adımlardan oluşur.
- Problem tanımı; amaç, girdi, çıktı ve kısıtları içerir.
- Sıralı, koşullu ve döngülü yapılar program akışını belirler.
- Hesaplamalı düşünme; ayrıştırma, örüntü tanıma, soyutlama ve algoritma tasarımını birleştirir.
- Zaman, bellek, enerji ve hesaplanabilirlik bilgisayarların sınırlarını oluşturur.
Özet
Kontrol Soruları
- Hesaplama neden yalnızca aritmetik değildir?
- Bildirimsel ve buyurusal bilgiye birer örnek verin.
- İyi bir algoritmanın temel özellikleri nelerdir?
- Sözde kod neden programlama dilinden önce kullanılabilir?
- Koşul ile döngü arasındaki temel fark nedir?
- Bir problemi hesaplamalı düşünmenin dört bileşeniyle nasıl ele alırsınız?
Özet
Kaynaklar
- Kaynak sunum: Bölüm 1: Hesaplama ve Hesaplamalı Düşünme.
- Wing, Computational Thinking, Communications of the ACM, 2006.
- Cormen ve diğerleri, Introduction to Algorithms.
- Downey, Think Java.
- Sipser, Introduction to the Theory of Computation.
Son
← → veya boşluk ile gezinin · F: tam ekran · Home/End: ilk/son slayt