Professional Documents
Culture Documents
Programlama
(Blind Copy)
Özet: Bilgisayar programlama, farklı becerilerin aynı anda kullanılmasını gerektiren bir
problem çözme ve üretim sürecidir. Bu becerileri kazandırmak için gerekli programlama
eğitimi ve öğretimi farklı kurum ve kademelerde kimi zaman zorunlu dersler olarak, kimi
zaman da isteğe bağlı kurslar şeklinde verilmektedir. Eğitimlerde başarıyı etkileyen olası
faktörler arasında öğrencilerin programlamaya karşı tutumu, bilgisayar (yada bilişim
teknolojileri) okuryazarlığı konusunda ön yeterlikleri ve seçilen dil ile amaçlanan
becerilerin uyumu sayılabilir. Bu faktörlerin biri ya da bir kaçı öğrencilerin programlama
konusundaki başarılarını etkilediği gibi, bu becerilerin farklı alanlarda kullanılmasını da
engellemektedir. Örneğin kullanılan dilden bağımsız olarak programlama becerisi,
mantıksal düşünme ve algoritma oluşturma gibi bir çok alanda problem çözmeye yönelik
becerileri ve hatta analitik düşünme becerisini de kazandırabilir.
Bu çalışmada, programlama becerisi kazandırmak, bir programlama dilinin öğrenimini
kolaylaştırmak, motivasyonu yükseltmek ve başarıyı arttırmak için öğretim sürecinde
robot programlama tekniklerini kullanan bir model önerilmektedir. Robot programlama
dünyada ve son yıllarda Türkiye’de de farklı amaçlarla yapılan etkinliklerdir. Robot
programlama etkinlikleri, programlama sürecini daha ilgi çekici hale getirmekte, yapılan
öğretim etkinliklerinin öğrenciler tarafından daha anlamlı algılanmasını sağlamakta,
rekabet ve takım çalışması gibi yeni öğrenme kuramlarına dayanan yöntemlerin
kullanılmasına olanak sağlamaktadır. Özellikle son yıllarda bir çok öğrenci için erişimi
kolaylaşan ve ucuzlayan robotların programlama alanında gerekli becerilerin
kazanılmasına önemli katkılar sağlayacağı düşünülmektedir.
1
In this study, in order to provide programming skills, to make learning programming
language easy, to raise motivation and increase the success of students, a model using
robotic programming techniques is proposed. Robotic programming activities makes
process of programming interesting, render teaching activities more meaningful and
concerete for students, allow instructional methods based on new educational theories to
be applied like competition and team working. It is thought that, robots which have been
becoming cheaper and more accessible by the students in recent years will contribute to
gain the skills necessary for programming.
2
derste edinilmesi zor olan bir çok beceriye
2.1. Farklı Öğretim Kademeleri ihtiyaç duymasıdır. Bir programcının iyi
bir program geliştirebilmesi için dilden
Okudukları programlar gereği bilişim bağımsız olarak çözüm için bir algoritma
alanında meslek sahibi olacak bilgisayar geliştirmesi, daha sonra o algoritmaya
mühendisleri, bilgisayar programcıları, yönelik kodları yazması, olası hataları
bilgisayar öğretmenleri ve diğer alan düzeltmesi ve en sonunda ürünü ortaya
öğrencileri üniversitelerin akademik çıkarması gerekmektedir. Kimi büyük
programları gereği programlama yazılım geliştirme projelerinde bu
derslerini almaktadırlar. Türkiye’de ilk ve adımların farklı takımlar tarafından
orta öğretimde verilen bilgisayar yürütüldüğünü düşünürsek, bu becerilerin
okuryazarlığı derslerinin bazı ne kadar önemli olduğu anlaşılabilir. Bu
aşamalarında da programlama yer nedenle, eğitim programları
almaktadır. Meslek ve teknik liselerde ise incelendiğinde programcılık becerilerinin
uzun yıllardır bilgisayar bölümlerinde birkaç derste kazandırıldığı
programcılık eğitimi verilmektedir. görülmektedir. Genellikle ilk derslerde
Dünyada ise ilköğretim eğitim programlama dilinin kendisinden çok
programında 10. ve 11. sınıflardaki algoritma geliştirmeye yönelik içerik
bilgisayar derslerinde programlama sunulmaktadır. Daha sonraki derslerde
öğrenimi yer almaktadır [1]. hedeflenen dil ile problem çözmeye
yoğunlaşılmaktadır.
2.2. Klasik Öğretim Teknikleri
2.3. Programlama Sürecinde Başarı
Çok farklı programlama dilleri olduğu Faktörleri
halde, bu dillerin eğitimi üniversitelerde
veya liselerde çok benzer öğretim Programlama dili derslerinde başarıyı
teknikleri ile verilmektedir. Bu teknik bir etkileyen bir çok faktör vardır. Bunlardan
uzman eşliğinde bilgisayar başında bire bazıları motivasyon , programlamaya
bir kod yazarak dili öğrenmeye karşı tutum, programlama dilinin
çalışmaktır. Bu “uygulama” ağırlıklı karmaşıklığı [2] ve öğretim yöntem ve
etkinliklere genellikle teorik bilginin düz tasarımı olarak sıralanabilir [3].
anlatım veya sunum yöntemi ile verildiği
ön derslerle başlanır. Her hafta önce Programlama eğitimi sırasında düşük olan
öğrenilecek konu ile ilgili sunum ya da motivasyon, öğrencinin zamanla dersten
anlatım yapılır, ardından program satır soğumasına ve çaba sarf etmemesine yol
satır yazılıp açıklanarak öğrencilere açabilir. Programlama sürecinin uzun
gösterim yapılır, daha sonra da saatler boyunca bilgisayar önünde
laboratuvarlarda öğrencilerin bireysel çalışmayı gerektiren bir iş olduğunu
olarak kod yazacağı etkinlikler uygulanır. düşünen bir çok öğrenci, bu süreçleri
Dersler 2 ya da 3 saat teorik dersten sonra sıkıcı bulabilir.
yine 2 ya da 3 saatlik uygulama saatleri
şeklinde 14 - 15 haftalık dönemlerde Programlamaya karşı olumsuz tutum ve
“gösterip-yaptırma” tekniği kullanılarak algılar, diğer derslerde de olabileceği gibi,
verilir. Derslerin değerlendirmeleri yazılı başarıyı engelleyen önemli bir faktördür.
sınavlar, uygulama sınavlar ve proje Programlama dili eğitiminin kendi
geliştirme süreçleri ile yapılmaktadır. kariyerleri için önem taşımadığını
düşünen bir çok öğrencide de yine
Programlama derslerinin hiç biri tek olumsuz tutumlar yer almaktadır. Örneğin
başına öğrencinin iyi bir programcı matematik öğretmeni olacak bir aday dört
olabilmesi amacını taşımamaktadır. yıllık üniversite eğitimi sırasında 3 adet
Bunun sebebi, programlamanın, tek bir programlama ders almaktadır. Bu dersleri
3
kendi alanlarıyla alakasız olarak gören bir Pek çok programlama dili ve
çok öğrenci programlama dili derslerine programlama mantığının öğretilmesindeki
karşı ilgisiz ve isteksiz olarak devam güçlükler göz önüne alınarak uygulanmış
ediyor olabilir. Bunlara ek olarak farklı yaklaşımlar vardır. Örneğin,
bilgisayar ve teknoloji kullanımına kullanılan dilin kendisinin “zor” olmasına
yönelik genel tutumlar da programlama karşı daha basit diller (mini language) [4]
dili derslerinde etkilidir. önerilmiştir. Bu tür diller yazılım
geliştirmekten çok programlama dili
Eğitim için seçilen programla dili eğitimi için geliştirilmiş, basit
başarıyı etkileyebilir [4]. Programlama komutlardan ve farklı etkileşim teknikleri
dilleri, çoğunlukla, “öğrenilmeleri kolay ile donatılmış dillerdir.
olsun” kaygısıyla geliştirilmemişlerdir
[2]. Bu nedenle özellikle ilk programlama Başka bir yaklaşım konunun farklı
dili derslerinde, seçilen dilin karmaşıklığı derslerde farklı dilleri ve öğretim
öğrenmeyi güçleştirebilir. İlk derslerde tekniklerini kullanarak öğretilmesi
asıl amaç dilden bağımsız olarak olabilir.
algoritma mantığının öğretilmesidir. Daha
sonra istenilen dile özgü deneyim Sonuçta, programlama dili öğretilirken
kazanılması beklenir. Ancak öğrenciler çoğu işlem ve kavram öğrenciler
geliştirdikleri algoritmaları denemek için açısından soyut kalmakta ve öğrenciler
de bir programlama dili kullanmalıdırlar. öğrendikleri bilgileri somutlaştırmakta
Diğer bir ifade ile, seçilen bir zorlanmaktadır-lar. Robot programlama
programlama dilinin yazım kurallarına bu sürecin somut-laştırılmasını
uygun komutlar yazılır ve çalıştırılır. Eğer sağlayacak bir yaklaşım olabilir.
dilin yazım kuralları çok katı ise, yazım
ortamı öğrenciye anlık destek vermiyorsa, Robot programlama konusunda farklı
ya da hata ayıklama araçları gelişmemiş boyutta robotlardan ve uyumlu dillerden
ise, öğrenci kodlama aşamasındaki bahsedilebilir. Bu çalışmada ülkemizde
zorluklardan dolayı algoritmaya temin edilmesi kolay bir platform olan
odaklanamayabilir. Analiz etmekten çok Arduino™ [5] robot ürünleri örnek olarak
ezberlemenin ve hatırlamaya çalışmanın kullanılmıştır.
arasında vaktini harcar, sonuç olarak
motivasyonu ve başarısı düşebilir. Arduino bir giriş/çıkış (input/output) kartı
ve Java tabanlı bir dilin yer aldığı
Klasik öğretim teknikleri de programlama geliştirme ortamından oluşan bir fiziksel
başarısını etkileyebilir [2]. Programlama programlama platformudur. Arduino tek
başından sonuna farklı bilgi ve becerilerin başına çalışan etkileşimli nesneler
kullanılması gereken bir süreçtir. geliştirmek için kullanılabileceği gibi
Öğrenciler daha önceden var olan bilgisayar üzerinde çalışan yazılımlara da
akademik alışkanlıklarından derste (ör: Adobe Flash) bağlanabilir. Arduino
yeterince yararlanamayabilir. Ezberi çok IDE kod editörü ve derleyici olarak görev
iyi olan bir öğrenci sadece komutları yapan, aynı zamanda derlenen programı
hatırlayarak problemi çözemez. Okuması karta yükleme işlemini de yapabilen, her
kuvvetli bir öğrenci de yeni bir problemde platformda çalışabilen Java programlama
algoritma geliştiremeyebilir. Kuramsal dilinde yazılmış bir uygulamadır.
bilginin uygulama ile “problem çözme” Geliştirme ortamı, sanatçıları
becerisi haline gelmesi bir çok öğrencide programlamayla tanıştırmak için
ulaşılmayan bir hedef olarak kalabilir. geliştirilmiş Processing™ [6]
yazılımından yola çıkılarak geliştirilmiştir
3. Öneri: Robot Programlama [8]. Açık donanım ve açık kaynak kodlu
bir mimariye sahip olan Arduino
4
kullanımı için hazır üretilmiş kartlar satın
alınabilir, ayrıca Arduino donanım
referans tasarımları Creative Commons
dağıtılmaktadır ve Arduino web
sitesinden indirilebilir. Aşağıda tasarım ve
uygulama aşamalarından kısaca
bahsedilmiş olan örnek uygulama fiziksel
platformların çalışma prensibini
özetlemektedir.
5
Erişim Tarihi 29 Aralık 2010.
http://www.csta.
acm.org/Curriculum/sub/CurrFiles/K-
12ModelCurr2ndEd.pdf, (2003)
5. Kaynaklar