Teknobu

Problem Çözme ve Algoritmalar Ders 1

Problem Çözme ve Algoritmalar Ders 1

Problem Çözme ve Algoritmalar Ders 1

Problem Çözme ve Temel Kavramlar

İnsanlık, varoluşundan beri çeşitli problemlerle karşılaşmış ve bu problemlere çözüm üretmeye çalışmıştır. Örneğin bilgiyi kalıcı hâle getirmek için yazıyı bulmuştur. Mağara duvarlarına ya da kil tabletlere yazılan çivi yazıları bilginin kalıcılığını sağlamış ancak taşıma güçlüğü ortaya çıkmıştır. Bu problemi çözmek için papirüsler¹ icat edilmiştir. Daha sonra karşılaşılan her probleme yeni çözümler geliştirilerek günümüzdeki kâğıt ve kalemler üretilmiştir. Çözülmesi gereken problemlerin geçmişte kaldığını söylemek mümkün değildir. İnsanoğlu yaşam boyu çeşitli problemlerle karşılaşır. Bu problemleri çözme becerisi kazanmak oldukça önemlidir. Bu bölümde öncelikle problemin ne olduğundan ve problemi çözerken nasıl bir yol izlenmesi gerektiğinden bahsedilecektir. Günümüzde birçok problemi çözmek için bilgisayarlardan faydalanılır. Ancak bilgisayarlar problemi nasıl çözeceğini bilmez. Bir bilgisayarın problem çözebilmesi için işlem adımlarının belirlenmesi ve bunun bilgisayara yüklenmesi gerekmektedir. Algoritmalar bu sürecin ilk adımını oluşturur. Bölümün ilerleyen kısımlarında algoritmalar ve algoritmaların şekillerle ifade edildiği akış diyagramları anlatılacaktır.

Problem

Karşılaşılabilecek soruna veya çözülmesi gereken duruma problem denir. Örneğin; sınav esnasında kalem ucunun bitmesi, internetten alınan ayakkabının küçük gelmesi, okula geç kalınması, bilmediğimiz bir yere ilk defa gidilecek olunması gibi çözüm aranması gereken durumlar günlük hayatta karşılaşılabilecek problemlerdir

Problem Çözme Süreci

Sabah okula gitmek için bindiğiniz otobüsün arıza yapması, teslim tarihi gelmiş olan ödevinizi evde unutmanız veya siz evde değilken gelen kargo görevlisinin sizi evde bulamamış olması bir problem midir? Sizin için bunlar birer problemse nasıl çözülebilir?

Bir problemi çözmesi beklenen alternatif yollar arasından en doğru olanı
seçebilmeye problem çözme denir.

Problemi ortaya koyma aşamasından, problemin çözümünün tamamlanmasına kadar geçen zaman ise problem çözme süreci olarak adlandırılır.

Diğer Yazımız :   Veri Yapılarında Kullanılan Temel Terminolojiler Nelerdir ?


Problemleri çözmek için genellikle iki farklı yöntem kullanılır:

  1. Deneme yanılma ya da tahminde bulunma yoluyla çözme
  2. Algoritma geliştirme yoluyla çözme

Günlük hayatta karşılaşılan bazı problemler öngörülebilir olmadığı gibi bu problemlerin tek bir çözümü de yoktur. Bu gibi problemleri belli adımlar takip ederek çözmek mümkün değildir. Örneğin yemek pişirilirken ne kadar tuz koyulması gerektiği ya da yemeğin ne kadar süre pişirilmesi gerektiği deneme yanılma yoluyla bulunabilir. Çünkü bu soruların cevabı kişiden kişiye değişiklik gösterecektir. Ancak bilgisayarlar aracılığıyla çözmek istediğimiz problemlerin çözüm adımlarının, önceden belirgin bir şekilde ortaya konulması gerekir. Bu amaçla hazırlanan yönergelere algoritma denir. Algoritmalar bir problemi çözmek veya belirli bir işi yapmak için adım adım tanımlanmış işlemler kümesidir. Problem çözme sürecini kolaylaştırmak ve hata yapma ihtimalini azaltmak için

öncelikle mevcut durumun problem olup olmadığına karar verilmeli ve problem net olarak ortaya konulmalıdır.

Problem net bir şekilde ortaya konulup iyi analiz edildikten sonra çözüm için uygun planlamalar yapılmalıdır. Daha sonra çözüm için farklı yollar düşünülüp bu çözüm yolları arasından uygun olabilecek çözüm yolu seçilmelidir. Problem çözüldükten sonra kontrol edilmelidir.

PROBLEM ÇÖZME SÜRECİ

Her bir aşamada yapılması gereken işlemler aşağıda açıklanmıştır.

  1. Problemi tanımlama: Problemin ne olduğu belirgin bir şekilde ortaya konulmalıdır.
  2. Problemi anlama: Problemin kaynağının ne olduğu ve problem çözüldükten sonra beklenen faydalar
    belirlenmelidir. Bir problem ne kadar iyi anlaşılırsa çözümü o kadar kolay olacaktır.
  3. Alternatif çözüm yollarını belirleme: Problemi çözmesi beklenen tüm alternatifler sıralanmalıdır.
  4. En uygun çözümü seçme: Bir önceki adımda belirlenen alternatifler arasından en uygun olanının seçilmesi gerekir. Bunun için alternatiflerin artıları ve eksileri yazılabilir. Çoğu zaman çözüme en hızlı ulaştıran
    alternatif doğru çözüm olarak görünse de bu durum her zaman geçerli değildir. En hızlı çözümün güvenli
    olmadığı, maliyet açısından kabul edilebilir olmadığı ya da uzun ömürlü olmadığı durumlar ortaya çıkabilir. Böyle durumlarda tüm faktörler göz önünde bulundurularak en uygun çözüm seçilmelidir.
  5. Çözümü uygulama: Bir önceki adımda belirlenen çözüm yöntemi kullanılarak problemi çözme işi gerçekleştirilir. Çözüm adımlarının kafa karışıklığına yol açmayacak bir şekilde ortaya konulması gerekir.
  6. Çözümü test etme: Uygulanan çözümün beklentileri yerine getirip getirmediği test edilmelidir. Uygulanan çözümün hataları varsa bunları gidermek için önceki işlem basamaklarına dönülmesi gerekebilir.

Örnek 1: Sabahları okula geç kalma problemini, problem çözme adımlarını kullanarak çözmeye çalışalım.

Problemi tanımlama: Okula geç kalma durumunun bir problem olduğunun farkına varılması problemi tanımlama aşamasıdır.

Problemi anlama: Problemin kaynağının ne olduğu tespit edilmelidir. Geç kalmaya birçok şey neden olabilir. Bunlar; uygun ulaşım alternatifini seçmeme, geç uyumaya bağlı geç uyanma hazırlanma aşamasının uzun sürmesi, okulun çok uzak olması vs. Akşamları bilgisayarda çok fazla oyun oynamaktan kaynaklı geç yatılabildiği, bu nedenle okula geç kalındığı düşünülerek buna yönelik bir çözüm bulmaya çalışılmalıdır.

Alternatif çözüm yolları belirleme: Bu problemi çözmek için aşağıdaki alternatifler kullanılabilr.
Bilgisayarı evden çıkarmak
Ebeveynlerimizden yatma zamanı geldiğinde bizi uyarmasını istemek
Bilgisayardan oyunları kaldırmak
Oyun için ayrılacak günlük süre belirleyip buna uymak

En uygun çözümü seçme: Yukarıda belirlenen her bir alternatifin artıları ve eksileri yazılarak en uygun olanı seçilmeye çalışılmalıdır.
Bilgisayarı evden çıkarma: Hızlı bir çözümdür ancak bazı araştırma ve ödevlerin bilgisayar kullanarak yapıldığını ve evdeki diğer bireylerin de bilgisayar kullandığını düşünürsek uygulanabilir değildir.

Ebeveynlerden yatma zamanı geldiğinde bizi uyarmasını isteme: İşe yarayabilecek bir yöntem olmasına rağmen kişisel sorumluluklarımızı başkalarına yüklemiş olacağımızdan ve iç disiplinimizi sağlamada yetersiz kalacağından mantıklı değildir.
Bilgisayardan oyunları kaldırma: En hızlı alternatiftir ancak bir alışkanlığı bir anda bırakmak kolay olmayacağı için uygulanabilir değildir.
Oyun için ayrılacak günlük süre belirleyip buna uyma: En uygun alternatiftir.

Çözümü uygulama: Kendinize bilgisayarda günlük bir saat oyun oynama limiti koyduğunuzu ve bir süre bunu uyguladığınızı düşününüz.
Çözümü test etme: Okula geç kalma davranışının azalıp azalmadığına bakılarak çözüm test edilebilir.

1 Beğen

Yapılan Yorumlar