İkon Blokları ile Temel Kodlama

Ali Orhun Akkirman
4 min readJust now

--

Öncelikle yaklaşık 6 ay öncesine kadar tam olarak bu kavramı bilmiyordum. Bildiğim kavram Scratch’in kullandığı “Blok ile Kodlama” olmasına rağmen sonrasında gördüm ve anladım ki Blok dediğim şey “Metin Blokları ile Kodlama” sınıfında imiş. Ve daha küçük yaş grubunu ilgilendirebilecek şekilde metin yani yazı yerine sadece ikonların olduğu daha basit bir model de varmış ve bunun en iyi örneklerinden birisi ScratchJr uygulaması imiş.

Aslında paralel şekilde LEGO’nun Spike’ında Python ve Kelime Bloklarının yanında İkon blokları görünmekte olup yapılabileceklerin sınırı daha az olacak şekilde kullanılabilmekte. Hatta daha eski ürün olarak LEGO Wedo 2.0 da bu mantığa daha uygun şekilde geliştirilmekte olduğu görülmekte.

Açıkçası yine Bilgehan Ata’dan dolayı hem Wedo 2.0 hem Spike Icon Blocks yöntemi hem de ScratchJr’ı epey inceleme fırsatı buldum. Genelde literatürdeki 1. ve 2. sınıf kodlamaya giriş ve robotiğe ilk adım derslerinde de bu içerikleri görebiliyoruz.

Kendimce hepsinin de ortak özelliklerini oluşturarak yapıyı özetlemeye çalışacağım. Tabi ki ScratchJr işin kodlama ve görsel sahne özelinde olup, Spike ise robotik tarafında bulunmakta. Wedo 2.0'a desteğin azaldığı için ise onunla kıyaslamalara pek girmeyeceğim.

ScratchJr ikon blok kategorisi
Spike ikon blok kategorisi

Genel olarak ikon bloklarında bir girdi ikonları bulunmaktadır. Bunlardan ayrı ayrı bahsetmek istiyorum. Fakat bundan önce ScratchJr’da bu ikonlar farklı veya aynı sahne içerisinde, farklı veya aynı karakterlere etki edecek şekilde bir veya birden fazla blok dizilimi şeklinde yapılabilmekte. Diğer robotik alanında ise tek bir “hub” olduğu için ilgili hub ve gerçek dünya üzerinde olmaktadır. İletişim ise genellikle Bluetooth üzerinde eşleştirme yöntemi ile olmaktadır.

Girdi İkon Blokları

Girdi ikonları genellikle sarı renkli bir şekilde bulunmakta olup robotik ve temel kodlamada farklı içeriklere sahip olabiliyor.

Girdi ikonları temelde başlat’a basıldığında, herhangi bir tuşa basıldığında, başka bir ikon bloğundan tetiklendiğinde gibi olmasının yanında robotik kodlamada sensör yani algılayıcıların çeşitliliğinden dolayı görsel olarak dokunulduğunda veya robotik kısımda algılayıcıya göre, dokunmaya göre, mesafeye göre ve eğime göre bir sürecin başlayabilmesini sağlatmakta.

ScratchJr girdi ikon blokları
Spike girdi ikon blokları

Hareket İkon Blokları

Hareket ikonları temel programlama 4 farklı yön, 2 farklı rotasyonla dönüş, zıplama ve başa geri dönme şeklinde ScratchJr’da bulunmasının yanında robotik programlamada motor hızı, motor dönüş yönü ve motorun dururulması şeklinde sınırlandırılmakta.

Dolayısıyla yine özet olarak karakterlerin hareketlerini bildirmektedir. Spike ve ScratchJr’da mavi renkli olarak sunulmakta.

ScratchJr hareket ikon blokları
Spike hareket ikon blokları

Döngüsel İkon Blokları

Döngüsel ikonlar genel olarak belirli bir süre bekleme ve belirli blok dizisini belirli sayıda tekrar ettirmeye yarayan ifadeleri içermektedir.

Programlamadaki önemli bir kavramı ifade etmesinin yanında genellikle turuncu renk ile ifade edilmekte.

ScratchJr döngü ikon blokları
Spike döngü ikon blokları

Görsel İkon Blokları

Görsel ikonlar temel programlama ve robotik programlamada birbirinden farklı işlevleri yapmakta. Her iki örnekte de mor-pembe rengine benzer bir renk kullanılmakta.

ScratchJr üzerinde; karakterin konuşma balonu gösterimi, başka karakterlere göre önde-arkada veya ortada olması ve karakterin görünür olup kaybolması gibi işlevleri gerçekleştirmekte.

Spike üzerinde ise TeknikHub cihazının üzerinde bulunan matris formatındaki ışık görsellerini değiştirme özelliğini barındırmakta.

ScratchJr görsel ikon blokları
Spike görsel ikon blokları

Ses İkon Blokları

Ses ikonları da görsel ikonlar gibi temel programlama ve robotik programlama birbirinden farklı işlevleri barındırmakta. Hatta renk olarak da birbirinden farklı renklerle tanımlanmakta.

ScratchJr üzerinde; basit bir ses ve kendi kaydedebileceğiniz bir ses dosyası üzerinden sesin çıkartılması şeklinde olmaktadır.

Spike üzerinde ise diğer tüm fonksiyonlardan farklı olarak TechnicHub üzerinden değil, bilgisayar üzerinden ses verilmekte. Bu sesler ise bazı klasik hayvan sesleri, bazı şarkı ve ritimler ve yine kendi kaydedebileceğiniz seslerin çalması şeklinde kurgulanabilmekte.

ScratchJr ses ikon blokları
Spike ses ikon blokları

Özet

Özet olarak Scratch ve Spike’ın Metin Tabanlı Blok kodlama yöntemlerini kullanmadan önce İkon Tabanlı Blok kodlama yöntemlerinin kullanılması bence oldukça güzel. Tek seviyede sıralı bir şekilde bir kodlama işleminin yapılabilmesi oldukça hızlı ve verimli olduğunu düşünüyorum.

Ayrıca bu yapının bir benzerini ekransız-bilgisayarsız olarak fiziksel blok parçalarıyla bir robotu hareket ettirebileceğiniz Matatalab Studio ve MatataBot ile de güzel bir giriş yapılabilir.

--

--

Ali Orhun Akkirman

Sistem Yönetim Yazılım Geliştirme Takım Lideri @HAVELSAN