Pprogramlama öğrenme ortamları için geliştirilen programlama tekniklerinin analizi
ANALYSIS OF DEVELOPED PROGRAMMING TECHQNIQUES FOR PROGRAMMING LEARNING ENVIRONMENTS
Yazar: SEFA ARAS
Danışman: DR. ÖĞR. ÜYESİ EYÜP GEDİKLİ
Karadeniz Teknik Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2018
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
Programlama öğrenimine erken yaşlarda başlanmasına yönelik yapılan çalışmaların son yıllarda arttığı gözlenmektedir. Bireylerin üst düzey bilişsel becerilerini geliştiren programlama, günümüzde herkes için edinilmesi gereken bir yetkinlik olarak görülmektedir. Mevcut öğrenme ortamlarında genellikle görsel bileşenler kullanılarak programlama yapılmaktadır. Ancak yapılan çalışmalarda görsel bileşenlerle programlama yapmanın gerçek programlama dillerine geçişe katkısı az olduğu sonucuna varılmaktadır. Bu sebeple bu çalışmada herkesin programlama öğrenebileceği yeni bir ortam geliştirilmiştir. Programlama öğrenimini kolaylaştırmak ve gerçek programlama dillerine geçişe katkı sağlamak için basit sözdizimi olan gerçek programlama dillerine benzeyen yeni bir programlama dili tanımlanmıştır. Bu dil sözcüksel, sözdizimsel ve semantik analiz aşamaları ile anlam ve dilbilgisi açısından kontrol edilmektedir. Belirtilen derleyici tasarım teknikleri sonlu durum makineleri kullanılarak uygulanmaktadır. Oluşturulan dilin çözümlenmesi ve anlamlandırılması düzenli ifadeler ile gerçekleştirilmektedir. Kullanıcıya serbest bir çalışma alanı yerine, programlama kavramlarını kapsayan görevlerin bulunduğu bir ortam sunulmaktadır. Görev tabanlı olan bu ortam akıllı geri bildirimleri ile kullanıcıyı yönlendirerek başarılı bir öğrenme süreci hedeflemektedir. Programlama öğrenme ortamı bilgisayar bilimleri ve mühendislik teknikleri kullanılarak açık kaynak kodlu olarak geliştirilmiş olup bu tür ortam geliştirmek isteyen araştırmacılara çatı olma niteliği taşımaktadır.

Abstract:
It has been observed that the studies for starting programming learning at an early age have increased in recent years. Programming that enhances the high level cognitive skills of individuals is seen as a competency that must be acquired for everyone nowadays. In current programming learning environments, programming is usually done using visual components. However, it is emphasized that there is little contribution to the transition to actual programming languages by programming with visual components in the studies carried out. For this reason, a new programming learning environment has been developed in this study in which everyone can learn programming. To facilitate programming learning and contribute to the transition of actual programming languages, a new programming language is described which is simple syntax and similar to real programming languages. This language is controlled in terms of meaning and grammar with lexical, syntax and semantic analysis steps. The specified compiler design techniques are implemented using finite state machines. Analysis of the created programming language is performed by regular expressions. Instead of providing a free workspace for the user, an environment with quests covering programming concepts is presented. This quest based environment aims at the successful learning process by guiding to the user through feedbacks. The programming learning environment has been developed as an open source software by using computer science and engineering techniques and it is a framework for researchers seeking to develop a similar environment.