İçeriğe atla

Hesaplamalı düşünme

Hesaplamalı düşünme becerisinin dört basamağı gösterilmektedir.
Hesaplamalı Düşünme Basamakları

Hesaplamalı düşünme, karmaşık problemleri ve problemlerin çözümlerini algoritmik ve sistematik olarak ifade ederek problem çözme sürecinin sağlıklı şekilde tamamlanmasını sağlayan bir yöntemdir.

21.yüzyıl yetkinliklerinin önde gelenlerinden biri olarak kabul edilir. Yalnızca bilgisayar ortamında karşılaşılaşan sorunlarda değil, günlük yaşantıda karşılaşılan her türlü problemi çözerken kullanılabilir. ABD'li bilgisayar bilimci Jeannette Wing'in, hesaplamalı düşünmenin temel bir beceri olarak her öğrenciye öğretilmesi gerektiği konusundaki iddiasını 2006 yılında öne sürmesinden sonra birçok ülkede ilk ve orta öğretim programlarına hesaplamalı düşünme öğretimi yerleştirilmiştir.[1]

Hesaplamalı düşünme genel hatlarıyla şu şekilde gerçekleşir: problem parçalara ayrıştırılır, ayrıştırılan parçalar daha önce karşılaşılan problemlere benzer şekilde çözülebilsin diye karşı karşıya getirilir, ortaya çıkan problemle ilgili olmayan bilgilerin işin içerisinden çıkarıldıktan sonra sorunu çözmek için adımlar oluşturulur ve ortaya çıkan çözüm yolu en verimli şekilde kullanılır. Her karmaşık problem aynı yolla çözülemeyeceğinden hesaplamalı düşünme uygulanırken izlenecek yol probleme göre değişikliğe uğrayabilir.

Öğretim programlarında uygulanması

Hesaplamalı düşünme, birçok ülkede öğretim programlarına entegre edilerek okullarda öğrencilere öğretilen bir yöntemdir.[1] Türkiye’de Bilgi ve İletişim Teknolojileri ve Yazılım dersinin kazanımlarına entegre edilerek ilk defa 2012 yılından itibaren ortaokul programların girmiştir; ancak öğretim programında hesaplamalı düşünmenin ayrı bir öğrenme alanı olarak yer alması 2017 yılından olmuştur.[2]

ISTE (International Society for Technology in Education- Uluslararası Eğitim Teknolojileri Topluluğu) ve CSTA (Computer Science Teachers Association Bilgisayar Bilimi Öğretmenleri Derneği) gibi kuruluşlar, farklı ülkelerde hesaplamalı düşünmenin ilköğretim programına dahil edilmesi sürecine katkı sağlamak için oluşturulan kılavuzlar geliştirmiştir. ISTE ve CSTA'nın gerçekleştirdiği ortak bir çalışmada hesaplamalı düşünme şu özellikleri içeren bir düşünme yöntemi olarak tanımlanmıştır:

  • Problemleri bilgisayar veya başka araçlar yardımı ile çözülebilecek şekilde formülleştirme,
  • Verileri mantıklı bir şekilde düzenleme ve analiz etme,
  • Verileri model ve simülasyon gibi soyutlamalarla sunma,
  • Algoritmik düşünme yoluyla çözümleri otomatikleştirme,
  • Adımların ve kaynakların en etkin ve etkili şekilde bileşimini elde etmek amacıyla olası çözümleri tanımlama, analiz etme ve uygulama,
  • Bulunan çözüm sürecini farklı problemlere transfer etme ve genelleştirme (ISTE & CSTA, 2011).[3][4]

ISTE ve CSTA'nın çalışmasına göre bu beceriler öğrencilerde, hesaplamalı düşünme için temel olan bazı davranış ve tutumların desteklenmesi ile geliştirilebilir. Bu tutum ve davranışlar şunları içerir; karmaşıklıkla başa çıkmada güven, zor problemlerle çalışma konusunda azim, belirsizliğe tolerans, açık uçlu problemlerle başa çıkma yeteneği, ortak bir hedefe veya çözüme ulaşmak için başkalarıyla iletişim kurma ve çalışma yeteneği[3] Bahsedilen davranış ve tutumları eğer öğrenciler öğrenim sürecinde etkili bir biçimde kullanırsa hesaplamalı düşünme basamaklarını doğru biçimde kullanmada ve bir probleme çözüm bulmada oldukça gelişeceklerdir.

Öğretim programlarında hesaplamalı düşünme öğretimine geçilmesi sürecinde yaşanan bazı güçlükler tespit edilmiştir. Öğretmenlerin öğretmenlerin bilgisayar bilimleri ile ilgili içerik ve pedagojik içerik bilgilerin yetersiz oluşu ve bu nedenle öğretmenler ve öğretmen adaylarının hesaplamalı düşünme öğretimi konusunda kendilerini yeterli görmemesi bu güçlükler arasında başta gelir.[1] Bu nedenle öğretmenin kendi öz yeterliliğini geliştirmesi, hesaplamalı düşünmenin öğretiminin etkili bir biçimde gerçekleştirilmesiyle doğrudan ilişkilidir.[1]

Hesaplamalı düşünme bileşenleri

Hesaplamalı düşünme Ayrıştırma, Örüntü Tanıma, Soyutlama ve Algoritma tasarımı olmak üzere dört bileşene sahiptir.

Ayrıştırma

Karşımıza çıkan karmaşık bir problemi parçalarına ayırarak daha yönetilebilir hale getirilen aşamadır. Kompleks problemler, büyük sorunlar ile karşılaşıldığında ayrıştırma yapmak vazgeçilmez olmalıdır. Parçadan bütüne gitme mantığı ile ayrıştırılan parçalar diğer aşamalara göre sıralanır ve çözüme ulaşmak için izlenen yol daha kolay ve kısa bir hâle gelir.[5][6]

Örüntü tanıma

Terim anlamı olarak bir serideki verilerin aralarındaki örüntüyü, kuralı tanımlama olarak ifade edilebilir. Hesaplamalı düşünmede ise problem içerisindeki benzerlikler tanımlanır ve daha önce karşılaşılmış olan veya elde bulunan problemin alt parçalarında belirlenmiş olan bir problem ile benzerliğinin olup olmadığı bu aşamada belirlenir. Eğer bir benzerlik tespit edilirse önceden belirlenen çözüm tekniklerini bu problemde de kullanmak çözüme yaklaşmada işimizi kolaylaştıracak ve bize zaman kazandıracaktır. Bu bileşen karşılaşılan sorunlara etkili çözümler üretebilmek için önemli bir basamaktır.[5]

Soyutlama

Soyutlama ile çözümün en temelinde olan ve en ihtiyaç olan bileşenlerine odaklanılır. Ayrıntılara göz ardı ederek amacıyla bizi çözüme ulaştırmayacak her şeyi ayırarak sadece önemli öğelere dikkat çekilir. Bu basamak sayesinde odak noktamız sadece belirlenen sorunun çözüm sürecine çekilir ve problem çözme sürecinin detaylardan ayrılarak sade bir hâle getirerek hızlanmasını sağlar.[7]

Algoritma tasarımı

Hesaplamalı düşünmenin son bileşenidir. Bu basamakta belirlenen problemin adım adım nasıl çözüme ulaşacağı belirlenir. Bizi çözüme ulaştıracak olan algoritmayı tasarlarken en kısa yol ile gerçekleşecek olan çözümün belirlenmesine dikkat edilmelidir. Algoritma sadece bilgisayar ortamında kullanılan bir kavram olmamakla beraber hayatımızın her alanında bu bileşene yer verdiğimiz bilinmektedir. Günlük yaşamımızda bir işi gerçekleştirirken sırayla yapmamız gereken adımların bulunduğu her olayda algoritmadan söz edilebilir.

Algoritma tasarımı basamağının içerisinde ele alabileceğimiz başka bir bileşen olarak da hata ayıklamadan bahsedebiliriz. Hata ayıklama tasarladığımız algoritmayı deneyerek belirlediğimiz hataları düzeltme yoluyla algoritmamızı iyileştirmeye yarar sağlar.

Kaynakça

  1. ^ a b c d Özçınar, Hüseyin; Kuşçu Ebru. "Hesaplamalı Düşünmenin Öğretimine İlişkin Özyeterlik Algısı Ölçeği:Geçerlik ve Güvenirlik Çalışması" (PDF). Pamukkale University Journal of Social Sciences Institute, Sayı 30, Ocak 2018. 9 Haziran 2021 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 7 Mayıs 2021. 
  2. ^ "2012 ve 2017 Bilişim Teknolojileri ve Yazılım dersi öğretim programlarının karşılaştırılması". Güler Karaman, Umut Karaman. 7 Mayıs 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Mayıs 2021. 
  3. ^ a b "Computational Thinking: A Digital Age" (PDF). 12 Nisan 2015 tarihinde kaynağından (PDF) arşivlendi. 
  4. ^ "Bilgi İşlemsel Düşünme Becerisine Yönelik Öz Yeterlik Algısı Ölçeği: Geçerlik ve Güvenirlik Çalışması". Yasemin Gülbahar, Serhat Bahadır Kert, Filiz Kalelioğlu. 8 Şubat 2020 tarihinde kaynağından arşivlendi. 
  5. ^ a b "Bilişimsel Düşünme nedir?". 9 Mayıs 2021 tarihinde kaynağından arşivlendi. 
  6. ^ "Computational Thinking: The Developing Definitio" (PDF). Cynthia C. Selby, John Woollard. 14 Ağustos 2020 tarihinde kaynağından (PDF) arşivlendi. 
  7. ^ "Öğretim ortamlarının ve bilişsel yetilerin soyutlama performansına etkisi" (PDF). Fulya TORUN. 10 Mayıs 2021 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 7 Mayıs 2021. 

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">Yapay sinir ağları</span>

Yapay sinir ağları (YSA), insan beyninin bilgi işleme tekniğinden esinlenerek geliştirilmiş bir bilgi işlem teknolojisidir. YSA ile basit biyolojik sinir sisteminin çalışma şekli taklit edilir. Yani biyolojik nöron hücrelerinin ve bu hücrelerin birbirleri ile arasında kurduğu sinaptik bağın dijital olarak modellenmesidir. Nöronlar çeşitli şekillerde birbirlerine bağlanarak ağlar oluştururlar. Bu ağlar öğrenme, hafızaya alma ve veriler arasındaki ilişkiyi ortaya çıkarma kapasitesine sahiptirler. Diğer bir ifadeyle, YSA'lar, normalde bir insanın düşünme ve gözlemlemeye yönelik doğal yeteneklerini gerektiren problemlere çözüm üretmektedir. Bir insanın, düşünme ve gözlemleme yeteneklerini gerektiren problemlere yönelik çözümler üretebilmesinin temel sebebi ise insan beyninin ve dolayısıyla insanın sahip olduğu yaşayarak veya deneyerek öğrenme yeteneğidir.

Objective-C, C'nin üzerine yazılmış, yansımalı, nesne yönelimli bir programlama dilidir. ObjC, Objective C ve Obj-C olarak da anılır.

Seyyar satıcı problemi yöneylem araştırması ve teorik bilgisayar bilimi alanlarında incelenen bir "kombinatorik optimizasyon" problemidir.

Paralel hesaplama ya da Koşut hesaplama, aynı görevin, sonuçları daha hızlı elde etmek için çoklu işlemcilerde eş zamanlı olarak işletilmesidir. Bu fikir, problemlerin çözümünün ufak görev parçalarına bölünmesi ve bunların eş zamanlı olarak koordine edilmesine dayanır. Paralel hesaplama ile performans artar, büyük sorunlar daha az sürede çözülür ve bilimdeki gelişmeler paralel hesaplamaya gereksinim duyar.

<span class="mw-page-title-main">Benzetilmiş tavlama</span>

Benzetilmiş tavlama ya da benzetimli tavlama algoritması, eniyileme problemi için tasarlanmış olasılıksal yaklaşımlı bir algoritmadır. Diğer olasılıksal yaklaşımlar gibi en iyi çözümün en kısa zamanda üretimini hedefler. Bu sebeple, özellikle matematiksel modellerle çözülmesi maliyetli olan kombinasyonel eniyileme problemlerinde kullanılır. Benzetilmiş tavlama algoritması; elektronik devre tasarımı, görüntü işleme, yol bulma problemi, gezgin satıcı problemi, malzeme fizigi simulasyonu, kesme ve paketleme problemi, akış çizelgeleme ve iş çizelgeleme problemlerinin çözümlerinde başarılı sonuçlar vermiştir.

<span class="mw-page-title-main">Genetik algoritma</span>

Genetik algoritmalar, doğada gözlemlenen evrimsel mekanizmalara benzer mekanizmalar kullanarak çalışan eniyileştirme yöntemidir. Çok boyutlu uzayda belirli bir maliyet fonksiyonuna göre en iyileştirme amacıyla iterasyonlar yapan ve her iterasyonda en iyi sonucu üreten kromozomun hayatta kalması prensibine dayanan en iyi çözümü arama yöntemidir.

Matematikte matematiksel programlama, eniyileme ya da optimizasyon terimi; bir gerçel fonksiyonu minimize ya da maksimize etmek amacı ile gerçek ya da tam sayı değerlerini tanımlı bir aralıkta seçip fonksiyona yerleştirerek sistematik olarak bir problemi incelemek ya da çözmek işlemlerini ifade eder. Örneğin bu problem şöyle olabilir:

Matematik biliminde, özellikle yöneylem araştırması uygulamalı dalında, doğrusal programlama problemleri bir doğrusal amaç fonksiyonunun doğrusal eşitlik ve/veya eşitsizlik kısıtlamalarını sağlayacak şekilde optimizasyon yapılmasıdır. Bir optimizasyon modeli eğer sürekli değişkenlere ve tek bir doğrusal amaç fonksiyonuna sahipse ve tüm kısıtlamaları doğrusal eşitlik veya eşitsizliklerden oluşuyorsa, doğrusal (lineer) program olarak adlandırılır. Başka bir deyişle, modelin tek-amaçlı fonksiyonu ve tüm kısıtlamaları, süreklilik gösteren karar değişkenlerinin ağırlıklı toplamlarından oluşmalıdır.

<span class="mw-page-title-main">Sayısal analiz</span>

Sayısal analiz, diğer adıyla nümerik analiz veya sayısal çözümleme, matematiksel analiz problemlerinin yaklaşık çözümlerinde kullanılan algoritmaları inceler. Bu nedenle birçok mühendislik dalı ve doğa bilimlerinde önem arz eden sayısal analiz, bilimsel hesaplama bilimi olarak da kabul edilebilir. Bilgisayarın işlem kapasitesinin artması ile gündelik hayatta ortaya çıkan birçok sistemin matematiksel modellenmesi mümkün olmuş ve sayısal analiz algoritmaları burada ön plana çıkmıştır. 21. yüzyıldan itibaren bilimsel hesaplama yöntemleri mühendislik ve doğa bilimleri ile sınırlı kalmamış ve sosyal bilimler ile işletme gibi alanları da etkilemiştir. Sayısal analizin alt başlıklarına adi diferansiyel denklemlerin yaklaşık çözümleri ve özellikle veri biliminde önem taşıyan sayısal lineer cebir ile optimizasyon örnek gösterilebilir.

<span class="mw-page-title-main">Hesaplamalı fizik</span>

Hesaplamalı fizik, fizik sorunlarını çözebilmek için sayısal algoritmaların üretilmesi ve gerçeklenmesini içerir. Genelde kuramsal fizikin bir alt dalı olarak değerlendirilir ancak bazen de kuramsal ve deneysel fizik arasında orta bir dal olarak da düşünülür.

<span class="mw-page-title-main">Evrimsel algoritma</span>

Evrimsel algoritma (EA), yapay zeka oluşturmada evrimsel bilgisayımın bir alt kümesi olup meta bulucu optimizasyon algoritması tabanında jenere edilmiş popülasyondur. Evrimsel algoritma, biyolojik evrimden esinlenerek üreme, mutasyon, rekombinasyon ve doğal seçilime benzer mekanizmalar kullanır. Optimizasyon problemlerinin aday çözümleri bir popülasyondaki bireyleri temsil eder ve seçilim değeri fonksiyonları çözümlerin içinde "yaşadığı" çevreyi belirler. Popülasyonun evrimi yukarıdaki operatörlerin tekrarlanan uygulaması sonrasında gerçekleşir. Yapay evrim (YE), başlı başına farklı evrimsel algoritmalar içeren bir süreci anlatmaktadır; EA'ların her biri, YE'e katılım yapan ayrı bir bileşendir.

Matematikte, özellikle soyut cebir ve uygulamalarında, ayrık logaritma, genel logaritmanın grup kuramındaki karşılığıdır. Genel olarak bakıldığında, loga(b) ifadesi, ax = b ifadesinin gerçel sayılar kümesi içindeki çözümlerine karşılık gelir. Benzer olarak, g ve h sonlu devirli grup G'nin elemanları olduğunda, gx = h ifadesinin çözümü olan x sonuçlarına h'nin g tabanındaki ayrık logaritması denir.

Yanal düşünme, problemleri endirekt ve yaratıcı yaklaşımla, hemen belirmeyen ve geleneksel adım adım mantıkla elde edilemeyen gerekçe kullanarak çözümü. Yanal düşünme, doğal, mantıksal ve matematiksel düşünme biçimine karşı geliştirilmiş alternatif düşünce biçimidir. Terim Edward de Bono tarafından 1967'de türetilmiştir. 

Hesaplamalı kimya, kimya problemlerini çözmeye yardımcı olmak için bilgisayar simülasyonunu kullanan bir kimya dalıdır. Moleküllerin, katıların yapı ve özelliklerini hesaplamak için verimli bilgisayar programlarına dahil edilmiş teorik kimya yöntemlerini kullanır. Bu yöntemlerin kullanılmasının nedeni, hidrojen moleküler iyonu ile ilgili nispeten yeni sonuçlar dışında, kuantum çok-gövdeli(many-body) problemlerin analitik olarak çözülemez oluşudur. Hesaplama sonuçları normal olarak kimyasal deneylerle elde edilen bilgileri tamamlarken, bazı durumlarda gözlemlenmeyen kimyasal olayları da tahmin edebilmektedir. Yeni ilaç ve materyallerin tasarımında yaygın olarak kullanılmaktadır.

<span class="mw-page-title-main">Hesaplamalı karmaşıklık teorisi</span> hesaplama problemlerini kendi zorluklarına göre sınıflandırmaya ve bu sınıfları birbirleriyle ilişkilendirmeye odaklanan teorik bilgisayar bilimlerinde hesaplama teorisinin bir dalı

Hesaplamalı karmaşıklık teorisi, hesaplama problemlerini kendi zorluklarına göre sınıflandırmaya ve bu sınıfları birbirleriyle ilişkilendirmeye odaklanan teorik bilgisayar bilimlerinde hesaplama teorisinin bir dalıdır. Bir hesaplama probleminde prensip, algoritmada belirtilen matematiksel adımların mekaniğe uygulanması yoluyla probleme yaklaşmaktır. Ve bununla beraber hesaplama karmaşıklık teorisindeki problemler, eşdeğer bir bilgisayar tarafından çözülebilen ortamlarda kullanılır.

<span class="mw-page-title-main">Bilimsel hesaplama</span>

Bilimsel hesaplama karmaşık problemleri anlamak ve çözmek için gelişmiş bilgi işlem yeteneklerini kullanan çok disiplinli bir alandır. Hesaplamalı bilim üç farklı unsuru birleştirmektedir:

<span class="mw-page-title-main">Evrimsel hesaplama</span>

Bilgisayar bilimlerinde, evrimsel hesaplama; kullanılan algoritmaların türüne göre tanımlanabilen yapay zekanın bir alt alanıdır. Evrimsel algoritmalar olarak adlandırılan bu algoritmalar, Darwinci ilkeleri benimsemek üzerine kurulmuştur.

Bilgisayar bilimi, matematik, ekonomi ve biyoinformatikte dinamik programlama karmaşık bir problemi tekrarlanan alt problemlere bölerek, her bir alt problemi yalnız bir kere çözüp daha sonra bu çözümü kaydederek karmaşık problemin çözümünde kullanma yöntemidir. Bir alt problem çözüldükten sonra tekrar çözülmesi gerektiğinde daha önce kaydedilen çözüm kullanılarak zaman kazanılır, ancak alt problemlerin kaydedileceği daha fazla alana gereksinim duyulur. Yani dinamik programlama algoritmaları alandan ödün verilerek zamandan kazanılmasını sağlar. Dinamik programlama algoritmaları optimizasyon problemlerinin çözümünde yaygın olarak kullanılır.

Problem çözme, problem çözücü için açık bir çözüm yöntemi bulunmadığında, belirli bir durumu, bir sonuç durumuna dönüştürmeye yönelik bilişsel süreçtir.

<span class="mw-page-title-main">Analiz</span> belirli bir türdeki mevcut verilere analitik yöntemler uygulama, karmaşık bir konuyu veya maddeyi daha iyi anlamak için daha küçük parçalara ayırma süreci

Analiz, karmaşık bir konuyu veya maddeyi daha iyi anlamak için daha küçük parçalara ayırma sürecidir. Teknik, matematik ve mantık çalışmalarında Aristoteles'ten önce uygulanmıştır.