- Pickcode, ortaokul ve lise bilgisayar bilimi dersleri için çevrimiçi bir IDE’dir; öğretmenlerin ders yönetimine harcadığı zamanı azaltan, basit ve kararlı bir platform olmayı hedefler
- Chromebook desteği, öğrenci çalışmalarını izleme, gerçek zamanlı iş birliği ve kod geçmişini inceleme temel ders yönetimi özellikleridir
- Öğretmenler ders materyallerini ve ödevleri özelleştirip düzenleyebilir; Pickcode ise yapay zeka kod yardımcısı özelliği bulunmadığını açıkça belirtir
- Öğretmen değerlendirmelerine göre Java, Web Development, Python ve AP Computer Science Principles derslerinde öğrencilerin daha kolay erişmesine ve bağımsız çalışmasına yardımcı olmuştur
- Karmaşık profesyonel IDE’ler yerine ders oluşturma ve öğrenci yönetimine odaklanan bir araç olduğundan, sınıf ortamında dikkat dağınıklığını azaltan bir seçenek olarak görülebilir
Sınıfa göre tasarlanmış çevrimiçi IDE
- Pickcode, ortaokul ve lise CS dersleri için çevrimiçi bir IDE’dir
- Öğretmenlerin ders yönetimi zamanından tasarruf etmesi için basit ve kararlı bir platform vurgusu yapar
- Başlarken, giriş ve fiyatlandırma sayfalarına uzanan temel erişim yolları sunar
Ders yönetimi özellikleri ve öğretmen tepkileri
- Pickcode’un başlıca özellikleri ders yürütme ve öğrenci çalışmalarını kontrol etmeye yöneliktir
- Chromebook üzerinde çalışır
- Öğrenci çalışmaları izlenebilir
- Gerçek zamanlı iş birliğini destekler
- Kod geçmişi incelenebilir
- Ders materyalleri özelleştirilebilir
- Ödevler düzenlenebilir
- AI kod yardımcısı özelliği yoktur
- Öğretmenler arayüzün basit ama ölçeklenebilir olduğunu ve farklı yaş gruplarındaki öğrenciler tarafından sevildiğini değerlendiriyor
- Java, Web Development, Python ve AP Computer Science Principles derslerinde kullanım örnekleri bulunuyor
- Öğrencilerin aracı daha kolay kullanmasına, çalışmalarını takip etmesine ve bağımsız ilerlemesine yardımcı olduğu yönünde geri bildirimler yer alıyor
- Destek ekibinin hızlı yanıt verdiği ve yardımcı olduğu, önerilerin birçoğunun hayata geçirildiği yönünde değerlendirmeler de var
1 yorum
Hacker News yorumları
var,set,callanahtar sözcüklerini mutlaka zorunlu kılmak için iyi bir neden olup olmadığını merak ediyorum. BASIC’te böyle şeyler yoktu; çocukken programlamayı ilk öğrendiğim zamana dair bulanık anılarımda, bu tür anahtar sözcükler gereksiz karmaşıklık gibi gelirdiÖrneğin LOGO’da sadece
forward 10,left 90yazmak yeterliydi;call paint.forward(10),call paint.left(90)ise abartılı ve gürültülü hissettiriyorset x = 7ifadesinde, bir değişkeni değiştirmek mi istediğinizi yoksa eşitliği mi iddia ettiğinizi anahtar sözcük netleştiriyorTeknik olarak çizim programı bağlamında
forward()üst seviye bir metot yapılabilirdi, ama öğrenciler daha sonra 2D oyun motoruna geçip birden fazla sprite’ı kontrol ettiklerinde hazırlıklı olmaları için bunu biraz daha nesne yönelimli yapmaya karar verdikforwardvelefthareket yönü gibi görünüyor; özellikle ressamı “sola hareket ettirmek” istediğinizde kafa karıştırıcıAslında
forwardçizme/hareket etme,leftise negatif argüman da kabul eden saat yönünün tersine döndürme olduğundan,call paint.draw(10),call paint.rotate(90)ya darotate("up")daha anlaşılır geliyorgosubkomutu vardıBu arada, erken dönem BASIC’lerde de öyleymiş diye bağlantı numaralarını da 1’den başlattım :)
[1] https://picaxe.com/basic-commands/program-flow-control/gosub...
[2] https://alandix.com/blog/2021/07/27/a-brief-history-of-array...
LET X=10vardı10 yaşındaki çocuğuma Godot’yu tanıtıyorum. Son 6 ay boyunca Scratch ile oyunlar yaptı ve Scratch’i seviyor, ama sınırlarından da bunaldı
Gerçek bir betik dili kullanmayı daha çok seveceğini sanmıştım, fakat GDScript kullanmaya başlar başlamaz yazması gereken miktar yüzünden kısa sürede hayal kırıklığına uğradı. Elleri küçük olduğu için on parmak yazmayı öğrenmesi zor; değişken adlarını ve metot çağrılarını yazmak çok uzun sürüyor
Bu tam iyi bir denge gibi görünüyor, o yüzden bakacağım
3 yaşındaki çocuğumla çok hafif Python dersleri yapıyorum; anlama düzeyine kıyasla ilerlemenin neden yavaş olduğunu merak ediyordum. Şimdi fark ediyorum ki parantez ve tırnak işareti gibi şeyleri yazmak bile uzun sürüyormuş
Bu projeyi sevdim ve denemeyi dört gözle bekliyorum. Çocuklar için programlama konusunda ne kadar çok olursa o kadar iyi diye düşünmeye başlıyorum. Birden fazla dil ve iş akışı arasından seçim yapma dinamiklerine maruz kalmaları da iyi olabilir
Ama ona “gerçek” bir programlama dili gösterdiğimde, bunların hepsini Scratch’te de yapabildiğini ve bu kadar çok yazmasına gerek olmadığını söylüyor
GameMaker’ı da birlikte denedik ve güzel sonuçlar ürettik, ama kısa bir süre arkamı döner dönmez yine kendi Scratch projesine dönmüş oluyor. Bazen, eski ben gibi en baştan kodla başlaması daha mı iyi olurdu diye düşünüyorum ;-)
Yine de sorunu işaret edip ne yapılabileceğini sormak bile çocuğun o problemi düşünmesini ve Scratch içinde mümkün olan çeşitli yollar bulmasını sağlıyor. Örneğin programı birden fazla nesneye veya ajana bölmek gibi
Scratch, ilk izleniminin ya da ilk programların ima ettiğinden çok daha güçlü
varveconstvarPickcode’un çıkışını kutlarım. Ayrıntılardaki tamamlanmışlık iyi ve özenle yapıldığı belli
Programlamayı geliştirici olmayanlar için daha erişilebilir kılmaya çalışan görsel programlama tarafında en az iki akım olduğunu düşünüyorum
Bazı girişimler görsel arayüzle sözdizimi öğrenme yükünü azaltıyor, ama emirsel niteliği veya algoritmik düşünme gerekliliğini saklamıyor. Esasen erişilebilirlik seviyesi farklı bir IDE olarak görülebilir; Pickcode ve Scratch’in bu kategoriye girdiğini düşünüyorum
Diğer taraf ise görsel metaforlara bir ölçüde daha iyi uyabilecek farklı programlama paradigmalarını araştırıyor. Kullanıcıyı da emirsel programlamadan farklı bir düşünme biçimine yöneltiyor. Node-RED, akış tabanlı programlamayı araştıran iyi bir örnek; bu da fonksiyonel reaktif programlamanın yakın akrabası. LabVIEW de veri akışı tabanlı yakın bir akraba, ama onda daha fazla sihirli unsur var. Aslında bunlar epey akıllı varsayılanlar ve dahili değişken adlandırma. Apple Automator da akla geliyor
Birinin mutlaka diğerinden daha iyi ya da kötü olduğunu düşünmüyorum, ama görsel dillere bakarken emirsel ve reaktif ayrımını düşünmek, son kullanıcı deneyiminin büyük ölçüde farklılaşabileceğini görmek açısından faydalı
“Kod düzenleme deneyiminin tamamen yapılandırılmış olması ve yazmak yerine menülerden seçim yapılması” çok hoş
Yetişkin programcılar için de böyle bir şey, yani birden fazla programlama dilinde kullanılabilecek genel amaçlı bir yapısal düzenleyici olsa keşke. Programlama yaparken akla ilk gelen niyet semantiktir. Burada bir fonksiyon tanımlamak, şurada bir koşulu kontrol etmek gibi
O zaman bu semantik niyeti neden doğrudan düzenleyiciye iletemediğimizi anlamıyorum. Neden önce niyeti bir karakter dizisine serileştirip, sonra düzenleyicinin bunu tekrar hataya açık bir şekilde parse etmesi gerekiyor? Yazım hataları, parantez uyumsuzlukları, operatör önceliği hataları gibi aptalca sözdizimi hatalarının araya girme ihtimali doğuyor; sadece semantik hataların kalması daha iyi olmaz mı?
Böyle bir düzenleyicinin klavyeye mutlaka düşman olması da gerekmez. Excel’in klavyeye düşman olmamasına benzer. Doğu Asya dillerindeki giriş yöntemleri gibi “birleştirme penceresi”ne yazıp “aday penceresi”nden seçerek ekleme yöntemiyle de çalışabilir gibi geliyor
Benim anladığım kadarıyla bu durumda büyük sorun, kodun geçtiği tüm ara durumların semantik olarak geçerli olması gerektiği kısıtını koyma isteği. Dışarıdan bakınca çekici, ama pratikte ölümcül bir kısıta dönüşüyor. Çok yetenekli insanlar bile önce biraz gevşek düşünür, sonra kodu düzeltir; bu tek satır düzeyinde bile böyledir. Her zaman %100 geçerli olma zorunluluğu, gerçek düşünme biçimiyle ciddi biçimde ters düşüyor
Bu uyumsuzluğun temel olduğunu düşünüyorum. İnsanların çok küçük bir kısmı bile bu şekilde düşünüyor mu bilmiyorum. Profesyonel matematikçilerin bile gerçek çalışmalarında çoğu zaman önce ileri atlayıp düşündükleri, kesinliği sonra doldurdukları söylenir. Onlar bile adım adım katı biçimde ilerlemiyorsa, kim öyle yapar ki?
Programlama anlamı bilen otomatik tamamlama ve öneriler etrafında yerleşti; bunun basit bir tembelliğin sonucu değil, gerçek optimum nokta olma ihtimali yüksek
Birisi sonuna kadar zorlarsa sorun çözülebilir belki, ama burada meyve varsa bile alçakta asılı bir meyve değil demek isterim
saurik’in dediği gibi, Emacs kullanan Lisp dünyası buna en yakın yer, ama yine de istediğiniz her şeyi yapabiliyorsunuz. Sadece daha semantik çalışmanıza yardımcı olan çok sayıda araç var; mutlak bir zorlama yok
O yazılımı duymuş olan tek aday olduğum için işi kapmıştım. Bir dergide kısa bir yazı okumuş olmam sayesinde
https://en.wikipedia.org/wiki/Omnis_Studio
Açılır listelere ve pop-up’lara tıklayarak programlama yöntemi pek iyi tasarlanmış sayılmazdı. Program liste gibi görünürdü; bir satırı düzenlemek istediğinizde modal bir iletişim kutusu açılır ve sadece o tek satırı değiştirebilirdiniz. IntelliSense ya da kod tamamlama elbette yoktu
Düşününce bile PTSD’m tetikleniyor gibi; içkiye ya da sigaraya ihtiyaç duyacak hale geliyorum
Scratch’te en sevdiğim özelliklerden biri sözdizimi hatası oluşturamamak. Bloklar ya birbirine uyar ya da uymaz. Bu yüzden çocukların ayrı açıklama ya da özel ders olmadan daha kolay başlayıp oynayabildiğini düşünüyorum
Kare eğitimindeki ilk birkaç adımı izledikten sonra şuna buna tıklayıp kendim denedim ve
call math paint.forward()oluştu, bu da sözdizimi hatası verdi. Elbette o satır çöptü, amamathkomutunun nasıl çalışması gerektiğini çözemedim. Eğitimi daha fazla izlersem açıklaması çıkacaktır, ama keşfedilebilirliğin de önemli olduğunu düşünüyorumBlok sayısı artınca birbirlerinin üstüne de binebilirler; bunu bulmak epey zorlaşır. Blok argümanlarını eksik bırakma sorunu da var. Yine de çalışır ama işlev görmez
Görsel programlama çocuklar için kesinlikle daha iyi, ama Scratch’ten daha sıkı bir yaklaşım ve daha iyi hata ayıklama becerisi gerektiğini düşünüyorum
Gerçekten çok iyi görünüyor. Khan Academy’de ProcessingJS düzenleyicisinin blok tabanlı sürümünü yaptığımız zamanları hatırlattı
UI biraz kaba saba ve bakımı zor olduğu için sonunda bıraktık, ama bu oldukça akıcı görünüyor. Yeni programcıların tipli programlamaya geçebilmesi için daha fazla yol sunması hoşuma gidiyor. Blok kodlamanın çoğunun gerçek koddan fazla uzak olduğunu da düşünüyorum
Bazen bu tür blok tabanlı düzenleme tip denetimiyle birleşerek “boşlukların” sorgu temelli akıllı biçimde doldurulmasını da sağlayabiliyor. Muhtemelen en belirgin olarak Agda gibi saf fonksiyonel diller için düzenleyicilerde görülebilir
ZX81’in BASIC’ini hatırlatıyor. Anahtar sözcükleri yazmıyordunuz; özel klavyede her anahtar sözcük için bir tuş vardı.
Düzenleyici bağlama duyarlıydı; başka bir deyişle, ayrıştırıcının yönlendirdiği sözcüksel analizci kullanıcının kendisiydi. O zamanlar bir sözcük/sayı mı girmek istediğinizi, yoksa bir anahtar sözcük mü girmek istediğinizi ve bunun ne tür bir anahtar sözcük olduğunu anlaması biraz sihir gibi geliyordu. Aslında eğitim açısından önemli olan kısım, benim bunu biliyor olmamdı.
ZX81’de önemli olan şey, metin gösterimi yerine token saklayarak bellekten tasarruf etmesiydi. RAM 1 KB’tı ve buna ekran belleği de dahildi. Ayrı bir GPU da yoktu. Giriş sırasında ayrıştırma yapması, çalışmayı da muhtemelen hızlandırmıştır.
Site çok iyi cilalanmış, ancak hedefe tamamen katılmıyorum. Etkileyici bir IDE olsa da, yeni bir dil yerine Python’ın bir alt kümesine odaklanırdım gibi geliyor.
Aksi halde Scratch’in öğretmesi daha kolay, Python’ın ise öğrenmesi daha faydalı olduğu gerekçesiyle göz ardı edilebilir. İlki, geliştirici olan öğretmenlerin bulunduğu okullar için; ikincisi ise çocuğuna eğitim veren programcı ebeveynler için geçerli.
Bir yazılım geliştiricisi olarak eşimin ilkokul/anaokulu programlama derslerine yardım etmişliğim var, bu yüzden bu alandaki sorunları bir ölçüde biliyorum.
İlgili yazılar:
Show HN: Pickcode – A new way to introduce programming to kids - https://news.ycombinator.com/item?id=33562193 - Kasım 2022, 14 yorum
Show HN: PickCode – An educational coding environment for students after Scratch - https://news.ycombinator.com/item?id=32230329 - Temmuz 2022, 32 yorum
Show HN: Pickcode – A graphical code editor for education - https://news.ycombinator.com/item?id=31426331 - Mayıs 2022, 4 yorum
Yeniden paylaşım yaklaşık 1 yıl sonra sorun değil; önceki başlıkların bağlantıları da daha fazlasını merak eden okurlar için.
Benzer bir kavram üzerinde müzik programlama tarafında çalışıyorum:
https://glicol.org
Açılış sayfasında hemen birkaç örnek olsa iyi olurdu.
Dersi denediğinizde takılıp kalıyorsunuz; ipuçları sağda, ama pek göze çarpmıyor. Svelte Tutorial(https://learn.svelte.dev/tutorial/welcome-to-svelte) gibi yeniden konumlandırılabilir.
Sözdiziminden emin değilim. LOGO kullanmayı düşünüp düşünmediklerini merak ediyorum.