İzlem Gözükeleş: Okullarda Kodlama Dersi – 1

Linux'ta uygulama geliştirme

İzlem Gözükeleş: Okullarda Kodlama Dersi – 1

Mesajgönderen fortran » 25 Mar 2016, 19:19

Bilim, Sanayi ve Teknoloji Bakanlığı’nın resmi Twitter hesabından yapılan paylaşımda kodlama dersinin ortaokul ve lise müfredatına alınması için Milli Eğitim Bakanlığı ile birlikte çalışılacağı duyuruldu:
Resim
Bilim, Sanayi ve Teknoloji Bakanlığı’nın Twitter sayfası “üreten bir ülke olmak”, “bilişim vadisi kurmak”, “dünyaya yeni teknolojiler sunmak” gibi güzel mesajlarla dolu. Fakat,

…dar anlamda bilim ve teknoloji politikası, kısaca ilk ortaya atıldığı zamanki terimiyle bilim politikası, her türlü bilimsel, teknolojik ve yenilikçi [innovative] faaliyetlerin toplumsal bir amaç ya da amaçlar doğrultusunda yönlendirilmesi ve denetlenmesi için farklı düzeylerde politikalar tasarlanıp uygulanmasıdır. Firma düzeyindeki bir şirket stratejisi [corporate strategy] içinde yenilik çalışmaları ve buna bağlı Ar-Ge hedeflerinin saptanmasından bir ülkenin ve hatta bir ülkeler topluluğunun bilim ve teknoloji politikasının oluşturulup uygulanmasına değin çok geniş bir yelpazede yer alan bu politikalar da, zorunlu olarak diğer politikalarla eklemlenmek durumundadır. Örneğin, eğitim politikası, iktisat politikası, vergi veya gümrük politikası, banka mevzuatı vb, yerine göre, her düzeydeki yenilik faaliyetlerini etkiler ve tüm politikalar belli bir mantık içerisinde birbirleriyle eklemlenmezse, dar anlamda ‘salt’ bir bilim ve teknoloji politikasının başarısı azalır. (Türkcan, 2009, s.205)

Bu bağlamda, kodlama dersinin müfredata eklenmesi ya da bir bilişim vadisi kurulması yönündeki çalışmalar tek başına yeterli olamayacaktır. En başta yıllardır yapboz tahtası haline getirilen eğitim sistemi, bilim ve teknolojideki hedeflerle uyumlu değildir. Biraz hafızamızı tazeleyelim. Yıllar önce de ülkemizdeki bilişim çalışanlarının yetersiz olduğundan yakınılıyordu. Sonra Türkiye’nin dört bir yanına, neredeyse her üniversiteye, yeterli öğretim üyesi ve altyapı olmadan bilgisayar mühendisliği bölümü açıldı. Böylece bir zamanlar “popüler meslekler arasındaki bilgisayar mühendisliği, akademik başarısı düşük öğrencilerin tercih ettiği bölümler”den biri oldu (http://www.aksam.com.tr/yazarlar/ismi-h ... ber-305135). Bilgisayar mühendisi sayımız arttı ama bu artış bilişim alanında bir atılım yapmamıza değil, yedek iş gücü ordusuyla bilişim çalışanı ücretlerinin düşürülmesine neden oldu. Hukuk ve Tıp’a getirilen taban puanı uygulamasının diğer bölümler için de gerekli olduğunu söyleyen, “MEB’in eğitim fakültelerine, mimar ve mühendis odalarının da mühendislik fakültelerine daha nitelikli öğrenci alınması için yüksek taban puan baskısı yaratmasının, daha iyi öğretmen ve daha iyi mühendis yetiştirilmesi konusunda çok yararlı olacağı vurgusu yapan” YÖK Başkanı Yekta Saraç’ın sözleri bilim ve teknoloji politikamızın bütünlükten yoksun olduğunun bir başka göstergesi. Başta bilgisayar mühendisliği olmak üzere, bu kadar mühendislik bölümünü kim, neden açtı?

Bilim Teknoloji ve Sanayi Bakanlığı diğer ülkelerdeki girişimlerden etkilenmiş gibi görünüyor. Barack Obama örneğinde olduğu gibi hükümetler en üst düzeyde bu konuyla ilgileniyor, yapılan etkinliklere katılıyor (https://www.whitehouse.gov/blog/2014/12 ... -line-code). Başta İngiltere olmak üzere birçok Avrupa Birliği ülkesi, çocukları bilgisayar programlamayla erken yaşlarda tanıştırmak için yoğun çaba gösteriyor (http://www.euractiv.com/section/digital ... s-compare/). Avustralya ilkokul müfredatında tarih ve coğrafya dersleri yerini kodlamaya bıraktı (http://www.techtimes.com/articles/86669 ... iculum.htm). Bu müfredat değişikliklerinde ülkelerin özgün ihtiyaçları belirleyici oluyor. Estonya’nın filizlenen teknoloji endüstrisi daha çok programcıya gereksinim duyduğundan programcılık öğretimine daha çok vurgu yapıyorlar; bazı okullarda programcılık eğitimi altı yaşında başlıyor. Danimarka ise büyük firmalarının çıkarları doğrultusunda kullanıcı arayüzü tasarımının ve dijital teknolojinin topluma etkisinin öğretilmesine ağırlık veriyor. Aarhaus Üniversitesi’nden Michael Caspersen, müfredatın sadece ileride bilgisayar bilimlerini tercih edeceklere değil, tüm öğrencilere faydalı olmasını istediklerini söylüyor (The Economist, 2014). Türkiye’nin nasıl bir eğitime ihtiyacı olduğunun tartışılıp tartışılmadığını bilmiyorum.

Farklı ülkelerdeki uygulamalar önemli dersler de içeriyor. Bir karar almadan önce bu örneklerin Türkiye’nin koşulları da dikkate alınarak incelenmesi gerekiyor. Yoksa yeni bir Fatih Projemiz olabilir. Yukarıdaki örneklerde görüldüğü gibi ülkeler kısa süreli hedeflerle hareket etmiyorlar. 6 yaşındaki çocuğun okuyup çalışma hayatına katılması için önünde uzun yıllar var. Örneğin İngiltere, 2014 yılında kodlamayı ilk ve orta öğretim müfredatına dahil ederken en azından sonraki 10 yıl için ayrıntılı bir plan yapmış durumda. İngiltere’de kodlama öğretimi müfredat değişikliğinin sadece bir parçası; asıl değişim okullardaki bilişim teknolojileri kullanma eğitiminin yerini bilgisayar biliminin alması. Daha 2011 yılında Google’ın Başkanı Eric Schmidt, yazılımı kullanmayı öğreten ama onun nasıl yapıldığı hakkında bilgi vermeyen İngiliz eğitim sistemini eleştirmekteydi (The Economist, 2014). İngiltere Eğitim Bakanı Michael Gove da 2014 yılında yaptığı konuşmada bu eleştiriye hak vermektedir. Bilişim teknolojileri eğitiminin öğrencilere sadece bilgisayar okuryazarlığı verdiğine, derslerde tekrar tekrar kelime işlem programlarının nasıl çalıştığının anlatıldığına ve öğrencilerin kimi zaman modası geçmiş yazılımları öğrenmek zorunda kaldığına vurgu yapan Gove, bunu teleks göndermeyi ya da zepline binmeyi öğretmeye benzetiyordu. Gove, yeni eğitim müfredatıyla öğrencilere kodlamayı, var olan programları çalıştırmak yerine kendi programlarını geliştirmeyi öğreteceklerini söylüyordu (https://www.gov.uk/government/speeches/ ... technology). İngiltere’nin 2014 yılında uygulanmaya başlanan yeni eğitim müfredatı bu doğrultuda geliştirildi. Müfredat değişikliğiyle öğrencilerin:

soyutlama, mantık, algoritmalar ve veri temsili de dahil olmak üzere bilgisayar biliminin temel kavramlarını anlayıp uygulayabilmesi
problemleri berimsel (computational – bkz. https://tr.wikipedia.org/wiki/Berim) terimlerle analiz edebilmesi ve bu tip problemlerin çözümü için gerekli beceriyi edinebilmesi
problemleri çözebilmek için yeni ya da aşina olmadıkları da dahil olmak üzere bilişim teknolojisini değerlendirip uygulayabilmeleri
bilişim ve iletişim teknolojisinin sorumlu, yetenekli, kendinden emin ve yaratıcı kullanıcıları olmaları

hedeflenmekte.

Dört bölümden oluşan müfredat, 5 ile 16 yaş arasındaki tüm çocukları kapsamakta (bkz. http://bit.ly/1f7PIFU , http://www.theguardian.com/technology/2 ... rogramming ).

Birinci bölüm, 5-6 yaşındaki çocuklar için. Bu bölümde, çocuklar algoritma kavramı ile tanışacaklar. Çocuklar algoritma kavramını gündelik hayattan örneklerle ve oyunlarla tanıyacak. Örneğin algoritmayı açıklamak için sabah yaptıkları rutin işler adımlara bölünerek anlatılacak. Basit programların oluşturulup çalıştırılmasının yanı sıra bu programların arkasındaki mantık da gösterilecek. Bilişim teknolojilerinin daha sorumlu ve saygılı kullanımı, kişisel bilgilerin mahremiyeti ve internet ya da herhangi bir bilişim teknolojisi ile ilgili bir sorun yaşadığında nereye başvurabileceği bu bölümde öğretilmeye başlanacak. Sonraki bölümlerde de bu konular üzerinde öğrencinin yaşı göz önünde bulundurularak tekrar durulacak.

İkinci bölüm, 7-11 yaşlarındaki ilkokul öğrencileri için. Öğrencilere, programlamanın temel yapıtaşları olan sıralama (sequencing), seçme (selection), döngü (repetition), değişken (variable) kavramları öğretilecek. Bu bölümde, bilgisayarın ve programların çalışma mantığının öğretilmesinin yanında bilişim teknolojilerinin nasıl daha yaratıcı kullanılabileceği üzerinde durulacak.

11-14 yaşında olanlar için tasarlanan üçüncü bölümde ise öğrenciler, gerçek dünyadaki problemleri ve fiziksel sistemleri soyutlamayı, tasarımı ve programlama dilleri ile gerçekleştirimi öğrenecekler. Bölüm sonunda öğrencilerin, en az iki programlama dilini öğrenmiş olması beklenmekte. Öğrenciler, bu bölümde Boole cebirini devre ve programlarda kullanacaklar, basit arama ve sıralama algoritmalarını öğrenecekler. Müfredat yalnız yazılım bilgisi ile sınırlı değil. Bilgisayarın donanımsal bileşenleri ve bilgisayarlar arası iletişim de bu bölümün konuları arasında yer alıyor. Önceki iki bölümde olduğu gibi bu bölümde de öğrencilere var olan teknolojileri kullanmayı öğretmek gibi bir hedeften çok öğrencilerin yaratıcı bir şekilde yeni çözümler geliştirmesi, var olan teknolojiyi kendi ihtiyaçlarına göre uyarlaması veya farklı teknolojileri belirli bir amaç doğrultusunda bir araya getirmesi ön planda olacak.

Dördüncü ve son bölümde ise öğrenciler, merak ve yetenekleri doğrultusunda bilgisayar bilimleri, bilişim teknolojileri veya dijital medya konusunda daha derinlemesine eğitim alabilecekler.

Bu ayrıntılı müfredata karşın İngiltere’de eğiticilerin eğitimi konusunda yeterli hazırlık yapılmadığından geçiş döneminde en büyük zorluğu öğretmenler yaşamakta. İki büyük sorun var. Birincisi, bilişim teknolojisi öğretmenlerin çoğunun ne programlama konusunda tecrübesi ne de berimsel kavramlar hakkında bilgisi var. Hükümetin öğretmenlerin eğitimi için ayırdığı fonlar tüm iş gücünün eğitimi için yetersiz, bir çok öğretmen çareyi web’deki ücretsiz eğitimlerde arıyor ve zaten fazla olan işlerine bir yenisini eklemek zorunda kalıyor. İkincisi, öğretmenlerin çoğunluğu kendilerini bu alanda yeterli görmüyor ve özgüven sorunu yaşıyor (http://www.computerworlduk.com/careers/ ... m-3595505/). The Economist (2014), İngiltere’nin müfredat değişikliğinde fazla aceleci olduğunu belirtiyor. İsrail’in 1000, Bavyera’nın ise 700’den fazla öğretmenine gerekli eğitimleri verdikten sonra müfredat değişikliği için gerekli adımları attığına işaret ediyor .

Yanlış anlaşılmasın. Bilim, Teknoloji ve Sanayi Bakanlığı’nın önereceği müfredat değişikliğine karşı değilim. Excel’de tablo yapmayı, Power Point’te sunum yapmayı öğretirken yukarıdaki gibi bir müfredat hazırlamak gerçekten olağanüstü. Son yıllarda, kişisel bilgisayarlar yerini tablet ve akıllı telefonlara bırakırken kullanıcıyı salt tüketiciye indirgeme eğilimi vardı. Şimdi ise kullanılan teknolojilerin yeniden programlanabilirliği öne çıkaran bir yaklaşım öneriliyor. Bu nedenle, çocuklara yönelik programlama eğitimini destekliyorum. Ama amaç bilişim teknolojileri alanında ileri bir ülke olmaksa bu müfredat değişikliğinin yeterli olamayacağını, bilgisayar mühendisliği kontenjanlarının artırılmasındaki gibi kendimizi kandıracağımızı düşünüyorum. Yetişmiş iş gücü konusunda İngiltere’dekine benzer (ve belki daha ağır) sorunlar yaşanacaktır; bu aşılabilir. Ancak asıl sorun söz konusu müfredat değişikliğini yapan ülkelerin birkaç yıl değil, en az on yıl sonrasını dikkate alıyor olmalarıdır. Eğitim sistemi sürekli değişiyor ve nitelik giderek düşüyor… Daha büyük korkum ise bilişim teknolojileri eğitiminde yapılanın tekrarlanması, okulların belirli bir şirketin ürünlerini kullanmaya zorlanması.

Hükümetlerin ya da uluslararası şirketlerin programlama eğitimine bu kadar önem vermesinin en büyük nedenlerinden biri neredeyse yarım asırdır devam eden yeterli ve nitelikli yazılım eksikliğinden kaynaklı yazılım krizi (https://en.wikipedia.org/wiki/Software_crisis). Programcı sayısını artırmak da krizi aşmak için uygulanan stratejilerden biridir. Yalnız programcı sayısını artırmakla kalmayacaklar, yedek iş gücü ordusuyla bilişim çalışanları üzerindeki baskı daha da artacak, ücretler düşecek. Elbette ki bunun farkındayım.

Buna karşın desteğimin ise üç nedeni var. Birincisi berimsel okuryazarlık (literacy) önümüzdeki yıllarda yaygınlaşacak. Kaliteli bir eğitim verileceği konusunda şüphelerim olsa da hiç yoktan iyidir. İkincisi, günümüz dünyasında Lessig’in (2006) de vurguladığı gibi “Kod Kanundur”. Bunu kavramadan, gözetime ve sansüre karşı mücadele etmek, internette ifade özgürlüğünü savunmak giderek zorlaşıyor. Üçüncüsü ise programcılık, fazla mesai olarak karşınıza çıkmadığı veya ne yapacağınıza kendiniz karar verdiğiniz sürece eğlencelidir. Her yaştan insana tavsiye ederim.
Berimsel Okuryazarlık (Computational Literacy)

Programlamayla okuryazarlık arasında bir paralellik kurulması yeni değildir. Bilgisayarların programlanmaya başlandığı ilk günlerden beri vardır. 1960’larda birçok programcı, programlamayı okuryazarlık ile ilişkilendirmekte, hatta bir bilgisayar bilimcisi olan Alan Perlis okullardaki zorunlu kompozisyon dersi gibi programcılığın da lisans öğrenciler için zorunlu bir ders olması gerektiğini savunmaktadır. 1960’larda John Kemeny ve Thomas Kurtz’in Basic programlama dilini tasarlama amaçları programlamayı öğrenciler ve uzman olmayanlar için daha kolay hale getirmektir (Vee, 2013). Sovyet bilimci Ershov (1981) da programcılığı okur yazarlık ile karşılaştırmakta, daha 1980’lerde programcılığın ikinci okuryazarlık olacağını duyurmaktadır. Mozilla Vakfı’nın başkanı Mark Surman’a göre ise kodlama, okuma, yazma ve aritmetikten sonra dördüncü okuryazarlıktır (https://code.org/quotes).

Özgür yazılımdaki özgürlüğün, konuşma özgürlüğü (free speech) ile anlatılması da bilinçli bir tercihtir. Özgür Yazılım Hareketi, free software’deki free kelimesinin yazılımın ücretsiz olduğunu değil, özgür olduğunu anlatırken “free as in free speech not as in free beer” der. Kodlamanın gündelik dil gibi bir ifade biçimi olduğu savunulur. Buna göre, insan dili, programcının yazdığı kaynak kodu ve derleyicinin çevirdiği nesne kodu düşüncenin farklı biçimlerde temsilidir. Düşünce önce belirli bir dilde (Türkçe, İngilizce, Almanca vs) temsil edilir; bir programlama dili ile kaynak kodu haline getirilir ve yazılımsal araçlarla nesne koduna çevrilir. Her biçim özgündür ama bir süreklilik vardır. Bundan yola çıkarak yazılımın konuşma özgürlüğü gibi ABD Anayasası’nın 1. Ek Maddesi kapsamında değerlendirilmesi gerektiği öne sürülmektedir (http://www.2600.com/dvd/docs/2001/0126-speech.html).

Peki okuryazarlık nedir? Literacy, kelimesini Türkçe’ye okuryazarlık olarak çevrilmekte ve basitçe okuma ve yazma yetisini ifade etmektedir. Vee’ye (2013) göre bir çok çalışmada okuryazarlık, yanlış bir biçimde, genel olarak becerileri (görsel okuryazarlık, oyun okuryazarlığı, tasarım okuryazarlığı vb) anlatmak için kullanılmaktadır. Bu kullanımlara göre pekala araba okuryazarlığından da söz edilebilir.

Vee (2013) okuryazarlığı, sembolik ve altyapısal teknolojiyi (örneğin metinsel yazma sistemi gibi) yaratıcı, iletişimsel ve retoriksel amaçlar için kullanma becerisi olarak tanımlamaktadır. Okuryazarlık insanlara düşüncelerini metin olarak ifade etme (yazma) ve başkalarının metin olarak ifade ettiği düşünceleri yorumlama (okuma) imkanı sağlar. Bunun yanında, herhangi bir teknolojinin iletişim için kullanımını basitçe okuryazarlık kapsamında değerlendirmez. Okuryazarlıktan bahsedebilmek için birinci olarak söz konusu teknolojinin toplumun iletişim pratiklerinin merkezini veya altyapısını oluşturması gerekmektedir. Gündelik hayatta belirleyiciliği olmayan bir teknoloji okuryazarlık kapsamında değerlendirilemez. İkinci olarak da bu teknolojiyle elde edilen oluşturma ve yorumla yeteneğinin kolay ve toplumda yaygın olması gerekir. Bu iki durumun eş zamanlı olarak ortaya çıkması gerekmediği gibi herhangi bir öncelik sırası da yoktur, toplumdan topluma değişebilir. Örneğin İngiltere’de okuma ve yazma becerilerinin yaygınlaşması yazının merkezi, belirleyici ve düzenleyici bir rol üstlenmesinden yüzyıllar sonra gerçekleşmiştir. Amerika’da ise tam tersi yaşanmıştır. Okuma ve yazma becerilerinin yaygınlaşması, okuryazarlığın belirleyiciliğinin ve düzenleyiciliğinin önünü açmıştır. Vee (2013), okuryazarlığın basitçe teknik bir süreç olmadığının, toplumsal ve ideolojik etkenlerle biçimlendiğinin de altını çizer.

Programlama da insanların sembollerden oluşan bir teknolojiyle düşünceleri temsil etme ya da yorumlama becerisidir. Sonraki bölümde tartışacağım gibi programlamanın yarattığı kodun gündelik hayattaki belirleyiciliği ve düzenleyiciliği giderek artmaktadır. Ancak program kodunu okuma ve yazma becerisinin yaygınlığını değerlendirdiğimizde okuryazarlıktan söz etmek için henüz erkendir. Programlama yalnız bilgisayar bilimcilerin ve ilgili mesleklerin işi olmayıp diğer meslekler (gazetecilik, tıp, biyoloji vb.) arasında yaygınlaştığında okuryazarlıktan söz edilebilecektir (age).

Vee (2013), bilgisayar okuryazarlığı yerine berimsel okuryazarlığı tercih etmektedir. Berim (compute), bilgisayarın yaptığı iştir. Ama bilgisayar teknolojisi hızla değişmekte, geleneksel bilgisayarlar yerini daha farklı teknolojileri bırakmaktadır. Bu gelişme, yazı teknolojisindeki gelişmelere benzetilebilir, okuma yazma sabit kalsa da kullanılan teknoloji (papirüs, kağıt, matbaa) değişmektedir. Dolayısıyla Vee (2013), somut bir teknolojiye bağlanmak yerine soyut berimsel okuyazarlık kavramını tercih etmektedir. Berimsel okuryazarlık, berimsel düşünmeyi ve soyutlamayı gerektirmektedir. Berimsel düşünme ile bütün parçalara ayrılmakta ve programlama dili aracılığı ile bilgisayarın anlayabileceği şekilde yeniden bütünleştirilmektedir. Programlama dillerinin tarihsel gelişimine bakıldığında zaman içinde daha kullanıcı dostu, ileri düzeyde bilgi ve yetenek gerektirmeyen dillerin geliştirildiği görülür. Hatta bu durumu, programlamanın ileri bir tarihte gereksizleşeceğinin, programlamada gündelik dile yakın dillerin kullanılacağının ve böylece programlama becerisine gerek kalmayacağının göstergesi olarak yorumlayanlar vardır. Vee (2013) bu basitleştirmenin tam tersi bir sürece yol açtığını belirtmektedir; programlama dilleri basitleştikçe daha farklı alanlara yayılmakta ve yaygınlaşmaktadır. Ayrıca hükümetlerin yeni eğitim politikaları da geçmiş yıllardaki okuryazarlık kampanyalarını anımsatmaktadır. Dolayısıyla son yıllardaki gelişmeleri ve girişimleri dikkate alarak oluşum halindeki bir okuryazarlıktan söz edebiliriz.
Kod Kanundur

Lessig’e (2006) göre insanların davranışları, yasa, norm, piyasa ve mimari tarafından düzenlenmekte ve sınırlanmaktadır. Lessig bu düzenleyicileri açıklamak için sigara içme örneğini verir. Nerelerde sigara içilip içilemeyeceği yasalarla düzenlenmiştir. Belirli bir yaşın altında olanlara sigara satılması yasaktır. Özel bir araçta sigara içmeniz yasalarla engellenmemiştir ama normlar diğer yolculardan izin almamızı gerektirir. Piyasa da bir düzenleyicidir. Sigara fiyatlarının artması, ucuza kaçak sigara bulabilme ihtimali, farklı kalite ve fiyatta sigaraların satılması yasa ve normlar gibi düzenleyici ve sınırlayıcı bir etkiye sahiptir. Sigara örneğindeki mimari ise sigaranın nasıl tasarlandığı ve yapıldığı ile ilgilidir. Dumansız bir sigara kullanıyorsanız sigara içebileceğiniz yerler daha fazladır. Ağır aromalı sigaralar, sigaradan rahatsız olanların sayısını artırabileceğinden sigara içmenizi sınırlayabilir. Ya da kullandığınız sigaranın fazla nikotinli olması içeceğiniz sigaranın sayısını etkileyebilir.

Bu düzenleyicilerden her birinin farklı etkisi ve yaptırımı vardır. Yasaklanmış bir ortamda sigara içerseniz ceza ödemek zorunda kalırsınız. Normlara aykırı davranırsanız ayıplanırsınız. Fazla nikotinli bir sigaradan çok içerseniz sağlığınıza zarar verirsiniz. Sigara fiyatının artması cebinizden çıkan parayı artırır. Ayrıca tüm bu düzenleyiciler ayrık çalışmazlar, birbirlerini de etkilerler. Mimari bazen normları ve yasaları güçlendirebilir bazen de zayıflatabilir. Piyasa çıkarlarından kaynaklı düzenlemeler farklı mimarilere neden olabilir.

Bu düzenleyicilerin her birinin ayırt edici nitelikleri ve çalışma prensipleri vardır. Mimarinin düzenleyiciliğinin en önemli niteliği ise kesinliği ve uygulandığı zaman aşılmasının zorluğudur. Aşağıda Lessig’in (2006) mimarinin insan davranışları üzerindeki düzenleyici etkisini göstermek için verdiği örneklerden bazıları yer almaktadır:

Fransız Devrimi’nde devrimcilerin Paris’in dar ve dolambaçlı sokaklarına kurdukları barikatlar onlara önemli bir üstünlük sağlamış ve şehrin kontrolünü ele geçirmelerini kolaylaştırmıştır. Bunun fakında olan III. Napolyon Paris’i geniş bulvarlarla yeniden inşa eder.
Bazı Avrupa ülkelerinde yürütme ve yasamanın baskısına maruz kalmamak için anayasa mahkemeleri özellikle başkentten uzakta inşa edilmiştir.
Amerika’daki bir otelin müşterileri asansörlerin yavaşlığından şikayetçidir. Otel asansörleri hızlandırmaz ama asansör kapısının yanına yerleştirdiği aynalardan sonra şikayetler sona erer.
Okulların veya parkların yanına yapılan kasisler sürücüleri yavaşlamaya zorlar.
Robert Moses’un Long Island’da inşa ettiği köprüler otobüslerin geçişine uygun değildir. Böylece daha çok toplu taşımayı kullanmak zorunda olan siyahların halk plajlarına gelişleri engellenmiş olur.
Bir Amerikan havayolu şirketinin yolcuları bagajlarının geç gelmesine öfkelenmektedir. Üstelik bekledikleri süre diğer yolcularınkinden fazla değildir. Şirket, uçakların iniş noktasını bagajlardan daha uzağa taşıyarak zaman kazanır. Böylece zaman kazanılır, yolcular bagaj için beklemek zorunda kalmazlar ve şikayetler biter.

Önceki bölümde de belirttiğim gibi başta internet olmak üzere dijital teknolojiler gündelik yaşamın önemli bir parçası haline gelmiştir ve gündelik yaşamdaki yaygınlıkları her geçen gün artmaktadır. Dolayısıyla internetin ilk günlerinde olduğu gibi hükümetlerin etkisinden muaf bir internet artık yoktur. Hükümetler insanların, özellikle kendi vatandaşlarının, internet üzerindeki davranışlarını düzenlemek istemektedir. Bu düzenleme arzusu kendini özellikle üç alandaki çatışmalarda kendini göstermektedir: Fikri mülkiyet, mahremiyet ve ifade özgürlüğü.

İnterneti düzenlemek isteyenlerin internetteki kişinin kim olduğunu, nerede olduğunu ve ne yaptığını bilmeleri gerekir. Lessig (2006), internetin ilk günlerdeki mimarisinin buna yönelik düzenlenmediğini ve farklı değerler içerdiğini belirtirken bu mimarinin mutlak olmadığının özellikle altını çizmektedir. Lessig’in kısaca kod olarak adlandırdığı internetin yazılımdan ve donanımdan oluşan mimarisi tarihin en düzenlenebilir alanlarını yaratmaktadır. Ayrıca Lessig (2006) internetin ticarileşmesinin hükümetlerin gücünü artıran bir gelişme olduğunu belirtmektedir. Böylece hükümetler maddi çıkarı olan şirketleri belirli düzenlemeleri yapmaya zorlayabilmektedir; doğrudan kodu değil, kodlayanları kontrol etmektedirler. Doğrudan internete ya da internete erişimde kullanılan cihazlara eklenen kodlar hükümetlerin interneti düzenlemek için sordukları sorulara yanıt verebilmektedir: kim, nerede, ne yapıyor?

İnternette düzenlemenin kendisi tamamen iyi ya da kötüdür denilemez. Ama günümüzde şirketler ya doğrudan kendi ya da hükümetlerin gereksinimleri doğrultusunda vatandaşları etkileyen bazı düzenlemeler yapmakta ve bu düzenlemeleri de ilgili teknolojinin doğası gibi sunmaktadır. Yasalar neyin yapılıp neyin yapılamayacağını çoğu zaman doğrudan söyler; bazı konular özellikle belirsiz ve yoruma açıktır. Vatandaşlar yasayla yapılan bir düzenlemenin bilgisine sahip olabilir. Aynı şeffaflık kodla yapılan düzenlemelerde de olmalıdır. İnsanlar kodla yapılan bir düzenlemeyi göremiyor, tartışamıyor ve eleştiremiyorsa sorun vardır. Şöyle basit bir örnek vereyim, bir kurum işe alacağı kişileri kura ile belirliyor. Adaylar karşılarındaki kocaman ekrandan kura sonucunu izliyor. Söz konusu kura ve bilgisayar olunca herkes susuyor. Ama kura koduna erişimimiz yoksa, kodun nasıl çalıştığını bilmiyorsak kodun gerçekten rastgele çalışıp çalışmadığını da bilemeyiz. Bu nedenle, hükümetin ya da kamu kurumlarının kodla yaptığı tüm düzenlemeleri vatandaşlarıyla paylaşması gerekmektedir. Yazılım geliştirenler, sizin yerinize bazı kararlar vermiş ve fikri mülkiyet, mahremiyet ve ifade özgürlüğü bağlamlarında hak ve özgürlükleriniz kısıtlanmış ise bunu bilmek her ortamda, herkesin hakkıdır. Bilişim ve iletişim teknolojilerini yalnız kullanmayı değil, onların nasıl çalıştığını ve çalıştırılabileceğini bilen, berimsel okuryazarlığa sahip insanların bu düzenleme sürecine daha aktif katılabileceklerini düşünüyorum. Dolayısıyla verilecek eğitim, sadece herhangi bir programlama dilini öğretmekle kalmamalı, bilişim teknolojilerinin hayatı nasıl düzenlediğini ve düzenleyebileceğini içermeli, bilişim teknolojilerin kullanımından öte onların çalışma ilkelerini göstermeli ve öğrencilerin yaratıcılığını öne çıkarmalıdır. Böylece öğrenciler, haklarını sınırlayan ya da sınırlayabilecek kodu daha rahat fark edebileceklerdir.

Bilgisayarlar, tablet, akılı telefon vb teknolojilerin ötesinde gündelik yaşamda kullanılan cihazlarda yaygınlaşmaya başladığında berimsel okuryazarlık daha önemli olacak.
Programlama Eğlencelidir

Para için değil, sadece eğlenmek için yazılım geliştiren çok sayıda programcı vardır. Programlama satranç ya da bulmaca çözmek gibi eğlenceli bir uğraştır. Zeka oyunlarından hoşlanan her yaştan insana tavsiye ederim.

Hiç bilmeyenlere programcılığın temellerini anlatan çok sayıda web ve tablet uygulaması var. Bu uygulamalar içinde en çok beğendiğim ve önerebileceğim code.org sitesindeki uygulamalar ve MIT’in (Massachusetts Institute of Technology) geliştirdiği Scratch (https://scratch.mit.edu/) adlı görsel programlama dili. İstediğinizi tercih edebilirsiniz ama önerim, hepsini tamamlamasanız da, önce code.org’taki dersleri takip etmeniz, daha sonra da Scratch ile ufak uygulamalar yazmanız.

code.org
2013 yılının ocak ayında Hadi ve Ali Partovi tarafından kurulan code.org herkesin kodlamayı öğrenebileceği iddiasıyla bilgisayar programlamayı herkes için erişilebilir yapmaya çalışıyor. code.org, kurulduktan bir ay sonra Mark Zuckerberg, Bill Gates, Jack Dorsey gibi bilişim dünyasının önemli isimlerinin yer aldığı bir video hazırladı. Videoda yer alan kişiler kodlamanın önemini vurguluyorlardı. Video internette hızla yayıldı. Video, bilişim şirketlerinin ve iş adamlarının da ilgisini çekti. İki hafta içinde yaklaşık 10 milyon dolar toplandı ve bu destek daha sonra da devam etti. code.org sitesinin bağışçıları arasında Google, Microsoft ve Facebook da var (https://code.org/about/donors).

code.org’un hedef kitlesi ilk başta sadece ABD’liler olsa da site kısa zamanda uluslararası bir nitelik kazandı. Şu anda 45’ten fazla dili destekliyor ve sitedeki eğitim materyali 180’den fazla ülkede kullanılıyor. Her okuldaki her öğrencinin bilgisayar bilimlerini öğrenmek için fırsatı olması gerektiğini savunan code.org, programlamayı merak eden ama hayatı boyunca kod yazmamış ve bundan çekinen her yaştan insana eğlenceli gelebilecek dersler sunuyor. Ayrıca daha çok beyaz erkeklerin işi olarak görülen bilgisayar biliminde çeşitliliği artırmayı da hedefliyor. code.org’a kayıtlı kullanıcıların %43’ü kız, %37’si siyah ya da İspanyol kökenli.

Kodlama nedir öğrenmek ve biraz eğlenmek istiyorsanız işe Starwars (https://code.org/starwars) ya da Minecraft (https://code.org/mc) ile başlayabilirsiniz. Buradaki alıştırmalar hoşunuza giderse yeni başlayanlar için dört farklı ders var (https://studio.code.org/). Birinci ders dört yaş üstü için tasarlanmış ve okuma becerisi gerektirmiyor. Dersin ilerleyen bölümlerinde programlamadaki kavramlar (bir değişkene değer atama, atanan değeri kullanma, döngü) öğretiliyor. İkinci ders, altı yaş ve üstü, okuma becerisi olanlar için. Bu derste, döngü konusu daha detaylı işleniyor, koşullama (if) kavramı öğretiliyor. Öğrenciler, örnek programlardaki hataları bulmaya çalışarak hata ayıklama alıştırmaları yapıyorlar. Üçüncü ders, ikinci dersi tamamlayan sekiz yaş üstü öğrenciler için. Bu bölümde öğrenciler önceki bölümlerde öğrendiklerini tekrar ediyor ve fonksiyon kavramını öğreniyorlar. Üçüncü dersi tamamlayanlar için hazırlanan dördüncü ders daha karmaşık alıştırmalar sunuyor.

Derslerdeki alıştırmalar aşağıdaki gibi, özellikle çocuklar için, son derece eğlenceli:

Resim

Ayrıca çözümün, javascript adlı programlama dilindeki karşılığını da görebiliyorsunuz:

Kod: Tümünü seç
for (var count = 0; count < 5; count++) {

moveForward();

}


Bu derslerde, çeşitli alıştırmalarla yukarıda belirttiğim gibi programlamadaki temel kavramları öğreniyorsunuz. Bu kavramları ve programlama mantığını tanıdıktan sonra Scratch’ta daha kolay uygulama geliştirebilirsiniz.

Scratch

MIT’nin 2000’li yılların başında 8-16 yaş arasındaki öğrenciler için tasarladığı görsel bir programlama dili olan Scratch’ın ilk sürümleri bilgisayara kurulmaktaydı. Şimdiki sürümünü ise web üzerinden, bilgisayarınıza herhangi bir yazılım kurmadan https://scratch.mit.edu/ adresinden kullanabilirsiniz. Scratch, ABD’de çeşitli okullarda kullanılıyor. Hatta “Her öğrenciye bir dizüstü” projesi kapsamında dağıtılan bilgisayarlar, Scratch kurulu bir halde dağıtılmış.

İnsanlar Scratch ile birbirinden farklı yazılımlar geliştirebiliyor: Hareketli masallar, oyunlar, tebrik kartları, bilimsel projeler, müzik projeleri, simülasyonlar vb. Grafik arayüzü oldukça kullanıcı dostu. Ana karakteri (varsayılan bir kedi) başka bir karakterle (dinozor, hayalet, balerin, basketbol topu vb yüzlerce karakter) değiştirebilir, farklı arka planlar ekleyebilirsiniz. Program kodunuzu yazdıktan sonra bu kodu saklama ve diğer kullanıcılarla paylaşma şansına da sahipsiniz. (https://download.scratch.mit.edu/scratc ... ratch2.pdf). Ayrıca başkasının paylaştığı kodu inceleyebilir ve onu iyileştirebilirsiniz. Dolayısıyla insanlar daha programlamaya adım atar atmaz kendini bir özgür yazılım topluluğunun içinde buluyor.

Program bileşenleri, code.org’ta olduğu gibi, Lego’lara benzer bir biçimde tasarlanmış:

Resim

Programcılığa yeni başlayanlar için en sinir bozucu durumlardan olan söz dizimi (syntax) hataları, kodların lego parçaları gibi birbirine eklemlenmesi ile ortadan kalkmış; uymayan parçaları birleştiremiyorsunuz. Hata mesajlarıyla uğraşmıyor, sadece yapmak istediğiniz işe odaklanıyorsunuz. Scratch zengin ve kolayca anlaşılan bir komut setine sahip. Bugün yazılım geliştirmede kullanılan bir çok programlama dili (Java, C, C++, C#, php, python, ruby) yapı olarak birbirine benzer. Bu dillerden birini biliyorsanız ikinciyi çok hızlı kavrayabilirsiniz. Scratch öğrenmenin de böyle bir faydası olacak. Günümüzde programlama eğitiminde yapılan en büyük hatalardan biri öğrenciye temel kavramları vermeden doğrudan dillerin söz diziminin ezberletilmesi oluyor. Bu nedenle birçok üniversite öğrencisi daha işin başında programlamadan uzaklaşıyor.

Scratch ile yaratıcılığınızı ortaya koyabilir, hoşça vakit geçirebilirsiniz. Yola devam etmek isterseniz, python dilini (https://www.python.org/) tercih edebilirsiniz.

İyi eğlenceler.

yarimada.gen.tr
Resim
Resim
Kullanıcı avatarı
fortran
Forum Gurusu
Forum Gurusu
 
Mesajlar: 4393
Kayıt: 26 Kas 2006, 01:00

Dön Programlama Genel

Kimler çevrimiçi

Bu forumu gezen kullanıcılar: Hiç bir kayıtlı kullanıcı yok ve 1 misafir