Hesaplama ve Hesaplamalı Düşünme

JAVA ile Nesne Yönelimli Programlama
HesaplamaBilgisayar tarihiBilgi ve algoritmaKontrol yapılarıHesaplamalı düşünme
Sercan KÜLCÜ · Giresun Üniversitesi

Giriş

Öğrenme Çıktıları

Hesaplama

Verinin kurallara göre işlenmesini açıklamak.

Algoritma

Bir problemi girdi, çıktı ve sonlu adımlarla tanımlamak.

Kontrol yapıları

Sıralı, koşullu ve döngülü işlemleri ayırt etmek.

Hesaplamalı düşünme

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.

Problem
Algoritma
Kod
Çalıştırma
Sonuç
  • Bilgisayar talimatları eksiksiz ve kesin biçimde uygular.
  • Doğru program, doğru tanımlanmış problem ve algoritmayla başlar.

Giriş

Hesaplama

Girdi

İşlenecek veri veya durum.

İşlem

Matematiksel, mantıksal veya veri düzenleme adımları.

Çıktı

İşlem sonucunda üretilen değer veya eylem.

Kaynaklar

Zaman, bellek, enerji ve iletişim kapasitesi.

Hesaplama yalnızca aritmetik değildir. Arama, sıralama, karar verme, dönüştürme ve iletişim de hesaplamadır.

Giriş

Hesaplamanın Yapı Taşları

Matematik

Nicelikler ve ilişkiler üzerinde işlem.

Mantık

Koşulların doğru veya yanlış değerlendirilmesi.

Veri

Problemin temsil edilen girdileri ve ara sonuçları.

Algoritma

İşlemlerin sonlu ve düzenli sırası.

Donanım

Adımları fiziksel olarak yürüten sistem.

Programlama dili

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.

Soyutlama

Gereksiz ayrıntıları gizleyerek önemli yapıya odaklanmak.

Algoritmalar

Çözüm adımlarını tasarlamak ve analiz etmek.

Sistemler

Donanım ve yazılımın birlikte çalışmasını anlamak.

İnsan ve toplum

Teknolojinin etkilerini, güvenliğini ve etiğini değerlendirmek.

Bilgisayar Bilimi

Teknoloji ve Sorumluluk

Erişilebilirlik

Farklı kullanıcıların teknolojiye eşit biçimde erişebilmesi.

Gizlilik

Kişisel verilerin amaçla sınırlı ve güvenli kullanılması.

Adalet

Veri ve algoritmaların ayrımcı sonuç üretmemesi.

Sürdürülebilirlik

Enerji, donanım ömrü ve elektronik atığın dikkate alınması.

Tarih

Hesaplama Tarihinde Dönüm Noktaları

DönemGelişme
1800'lerBabbage'ın Analitik Makine tasarımı ve Lovelace'ın algoritma notları
1930'larTuring'in hesaplama modeli; elektronik dijital deneyler
1940'larColossus ve ENIAC gibi elektronik makineler
1950'lerSaklanan program yaklaşımının yaygınlaşması; Fortran
GünümüzMobil, bulut, yapay zeka ve büyük ölçekli dağıtık sistemler

Tarih

Sabit ve Depolanan Program

YaklaşımProgram nasıl belirlenir?Esneklik
Sabit programlıMakinenin fiziksel düzeni veya özel mekanizmasıBelirli görev
Depolanan programlıKomutlar bellekte veri gibi saklanırProgram değiştirilerek farklı görevler
Genel amaçlıÇok farklı programları çalıştırabilen mimariGeniş uygulama alanı

Hesaplama Modelleri

Evrensel Turing Makinesi

Turing makinesi, algoritmik hesaplamayı açıklamak için kullanılan soyut bir modeldir.

Bant hücresi
Okuma / yazma başlığı
Durum
Geçiş kuralı
  • 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ı

Zaman

Büyük girdiler bazı algoritmaları pratik olmaktan çıkarabilir.

Bellek

Veri ve ara sonuçlar sonlu depolama kullanır.

Enerji

Her işlem ve veri aktarımı enerji tüketir.

Hesaplanabilirlik

Bazı problemler için her durumda sonuç veren algoritma yoktur.

Veri kalitesi

Eksik veya hatalı girdi doğru sonucu engeller.

Model sınırı

Program gerçek dünyanın yalnızca seçilmiş özelliklerini temsil eder.

Bilgi ve Algoritma

Bilgi Türleri

Bildirimsel bilgi

Neyin doğru olduğunu veya bir kavramın ne olduğunu açıklar.

Bir üçgenin iç açıları toplamı 180°'dir.
Buyurusal bilgi

Bir sonuca nasıl ulaşılacağını adımlarla açıklar.

Bir sayının karekökünü yaklaşık hesapla.
Algoritmalar buyurusal bilgiyi açık, uygulanabilir ve sonlu adımlara dönüştürür.

Bilgi ve Algoritma

Algoritma

Algoritma, belirli bir problemi çözmek veya görevi tamamlamak için tanımlanmış sonlu adımlar dizisidir.

Girdi

Sıfır veya daha fazla veri alabilir.

Çıktı

En az bir sonuç üretir.

Kesinlik

Her adım açık ve uygulanabilir olmalıdır.

Sonluluk

Belirli sayıda adımdan sonra durmalıdır.

Doğruluk

Geçerli girdiler için beklenen sonucu vermelidir.

Verimlilik

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 a
GCD(48, 18): 48 mod 18 = 12 · 18 mod 12 = 6 · 12 mod 6 = 0 · sonuç 6

Problem Çözme

Problem Tanımı

Program yazmadan önce problemin sınırları ve beklenen davranışı açıkça belirlenir.

Amaç

Hangi sorunun çözüleceği.

Girdi

Hangi veri ve koşulların verildiği.

Çıktı

Hangi sonucun ve biçimin beklendiği.

Kısıtlar

Boyut, süre, doğruluk ve kaynak sınırları.

Örnekler

Beklenen davranışı somutlaştıran durumlar.

Hata durumları

Geçersiz veya eksik girdide yapılacak işlem.

Problem Çözme

Girdi ve Çıktı Örneği

Problem

Verilen iki sayının toplamını bul.

Girdi: X ve Y sayıları

Çıktı: Z = X + Y

Örnek

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ı

Sıralı işlem

Adımlar yazıldıkları sırada bir kez yürütülür.

Koşullu işlem

Bir koşulun sonucuna göre farklı yol seçilir.

Döngülü işlem

Bir koşula veya sayaca göre adımlar tekrarlanır.

Bu üç yapı birlikte her algoritmanın akışını ifade etmek için temel bir araç takımı oluşturur.

Kontrol Yapıları

Sıralı İşlemler

Boyu oku
Ağırlığı oku
BMI hesapla
Sonucu yaz
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ı")
Koşul

Doğru veya yanlış sonuç veren ifade.

Dallar

Olası sonuçlara karşılık gelen işlem yolları.

Kapsam

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)
Döngü değişkeni ilerlemiyorsa devam koşulu hiç yanlış olmayabilir ve sonsuz döngü oluşabilir.

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
Girdi

Taban ve yükseklik.

İşlem

İki değeri çarpma.

Çıktı

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.

Ayrıştırma

Büyük problemi yönetilebilir alt problemlere bölme.

Örüntü tanıma

Benzerlikleri ve tekrar eden yapıları bulma.

Soyutlama

Çözüm için önemli ayrıntılara odaklanma.

Algoritma tasarımı

Çö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.

Kullanıcı girişi
Form doğrulama
Kayıt
Bildirim
  • 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

Örüntü tanıma

Öğrenci, personel ve ziyaretçi kayıtlarında ad, kimlik ve iletişim alanlarının tekrar ettiğini fark etmek.

Soyutlama

Bu kayıtları ortak bir Kişi modeliyle ifade edip yalnızca gerekli ayrıntıları tutmak.

İyi soyutlama, önemli farkları kaybetmeden tekrar eden yapıyı ortaklaştırır.

Hesaplamalı Düşünme

Algoritma Tasarımı ve Test

Örnek oluştur
Adımları yaz
Elle izle
Sınır durumlarını dene
Düzelt
  • 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ı

  1. Hesaplama neden yalnızca aritmetik değildir?
  2. Bildirimsel ve buyurusal bilgiye birer örnek verin.
  3. İyi bir algoritmanın temel özellikleri nelerdir?
  4. Sözde kod neden programlama dilinden önce kullanılabilir?
  5. Koşul ile döngü arasındaki temel fark nedir?
  6. 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

Hesaplama ve Hesaplamalı Düşünme
1 / 1Sercan KÜLCÜ, Tüm hakları saklıdır.

← → veya boşluk ile gezinin · F: tam ekran · Home/End: ilk/son slayt