Programlama nedir? Nasıl öğretilmeli?


Programlama nedir? Nasıl öğretilmeli? Programlama bir öğrenciye neler katar?

Programlama nedir? Nasıl öğretilmeli?

Programlama Dersleri

Özellikle son 5 yýldýr tüm dünyada STEM(Science-Technology-Enginering-Mathematics) oldukça popüler duruma geldi. Önümüzdeki muhtemelen minimum 25 yýlý etkileyecek olan bu eðitim akýmý baþta Amerika ve Ýngiltere olmak üzere bir çok ülkede okullarda uygulanmaya baþladý. STEM sisteminin tüm bileþenleri belli ders konularý ve müfredatlarýný içerirken Programlama bu disiplinlerin tamamýný içerisine alan bir 21. yüzyýl becerisi olarak kendisine gün geçtikçe daha saðlam bir yer edinmektedir.

Aþaðýda temelde bu eðitim sistemini uygulamak isteyecek olan hemen her okul liderinin yada velinin aklýna gelecek olan temel sorular cevaplanmaya çalýþýlmýþtýr.

s1. Programlama nedir?

Automate the Boring Stuff kitabýnda Al Sweigard programlamayý basitçe dijital bir cihaza ki bu genellikle bilgisayarlardýr ne yapacaðýný anlayabileceði dilden söyleme yetkinliðidir olarak tanýmlamaktadýr(1). Yani sizin uzun zamanlar harcayarak yapacaðýnýz bir hesaplamayý, bir metodu bilgisayara yaptýrabilme yeteneðidir programcýlýk. Eðer bilgisayarlar insan olsalardý genel olarak aþaðýdaki þekilde onlara seslenmemiz gerekirdi.

  • Bu iþi yap sonra þu iþi yap,
  • Eðer þu anki durum doðru ise yapmaya devam et, deðilse belirlenen ikinci iþi yapmaya baþla,
  • Belirtilen iþi belirtildiði kadar yap,
  • Verilen iþi sana bildirilen þartlar saðlanana kadar yapmaya devam et.

Yukarýdaki komutlar düzeninin tüm kombinasyonlarý aslýnda her karmaþýk gibi görünen programýn içeriðini oluþtururlar.

s2. Programlama öðrenmek bir öðrenciye neler katar?

Programcýlýk temelde bir yaratýcýlýk etkinliðidir. Sanki LEGO parçalarýnda bir kale yapar gibi birbirine benzeyen parçalarý kullanarak ortaya aslýnda hiçbirine benzemeyen yapýlar oluþturursunuz(2). Bunu yaparken yapýlan ilk þey kalenizin neye benzeyeceðini planlamakla baþlar. Sonra inþaata baþlarsýnýz. Kalenizin neye benzeyeceðini planlamak dediðimiz kýsma matematikçiler ve programcýlar algoritma adýný verirler. Yani adým, adým düþünme.

Programcýlýk ile diðer yaratýcý etkinlik çalýþmalarý arasýndaki en temel fark algoritma oluþturmanýzdýr. Bu sizi planlý olmaya ve elinizdeki hazýr ancak nizama ihtiyaç duyan kodlarý belli bir plana göre düzenlemeye iter. Elinizde tüm hammadde vardýr. Ek bir materyale ihtiyaç duymazsýnýz.

Programlama her ne kadar bireysel bir aktivite olarak görülse de (bu kanýnýn oluþmasýnda televizyon filmlerinin etkisi büyüktür.) öðrenciler arasýnda beraber iþ yapma ve birbirlerinin hatalarýný düzeltmelerine yardýmcý olur. Bu durum takým çalýþmasý ve birbirine güveni tetikler. Öðrencilerin özgüvenine olan etkisi ise görülmeye deðerdir. Bomboþ bir ekrana gizemli kodlar yazýp çalýþtýrmanýn vereceði "kendini zeki hissetme hissi" tartýþýlmazdýr.

Programlama derslerinde öðrenciler diðer derslerde sorduklarý bu formül ya da eþitlik nereden geldi sorusunu soramazlar. Çünkü hazýr formülleri bilgisayarýn anlayabileceði formda yazmalarý dahasý formülü ezbere bilmektense en baþtan oluþturmalarý gerektiðini kavrarlar.

Sorulan herhangi bir programcýlýk sorusunun asla tek bir çözüm yolu yoktur. Çözüm yollarýnýn sayýsý ders alan öðrencilerle sýnýrlýdýr. Hemen hemen sýnýftaki hiçbir öðrenci soruyu ayný þekilde çözmez.

Verilen ödevlerin çok büyük bir kýsmý özgündür. Birbirinin ayný olan kodlarý yazmak neredeyse imkânsýzdýr.

Programcýlýk derslerinde öðrenciler ister istemez temel matematik ve fizik derslerini bilmek zorundadýrlar. Örneðin polinom fonksiyonlarýn belirli integrallerinin hesaplanmasý iþlemini Reimann Integration bilmeyen bir öðrencinin yapmasý imkânsýzdýr. Ya da, farklý baþlangýç hýzlarýna sahip cisimlerin yaptýðý yatay atýþ hareketinin modellemesini yapmak isteyen bir öðrenci bunu Newton's Law of the Universal Gravitation'u bilmeden yapamaz. Yani programcýlýk öðrenmek beraberinde iyi matematik ve iyi fizik bilmeyi getirir. Bu örnekler çoðaltýlabilir.

Programcýlýk derslerinin ürünleri genel olarak öðrencilerin hazýrlayacaðý projelerde ortaya çýkar örneðin yazacaðý programý kullanarak bir proje hazýrlayabilir ve bu projeyle ulusal yarýþmalarda kendine yer edinebilir. Örneðin görüntü iþleme ve bunu matrisler aracýlýðý ile deðerlendirmeyi projesinde araþtýran öðrenci TÜBÝTAK proje yarýþmasýnda ki jüriyi etkileyebilir (3).

s3. Programlama öðrenmek öðrenciye üniversitede ne fayda saðlar?

Özellikle yurt dýþý üniversitelere baþvuru yapmak isteyen öðrencilerin iþlerini oldukça kolaylaþtýrýr. Sanýlanýn aksine yurt dýþýndaki belli bir tanýnmýþlýða sahip hiçbir üniversite sadece sosyal etkinliklerinden dolayý bir öðrenciye burs vermez. Proje çalýþan, üreten, patent sahibi olan, bilimsel etkinliklere katýlan ve bilimsel makaleler yazma gayreti içerisinde olan öðrenciler üniversitelerin en fazla burs verdiði öðrencilerdir.

Programcýlýk ise bu çalýþmalarý yapmak için biçilmiþ kaftandýr.

s4. Programlama öðrenmeye nereden baþlamak lazým?

Bu sorunun cevabý öðrencilerin yaþ grubuna göre öðrenme biçimlerine göre deðiþebilir. Bizim çalýþma alanýmýz lise öðrencileri olduðu için bu sorunun cevabýný buna göre verelim. Eðer öðrencilerin öðrenme hýzlarý arasýnda bariz farklar varsa ve bu öðrenci takibini zorlaþtýrýyorsa online ve ücretsiz programlama sitelerinden faydalanabilirler. Örneðinwww.khanacademy.com ve www.codecademy.com adreslerindeki ara yüzler farklý yazýlým dillerinde öðrencilere kiþiye özgü öðrenim sistemi sunmaktadýrlar.

Bu iki sisteminin kullanýlmasýndaki en önemli husus öðretmenin mutlaka bu iki sistemi de dikkatli biçimde inceleyip öðrenci gibi tüm çalýþmalarý yüzde yüz oranýnda tamamlamalýdýr. Eðer sýnýf düzeyi uygunsa bu aracý sitelere ihtiyaç duymadan mass programming -kitle programlamasý yani sýnýfça beraber bir problemin üzerine gidebilirsiniz.

Kullanýlacak programlama dillerinden hangisinin seçileceði konusunda serbest olunmalýdýr. Ama bir plan takip edilmesi açýsýndan Java Scripts veya Ptyhon dillerinin tercih edilemesin de fayda vardýr. Gerek kullanýlan syntax gerek ise interaktivitesi açýsýndan bu iki dil öðrencilerin ilerleme kaydetmesi açýsýndan önemlidir. Bu iki dilde yapýlacak 2 dönemlik dersler sonucunda öðrenciler rahatlýkla Raspery Pi ya da Arduino programlamayý özgün biçimde yapabilirler.

Özellikle Raspery Pi yada Arduino ile uðraþan öðrencilerde rastlanýlan en büyük handikap programlarýn büyük kýsmýný internetten kopyalamýþ olmalarý ve ne yaptýklarýnýn büyük ihtimalle farkýnda olmayýþlarýdýr.

Son Söz

Birçok insan için bilgisayarlar elektronik bir cihazdan daha fazlasý deðildir. Ancak programlama öðrenerek modern dünyanýn en güçlü cihazýný yönetebilirsiniz. Yönetmesi kolaydýr, tabi eðer onunla ayný dili konuþursanýz. Ve unutmayýn programcýlýk beyin cerrahisi kadar karmaþýk deðildir. Düþünebilen her hangi bir branþtan bir öðretmenin ya da her hangi bir yaþ grubundan her hangi bir öðrencinin öðrenebileceði kadar kolaydýr.

Eðer metinsel programlama olarak baþlamak size zor geliyorsa görsel olarak uygulamanýzý oluþturabileceðiniz uygulamalar da var. App Inventor bu uygulamalardan biri. Yaptýðýnýz uygulamayý hýzlý bir þekilde dünya ile paylaþabilirsiniz.