Navigation

Günsan Elektrik Desteği ile Düzenlenen Seminerim

İlk gün “Çocukların kodlama öğrenmesi ne gibi faydalar sağlar ve kodlama nasıl öğretilmeli?” konulu bir sunum yaptım. Bu seminere Günsan çalışanları ve çocuklarının öğretmenleri katıldı

İkinci gün öğretmenlerimize yönelik bir çalıştay (workshop) gerçekleşti. Burada ben öğretmenlerimize öncelikle kodlamanın korkulacak bir şey olmadığını aksine son derece eğlenceli bir faaliyet olduğunu, aslında günlük hayatlarında kodlamayı kullandıklarını örneklerle anlatmaya çalıştım:

Muhteşem bir sinerji yakalandı ve çok eğlenceli bir çalıştay gerçekleşti. Günün sonunda herkes çok mutluydu, öğretmenlerimiz kodlamanın gerçekten de korkulacak bir şey olmadığını ve çok eğlendiklerini söylediler. Hepsine çok teşekkür ediyorum, onlar da son derece pozitif ve içten yaklaştılar.

Eğitimin sonunda herkes o kadar mutluydu ki bunun kesinlikle tekrarlanması gerektiğini vurguladılar. Öğretmenlerimiz hemen ertesi gün okullarında deneyimlerini öğrencileriyle paylaştılar:

 

Bu organizasyonda emeği geçen herkese sonsuz teşekkürler….

Çocuklara Programlamayı Nasıl Öğretiriz? – 2

Bu makalenin ilk kısmında “çocuklara programlamayı nasıl öğretiriz?” Konusuna giriş yapmıştım, bu kısımda biraz daha detay vereceğim.

Hatırlayacağınız gibi ilk makalemde çocuklara programlama öğretmek için çok sayıda, hatta gereğinden fazla araç olduğunu ve bu durumun velilerin ve öğretmenlerin konudan daha da uzaklaşmasına sebep olduğunu yazmıştım. Çünkü hangisini, hangi sırayla kullanacaklarını doğal olarak bilemiyorlar.

Ve öneri olarak sadece araçlara odaklanmamak, çocuklara programlamanın temel kavramlarını doğru sırayla öğretmek gerektiğini yazmıştım.

Çocuğa programlamayı öğretirken bu kavramları kılavuz edinip, doğru sırayla anlatmanın önemli olduğunu vurgulamıştım. Ve devamında bu kavramları anlatırken onlarca yüzlerce araçtan dilediklerimizi kullanabileceğimizi anlatmıştım. Öncelikle bu temel programlama/kodlama kavramlarını tekrar hatırlayalım:

  • Algoritmalar
  • Döngüler
  • Koşul Yapıları
  • Fonksiyonlar-Prosedürler
  • Grafik Mantığı
  • Değişkenler
  • Listeler, Diziler
  • Programsal Nesneler

 

Algoritmalar

Algoritmalar aslında detaylı plan yapmaktır. Bir programı geliştirmeden önce algoritmasını oluşturmamız gerekir. Algoritmalar neyi, nasıl hangi sırayla yapacağımızı detaylı bir şekilde anlatır ve mutlaka yazılı olması gerekir. Bu yazım şemalar şeklinde de olabilir, metin olarak da. Yazılı olması önemli. Böylece programcı hangi işi hangi sırayla ve detayla yapacağını bilir. Algoritma oluştuktan sonra artık kodlamaya geçilebilir. Kodlama ayrı teknikleri barındırır ve onlarında detaylarını anlatacağım. Ancak algoritmaları bitirmeden önce birkaç noktaya açıklık getirmek gerekiyor.

Dediğim gibi bir program yazmadan önce algoritması oluşturulmalı. Dikkat ederseniz aslında algoritma planlamanın bir çeşidi. Diğer bir ifadeyle sadece programlama değil herhangi bir iş yapmadan önce algoritma geliştirmeli, yani plan yapmalıyız.

Evet bu belki her zaman yazılı olmayabilir (olursa daha iyi tabii) ama mutlaka plan yapmalıyız. Plansız yapılan işlerin ne sonuçlar doğuracağını bilmek için programcı olmaya gerek yok. Dolayısıyla aslında Algoritma veya plan yapmak programlamaya ait bir kavram değil bütün kariyerimiz ve hatta bütün hayatımıza dair kazanılması gereken bir özellik.

Onun için diyorum ya programlama hayata dair bir kavramdır. Burada tekrar edeyim “hepimiz program yaparız sadece kodlarını farklı yazarız”.

Yukarıda ve ilk makalemde de bahsettim gibi programcılığın bu temel kavramlarını bize sunulan yüzlerce araçla destekleyip anlatabilirsiniz. Örneğin Algoritma kavramının 4 yaşındaki bir çocukla 13 yaşındaki çocuğa farklı anlatılacağı net bir durumdur, ancak burada kullanacağımız araçlar belirsiz olabilir. Burada “araç” kavramından neyi kastettiğimi ilk makalemde açıklamıştım.

Yardımcı araçları/uygulamaları seçerken nelere dikkat etmeliyiz?

Hep söylediğim gibi “araç” veya çocuklar için uygulama sıkıntısı yok. Sorun hangi aracı seçeceğimize nasıl karar vereceğimiz. Benim burada birkaç önerim olacak ama bu önerileri yaparken hangi kriterlere özen gösterdiğimi açıklayayım önce.

Birincisi; seçeceğiniz uygulama her sistemde çalışmalı. Bunun anlamı kullandığınız uygulamanın her işletim sisteminde çalışabiliyor olmasıdır. Hem Windows da hem mac de hem iPhone, iPad, Android hem de diğer sistemlerde.

Böylece çocuk okulda yaptığı bir uygulamaya, evde de devam edebilir veya tabletinden de ulaşabilir.

İkinci önemli konu, eğer mümkünse kurulum gerektirmemesi, diğer bir ifadeyle bir web uygulaması olması. Böylece zaten yukarıda söylediğim bütün platformlarda çalışabilecek ve dilediği zaman uygulamasına erişebilir olacaktır.

Önemli diğer bir faktör, uygulamanın offline yani internet olmadan da çalışabilmesi önemlidir. Zorunlu değil ama önemli bir faktördür.

Son olarak eğer mümkünse “open source” yani herkese açık ve ücretsiz bir uygulama olması hem daha gelişebilmesi anlamında hem de cebimizi yakmaması anlamında bir avantajdır.

Bu çerçevede size önereceğim 3 tane araç var. Bunların haricinde elbette pek çok benzer araç var ancak bunlar en bilinenleri:

1-Code.org

2- Scratch  (https://scratch.mit.edu/)

3- Google Blockly (https://developers.google.com/blockly )

Bu araçlar yukarıda bahsettiğim koşulların hemen tamamını karşılıyor.

 

Kavramlarla Araçların Beraber Kullanımı

Temel kavramları dilediğimiz aracı kullanarak anlatabiliriz diye yazmıştım yukarıda şimdi buna bir örnek vereceğim. Örneğin yukarıda basitçe anlatmaya çalıştığım “Algoritma” kavramı code.org da her yaş grubuna göre farklı uygulama ve görsellerle anlatılmış. Birazdan göstereceğim, ama bizim bir öğretmen olarak öncelikle algoritma kavramını anlatmamız gerektiğini bilmeliyiz daha sonrasında da birazdan göstereceğim code.org uygulaması gibi araçlarla bunu desteklemeliyiz. Burada aracın ismi x olur yarın y ama algoritma kavramının öğretilmesi gerektiği hiç değişmez. Yani araçlar değişebilir ama temel prensipler kolay kolay değişmez. Onun için kafamızın karışması için bu anlamda bir sebep yok biz temel prensiplerin peşinden gidelim ve dilediğimiz araçları seçelim. (tabii yukarıdaki kriterlere uygun seçersek çok daha rahat ve yetenekli bir çalışma ortamına kavuşuruz)

Evet şimdi Algoritma kavramının code.org daki farklı uygulamalarına bakalım. Örneğin 4 yaşındaki  bir çocuğa algoritma şu şekilde anlatılmaya çalışılmış

01

Sevimli Yaratık (Flurb) hazineye hangi ok’u kullanarak erişebilir?….

https://studio.code.org/s/course1/stage/1/puzzle/2

Evet bu bir algoritmadır. Bir işi (yani hazineye ulaşma) işini nasıl yapacağımızı belirtir. Ve bunu 4 yaşındaki bir çocuk kolayca yapabilir ve ilk algoritmasını teknik anlamda geliştirmiş olacaktır.

Diğer bir örnek:

02

Çiçeklere gitmesi için hangi okları seçmeli?

04

 

Domuza erişmesi için hangi okları seçmeli? Doğru oklar doğru bir algoritma demektir.

https://studio.code.org/s/course1/stage/5/puzzle/3

Buna karşılık 8 yaş ve üstü bir çocuk aşağıdaki oyun/hikaye algoritmasını oluşturabilir:

https://studio.code.org/s/course3/stage/16/puzzle/6

03

Veya döngülerden örnek verecek olursak 4 yaş ve üzerindeki bir çocuğa döngü kavramını şu uygulamayla kolayca anlatabiliriz:

https://studio.code.org/s/course1/stage/12/puzzle/2

 

06

Buna karşılık 10 yaş ve üstü bir çocuğa daha karmaşık döngü yapıları anlatılabilir:

https://studio.code.org/s/course4/stage/10/puzzle/12

07

 

Sonuçta “döngü” kavramı değişmez, sadece anlatılacak yaş grubuna göre uygulamalar ve yöntemler (araçlar) değişebilir.

Bu örnekler programcılığın her bir temel kavramı için çoğaltılabilir.

Referans noktamız temel prensipler olmalı araçlarsa onları destekleyen ama önemli unsurlardır, onları da seçerken dikkatli olmalıyız.

Bu konuyla ilgili makalelerime devam edeceğim.

 

 

 

 

Çocuklara Programlamayı Nasıl Öğretiriz?

Programlamanın bir takım temel prensipleri vardır. Bu prensipler kullanılan programlama dilinden bağımsızdır.

Hangi programlama dilini kullanıyor olursak olalım değişmeyen bu prensipleri her yaştaki çocuğa öğretebilirsiniz. Tabii ki yaş grubuna göre kullanacağınız araçlar ve ifadeler farklı olacaktır ama prensipler değişmeyecektir. İki ayrı parçaya bölünmüş bir balık resmini birleştirmek aslında bir algoritmayı uygulamaktır ve bu uygulamayı 4 yaşındaki bir çocuk bile yapabilir. Buna karşı lisedeki bir öğrenciden çan eğrisi uygulamasının algoritmasını geliştirmesi beklenebilir. Sonuçta ikisi de algoritmadır. Sadece biri 4 yaşındaki bir çocuk için basitleştirilmiştir. Algoritmalar gibi temel prensipler vardır programcılıkta. Diğer bir ifadeyle olmazsa olmazlar.

İşte çocuklara bunlar anlatılabilir, ama tekrar ediyorum yaş grubuna özel anlatılmalı bunlar ve yaş grubuna özel araçlar kullanılmalı.

22

Araçlar deyince burada biraz detay vermeliyim. Kitabımda da yazdığım gibi çocuklara programlama veya kodlama öğretirken kullanabileceğimiz araçları temin etmek hiç zor değil. Hatta gereğinden çok fazla araç var. Burada “araç” dan neyi kastettiğimi açıklayayım önce. Araç derken çocuğa programlamanın prensiplerini anlatırken kullanacağımız her türlü uygulama ve görsel malzemeden bahsediyorum. Evet, gerçekten de gereğinden çok fazla araç var bu konuda. Burada asıl kafa karışıklığını yaratan da bu. Programlama veya kodlama zaten yeterince ürkütücü gelen bir konu (ki aslında hiç de öyle değil) bir de bir sürü kafa karışıklığı yaratan araç girince işin içine veliler, öğretmenler bir adım daha uzak duruyorlar.

Ama korkulacak bir şey yok, bence yapılması gereken programlamanın temel prensiplerini bilmek ve bu çerçeve üzerinden giderek ilerlemek en sağlıklı yaklaşım. Bu prensipleri, kuralları anlatırken isteyen istediği aracı kullansın ama bu rotadan şaşmasın. Peki, nedir programlamanın temel yapıları? Bunları aşağıdaki gibi sıralayabiliriz:

  • Algoritmalar
  • Döngüler
  • Koşul Yapıları
  • Fonksiyonlar-Prosedürler
  • Grafik Mantığı
  • Değişkenler
  • Listeler, Diziler
  • Programsal Nesneler

Öğrenme sırasına göre verdiğim bu ana konular günümüz programlama tekniklerinin temellerini oluştururlar ve her yaş grubuna hitap edecek şekilde anlatılabilirler. Örneğin yetişkinlere programlama eğitimi verirken öncelikle değişken ve tiplerinden başlarım. Ancak bir çocuk için bu başlangıç pek eğlenceli olmaz ve daha başlamadan programcılık kariyeri bitebilir bu tip bir başlangıçla. Onun için öncelikle eğlenceli algoritmalardan başlamak doğru bir yaklaşım olacaktır.

10

Çocuklar eğlenceli bir algoritma geliştirirken aslında bir programın alt yapısını da oluşturduklarının farkında olmayacaklardır ilk başta ama aslında programcılığın en temel konularından birini gerçekleştireceklerdir. Aynı şekilde eğlenceli konulardan biri de döngülerdir programcılıkta, aslında bu konu değişkenler öğretildikten sonra anlatılır büyüklere, ancak çocuklara tekrarlayan şeyler yapmak eğlenceli gelir.

Tekrarlı eylemleri yapan ifadeleri görsel biçimde oluşturarak aslında bir döngü kodu yazabilir küçük öğrencimiz ve bu tekrarlı eylemlerden büyük bir keyif alır. Özetle şunu söylemek istiyorum, yüzlerce araç olabilir ama 7-8 tane temel prensip var. Bu prensipleri yeterince öğrenip çocuklara bu yol haritasında mümkün olduğunca basit anlatabilecek araçları siz kendiniz seçin. Unutmayın konuya ne kadar hakimseniz o kadar basit anlatırsınız.

 

“Çocuklar için Kodlama” Kitabım Hakkında*

Bahçeşehir Üniversitesi STEM (Science, Technology, Engineering, Mathematics) Merkezi ve Pusula Yayıncılık işbirliğiyle yayına hazırlanan “Çocuklar İçin Kodlama” kitabı, 4 yaş üstü tüm çocukları kodlama, yazılım ve programlama dünyasıyla tanıştırıyor.

Kitapta çocukların, öğretmenleri ve ebeveynleri rehberliğinde algoritma ve programlamaya ilişkin temel kavramları kolayca öğrenebilmeleri için hazırlanan grafik ve platformlar anlaşılır bir dille tanıtılıyor. Google’ın görsel olarak program geliştirilmesini sağlayan kütüphanesi Google Blockly, çocuklara programlamayı sevdirmek ve öğretmek için MIT (Massachusetts Institute of Technology) tarafından geliştirilen web temelli platform Scratch ve yine Microsoft gibi bilişim firmaları tarafından desteklenencode.org’un kullanımına ilişkin detaylar da kitapta yer alıyor. “Çocuklar İçin Kodlama” kitabı rehberliği ve ücretsiz erişilen bu kaynaklar aracılığıyla 4 yaş üstü çocuklara kodlama ve programlama dünyasının kapılarını açabilir, web üzerinden yürütülen uygulamaları adım adım izleyerek örnekleri hayata geçirebilirsiniz.

Cocuklaricin_Mockup2

Öğretmen ve Ebeveyn Rehberliğinde

Kitabı yayına hazırlayan ve 30 yıldır programcılık yapan Zafer Demirkol’un yedi yaşındaki oğluyla yardımlaşarak hazırladığı kitap, öğretmenlere ve velilere programlamanın temel kavramlarını çocukların anlayabileceği bir şekilde nasıl anlatabileceklerine dair yol gösteriyor. Çocukların 4 – 5 yaşından itibaren programlamaya başlayabileceğini belirten Zafer Demirkol, “Çocuklar okuma yazma bilmeden önce de görsel araçları kullanarak programlama ve kodlama ile tanışabilirler. Uygulama ve örnekler çocukların hoşlanacağı türden grafiklerden oluştuğundan programlamayı sevdirmek için ayrıca bir çaba harcamanıza gerek yok. Bu kitapla çocuklara programlama öğretmek anne – babalar için de eğlenceli bir deneyim olacak. Hatta şu ana kadar programlamayla, algoritmalarla, kodlamayla bir aşinalığınız olmadıysa, siz de bu kitabı kullanarak yazılım dünyasına ilk adımı atabilirsiniz” diyor.

1Cocuklaricin_Mockup

Bahçeşehir Üniversitesi Mütevelli Heyeti Başkanı Enver Yücel öğrencileri 21.yüzyıl becerileri yönünden hazırlayacak konuların başında yeni öğretim modellerinden biri olarak kullanılan kodlama eğitiminin geldiğini belirtiyor. Yücel “Hem öğrencinin hem de öğretmenin gelişen teknolojileri eğitim-öğretim hayatlarına katmasıyla ve teknolojinin günlük hayatımızı artan bir şekilde kuşatmasıyla birlikte ‘Kodlama’ kavramının önemi artmıştır. Bu nedenle kodlama, kodlamayı öğretme ve öğrenmenin ülkemizin eğitim-öğretim sistemine girmesi de kaçınılmazdır.  Bahçeşehir Uğur Eğitim Kurumları olarak sadece bugünün değil geleceğin de önemli bir alanı olarak gördüğümüz STEM ve Kodlama alanlarında bilimsel çalışmalar yapmaya ve bunları yayınlayarak paylaşmaya bugün olduğu gibi bundan sonra da devam edeceğiz” diyor.

enver_yucel2

Bugünden itibaren tüm kitapçılarda ve online kitap satış mağazalarında yer alacak kitap için bir de web sitesi geliştirilmiş: www.cocuklaricinkodlama.com

Yazar Zafer Demirkol tarafından oluşturulan web sitesinin iki temel amacı bulunuyor: İlki kitapta olabilecek güncellemeler, düzeltmeler, linklerde olabilecek değişimler ve duyuruları bu site üzerinden yapmak. İkinci olarak da çocuklar için kodlama teknolojilerindeki en son gelişmeleri buradan duyurmak, geliştirilen yeni araç ve uygulamaları buradan paylaşmak. Kitaptaki örnek uygulamalara da bu web sitesinden basitçe erişim imkanı mevcut.

(*Basın bülteninden)