codeSpark Academy eğlenceli ve komik karakterleri ile okuma-yazma bilmeyen 4 yaş üstü çocuklara temel programlama becerilerini vermeye çalışmaktadır. Bir programlama öğretim materyali olması açısından birçok ödüle sahiptir. 201 ülkede 20 milyon üzerinde öğrenci tarafından kullanılmış olup içinde bulmacalar, oyunlar, oyun tasarımları yapabileceğiniz bir ortam sunmaktadır. codeSpark uluslararası bilgisayar bilimleri standartlarına göre bir müfredata sahiptir. Buna bağlı olarak öğretmen ve veli arayüzleri ile öğrencilerin gelişim süreçleri detaylı bir şekilde takip edilebilmektedir.

codeSpark uygulamasını açtığınızda öğretmen, öğrenci ve veli şeklinde 3 değişik giriş seçeneği gelecektir. Veli (parents) seçeneğini seçip ufak bir kayıt işleminden sonra çocuklarınızın yaşlarını belirtip giriş yapıyorsunuz. Öğretmen ve öğrenci seçeneklerini ileride anlatacağım.

Uygulamaya mükemmel çizimler ve harika bir ortam ile sizi karşılıyor. Karakterler çizgi film tadında oldukça sevimli olduğundan okul öncesi çocuklarını dikkatinin hemen çekecektir. Bu ortama Fooville (Foo köyü) deniliyor. Burada Foos denilen minik sevimli karakterler yaşıyor. Her birinin farklı görevleri var bunlar bölümler ilerledikçe karşımızı çıkıyorlar. Bazılarını görevi aşağıdaki gibidir.

Police Foo: Suçluları yakalayan bir polis ve beyaz boynuzlu mavi renkli Glicth’yi takip ediyor.
Chef Foo: Pek çok güzel yemek yapan usta bir aşçıdır.
Ninja Foo: İstediğinde büyüyüp/küçülebilen etrafına yıldızlar atan çevik bir ninjadır.
Astronaut Foo: Uzayda farklı yönlerde dolaşabilen bir astronottur.
Construction Foo: Tahta sandıklar yapan veya bunları yok eden inşaat ustasıdır.
Glitch Foo: Herşeyi mahveden aniden ortaya mavi renkli bir canavardır.

Bu karakterler farklı programlama kavramlarını öğrenirken ilgili bölümde bizlere yardımcı olmaktadır.
Fooville dünyasını 3 ana bölüme ayırabiliriz. Ufak oyunlarla vakit geçirebileceğiniz Mini Games, dükkandan farklı nesneler alıp/satarak yeni oyunlar yapıp bunları paylaşabileceğiniz Game Maker, uygulamanın en önemli bölümü olan ve programlama kavramlarının işlendiği Puzzles. Şunu söylemeliyim ki; bu saydığım bölümlerin hepsi birbirinden güzel ve eğlenceli. Öğretici de olan bu bölümlerde uzun vakitler geçirebilirsiniz. Şimdi bu bölümleri yakından tanıyalım.

Mini Games

Bu bölümde bilgisayar bilimlerine ait temel bilgiler olan Boolean mantığı, yığın/kuyruk işlemleri, değişkenler, eşitsizlikler, otomatikleştirme gibi kavramlar işlenmeye çalışılmıştır. Pet Pals bölümüyle başlayıp bölümler sırayla açılmaktadır. Buradaki bölümlerin Puzzles ile herhangi bir ilgisi yoktur. Bilgisayar bilimleri ile temel bilgiler oyunlaştırılarak verilmeye çalışılmıştır.

Pet Pals

İşleri otomatikleştirmenin nasıl önemli olduğu üzerine durulan bir bölüm burası. Evcil hayvan besleme kurgusu üzerinden bu yapılıyor. Seçtiğiniz hayvanı beslemek, bakımını yapmak, onunla oynamak, sevmek gibi işler sizden bekleniyor. Sol üst köşede gündüz-geceyi gösteren bir kum saati var. Bir gün içinde bu odada onlarla vakit geçiriyorsunuz. Zamanla baktığınız hayvanlar artmaya başlıyor (Resim 4). Haliyle siz hayvanların bakımına tek başına yetişemiyorsunuz. O vakit, görevlileri neler yapmaları gerektiği konusunda programlamaya başlıyorsunuz. Hangi görevlinin ne yapacağını döngüler kullanarak otomatikleştiriyorsunuz ve arkanıza yaslanıyorsunuz. Programlamanın bir amacı da bu değil mi zaten.

Resim 4

Gün sonunda odada gösterdiğiniz performansa bağlı bazı bilgiler geliyor. Burada hangi hayvana neler yaptığınız grafik halinde sunuluyor. Dediğim gibi eğlenceli ve renkli bir bölüm.

Sweet Sorter

Boolean mantığı başlangıçta elektronik devreleri etkilemiş ve bütün devreler bu mantık üzerine kurulmıştur. Sonrasında aynı mantık programlamaya geçmiştir. ve/veya/değil önermelerini esas alan Boolean mantığı uygulamanın bu bölümünde çocuklarında çok sevdiği renkli renkli şekerler ve balonlar üzerine kurgulanmış. Üzerinde şartın (mantık önermesinin) yazılı olduğu bir hazneye sağdan ve soldan rastgele gelen balonlara bağlı şekerleri düşürmek zorundasınız. Haznenin tam üzerinde de sizden yapılması istenen sınırı gösteren bir gösterge alanı bulunuyor. Sınırı geçemezseniz aynı bölümü tekrar çalışıyorsunuz. Resim 5’de veya önermesi (|) yer alıyor. Dik çizgi ile gösterilen bu önermede kalpli veya lolilop şekerleri düşürmeniz gerekiyor. Renksiz gösterilmesi şekerlerin renginin bir önemi olmadığı anlamına geliyor. İlerleyen seviyelerde mantık önermeleri değişip hazneler çoğalıyor, şekerler sağdan soldan uçuşuyor, şeker gibi bir eğlence oluyor.

Resim 5

Wild West Pets

Bu bölümde de bilgisayar bilimlerinde veriler (data) üzerinde işlem yapma sırasını belirleyen iki kavram oyunlaştırma ile verilmeye çalışılmıştır. Arka arkaya eklenmiş verileri işlemeye önden mi arkadan mı başlanacak; bunlar Stack ve Queue (Yığın ve Kuyruk) ile yapılmaktadır. codeSpark uygulamasında bu kavramlar sirkte gerçekleştiriliyor. Yerde belirli bir sırada dizi hayvan resimleri üzerine doğru hayvanları sıralamanız gerekiyor. Bu hayvanlar ise solda yer alan merdivende karışık olarak gelmektedir. Sıralamayı düzgün yapamazsanız dağılmaktadır, o zaman tekrar baştan alacaksınız. Bu bölümde 31 seviye bulunuyor. Seviyeler ilerledikçe yığınlar ve hayvan sayısı artmaktadır. Yığınların sıralamasını doğru yapabilmek için ileriye dönük akıl yürütmeniz bekleniyor. Atacağınız her adım ileride sizin işiniz kolaylaştırmalıdır. Sıralamayı belirli bir düzen üzerine yapmalısınız (Resim 6). Ayrıca ileri seviyelerde joker denilen istenilen hayvan olabilme özelliği geliyor. Böylelikle zorunlu gelecek hayvan tam olarak sıraya getirilmiş oluyor.

Resim 6

Crocodile Catch

40 seviyeden oluşan bu bölümde programlamaya ait değişken kavramı ve büyük, küçük, eşit, eşitsizlik gibi matematik kavramları üzerinde durulmuştur. Burada da oyunlaştırma kullanılmış. Olaylar balta girmemiş bir ormanın ortasındaki kimsenin bilmediği bir gizli geçitleri, odaları, tuzakları olan bir tapınakta geçiyor. Görevli Fooslar Resim 7’de sağda yer alan çıkış geçitinden geçmek için belirli şartları yerine getirmelidir. Bu görev kimi zaman belirli bir sayıya eşit, küçük ya da büyük elmas toplamak olabildiği gibi kimi zaman da elinizdekileri bir başka Foos’a aktarmak ya da ondaki kadarı elde etmek gibi görevler de olabiliyor.

Değişkenler bilgilerin depolandığı minik alanlardır. Programlamda da değişken kullanmadan verilerle oynayamazsınız, üzerinde işlem yapamazsınız. Bu uygulamada da toplanan elmaslar değişkenleri temsil etmesi için simge halinde gösteriliyor. Bu değişken atama oluyor (<–5, a=5). Arkadaşını da kurtamak için elindekinden belirli bir kısmını ona vermelisin, bu da değişken aktarım (a=b) demektir. Kimi zamanda değişkenlerde ardışık değilde +6, -15 şeklinde artırım/azaltım gibi işlemler de yapılabilmektedir (a=a+6, b=b-15).

Mini Games’de en güzel ve eğlenceli bölüm bence burası. Bir yandan yukarıdan gelen elmasları yakalamak, örümceklerden ve değişkeni sıfırlama/azaltma tuzaklarından kaçınmak diğer taraftan geçiti çalıştırmak için gereken kuralı harfi harfine uyma eğlencenin dozunu artırıyor. İlerleyen seviyelerde yanınıza bir de arkadaş veriyorlar. Birbirinize elmas alıp vererek geçitlerden geçmeniz gerekiyor.

Resim 7

Game Maker

codeSpark uygulamasının bu bölümünde öğrenci kendi oyunlarını üretebilir, oyununu geliştirmek için birtakım oyun elementleri satın alabilir ve sonuçta da ürettiği bu oyunları arkadaşları veya codeSpark topluluğu üzerinde paylaşabilir. Bu bölüm öğrencinin yaratıcılığını geliştirmenin yanı sıra oyun üretmekle ve bunu paylaşmakla öğrencide özgüven sağlayabilmektedir. Ayrıca başka öğrencilerin yaptığı ilginç, çılgınca oyunlardan da ilham alınabilir. Yapılan oyunlar platform oyunu dediğimiz bir karakteri çıkış noktasına belirli yollardan geçirerek ulaştırmaktır.

Create

9 seviyeden oluşan bu bölümde sırasıyla oyun oynatarak zaman zaman o oyunun belirli yerlerini tamamlanız isteniyor. Bu tamamlama işlemi Resim 8’de görüldüğü üzere farklı renklerle sınıflandırılmış alanlardan alınan oyun elementleri sayesinde oluyor. 9 seviye bitince artık siz kendiniz oyun yapmaya başlıyorsunuz. Yaptığınız oyunlar için ekstra element almak için Shop (alışveriş) kullanabilirsiniz. Burada da biriktirdiğiniz altınları harcamalısınız.

Resim 8

Play

Bir önceki bölümde ürettiğiniz oyunlarınızı burada paylaşabilirsiniz. Paylaşılan bu oyunların oynanma ve beğenilme sayılarını görebilirsiniz. Ayrıca codeSpark topluluğu içinde paylaşılan diğer oyunları da deneyimleyebilirsiniz. En çok beğenilen en çok oynanan oyunları da ilk sıralarda bulabilirsiniz. Bu bölümün özellikle öğrenciye neler yapılabileceği konusunda ilham veren, teşvik eden ve özgüvenine katkıda bulunan bir yapısı var.

Shop

codeSpark’ın bütün bölümlerinde kazandığınız altın ve kupalarla Shop’tan alışveriş yapabilirsiniz. Shop bölümünden oyunlarınız için Foos karaketerleri satın alabilirsiniz. Bunun dışında oyunlarınızı geliştirebileceğiniz tuzaklar, bombalar, engeller, zıplama yayları, ödüller, geçitler, kapılar, bulutlar ve daha bir sürü dekor malzemeleri bulabilirsiniz. Her oyun elementinin altında kaç altın ya da kupa ile satın alacağı yazıyor. Eğer zaten sahipseniz o elementin üzerinde kilit bulunmuyor, alabilirsiniz. Sizin sahip olduklarınız da Resim 9’de yukarıda yazıyor.

Resim 10

Puzzles

codeSpark’ın en önemli bölümü burasıdır. 4 alt bölümden oluşmaktadır ve bunlar sırasıyla açılmaktadır. Bu bölümlerde programlamaya ait farklı kavramlar işlenmektedir. Buna göre sırasıyla sıralama, döngüler, gelişmiş sıralama, olaylar ve koşullar gelmektedir. Her bölümde farklı bir tema üzerinden gidiyor ve farklı bir Foos’larla çalışıyorsunuz. Ayrıca müzik ve sesler de her bölümde değişmektedir. Bunların hepsi merak ve kontsantrasyonu etkileyen tasarım unsurlarıdır. Hepsi okul öncesi çocukları için gayet yerinde ayarlanmıştır.

Donut Detective- Sequencing

Bir Foos polisinin mavi Glitch’in peşine düştüğü bu bölüm 17 bulmacadan oluşuyor. Temel bir kavram olan sıralama kavramı bu bölümde işlenmektedir. Her bulmaca bu yakalama macerası farklı bir mekanda devam ediyor. Bu bulmacalarda sizden bir nesneye ulaşmanız veya belirli bir sayıda elmas toplamanız bekleniyor.

Resim 11

Resim 11’de görüldüğü gibi Foos polisini görevi yerine getirmesini için programlamanız gerekiyor. Bunun içinde karakterin üzerinde bir kere dokunmanız yeterlidir. Kod giriş ekranı gelecektir. Bu ekranda turuncu alan kod giriş alanı, sarı alan ise kodların bulunduğu alandır. Sarı alandaki ilgili kodun üzerine dokunduğunuzda kod giriş alanına kod yerleşiyor. Çıkarmak için ise o kodun üzerine yine bir kere dokunmalısınız. Kodlarınızı tutup yer değiştirebiliyorsunuz. Kodlar temel hareket komutlarını (sağ, sol, zıpla, yürü gibi) kapsıyor. Yine bunlar kodun içinden (beyaz kutudan) seçilebiliyor. Kodlar doğrusal olarak yerleştiriliyor. Alt satıra kod yerleşmiyor. Yani size verilen boşluğu iyi değerlendirmelisiniz. Gerekli bütün kodları yerleştirdiyseniz bunları çalıştırmak için Foos karakterinin üzerine bir kere dokunmalısınız, çalışacaktır. Karakteri çalıştıran kodların hangisinde olduğunuzu pembe renkli sürgü ile takip edebilirsiniz. Bu sayede nerede hata yaptığınızı tespit edebilirsiniz. Eğer doğru çalışmazsa sizi başa döndürüyor. Eğer herhangi bir takılma veya hata olursa sağ üst köşeden bulmacayı baştan başlatabilirsiniz.

Bu bölümde öğrenciden beklenen en az komutla doğru bir dizilimle komutları sıralamaktır. Bulmacanın sonunda ne kadar az komutla yaptığınız değerlendirilip ona göre yıldız ve altın veriliyor.

Tools Trouble

Eğer bir önceki bölümü bitirirseniz bu bölüme ulaşacaksınız. Bu bölümde yine her şeyi mahveden mavi renkli Glitch’i yakalamaya devam ediyor. 16 bulmacadan oluşan bu bölümde bize Construction Foos yardımcı oluyor. Kendisi bir yapı ustadır. Tahta sandıklar yapıp üstüne çıkıyor, engelleri aşmak için dinamit kullanabiliyor, nesneleri itebiliyor.


Bu bölümde başka bir programlama kavramı olan döngü kavramı üzerinde duruluyor. Döngüler sıralı komutları defalarca çalıştırmaya yarar. Zaten bulmacalarda bol tekrarlı komutlar yer alıyor. Bu sayede aynı komutları tekrar yazmamış olursunuz. Resim xx’de varillerin üzerinden atlama işi merdiven şeklinde olduğu için bu durum bir döngü kullanabiliriz. Sağdaki mor alandan döngüye dokunursanız kod giriş alanına yerleşecektir. Döngüler her zaman sonsuz kez çalışacak şekilde geliyor. Eğer bir sayı verecekseniz sonsuz işaretinin üzerine tıklayıp tekrar sayısını seçin. Soldaki mavi alanda ise Foos’u yolda ilerlemesi için yükseltiler ya da engelleri kaldırmak için nesneler yer alıyor. Bunları da doğru yerlerde kullanmanız sizden bekleniyor.

Kite Plight

Bize sevimli bir Ninja Foos’un eşlik ettiği bu bölüm 17 bulmacadan meydana geliyor. Ortam olarak ninja olması nedeniyle sanırım biraz Uzak Doğu evleri ve dekorunu görüyoruz. Başlangıçta çizgi roman şeklinde bu bölümün hikayesi anlatılıyor. Bu bölümde Ninjamız, yeri geliyor dar aralıklardan geçmek için küçülebiliyor ya da ufak mesafeleri atlamak için büyüyebiliyor. Ayrıca kapalı sandıkları anahtarla açıp engelleri yok etmek için ise muz fırlatabiliyor. Ninjanın uçurtmalara ulaştırılması gerekmektedir.

Resim 12

Resim 12’de görüldüğü gibi yavaş yavaş farklı kodlar gelmektedir. Bu bölüm ilk bölümün bir devamı olup sıralama işini daha karmaşık hale getirip görevlerinizde sizden bunları kullanmanız bekleniyor.

Puppy Problems

Bu kez macera uzayda geçiyor. 10 bulmacadan oluşan bu bölümde göreviniz astronot Foos’u çok sevdiği köpeğine ulaştırmak. Ancak astronotun yolunun üzerinde göktaşları bulunuyor. Bu görev sırasında göktaşlarının aşılması gerekiyor.


Bu bölümde olay (event) kavramına giriş yapılıyor. Olay, belirli durumların gerçekleşmesi halidir. Bu olayların olması durumunda her olay için ayrı ayrı kodlar yazılır. Başından beri karaktere dokunarak kodları çalıştırdığımızı hatırladınız mı? codeSpark’ta 4 farklı olay durumu vardır: Touch Event, Play Event, Bump Event ve Shout/Hear.

Komut giriş alanına yeni bir satır geliyor. İlk satırda astronot Foos’a dokunma olayına ait kodları giriyorsunuz. Bu kodlar astronotun uzaydaki hareketini belirten kodlar olacak. Yeni satırda ise göktaşlarına çarpma olayında neler olacağını belirten kodları yazıyoruz. Bu durumda ise dinamit kullanıyoruz ve böylelikle göktaşlarını patlatıyoruz.

Olay kavramı programlamada oluşabilecek durumları ön görüp ona göre önceden hazırlık yapmak anlamına geliyor. Çökmeler, hata oluşması gibi durumlar olabildiği gibi kullanıcı taraflı olaylarda olabilir. Bir programcı yaptığı programda her durumu öngörebilmelidir.

Lunch Crunch

Resim 13

Bu kez bir lokantadayız. Şef Foos nefis yemekler yapıyor bize. 10 bulmacadan oluşan bu bölümde amacımız lokantaya gelen her müşterinin istediği yemeği yapıp servis etmek.

Bu bölümde Resim 13’de görüldüğü gibi yeni bir kavram olan koşullar(eğer) bizi karşılıyor. Programlamada program akışına göre belirli şartlarda farklı yönlere yönlendirilebilir. Sağda yol varsa sağ dön ya da sayı 10’dan büyükse gibi. Uygulamada gelen müşterilerin isteklerinin duyulması olayında (Hear Event) ne isteyeceklerine göre eğer durumları oluşturulmalıdır. Eğer makarna, dondurma veya tost istenirse buna uygun hazırlık işlemleri ayrı ayrı yazılmalıdır. Hazırlanan her müşteri isteği sonunda servis edilmesi ortak olacağından bir tane servis komutu yazılıyor. Böylelikle kim ne isterse istesin hazırlanıp sonunda servis edilmiş oluyor.

Öğretmen Arayüzü

Yazının başında da belirttiğim gibi codeSpark uygulaması cidden çok kapsamlı ve uluslararası bilgisayar bilimleri standartlarını karşıladığını iddia eden bir uygulama. M.I.T ve Kaliforniya üniversitelerinde geliştirilen müfredatları resmi web sitesi olan www.codespark.com’da ücretsiz ve herkese açık durumdadır. Bu bakımdan geliştiriciler okullarda veya programlama kulüplerinde uygulanabilmesi bu müfredatın takip edilmesini tavsiye ediyor.

Uygulamada öğrencilerin uygulamayı kullanmasının yanı sıra gelişim süreçlerinin de takip edilebilmesi için bir öğretmen arayüzü de bulunmaktadır. Ancak uygulamadaki arayüze geçmeden önce web sitesi üzerinden bir öğretmen hesabı açıp sınıflar oluşturmalı ve bu sınıflara öğrencileri tanımlamalısınız.

Resim 14

Resim 14’deki web arayüzü öğretmen kontrol panelini göstermektedir. Sınıf oluşturmak için Create a Classroom seçeneğini kullanmalısınız. Daha sonra sınıfa bir isim verip seviyesini belirlemelisiniz. Tek sınıf oluşturabildiğiniz gibi birden fazla sınıfta yapabilirsiniz. Ayrıca bu sınıflara sizin dışınızda başka bir öğretmen de atayabiliyorsunuz. Oluşturduğunuz sınıfların uygulamada yukarıda bahsettiğim bölümlerin hangilerini kullanıp kullanamayacağını seçebiliyorsunuz. Bunun dışında seçtiğiniz sınıfa tek tek öğrenci kayıt edebileceğiniz gibi Excel’de hazırlanmış toplu bir CSV listesini de aktarabilirsiniz.

Your Students seçeneği ile öğrencilerin gelişimlerini takip edebilirsiniz. Resim 15’de görüldüğü gibi codeSpark uygulamasında daha önce bahsettiğim bilgisayar bilimi ve programlama kavramlarının hepsi burada başlık halinde yer almaktadır. Tabloda sınıfa tanımlanan öğrencilerin ilgili kavram bazındaki başarı durumu görülebildiği gibi öğrencinin adının yanındaki pasta diliminde de ortalama başarı durumu yer almaktadır. İstenirse bu ilgili öğrencinin velisine buradan mesaj da gönderilebiliyor.

Resim 15

Resources seçeneğinde ise özenle hazırlanmış ücretsiz codeSpark uygulamasının öğretim programını edinebilirsiniz. Programda geçen soruların çözümleri de PDF olarak indirilebilmektedir. Ayrıca yine burada çeşitli uluslararası bilgisayar bilimleri standartlarına göre uygulamanın neleri karşılayıp karşılayamadığını gösteren tablolar da bulunmaktadır.
Uygulamanın web sitesinden edindiğim müfredat ve kullanma kılavuzunu buradan indirebilirsiniz.

Özetle, codeSpark bir okulda ya da öğretim kurumunda gerekli donanım sağlandıktan sonra bilgisayar bilimi ve programlama adına öğretilebilecek herşeyi okul öncesi seviyesinde rahatlıkla verebilmektedir.

Teknik Özellikler
Uygulamanın Adı codeSpark Academy with the Foos
Arayüz dili İngilizce
Geliştirici codeSpark
Web site https://codespark.com/
Platform
Versiyon 2.19 2.19
Boyut 57 Mb 188 Mb
Uyumluluk Android 4.1+ iOS 7.0+
Uygulama ücreti İlk 7 gün ücretsiz sonra aylık 8$