Konu Anlatımı
Bu derste ne öğreneceğiz?
Bu derste Problem Çözme Kavramları ve Yaklaşımları konusunu önce ne işe yarar sorusundan başlatacağız, sonra çalışma mantığını açacağız. Amacı bilmek, komutun neden öyle yazıldığını anlamanın ilk adımıdır.
Dersten sonra şunları yapabiliyor olmanız gerekiyor:
- Kazanım 1: Algoritmanın temel özelliklerini açıklar.
- Kazanım 2: Bir problemi sözde kod ile adım adım yazar.
- Kazanım 3: Akış diyagramı sembolleriyle çözümü görselleştirir.
- Kazanım 4: Problem çözme basamaklarını sırayla uygular.
- Kazanım 5: Program hatalarını türlerine göre ayırıp ayıklama adımlarını uygular.
Ön bilgi: bundan önce gördüğümüz
Bu konunun dayandığı temel Web Günceleri başlığıdır. Web Günceleri konusunda kazanılan bilgiyi burada yeniden kullanacağız, bu yüzden o konudaki tanım ve çıkarımları hatırlamak işimizi kolaylaştırır.
- Web Günceleri — bu derste kullandığımız temel kavram buradan geliyor.
- Sosyal Medya — bu derste kullandığımız temel kavram buradan geliyor.
Algoritmanın Özellikleri
Algoritma, bir problemi çözmek için gereken adımların sırayla, açık ve anlaşılır biçimde yazımıdır. İyi bir algoritmanın temel özellikleri kesinlik, sıralılık, sonluluk, giriş-çıkış ve etkililiktir. Kesinlik her adımın tek türlü anlaşılmasını, sonluluk adımların sonsuza kadar sürmemesini, etkililik ise tüm adımların uygulanabilir olmasını ifade eder.
| Özellik | Açıklama | İhlal Örneği |
|---|
| Kesinlik | Her adım tek türlü anlaşılır | Gerektiğince az su ekle gibi belirsiz ifade |
| Sıralılık | Adımlar doğru sırada yer alır | Toplamı almadan yüzde hesabı yapmak |
| Sonluluk | Adımlar sonlu sayıdadır | Koşul değişmeden süren döngü |
| Giriş-çıkış | Alınan girdi ve verilen sonuç tanımlıdır | Girdi almadan sonuç beklemek |
| Etkililik | Her adım mümkün ve uygulanabilir | Olmayan bir veriyi istemek |
Sözde Kod (Pseudocode)
Sözde kod, bir programlama diline bağlı olmadan insan diline yakın kurallarla çözümün yazımıdır. Amaç mantığı netleştirmektir; böylece kod yazarken sözdizimi hatalarıyla değil düşünce düzeniyle ilgilenilir. Bir puan değerlendirmesi sözde kodla şu şekilde yazılır: puan okunur, puan 50 veya daha büyük ise geçer yazılır, değilse kalır yazılır ve program bitirilir.
Sözde kodda Türkçe ya da yabancı anahtar sözcükler kullanılabilir; belirleyici olan adımların sırası, koşulun açık olması ve her yolun bir sona bağlanmasıdır.
Akış Diyagramı Uygulaması
Akış diyagramında başla ve bitir yuvarlakla, işlem dikdörtgenle, karar eşkenar dörtgenle, veri girişi ve çıktısı ise paralelkenarla gösterilir. Bir karar kutusundan iki kol çıkar: evet ve hayır. Diyagram okunurken akış oklarının yönü izlenir ve her kolun bir sona bağlandığı görülür.
Problem Çözme Basamakları
- Gözlem: Durum dikkatle incelenir, veriler not edilir.
- Tanımlama: Problem tek cümleyle yazılır.
- Analiz: Veriler, hedef ve kısıtlar belirlenir.
- Çözüm: Strateji seçilir, algoritma ve sözde kod yazılır.
- Uygulama ve değerlendirme: Çözüm denenir, sonuç kontrol edilir.
Hata Ayıklama (Debugging)
Hata üç sınıfta incelenir: Sözdizimi hatası programın hiç çalışmasını engeller, çalışma zamanı hatası çalışmayı durdurur (tanımsız değişken kullanmak gibi), mantık hatası ise program sorunsuz çalışır fakat yanlış sonuç verir. Ayıklama sırası şöyledir:
- Belirtiler kaydedilir: ne zaman ve hangi girdide hata çıkmaktadır?
- Hipotez kurulur: hatanın hangi adımda olduğu tahmin edilir.
- Test edilir: küçük ve bilinen sonuçlu örneklerle denenir.
- Düzeltme yapılır ve tüm senaryolarla yeniden denenir.
Sınav Odaklı Özet
Sınavlarda algoritma özellikleri, sözde kod ile diyagram ayrımı, hata türleri ve ayıklama sırası sorulur. Çalışıyor ama yanlış sonuç veriyor ifadesi mantık hatasının, hiç çalışmıyor ifadesi ise sözdizimi ya da çalışma zamanı hatasının işaretidir.
Günlük hayattan bir uygulama
Konuyu pekiştirmek için günlük hayattan bir uygulamaya bakmak gerekir. Aşağıdaki görev, Problem Çözme Kavramları ve Yaklaşımları bilgisini gerçek bir işin içinde kullandırmak için hazırlandı; çözerken hangi adımı nerede kullandığımızı not etmek faydalıdır.
Uygulama sorusu: Okul kantinindeki su tüketimini azaltmak için bir problem çözme planı hazırlayınız. Planınızda gözlem, tanımlama, analiz, çözüm, uygulama ve değerlendirme adımlarının her birini örneklerle açıklayınız.
Bu görev için 15 puan dağıtılmıştır; puanlama anahtarı, cevabın hangi adımlarla gösterilmesi gerektiğini ayrıntılı biçimde söyler. Puanlamada işlem sırasının ve sonuç cümlenin ayrı ayrı sayıldığına dikkat et.
Yararlı ipuçları
- Algoritma özellikleri sorularında belirsizlik ve sonsuzluk içeren şıkları hemen eleyip sonluluk şıkkını ara.
- Diyagram sorularında önce başla ve bitiri bul, aradaki dikdörtgenleri işlem, elmasları karar olarak say.
- Hata türü sorularında çalışıp yanlış sonuç veren ifade geçiyorsa mantık hatasını seç.
- Ayıklama sırası sorularında belirtilerin toplanması her zaman ilk adımdır; düzeltme en sondadır.
Adım adım çözülmüş örnekler
İki örnek üzerinde çalışacağız. İlk örnek kuralın temel kullanımını, ikinci örnek ise kuralın zorlayıcı bir durumunu gösterir. Adımları kendin yazmayı dene; ikinci adımda nerede durduğunu görmek, sınavda zaman kazanır.
Örnek 1: Sonluluk Özelliğini Kontrol Etme
Soru: Bir algoritmanın döngü adımında, sayaç artırılmadan koşul kontrol edilmektedir. Hangi özellik ihlal edilmiştir?
- Adım 1: Döngünün sona erme koşulu belirlenir: sayaç değeri değişmeden koşul hep aynı kalır.
- Adım 2: Adımların sonsuza kadar sürdüğünün görülmesi.
- Adım 3: Özelliğin eşleştirilmesi: sonsuza kadar süren adım sonluluk özelliğini ihlal eder.
Cevap: Sonluluk özelliği ihlal edilmiştir; algoritma hiç bitmeyecek şekilde tasarlanmıştır.
Bu örnekte adım sayısını not edin: kural her zaman aynı sayıda işlemle değil, kazanılması gereken bilgiye göre çözülür.
Örnek 2: Sözde Koda Çevirme
Soru: Puanı 50 ve üzerinde olan öğrenciye geçer, diğerine kalır yazan ifade sözde kod olarak nasıl yazılır?
- Adım 1: Girdi belirlenir: puan değeri okunur.
- Adım 2: Koşul yazılır: puan 50 veya daha büyük ise dallanma yapılır.
- Adım 3: Kollar yazılır: ilk kol için geçer, ikinci kol için kalır çıktısı verilir.
Cevap: Puan okunur; koşul sağlanırsa geçer yazılır, sağlanmazsa kalır yazılır ve program bitirilir.
Kavram karşılaştırma tablosu
Bu derste geçen terimler birbirine yakın durur ve sınavda karıştırılır. Aşağıdaki tabloda her terimin anlamı ve sık karıştırılan karşılığı yan yana verilmiştir.
| Kavram | Anlamı | Sık karıştırılan karşılığı |
|---|
| Algoritma | Bir problemi çözmek için gereken adımların sırayla, açık ve anlaşılır biçimde yazımıdır. İyi bir algoritmanın temel özellikleri kesinlik, sıralılık,… | Algoritma ile programı eşitlemek |
| Etkililik | İse tüm adımların uygulanabilir olmasını ifade eder. | Bu kavram için ayrı bir hata kaydı tutulmamış; tanımıyla ilgili uyarılar aşağıdaki bölümde. |
| Analiz: | Veriler, hedef ve kısıtlar belirlenir. | Bu kavram için ayrı bir hata kaydı tutulmamış; tanımıyla ilgili uyarılar aşağıdaki bölümde. |
| Mantık hatası | İse program sorunsuz çalışır fakat yanlış sonuç verir. Ayıklama sırası şöyledir: | Mantık hatası ile sözdizimi hatasını karıştırmak |
Kural, formül ve ölçü tablosu
Aşağıdaki tablo bu konudaki kuralları tek bakışta toplar. Karar verirken önce bu tabloya bakmak, kuralı hatırlamakta işe yarar.
| Kural ya da formül | Ölçü / birim | Örnek adımlarında geçiyor mu |
|---|
| Algoritma özellikleri: kesinlik + sıralılık + sonluluk + giriş-çıkış + etkililik | Ölçü birimi yok (saf kural) | Evet — Örnek 1: Sonluluk Özelliğini Kontrol Etme |
| Sözde kod = programlama diline bağlı olmayan, insan diline yakın çözüm yazımı | Ölçü birimi yok (saf kural) | Evet — Örnek 2: Sözde Koda Çevirme |
| Akış diyagramında karar kutusundan evet ve hayır olmak üzere iki çıkış vardır | Ölçü birimi yok (saf kural) | Evet — Örnek 3: Diyagramda Kutu Sayısını Belirleme |
| Hata ayıklama: belirtileri topla → hipotez kur → test et → düzelt → yeniden dene | Ölçü birimi yok (saf kural) | Evet — Örnek 3: Diyagramda Kutu Sayısını Belirleme |
| Mantık hatası: program çalışır fakat yanlış sonuç üretir | Ölçü birimi yok (saf kural) | Evet — Örnek 4: Mantık Hatasını Bulma |
Sık Yapılan Hatalar
Aşağıdaki hatalar bu konuda en sık görülenlerdir. Her biri için önce hatanın kendisi, sonra neden yanlış olduğu ve doğrusu anlatılmıştır.
- Algoritma ile programı eşitlemek: Algoritma çözümün mantıksal planıdır, program ise bu planın bir dilde yazılan hâlidir.
- Sözde kodu programlama dili kurallarına bağlamak: Sözde kodun amacı dili değil, mantığı ve adım sırasını anlatmaktır.
- Mantık hatası ile sözdizimi hatasını karıştırmak: Mantık hatasında program çalışır fakat sonuç yanlıştır; sözdizimi hatasında program hiç çalışmaz.
- Hata bulur bulmaz birden fazla yeri değiştirmek: Tek seferde tek düzeltme yapılmazsa hangi değişikliğin sonucu değiştirdiği anlaşılamaz.
Özet
Kısaca: Algoritma; kesin, sıralı, sonlu ve uygulanabilir adımların yazımıdır. Sözde kod çözümü insan diline yakın biçimde, akış diyagramı ise standart şekillerle gösterir. Problem çözmede gözlem, tanımlama, analiz, çözüm, uygulama ve değerlendirme sıralaması izlenir. Hata ayıklamada belirtiler toplanır, hipotez kurulur, test edilir ve düzeltme sonrası yeniden denenir.
Derste gördüğümüz ana fikirler şunlar:
- Algoritma, dil bağımsızdır; aynı çözüm farklı programlama dillerinde aynı sırayla yazılır.
- Sonluluk özelliği, algoritmanın her koşulda sona ermesi gerektiğini belirtir.
- Sözde kod yazılırken sözdizimi değil, adım sırası ve koşulun açıklığı önemlidir.
- Akış diyagramında karar kutusundan iki kol çıkar ve her kol bitişe ulaşmalıdır.
- Sözdizimi hatası programı durdurur, mantık hatası ise yanlış sonuç üretir.
- Hata ayıklamada düzeltmeden önce hipotez kurulup küçük örneklerle test yapılır.
Kendini dene
Aşağıdaki sorular konunun farklı yönlerini yoklar. Önce kendin çöz, sonra cevap anahtarına bak; eğer bir soruyu yanlış yaptıysan yukarıdaki ilgili bölüme geri dön.
- Hata ayıklama işleminin en doğru sıralaması aşağıdakilerden hangisidir? (Şıklar: Düzelt, çalıştır, belirtileri topla · Belirtileri topla, hipotez kur, test et, düzelt ve yeniden test et · Yeniden yaz, test et, belirtileri topla · Test et, belirtileri topla, düzelt, hipotez kur)
- Algoritma özelliklerinden biri aşağıdakilerden hangisidir? (Şıklar: Belirsizlik · Etkililik · Rastgelelik · Sonsuzluk)
- Bir algoritmanın sonluluk özelliği aşağıdakileri ifade eder? (Şıklar: Adımların sonlu sayıda tamamlanması · Adımların rastgele sıralanması · Programın olabildiğince uzun sürmesi · Yalnızca sayı işlemesi yapılması)
Cevap anahtarı: 1) Belirtileri topla, hipotez kur, test et, düzelt ve yeniden test et — Ayıklama görgülü biçimde ilerler: önce kanıt toplanır, tahmin kurulur, test edilir, tek düzeltme yapılır ve doğrulama tekrarlanır.
2) Etkililik — Etkililik, her adımın uygulanabilir olmasını ifade eder ve algoritmanın temel özelliklerinden biridir; diğer şıklar bu özelliğin karşıtıdır.
3) Adımların sonlu sayıda tamamlanması — Sonluluk, algoritmanın her koşulda sonlu adımda bitmesini şart koşar; sonsuz süren yapı algoritma özelliğini kaybeder.
İlgili konular
Bu konuyu öğrenmek şu başlıkları da kolaylaştırır. Aynı üniteden ve sonraki üniteden ikişer konu seçtik:
- Programlama — aynı ünitede, bir sonraki adım.
- Üç Boyutlu Tasarım Programları — sonraki ünitenin başlangıcı; konuyu genişletir.
Kaynak notu
Bu derste Problem Çözme Kavramları ve Yaklaşımları konusu için kullanılan sayısal değerlerin tamamı adım adım gösterilerek hesaplandı; yaklaşık değer gereken yerde yaklaşık ifadesi açıkça yazıldı. Bu anlatım başka bir kitaptan cümle aktarmadan, konunun tanım ve kural düzeni yeniden yazılarak hazırlandı.
Ayrıca derste şu açık uçlu görevler yer alıyor; her biri puanlıdır ve kendi cevabını yazmanı ister:
- Okul kantinindeki su tüketimini azaltmak için bir problem çözme planı hazırlayınız. Planınızda gözlem, tanımlama, analiz, çözüm, uygulama ve değerlendirme adımlarının her birini örneklerle açıklayını… (15 puan)
- «Kütüphaneden alınan kitap sayısı 50 ve altındaysa uyarı ver» kuralını sözde kod olarak yazıp her adımı Türkçe olarak açıklayınız ve kuralın sınır değerini belirtiniz. (10 puan)
- Bir sayının girilen değere eşit olup olmadığını kontrol eden programın sözde kodunu yazınız. Ardından programda karşılaştığınız bir mantık hatasını tanımlayınız, hatanın nedenini açıklayınız ve adım… (20 puan)
- Sınıfınızda yaşadığınız gerçek bir sorunu seçip problem çözme basamaklarını uygulayarak çözümünü yazınız; her basamakta hangi kararı verdiğinizi de açıklayabilir misiniz? (25 puan)