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ğin www.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.

Son, Son Söz

Aşağıda Matematik Dünyası Dergisi’nde yayınlanan bir matematik olimpiyatı sorusunun Java ve Ptyhon altında yapılan çözümleri verilmiştir. Önce kağıt kalem çözmeye çalışın sonra kodları inceleyin. Kararı siz verin.

Soru. olmak üzere bir tamdeğer fonksiyon veriliyor. Öyleki f(23.5)=23, f(0.5)=0 ve f(3,14)=3 olmaktadır. Buna göre toplamını bulunuz.

Çözüm(Java Scripts):

var numero = 0 ;

var sqrtTotal = 0 ;

while(numero < 2016) {

if(floor(sqrt(numero)) + 1 === sqrt(numero)) {

sqrtTotal += (sqrt(numero)) ;

numero +=1 ;}

else {

sqrtTotal += floor(sqrt(numero)) ;

numero += 1 ;}}

fill(255, 0, 0);

text(sqrtTotal, 5, 20) ;

 

Çözüm(Ptyhon):

toplam=0

for element in range(1,2016):

toplam=toplam+int((element)**(0.5))

print(toplam)

  1. Automate the Boring Stuff With Ptyhon, All Sweigart, No Starch Press
  2. Doing Math With Ptyhon, Amit Saha, No Starch Press
  3. http://www.tubitak.gov.tr/sites/default/files/istanbul_avrupa_2016_0.pdf

 

YAZIYI PAYLAŞ
Önceki İçerikGoogle Classroom’da Konularla Hayat Çok Daha Düzenli & Kolay!
Sonraki İçerikUbD (Understanding by Design) ile Mesleki Gelişim Nasıl Sağlanır?
Lisans Eğitimini matematik üzerine yapan CANSU, yüksek lisanlarını Matematik (Symbolic Mathematics Applications With Python), Eğitim Bilimleri (The Study And Reserach Of Istanbul Bahçeşehir High School Of Science And Technology Based On The Criteria Of Effectıve Schooling) üzerine yapmıştır. Halen doktorasına Bahçeşehir Üniversitesi Bilgisayar Öğretim Teknolojileri bölümünde devam eden CANSU’nun yayınlanmış 3 kitabı (Diofant Denklem Sistemlerinin Elementer Çözümleri, Ulusal Bilgisayar Olimpiyatları Soru ve Çözümleri, Rus Matematik Olimpiyatları Soru ve Çözümleri) bulunmaktadır. Tübitak Matematik ve Bilgisayar alanında proje danışmanlığı yapan CANSU halen Bahçeşehir Fen ve Teknoloji Lisesi’nde Programlama ve Proje eğitimi vermektedir.

HENÜZ YORUM YOK

CEVAP VER