Programlama öğrenme performansına etki eden bilişsel faktörlerin belirlenmesi ve programlama eğitimi için bir model önerisi
Determining cognitive factors in learning computer programming and proposal of a model for computer programming instruction
Yazar: EŞREF SEĞMEN
Danışman: PROF. DR. BEKİR TEVFİK AKGÜN ; PROF. DR. YAVUZ AKPINAR
Okan Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Doktora, 2016
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: Bilgisayar programlama = Computer programming

Özet:
Bu çalışma, bilgisayar programlama öğrenmeye etki eden bilişsel etmenler belirlenerek, bu etmenler temelinde bir programlama öğretim modeli geliştirmeyi amaçlamıştır. Çalışmada önce uzman ve deneyimsiz bilgisayar programcılarının problem çözme davranışları incelenmiş, sonra bilgisayar programlama sürecinde işe koşulan kavramsal ve işlemsel bilgiler literatür ışığında incelenmiş, bilgisayar programlama etkinliğinde  altı bilişsel yapının işe koşulduğu gözlenmiştir. Söz konusu bilişsel yapılar şunlardır: "Algoritmik Düşünme", "Problem Çözme", "Ardışık ve Döngüsel Düşünme", "Örüntü Tanıma", "Soyut Düşünme Soyutlama ve Genelleme", "Mantıksal Çıkarım ve Akıl Yürütme". Bu yapıları ölçümleyen programlamayla ilgili bir bilişsel hazır bulunuşluk testi, bu yapılar üzerine kurulu bir bilgisayar programlama öğretim,  ölçme ve değerlendirme seti geliştirilmiştir. Bu çalışma sırasında üretilen öğretim araçları programlama öğrenmeye yeni başlayan üniversite öğrencileriyle sınanmıştır.
Yapılan öğretim çalışması, laboratuvar ortamında, kod bloklarıyla programlamayı temele alan Blockly altyapısı üzerine kodlanarak üretilen araçlarla gerçekleştirilmiştir. Çalışma laboratuvar ortamında haftada dört saat olarak beş hafta sürmüş ve 44 öğrenci çalışmanın tümüne katılmıştır. Öğrenciler programlama etkinliğinde işe koşulan altı bilişsel yapıyla ilişkili olarak düzenlenmiş toplam 45 etkinliği geliştirilen düzenek içinde öğretmen yardımıyla tamamlamışlardır. Öğrencilerle yapılan çalışma öncesi ve sonrası öğrencilere programlamayla ilgili bilişsel hazır bulunuşluk testi ve programlamaya ilişkin öz yeterlilik ölçeği uygulanmıştır. Ayrıca öğrencilere programlama başarı testi deney sonrası uygulanmıştır.
Çalışma sonunda programlamaya bilişsel hazır bulunuşluk testi ve programlamaya ilişkin öz yeterlilik ölçeği uygulamalarından öğrencilerin elde ettikleri puanlar istatistiksel olarak analiz edilmiştir. İlgili testlerin ayırt edicilik özelliklerine sahip olduğu gözlenmiştir. Hazır bulunuşluk testi alt boyutlarının birbirleriyle ilişkili olduğu gözlenmiştir. Ayrıca programlama başarı ön ve son testleri arasında son test lehine anlamlı fark tespit edilmiştir. Bununla birlikte, uygulanan bilişsel hazır bulunuşluk testi alt boyutlarındaki yetkinliklerin tümünün önerilen programlama öğretimi çalışmasıyla geliştirilebildiği gözlenmiştir. Yapılan kuramsal ve laboratuvar ortamındaki uygulamalı çalışmalardan ortaya çıkan sonuçlar tezin son bölümünde yorumlanmış ve tartışılmıştır.

Abstract:
This study aimed to find out cognitive factors influencing computer programming, and develop a model for programming instruction on the basis of cognitive factors. The study, first, investigated novice and expert computer programmers' problem solving behaviours. It then reviewed the literature about conceptual and procedural knowledge employed in the process of computer programming. The investigation and the review revealed that six different cognitive constructs are used in computer programming activities; these constructs are "algorithmic thinking", "sequential and circular thinking", "pattern recognition", "problem solving", "abstraction and generalisation" and "logical thinking and reasoning". The study then developed a cognitive readiness test for programming to measure those six constructs, proposed and tested a set of tools for computer programming instruction, and constructed a set of measurement and evaluation tool. 
The developed tools for programming instruction, based on ideas of programming with ready-code blocks, were tested by a group of university students who just started to learn computer programming. The students (n=44) used the tools and facilities attached to the Blockly platform in a computer laboratory for four hours per week during a scheduled period of five weeks. The students completed a sum of 45 activities about six different cognitive constructs used in computer programming. An instructor provided additional help and guidance to the students during the process of instruction. A cognitive readiness test for programming and a self-efficacy scale for computer programming were both administered to the students before and after the instructional activities. The statistical analysis of the data collected by these two tests showed that both tests have remarkable discrimination features, and six sub-constructs of the cognitive readiness test for programming meaningfully correlate with each other.
Also, a programming achievement test, administered as a post test, showed that the instructional tools and guidance helped students to learn some aspects of programming. Further statistical analysis demonstrated that the instructional tools and guidance were able to develop the students' all six cognitive constructs to be used in computer programming activities. The results of the theoretical analysis and laboratory experiments with the students are commented and discussed in the final section.