LOGO

AFİF SAY “Sizi değil, siz onu programlayın.” Bu sayıda tanıtacağımız dillerden birisi olan LOGO'nun felsefesi yukarıdaki cümleyle özetlenebilir. Bu da nereden çıktı demeyin, yoksa bu vakte kadar bilgisayarı programladığınızı mı sanıyordunuz? Evet görünüşe göre öyle, ama ya size yaptıklarınızın belli işlemleri yaptırabilmek için hep onun suyuna gitmek olduğunu, istediği şeyleri hep onun istediği biçimlerde verdiğinizi söylersem? Yani aslında onun sizi programladığını... İşte size bilgisayarınızı gerçek anlamda “programlamanızı”, onunla onun istediği gibi değil, kendi istediğiniz gibi iletişim kurmanızı sağlayacak bir dil: LOGO. LOGO öncelikle bir eğitim dili olarak tasarlanmış (lütfen eğitimle öğretimi karıştırmayalım), bu nedenle özellikle çocuklar düşünülmüş, ama yediden yetmişe herkese yönelik olduğu görülmüş daha sonra. Çocukların genel yapıyı bir haftada kavradığı söyleniyor, büyükler için bu süre biraz daha uzunmuş. LOGO yaklaşık on beş yıl kadar önce İsveçli psikolog Jean Piaget'nin öğretileri temel alınarak Seymour Papert'in öncülüğünde ABD'de geliştirildi. Piaget'ye göre, “...insan çevresini yönlendirerek” öğrenir. Dili, sözcükleri yönlendirerek öğrenmeye başlar ve aşama aşama geliştirir. Bebek önce anlamsız sesler çıkarır, sonra sözcükleri kullanır ve daha ileri aşamada cümleler halinde birleştirir. Çocuk soyut bir kavram olan dili somut bir amaca ulaşmak için kullanır. Örneğin “su” sözcüğüyle su istediğini belirtip gereksiniminin karşılanmasını sağlar. Çevresiyle kurduğu bu iletişimi geliştirdiği zaman dilin gramatik yapısını irdelemeye başlar. Bu şekilde, yeni durumlarla karşılaştığında dili yeniden oluşturur. İşte LOGO dili bu aşamalardan geçilerek öğrenilir ve geliştirilir. Önce grafikler öğrenilir -bebeğin konuşması gibi-. Grafikler somut sonuca karşılık düşerler. LOGO'da “turtle” denen üçgen şeklinde bir yaratık istenildiği gibi yönlendirilerek çizgi çizmesi sağlanır. FORWARD (ileri git), RIGHT

(sağa dön) komutları ile ekranda çizim elde edilebilir. Verilen bu komutlarla somut sonuçlara ulaşma başarısı arttıkça LOGO'nun dil yapısı da öğrenilir. Sonra bu komutlar bir araya getirilerek daha karmaşık bir sonuca yönelik program parçaları elde edilir. Çocuk artık cümleler kurmaya başlamıştır. Artık soyut kavramlar geliştirerek yeni LOGO sözcükleri yaratılabilir. Yukarıda açıklanan bu aşamaları örneklersek: Basit bir üçgen çizimini

TO UCGEN
FORWARD 50
RIGHT 120
FORWARD 50
RIGHT 120
FORDWARD 50
END

komutlarıyla yapabiliriz. Şimdi daha üst bir kavrama geçelim:

TO HAC
UCGEN RIGHT 90
UCGEN RIGHT 90
UCGEN RIGHT 90
3
UCGEN RIGHT 90
END

Görüldüğü gibi daha önce verilen üçgen kavramı, bir üst işlemde haç oluşturmada kullanıldı, yani sözcükler cümle içinde değerlendirildi. Basit kavramlardan yola çıkılarak karmaşık düşünceler ifade edildi. LOGO'da turtle grafikleri önemlidir, ama yalnızca başlangıç için. LOGO eşittir çizim ve grafik denemez. Bu dilin asıl önemi semboller üzerinde işlem yapmamızı sağlaması (symbol processing), yani düşünceleri somut nesneler gibi işleyebilmesidir. Konuyu bir örnekle açarsak: “Kuş” sözcüğü bize kanatları olan, uçan, yumurtlayan canlı varlıkları anlatan bir semboldür. İnsan beyni kuşları bu sembole bağlı özelliklerle algılar. Martı da bir kuştur; yani kuşların bütün özelliklerine sahiptir. Ayrıca martının su kenarında yaşama, suda batmadan durabilme gibi kendine özgü nitelikleri de vardır. Sonuçta bütün martılar kuştur, ama bütün kuşlar martı değildir yargısı insan mantığı için son derece basit bir işlemdir. İnsanlar sembolleri doğal olarak değerlendirir; nesnelere özellikler bağlar ve diğer şeylerin aynı sınıfa dahil olup olmadığını yargılar. Bunu BASIC dilinde yapabilmek için çok karmaşık matematiksel algoritmalar kullanmak gerekmektedir. Oysa LOGO'da yöntem insandakine çok yakındır. Kuşun özelliklerinin listesi yapılır ve bu özellikler değerlendirilerek diğer nesnelerin kuşlarla olan ilişkisini yargılayabiliriz. Şimdi bütün bunların LOGO'ca nasıl ifade edildiğini görelim:

MAKE “KUS (LIST
(KANATLARI VAR) (UCAR)
(YUMURTLAR) (CANLIDIR))
MAKE “MARTI (LIST
(KANATLARI VAR) (UCAR)
(YUMRUKLAR) (CANLIDIR)
(SU KENARINDA YASAR)
(SUDA BATMADAN DURUR)
TO YARGILAMA
MAKE “SAYI COUNT”': KUS
IF: SAYI- O THEN PRİNT (MAR-
TI BIR KUSTUR)
TEST MEMBER?
MARTI
IFFALSE THEN PRINT (MARTI
BIR KUS
MAKE “KIS BUTFIRST”: KUS
YARGILAMA
END
FIRST: KUS:

Görüldüğü gibi ilk bölümde her iki kavramın da özelliklerini tanımladık, sonra kuşun özelliklerini martınınkilerle teker teker karşılaştırdık. (Bunu BASIC'le deneyin bakalım.) Ece, bütün bunlar neye yarar, biz doğal olarak bu işlemleri yapıyoruz zaten, bilgisayarın yapmasına ne gerek var diye düşünebilirsiniz. Haksız da sayılmazsınız, ama düşünün bir kez, ona bizim gibi düşünmeyi daha yeni öğrettik. Hele bunu biraz daha karmaşıklaştırır, daha geliştirirsek bizimle fikir tartışmasına girmesi bile yakındır. Yani yapay zekaya sahip olması... Neyse daha fazla uzatmadan son sözlerimi özetleyeyim: LOGO sorularımızı doğal yollarla ifade edebilmemizi sağlar. Bunun ötesinde LOGO problem çözmede bir yaklaşım sağlar. Yaratıcı yolla problem kurma ve çözme yollarını öğretir. Bu öğrendiğimizi yalnızca bilgisayarla olan ilişkimizde değil, yaşamın her alanında kullanabiliriz. Kısacası LOGO ile düşünmeyi öğrenebiliriz. O LOGO'nun C-64 için Türkçe uyarlaması TELETEKNİK tarafından yakında çıkarılıyor... Artık C64 ile ana dilimizle çalışacağız. LOGO projelerinizi bekliyoruz... Başvuru: Afif SAY - Teleteknik

Sonunda Tartışıldı: