(1-4 Ekim) PROBLEM ÇÖZME VE ALGORİTMALAR

(1-4 Ekim) PROBLEM ÇÖZME VE ALGORİTMALAR

Problem: Giderilmek istenen her güçlüğe problem denir.

Bir durumun problem olarak tanımlanabilmesi için şu iki koşulu taşıması gerekir.
       1. Kişide rahatsızlık uyandırmalı.
       2. Birden fazla çözüm yolu olmalı.

Bilgi işlemsel düşünme: Bilgisayar biliminin kavramlarından yararlanarak problem çözme, sistem tasarlama ve insan davranışlarını anlama olarak tanımlanabilir. 

Ayrıca Bilgisayar Bilimi Öğretmenleri Birliği (Computer Science Teachers Association - CSTA) ve Uluslararası Eğitimde Teknoloji Topluluğu (International Society for Teachnology in Education - ISTE) tarafından tanımlandığı şekliyle bilgi işlemsel düşünme aşağıdaki özellikleri barındıran bir problem çözme sürecidir.

• Problemleri bilgisayar veya başka araçlar yardımı ile çözebilir hale getirme
• Mantıklı bir şekilde verileri düzenleme ve çözümleme
• Model ve benzetim desteği ile verileri sunma
• Algoritmik düşünme çerçevesinde çözümleri otomatikleştirme
• Kaynakları verimli bir şekilde kullanarak uygun çözümleri tanımlama, çözümleme ve uygulama
• Bulunan çözümü farklı problemlere transfer etme ve genelleştirme

Hata Ayıklama Nedir?
Programlama, karmaşık bir süreçtir ve programcılar programlamada hata (bug) yapabilirler.
Programlama hatalarını bulma ve düzeltme işlemine hata ayıklama (debugging) denilir.
Bir programda üç tur hata oluşabilir:
1. Söz dizimsel hatalar: Söz dizimi, programın yapısı ve bu yapı hakkındaki kurallar demektir. Örneğin Türkçede bir cümle büyük harfle başlamalı ve uygun bir noktalama işaretiyle sona ermelidir.
2. Çalışma zamanı hataları: Bu hatalar ancak program çalıştırıldıktan sonra ortaya cıkar. Hesaplanması mümkün olmayan işlemler (sıfıra bölünme) ya da hiç gerçekleşmeyecek koşulların (5<3) yürütülmesi gibi durumlarda ortaya çıkar.
3. Anlam bilimsel hatalar: Bu durumda program, genellikle hata vermeden çalışır ancak çoğu zaman beklenen sonucu üretmez. Bu yüzden programı satır satır çalıştırarak, farklı adımlardaki çıktıları gözlemleyerek nerede mantık hatası yapıldığını bularak program doğru bicimde çalışana kadar bu hataları ayıklamak gerekir.

Günlük hayatta problem çözme: Problem çözme, amaca ulaşabilmek için alternatifler arasından en uygun yolu belirlemektir. Alternatifler, farklı koşul ve beklentilere göre şekillenir. En uygun çözüm ise farklı koşul ve durumlar için değişiklik gösterebilir. Bu nedenle farklı kişiler ve problemler için çözüm önerileri de farklılık gösterebilir.

PROBLEM ÇÖZME SÜRECİ

Problem Çözme Teknikleri

Her Zaman Bir Planınız Olsun: Belirsiz bir durumu yaşamak yerine her zaman bir planınız olmalıdır. Bu, en önemli kuraldır.

Problemi Tekrar İfade Edin: probleme ilişkin bir yanlış anlamanın ortaya çıkmasına ya da hedefin daha iyi anlaşılmasına neden olur.

Problemi Küçük Parçalara Ayırın: Verilen problemi adımlara ya da bölümlere ayırmak, çözümü kolaylaştırır. Bir problemi iki bölüme ayırdığımız düşünüldüğünde, her bir

Önce Bildiklerinizden Yola Çıkın: Problemi küçük parçalara bölerek çözebildiğiniz parçadan başlayınız.

Problemi Basitleştirin: Çözmekte zorlandığınız bir problemle karşılaşırsanız problemin kapsamını daraltmayı deneyebilirsiniz.

Benzerlikleri Arayın: Burada ele aldığımız benzerlik kavramı, çözülmesi istenen problemle önceden çözülen problem arasındaki olası örtüşme ya da yeni çözüme ilham verme olarak tanımlanabilir.

Deneme Yapın: Bazen bir problemi çözmenin en kolay yolu denemek ve sonuçlarını gözlemlemektir. Bu, tahmin etmekten çok farklıdır. Bir çözümü tahminen öngörmek ile kodu yazarak denemek ve sonuçlarını incelemek çok farklı sonuçlar verir. Böylece problemi çözebilmek için gereken ipuçlarını elde edebilirsiniz.

Asla Vazgeçmeyin: Asla vazgeçmemek, kişisel bir özelliktir. Kararlılık, güven ve istek önemlidir.


Problem Çözme Adımları

Problem çözme surecinde en iyi kararı verebilmek için izlenmesi gereken 6 adım vardır

1. Problemi Tanımlama: Problemi çözmeye başlamadan önce problemin acık, anlaşılır ve çok doğru Bir şekilde tanımlanmış olması gerekir. Problemin ne olduğunu bilemezseniz onu çözemezsiniz.
2. Problemi Anlama: Çözüme doğru yol almadan önce problemi çok iyi anladığınızdan emin olmanız gerekir. Problemin neler içerdiğini ve kapsamını doğru anlamalısınız.
3. Problemin Çözümü İçin Farklı Yol ve Yöntemler Belirleme: Problemin çözümü için olabildiğince Farklı yol ve yöntem belirlemeli ve bu listenin, tüm olasılıkları içerdiğinden emin olmalısınız. Problem çözmek için tek bir yol yoktur; pek çok yol vardır.
4. Farklı Çözüm Yolları Listesi İçerisinden En İyi Çözümü Seçme: Bu adımda her bir çözümün olumlu ve olumsuz yönlerini ortaya koymalısınız. Bu nedenle değerlendirme yapabilmek için ölçütler oluşturmalısınız.
Problem çözmek için tek bir yol yoktur; en iyi yol vardır.
5. Seçilen Çözüm Yolu ile Problemi Çözmek İçin Gerekli Yönergeleri Oluşturma: Bu adımda numaralandırılmış ve adım yönergeler oluşturmanız gerekir. Bu yönergelerin ikinci adımda belirtilen bilgi tabanı kapsamında olmasına dikkat ediniz.

6. Çözümü Değerlendirme: Çözümü test etmek ya da değerlendirmek, sonucun doğruluğunu
Kontrol etmek anlamına gelir. Sonuç yanlış cıkmış ya da bireyin beklentilerini karşılamamış ise problem çözme surecine baştan başlamak gerekir.

PROBLEM TÜRLERİ

Problemlerin her zaman sıradan çözümleri olmaz. Kek yapmak ya da araba kullanmak gibi problemleri çözmek için bir dizi eylem gerekir. Adım adım yönergelere dayalı olan bu çözümlere “algoritmik çözümler” denir. En iyi yolu seçtikten sonra sonuca, ilgili adımları izleyerek ulaşılır. Bu adımlardan oluşan yapıya “algoritma” denir.
En lezzetli ekmeği seçmek ya da işleri büyütmek için yatırım yapmak gibi problemlerin ise acık ve net ifade edilen yanıtları yoktur. Bu çözümler bilgi ve deneyim gerektirir, bir dizi deneme ve yanılma surecinden oluşur. Doğrudan işlem adımları ile ulaşılamayan sonuçlara “keşfe dayalı çözümler” denir.


PROBLEM ÇÖZME KAVRAMLARI

Günlük hayatta karşılaştığımız problemler çok çeşitli olmasına rağmen bilgisayar ile çözebildiğimiz Yalnızca 3 tür vardır:

1. Hesaplamalı–matematiksel işlem ve süreçler içeren problemler,
2. Mantıksal–ilişkisel süreçler içeren problemler,
3. Tekrarlayan–matematiksel ya da mantıksal bir dizi işlemin yinelenme surecini içeren problemler.


Bu bolümde, bilgisayara ilişkin temel kavramlar ve belirtilen türdeki problemleri çözmek için kullanılan ifade ve eşitlikler anlatılmaktadır.

“Sabit” ve “değişken” önemli iki kavramdır. Programcı işlenmemiş halde veriyi alır, işlenmiş hale yani bilgiye dönüştürür. Bunlar eşitlik ve ifadelerin yapı taşlarıdır. Programcı, problemi çözebilmek için gereken sabit ve değişkenleri, uygun “veri türü”de, örneğin sayısal olarak tanımlar.

Diğer önemli kavramlar ise operatör ve fonksiyonlardır. Operatör”, sabit ve değişkenler arasındaki ilişkileri gösteren, eşitlik ve ifadelerde kullanılan işaret ve sembolleri ifade eder. Operatörlerin belirli bir hiyerarşik yapı içerisinde kullanılması gerekir. Operatörler sabit ve değişkenlerle birlikte kullanıldığındaeşitlik” ve “ifade” olarak adlandırılan yapılar oluşur. Eşitlik ve ifadeler ise çözüm surecinin yapı taşları olan işlemlerdir.
Fonksiyonlar” bir dizi işlem seti olarak tanımlanabilir.

Tüm bu kavramları anlamadan bilgisayarlar ile problem çözmek olası değildir.



Yorum Gönder

2 Yorumlar