Programlama Dilleri Öğretimine Bir Model Önerisi: Robot Programlama



Benzer belgeler
Programlama Dilleri Öğretimine Bir Model Önerisi: Robot Programlama

T.C. MARDİN ARTUKLU ÜNİVERSİTESİ MİDYAT MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI (UZAKTAN ÖĞRETİM) ÖNLİSANS PROGRAMI Eğitim Öğretim Yılı

BİLİŞİM TEKNOLOJİLERİ ALANI THE INFORMATION TECHNOLOGIES DEPARTMENT

MÜFREDAT DERS LİSTESİ

INTEL TABANLI ÇÖZÜMLERLE BİLİMSEL EĞİTİME GÜÇ KATMA FIRSATI

Herkes bir yerden başlar...

Temel Bilişim Eğitiminin Yükseköğretimdeki Yeri: Analizi

EĞİTİM FAKÜLTESİ Ortaöğretim Fen ve Ortaöğretim Fen ve ENSTİTÜSÜ

Öğrenim Kazanımları Bu programı başarı ile tamamlayan öğrenci;

Temel Bilişim Eğitiminin Yükseköğretimdeki Yeri: Analizi

Bilgisayarlara ve Programlamaya Giriş (COMPE 101) Ders Detayları

İleri Java Programlama (COMPE 515) Ders Detayları

BİLİŞİM TEKNOLOJİLERİ ALANI BİLGİSAYAR PROGRAMLAMA TEKNİKLERİ KURS PROGRAMI

Ders Adı : Nesne Tabanlı Programlama-I Ders No : Teorik : 3 Pratik : 1 Kredi : 3.5 ECTS : 4. Ders Bilgileri.

Algoritma Kodlama Robotik 3D Tasarım 3D Printing

AVRASYA UNIVERSITY. Dersin Verildiği Düzey Ön Lisans (X ) Lisans ( ) Yüksek Lisans( ) Doktora( )

İNÖNÜ ÜNİVERSİTESİ MALATYA MESLEK YÜKSEKOKULU DERS TANITIM FORMU. Kredisi AKTS Eğitim Dili Tipi: Zorunlu/ Saat

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Yazılım Mühendisliğinin Temelleri (SE 100) Ders Detayları

Yaşam Temelli Öğrenme. Yazar Figen Çam ve Esra Özay Köse

EĞİTİM FAKÜLTESİ Ortaöğretim Fen ve Ortaöğretim Fen ve ENSTİTÜSÜ

Bilgisayarlara ve Programlamaya Giriş (COMPE 101) Ders Detayları

ÖZGEÇMİŞ. Yardımcı Doçent Bilgisayar ve Öğretim Teknolojileri Eğitimi Niğde Ünv Uluslararası Hakemli Dergilerde Yayınlanan Makaleler

Üniversitelerde Temel Bilişim Eğitimi Nereye Gidiyor? : Analizi

Akdeniz Üniversitesi

FEN ve TEKNOLOJİ ÖĞRETİMİNDE. Neden işbirliği? Neden birbirimize yardım ederiz? İŞBİRLİKLİ ÖĞRENME İŞBİRLİKLİ ÖĞRENME

Bilgisayarlara ve Programlamaya Giriş (COMPE 101) Ders Detayları

Educational On-line Programmes for Teachers and Students

Özel Öğretim Yöntemleri I

TR2009/ /409 Benim için İnsan Hakları «Human Rights for Me» Body of Knowledge for AC/HR Education

... ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI

Sınıf Öğretmenliği Anabilim Dalı Yüksek Lisans Ders İçerikleri

EĞİTİM Doktora Orta Doğu Teknik Üniversitesi, Ankara Eğitim Fakültesi, Bilgisayar Öğretimi ve Teknolojileri Bölümü

FEN ÖĞRETİMİNDE LABORATUVAR YAKLAŞIMLARI. Burak Kağan Temiz

1) Programlama dillerinin temel kavramlarını öğrenir. 1,2,4 1

Öğrenim Kazanımları Bu programı başarı ile tamamlayan öğrenci;

İNÖNÜ ÜNİVERSİTESİ MALATYA MESLEK YÜKSEKOKULU DERS TANITIM FORMU. Kredisi AKTS Eğitim Dili Tipi: Zorunlu/ Saat

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

1.1. Yazılım Geliştirme Süreci

İTÜGVO İZMİR BİLİŞİM TEKNOLOJİLERİ

PROGRAMLAMA EĞĠTĠMĠ. Scratch ile Programlama, Elektronik Uygulamalar ve Robotik Eğitimi

Öğrenme Psikolojisi (PSY 308) Ders Detayları

BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ (5 VE 6. SINIFLAR) Öğretim Programı Tanıtım Sunusu

Eğitsel Oyun Projesi Raporu. Otizm Kavram Öğretimi Mustafa UZUN

Eleştirel Okuma (İngilizce) (KAM 332) Ders Detayları

Uzaktan Eğitim ve E-Öğrenme (ISE 424) Ders Detayları

İSTANBUL RUMELİ ÜNİVERSİTESİ MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI 1.SINIF 2.YARIYIL İNTERNET PROGRAMCILIĞI II DERS İZLENCESİ

Bilgisayar Programlama (COMPE 102) Ders Detayları

Object Oriented Programming Ders İzlence Formu

BİLİŞİM TEKNOLOJİLERİ ALANININ GÜNÜMÜZDEKİ DURUMU VE GELECEĞİ

Bilgisayar Programlama (COMPE 102) Ders Detayları

EĞİTİM-ÖĞRETİM YILI MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ (İNGİLİZCE) BÖLÜMÜ DERS PROGRAMINDA YAPILAN DEĞİŞİKLİKLER

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir.

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

İNGİLİZCE ÖĞRETMENLİĞİ PROGRAM BİLGİLERİ

Nesneye Yönelik Programlamaya Giriş (MATH247) Ders Detayları

T.C. ERCİYES ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ EĞİTİM ÖĞRETİM YILI DERS KATALOĞU

ÖGRET E İ T M İ M A RACI IO LA L RAK BİL İ G L İS İ A S Y A A Y RLA L R (BDE)

Programlama Dilleri (COMPE 325) Ders Detayları

Lise Göztepe Anadolu Kız Meslek Lisesi Bilgisayar Bölümü, İzmir,

Eğitim Fakülteleri ve İlköğretim Öğretmenleri için Matematik Öğretimi

Yrd.Doç.Dr. AYŞE ELİTOK KESİCİ

Fundamentals of Object-Oriented Programming (COMPE 723) Ders Detayları

Akdeniz Üniversitesi

Yapay Zeka (MECE 441) Ders Detayları

T.C. YEDİTEPE ÜNİVERSİTESİ ELEKTRİK VE ELEKTRONİK MÜHENDİSLİĞİ YÜKSEK LİSANS PROGRAMI BİLGİLERİ

Bilgisayar Bilimlerine Giriş (MCS115) Ders Detayları

Bilişim Garaj Akademisi Nedir?

ÖZGEÇMİŞ. : Eğitim Fakültesi

DÜZCE ÜNİVERSİTESİ CUMAYERİ MESLEK YÜKSEKOKULU ÖN-LİSANS PROGRAMI Bahar Yarıyılı

Duyum ve Algı II (PSY 306) Ders Detayları


WEB PROGRAMCISI A GÖREVLER. Web programcısı;

DOKUZ EYLÜL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ DEKANLIĞI DERS/MODÜL/BLOK TANITIM FORMU. Dersin Türkçe Adı: ENDÜSTRİDE BİLGİSAYAR UYGULAMALARI

Açık ve uzaktan öğrenmede destek hizmetleri

Proje Oryantasyon (SE 493) Ders Detayları

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Bilgisayar Programlama I (COMPE 113) Ders Detayları

Yazılım İnşası ve Evrimi (SE 556) Ders Detayları

BİLİŞİM TEKNOLOJİLERİ GÖRSEL PROGRAMLAMA MODÜLER PROGRAMI (YETERLİĞE DAYALI)

İLERİ SEVİYE BİLGİSAYARLI SAYISAL KONTROLLÜ (CNC) DİK İŞLEME TEZGÂHI KULLANMA ve PROGRAMLAMA EĞİTİMİ KURS PROGRAMI

Başlangıç: 3 Temmuz ROBOTİK KODLAMA ELEKTRONİK ve 3B TASARIM EĞİTİMİ

WEB PROGRAMMING Ders İzlence Formu. Kodu: CSE300 Dersin Adı: WEB PROGRAMMING Toplam Saat İngilizce Zorunlu Derse Kabul Koşulları:

SOFTWARE ENGINEERING Ders İzlence Formu. Kodu:CSE400 Dersin Adı: SOFTWARE ENGINEERING Toplam Saat

Bilişsel Psikolojide Seçme Konular (PSY 323) Ders Detayları

Akdeniz Üniversitesi

T A R K A N K A C M A Z

ROBOTİK KODLAMA ELEKTRONİK ve 3B TASARIM EĞİTİMİ

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS

Programlama Nedir? Bir bilgisayar bilimcisi gibi düşünmek ve programlama ne demektir?

Arş. Gör. Dr. Mücahit KÖSE

Mobil Uygulama Geliştirmeye Giriş (ISE 407) Ders Detayları

ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI

Duyum ve Algı I (PSY 305) Ders Detayları

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Bilişsel Psikoloji I (PSY 311) Ders Detayları

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

PROGRAM BİLGİLERİ. Amaç:

BİLİŞİM TEKNOLOJİLERİ

Transkript:

Programlama Dilleri Öğretimine Bir Model Önerisi: Robot 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. Anahtar Kelimeler: Robot programlama, programlama becerisi, programlama dilleri öğretimi A Model Proposed for Teaching Programming Languages: Robotic Programming Abstract: Computer programming is a problem solving and production process where different skills are executed simultaneously. Gaining the skills necessary for computer programming is possible in various schools and grades via either compulsory courses or voluntarily courses. Among the possible factors affecting the success in those tranings, students attitudes and perceptions toward the programming, adecuacy in computer (or information technologies) literacy and consistency of the selected programming language and goals of the training. One or more of these factors may both affect the success of students in programming and impede the application of those skills in other field. For example, independent from the programming language selected, programming can provide problem solving skills like logical thinking and algoritm construction, and analitic thinking abilities. 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. Keywords: Robotic Programming, programming skills, teaching programming languages 1. Programlama Dili Nedir? Elektronik cihazların farklı amaçlara hizmet edebilmek için programlanmaları gerekir. Programlama dili, bu amaç için hazırlanmış özel kelime ve sembollerden oluşan komutlar bütünüdür. Yazılan komutlar sonucunda bilgisayarın belli bir iş yapmasını sağlayan programlar, yani yazılımlar, ortaya çıkar. Farklı bilgisayarlar ve teknolojiler için oluşturulmuş neredeyse sayılamayacak kadar çok programlama dili mevcuttur. Her bir dilin kendine özgü deyim ve yazım kuralları ile amaca uygun komutlar oluşturulur ve çalıştırılır. Dile özgü komutların yazılması süreci de kodlama ya da programlama, ortaya çıkan son ürün ise program ya da uygulama olarak adlandırılır. 2. Programlama Dilleri Öğretimi Programlama dilleri, bilgisayarın ilk ortaya çıkışından itibaren var olmuşlardır. Özellikle bilgisayarların kişisel olarak satın alınabilir hale gelmesinden sonra (1980 ve sonrası) artan bireysel olarak program yazma isteğiyle birlikte, programlama dili eğitimi farklı eğitim kurumlarında ve kademelerinde verilmeye başlanmıştır. Günümüzde programlama dilini öğrenmek isteyen veya uzmanlık alanları gereği bilmek zorunda olan kişiler, farklı kurum ve kademelerde bu eğitimi almaktadırlar. Dünyada ve Türkiye de eğitimin ilk kademesinden (ilköğretim) son kademesine kadar farklı öğretim programlarında programlama dili dersleri verilmektedir. Öte taraftan özel kurslar ile kişilere ihtiyaçları doğrultusunda programlama dersleri de verilmektedir. Verilen eğitimlerin amaçları farklı olabilmektedir. Farklı düzeylerde programlama ile oluşturulan üründen çok, problem çözme becerilerinin gelişmesi için de dersler verilmektedir. Örneğin üniversitelerde ve meslek liselerinde programlamacı olmak için gerekli beceriler kazandırılmaktadır. Bu derslerin büyük bir çoğunluğu bilgisayar laboratuvarlarında dersin sorumlusu tarafından, önce düz anlatım ardından da uygulama etkinlikleri ile verilmektedir. Kişilerin tek başlarına kendi olanakları ile programlama dili öğrenme şansları da vardır, ancak genelde donanım ve yazılım gereksinimi olmasından veya ön yeterlilik olan diğer bazı becerilere sahip olunmamasından dolayı programlama dilleri, sınıf ve laboratuvarda verilen dersler ile daha etkili bir şekilde öğrenilmektedir. 2

2.1. Farklı Öğretim Kademeleri Okudukları programlar gereği bilişim alanında meslek sahibi olacak bilgisayar mühendisleri, bilgisayar programcıları, bilgisayar öğretmenleri ve diğer alan öğrencileri üniversitelerin akademik programları gereği programlama derslerini almaktadırlar. Türkiye de ilk ve orta öğretimde verilen bilgisayar okuryazarlığı derslerinin bazı aşamalarında da programlama yer almaktadır. Meslek ve teknik liselerde ise uzun yıllardır bilgisayar bölümlerinde programcılık eğitimi verilmektedir. Dünyada ise ilköğretim eğitim programında 10. ve 11. sınıflardaki bilgisayar derslerinde programlama öğrenimi yer almaktadır [1]. 2.2. Klasik Öğretim Teknikleri Çok farklı programlama dilleri olduğu halde, bu dillerin eğitimi üniversitelerde veya liselerde çok benzer öğretim teknikleri ile verilmektedir. Bu teknik bir uzman eşliğinde bilgisayar başında bire bir kod yazarak dili öğrenmeye çalışmaktır. Bu uygulama ağırlıklı etkinliklere genellikle teorik bilginin düz anlatım veya sunum yöntemi ile verildiği ön derslerle başlanır. Her hafta önce öğrenilecek konu ile ilgili sunum ya da anlatım yapılır, ardından program satır satır yazılıp açıklanarak öğrencilere gösterim yapılır, daha sonra da laboratuvarlarda öğrencilerin bireysel olarak kod yazacağı etkinlikler uygulanır. Dersler 2 ya da 3 saat teorik dersten sonra yine 2 ya da 3 saatlik uygulama saatleri şeklinde 14-15 haftalık dönemlerde gösterip-yaptırma tekniği kullanılarak verilir. Derslerin değerlendirmeleri yazılı sınavlar, uygulama sınavlar ve proje geliştirme süreçleri ile yapılmaktadır. Programlama derslerinin hiç biri tek başına öğrencinin iyi bir programcı olabilmesi amacını taşımamaktadır. Bunun sebebi, programlamanın, tek bir derste edinilmesi zor olan bir çok beceriye ihtiyaç duymasıdır. Bir programcının iyi bir program geliştirebilmesi için dilden bağımsız olarak çözüm için bir algoritma geliştirmesi, daha sonra o algoritmaya yönelik kodları yazması, olası hataları düzeltmesi ve en sonunda ürünü ortaya çıkarması gerekmektedir. Kimi büyük yazılım geliştirme projelerinde bu adımların farklı takımlar tarafından yürütüldüğünü düşünürsek, bu becerilerin ne kadar önemli olduğu anlaşılabilir. Bu nedenle, eğitim programları incelendiğinde programcılık becerilerinin birkaç derste kazandırıldığı görülmektedir. Genellikle ilk derslerde programlama dilinin kendisinden çok algoritma geliştirmeye yönelik içerik sunulmaktadır. Daha sonraki derslerde hedeflenen dil ile problem çözmeye yoğunlaşılmaktadır. 2.3. Programlama Sürecinde Başarı Faktörleri Programlama dili derslerinde başarıyı etkileyen bir çok faktör vardır. Bunlardan bazıları motivasyon, programlamaya karşı tutum, programlama dilinin karmaşıklığı [2] ve öğretim yöntem ve tasarımı olarak sıralanabilir [3]. Programlama eğitimi sırasında düşük olan motivasyon, öğrencinin zamanla dersten soğumasına ve çaba sarf etmemesine yol açabilir. Programlama sürecinin uzun saatler boyunca bilgisayar önünde çalışmayı gerektiren bir iş olduğunu düşünen bir çok öğrenci, bu süreçleri sıkıcı bulabilir. Programlamaya karşı olumsuz tutum ve algılar, diğer derslerde de olabileceği gibi, başarıyı engelleyen önemli bir faktördür. Programlama dili eğitiminin kendi kariyerleri için önem taşımadığını düşünen bir çok öğrencide de yine olumsuz tutumlar yer almaktadır. Örneğin matematik öğretmeni olacak bir aday dört yıllık üniversite eğitimi sırasında 3 adet programlama ders almaktadır. Bu dersleri 3

kendi alanlarıyla alakasız olarak gören bir çok öğrenci programlama dili derslerine karşı ilgisiz ve isteksiz olarak devam ediyor olabilir. Bunlara ek olarak bilgisayar ve teknoloji kullanımına yönelik genel tutumlar da programlama dili derslerinde etkilidir. Eğitim için seçilen programla dili başarıyı etkileyebilir [4]. Programlama dilleri, çoğunlukla, öğrenilmeleri kolay olsun kaygısıyla geliştirilmemişlerdir [2]. Bu nedenle özellikle ilk programlama dili derslerinde, seçilen dilin karmaşıklığı öğrenmeyi güçleştirebilir. İlk derslerde asıl amaç dilden bağımsız olarak algoritma mantığının öğretilmesidir. Daha sonra istenilen dile özgü deneyim kazanılması beklenir. Ancak öğrenciler geliştirdikleri algoritmaları denemek için de bir programlama dili kullanmalıdırlar. Diğer bir ifade ile, seçilen bir programlama dilinin yazım kurallarına uygun komutlar yazılır ve çalıştırılır. Eğer dilin yazım kuralları çok katı ise, yazım ortamı öğrenciye anlık destek vermiyorsa, ya da hata ayıklama araçları gelişmemiş ise, öğrenci kodlama aşamasındaki zorluklardan dolayı algoritmaya odaklanamayabilir. Analiz etmekten çok ezberlemenin ve hatırlamaya çalışmanın arasında vaktini harcar, sonuç olarak motivasyonu ve başarısı düşebilir. Klasik öğretim teknikleri de programlama başarısını etkileyebilir [2]. Programlama başından sonuna farklı bilgi ve becerilerin kullanılması gereken bir süreçtir. Öğrenciler daha önceden var olan akademik alışkanlıklarından derste yeterince yararlanamayabilir. Ezberi çok iyi olan bir öğrenci sadece komutları hatırlayarak problemi çözemez. Okuması kuvvetli bir öğrenci de yeni bir problemde algoritma geliştiremeyebilir. Kuramsal bilginin uygulama ile problem çözme becerisi haline gelmesi bir çok öğrencide ulaşılmayan bir hedef olarak kalabilir. 3. Öneri: Robot Programlama Pek çok programlama dili ve programlama mantığının öğretilmesindeki güçlükler göz önüne alınarak uygulanmış farklı yaklaşımlar vardır. Örneğin, kullanılan dilin kendisinin zor olmasına karşı daha basit diller (mini language) [4] önerilmiştir. Bu tür diller yazılım geliştirmekten çok programlama dili eğitimi için geliştirilmiş, basit komutlardan ve farklı etkileşim teknikleri ile donatılmış dillerdir. Başka bir yaklaşım konunun farklı derslerde farklı dilleri ve öğretim tekniklerini kullanarak öğretilmesi olabilir. Sonuçta, programlama dili öğretilirken çoğu işlem ve kavram öğrenciler açısından soyut kalmakta ve öğrenciler öğrendikleri bilgileri somutlaştırmakta zorlanmaktadır-lar. Robot programlama bu sürecin somut-laştırılmasını sağlayacak bir yaklaşım olabilir. Robot programlama konusunda farklı boyutta robotlardan ve uyumlu dillerden bahsedilebilir. Bu çalışmada ülkemizde temin edilmesi kolay bir platform olan Arduino [5] robot ürünleri örnek olarak kullanılmıştır. Arduino bir giriş/çıkış (input/output) kartı ve Java tabanlı bir dilin yer aldığı geliştirme ortamından oluşan bir fiziksel programlama platformudur. Arduino tek başına çalışan etkileşimli nesneler geliştirmek için kullanılabileceği gibi bilgisayar üzerinde çalışan yazılımlara da (ör: Adobe Flash) bağlanabilir. Arduino IDE kod editörü ve derleyici olarak görev yapan, aynı zamanda derlenen programı karta yükleme işlemini de yapabilen, her platformda çalışabilen Java programlama dilinde yazılmış bir uygulamadır. Geliştirme ortamı, sanatçıları programlamayla tanıştırmak için geliştirilmiş Processing [6] yazılımından yola çıkılarak geliştirilmiştir [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. 3.1. Örnek Bir Uygulama Arduino robot programlama paket ile oluşturulabilecek uygulamalardan bir tanesi, üzerine basılınca bunu algılayıp alarm veren küçük bir robot ve programlaması. Resim 1 de görüldüğü üzere basit bağlantılar ile basınç algılayıcısı hazır hale geliyor. Resim 2: Arduino Kod Editörü Yazılan kodlar Java. Daha sonra tek bir düğme ile robota yükleniyor. Yükleme tamamlanınca robot çalışmaya başlıyor. Eğer basınç algılayıcısının üzerine bir cisim ile dokunulursa (Resim 3 de parmak basılıyor), robotun üzerindeki bir devreye akım verip (örnekte sarı led yanıyor) olası başka işlemi yapılabiliyor. Resim 1: Hazır Robot Bilgisayara bağlı ucu ile Resim 2 deki program yazılıp robota yükleniyor. Resim 3: Robot Basıncı Algılar Halde Aynı zamanda, bilgisayar ekranında basınç algılayıcısının algıladığı basınçta rakamsal olarak sürekli izlenebiliyor (Resim 4). 5

Erişim Tarihi 29 Aralık 2010. http://www.csta. acm.org/curriculum/sub/currfiles/k- 12ModelCurr2ndEd.pdf, (2003) [2] Jenkins, T. On the difficulty of learning to program. In 3rd annual Conference of LTSN-ICS, Loughbrorough University, Leicestershire, UK (2002) Resim 4: Anlık Basınç Değerleri Bu değerler, kod editöründe değişkenler olarak edinilebilir. Bu sayede programın akışına göre farklı çıktılar ekde edilebilir. Örneğin bir if karar yapısı ile, robotun basıncın 100 ün üzerinde olduğunda tepki vermesi sağlanabilir. Yine faklı değerler için farklı ledler yakılabilir. 4. Sonuç Sonuç olarak, programlamayı öğrenmek farklı bir düşünce yapısı geliştirmeyi gerektirir ve bu sürecin kolaylaştırılması ancak öğretilen kavram ve süreçlerin somutlaştırılması ile olanaklıdır. Programlama dilleri öğretiminde sürekli olarak soyut kavramlar ile çalışılmasının neden olduğu olumsuzlukların girderilmesinde Arduino ve benzeri platformlar önemli bir çözüm sunmaktadır. Önerilen yaklaşımın, öğrencilerin yazdıkları kodun çalışır halini fiziksel olarak gözlemleyebilmeleri programlama ile ilgili kavramların somutlaşmasına yardımcı olacağı düşünülmektedir. [3] Mayer, R. E. Some conditions of meaningful learning for computer programming: Advance organizers and subject control of frame order. Journal of Educational Psychology, 68 (2), pp. 143-150. (1976) [4] Brusilovsky, P., Calabrese, E., Hvorecky, J., Kouchnirenko, A., & Miller, P. Mini-languages: A Way to Learn Programming Principles. Education and Information Technologies, 2 (1), pp. 65-83. (1997) [5] Ardiuno, Açık kaynak kodlu robotik programlama platformu. http://www. arduino.cc/ (Son Erişim tarihi:17 Ocak 2011) [6] Processing, Açık kaynak kodlu programlama dili ve platformu. http:// processing.org/ (Son erişim tarihi 17 Ocak 2011) [7] Wikipedia, Ardiuno, http://tr.wiki pedia.org/wiki/arduino (Son erişim tarihi 17 Ocak 2011) 5. Kaynaklar [1] Tucker, A., Deek, F., Jones, J., McCowan. D., Stephenson, C., & Verno, A. ACM K 12 Task Force. A Model Curriculum for K-12 Computer Science. Final Report of the ACM K-12 Task Force Curriculum Committee. 6