Talat Çiftçi

22 Ağustos 2021

Silikon Vadisi’nin yazılımcı yetiştirme yöntemi

Bu mucizevi gelişme nasıl sağlandı?

Birkaç haftadır ülkemizin eğitim ve istihdam konuları ile ilgili yazılar yazıyorum. Okuyucuların gösterdiği ilgi nedeniyle bu konuda çok değerli deneyimleri ve görüşleri olan uzmanlarla söyleşilere devam ediyorum. (https://t24.com.tr/yazarlar/talat-ciftci/patentlerden-bulus-yapmayi-ogrenmek,32094)

Eğitim konusunda yerel ve güncel sorunları konuşmak kadar, geleceğin mesleklerini ve eğitim modellerini de tartışmaya ihtiyaç var. Gelecek söz konusu olunca ilk akla gelenler; bilgisayarlar, akıllı telefonlar, bilgisayar oyunları ve yapay zekâ oluyor. Onlara insansız araçları, robotları ve insan-makina arayüzünü de ilave edelim. Bütün bu teknolojilerin ortak yanı yazılım. Yazılımdan bahsedince akla ilk gelen de Silikon Vadisi oluyor.

Geçen yüzyılda Amerika’nın Kaliforniya eyaletinde Stanford Üniversitesi çevresinde dünyaya örnek olarak kabul edilen Silikon Vadisi oluşmuştu. Bu üniversitenin mezunları pek çok ülkenin gayri safi milli hasılasından daha fazla geliri olan şirketler kurdular. Bu bölge zaman içinde dünyanın en değerli şirketlerinin ve en yeni ürünlerin ortaya çıkışına ortam hazırladı. Peki bu mucizevi gelişme nasıl sağlandı? Bu başarı hikâyesinin geri planında yazılımın çok önemli bir rol oynadığını biliyoruz.  

Yazılım denince akla, Stanford Üniversitesi tarafından başarı ile uygulanan ilginç bir eğitim sistemi geliyor. Aslında bu sistem tarih boyunca ahilik ve lonca teşkilatları tarafından uygulanan usta-çırak öğretim sistemine çok benziyor. Burada ilginç olan, bu sistemin günümüzde yazılım eğitimi için kullanılıyor olması. 

Stanford Üniversitesi’nden bir grup öğretim üyesi CS Bridge isimli bir organizasyon çatısı altında bu eğitim modelinin dünyada pek çok ülkede kullanılmasına gönüllü olarak destek veriyor. Türkiye’de bazı üniversitelerle işbirliği içinde, lise öğrencilerine hızlandırılmış yazılım kursu düzenleyerek bu eğitim yöntemi ile ilgili uygulamalı aktarımda bulunuyorlar. (Örnek olarak halen devam etmekte olan yaz okulu sitesine erişmek için tıklayınız.)  

Bu yazıda ülkemizde bu yöntemin uygulanmasında 5 yıldır görev alan Prof. Dr. Barış Bozkurt ve 4 yıldır öğrenci asistan olarak görev alan Ahmet Uysal ile yaptığımız söyleşiyi okuyacaksınız. Ben şahsen bu eğitimi alan liseli gençlerle tanışma fırsatını bulmuştum. Onların kısa sürede başarılı bir şekilde yazılım öğrenmekten dolayı mutluluklarına şahit olmuştum. Benim için de çok keyifli bir deneyim olmuştu. 

Barış Hoca Boğaziçi Üniversitesi elektrik-elektronik mühendisliği alanında lisans ve yüksek lisans dereceleri aldıktan sonra doktora çalışmasını Faculte Polytechnique de Mons’da yaptı. Bahçeşehir ve Koç Üniversitesi’nde akademik kariyerine devam ettikten sonra şimdi İzmir Demokrasi Üniversitesi’nde görev yapıyor. Ahmet Uysal Koç Üniversitesi Bilgisayar Mühendisliği’nden bu sene mezun olan bir genç mühendis. 

TÇ: Barış Hocam, Stanford Üniversitesi usta-çırak sistemi olarak da tanımlanabilecek bu eğitim yaklaşımını uygulamaya ne zaman ve neden başladı?

BB: Sistemi öneren, uygulayan ve ardından gözlemlerini raporlayan araştırmacılar olan Eric Roberts ve Stuart Reges’in 1988 ve 1995 tarihli makalelerine [1, 2] baktığımızda, bu sistemin 80’lerin ikinci yarısında uygulamaya konulduğunu anlıyoruz. Bu sistemin bu şekilde tasarımı ihtiyaçtan kaynaklanıyor. Programlama dersini alan öğrenci sayısı çok yüksek, çok sayıda öğrenciye destek verecek lisansüstü öğrenci asistan istihdamı ise çok maliyetli. İlk önerildiğinde temelde maliyet düşürme hedefi ön planda. Makalelerde bahsedildiği gibi, zamanla sistemin çok farklı avantajları olduğu ve beklenilenin ötesinde çıktılar oluşturduğu farkedilmiş. Öncelikle eğitimde, akrandan öğrenme sürecinin sonucu olarak, iyileşmeler gözlemlemişler. Ayrıca, başlarda yan ürün gibi düşündükleri, zamanla ana ürüne dönüşen bir çıktı oluşmuş. Programlama yetileri yüksek, tanımadığı insanlara yardım etmek için inisiyatif alma konusunda istekli, iletişim ve grup içerisinde çalışma becerileri yüksek bir yazılımcı dayanışma ağı kurulmuş. Bugün Stanford Üniversitesi’nde görev yapmaya devam eden ve bahsettiğimiz eğitim sistemini uygulayan öğretim üyeleri sistemin ana çıktısı olarak bu topluluğu görüyor. Bu sistemi (section leader system) lisans eğitimindeki ilk programlama dersinde 160 öğrenci asistandan oluşan bir ekiple uyguluyorlar. 

TÇ: Bu sayı çok miktarda gönüllü öğrencinin olduğunu gösteriyor. Anlaşılan, bu sistem üst sınıflardaki öğrencilerin özel bir gayret göstererek yeni öğrencilere bildiklerini anlatmaları ve yol göstermeleri ile yürüyor. Onlar bu çalışmaya neden gönüllü oluyorlar?

BB: Lisans öğrencileri birçok açıdan fayda sağlıyorlar ve bunların bazılarının farkında olarak asistanlık için başvuruyorlar. Programlama temelleri güçleniyor. Grup çalışmalarında temel kavramları sürekli sorgulamak durumunda kalıyorlar. Öğrencilerin hatalı kodlarını incelemek durumunda kaldıkları için hata bulma yetileri gelişiyor. Hem grupla hem de öğrencilerle birebir çalışmalarda sürekli etkileşim halinde oldukları için iletişim becerileri kazanıyorlar. Özgeçmişleri için kayda değer bir girdi oluşurken daha da önemlisi güçlü bir mesleki dayanışma ağına giriyorlar. 5 yıldır uygulama sırasında her sınıftan öğrenci üzerine gözlem yapma şansım oldu ve her programda asistan öğrencilerde çok olumlu değişimlere şahit oldum. Bütün bunların yanı sıra grupla öğrenmek ve öğretmek çok eğlenceli. Çok büyük efor sarf ediyoruz ancak fedakarlık hissiyle değil, eğlenerek yapıyoruz. Bu onları ve beni ertesi sene yine görev almaya itiyor. 

Şimdi sözü Ahmet’e bırakmak isterim. Kendisi lisans 1. sınıftan beri Koç Üniversitesi’nde uygulanan sistemin içerisinde aktif görev aldı ve bu sene gerçekleştirmekte olduğumuz yaz okulunda iki öğrenci asistan liderinden biri olarak görev yapıyor.

AU: Benim için CS Bridge’in en büyük faydası, kendim gibi eğitim alanında bir şeyler yapmaya hevesli, kendilerini geliştirmeye ve bildiklerini paylaşmaya çok açık, farklı üniversitelerden ve geçmişlerden gelen insanlardan oluşan bir topluluğun içinde bulunmak. Yakın arkadaşlarımdan bir çoğuyla CS Bridge sırasında tanıştım veya arkadaşlığımız bu program sayesinde kuvvetlendi. Barış Hoca ve Stanford’dan programa dahil olan eğitmenler gibi alanlarında kendini çok geliştirmiş ve eğitim konusunda çok tecrübeli insanların birikimlerinden faydalandım. Ayrıca, defalarca başarıyla uygulanmış bir sistemi, onun bir parçası olarak deneyimlemek çok besleyici bir süreçti. Dahil olduğum dört sene boyunca hem öğrencilerimle kurduğum ilişki hem de ekip üyeleriyle oluşturduğumuz sosyal bağ da programdan geriye kalan en değerli şeylerden.

TÇ: Bu etkinliklere üst sınıflardaki öğrencilerin ne kadarı katılıyor? Üst ve alt sınıftan olup görev alan öğrencilerin pozisyonları farklılık gösteriyor mu?

BB: 2., 3. ve 4. sınıf öğrencilerimiz görev alabiliyorlar. Asistanlarımız arasında lisansüstü öğrencilerden çok az oluyor veya hiç olmuyor. Sistem lisans öğrencileri üzerine kurgulanmış olduğu için çağrımızı onlara  gönderiyoruz. İlk programlama dersini başarıyla tamamlayan bir öğrenci, gönüllü asistan olarak görev almak için başvurabiliyor. Bir öğrenci bu noktada sisteme dahil olduktan sonra lisans eğitimi sırasında birkaç kere asistanlık görevi alıyor. 

Gönüllüler ilk yıl çırak asistan olarak deneyimli asistanlar ve öğretim üyelerinin oluşturduğu bir grup tarafından uygulamalı bir eğitime tabi tutuluyorlar. Eğitimlerde özellikle, karşılaşılacak zor durumlar ele alınıp sahnede canlandırılıyor. Böylece güvenli bir ortamda olası riskli durumları deneyimleyip stratejiler geliştirmelerine yardımcı olunuyor. Deneyimli eğitmenler çırak öğrenci asistanların verdiği derslere katılıp kendilerine geri bildirimde bulunuyorlar. Programlama dersi devam ederken tüm ekibin katıldığı ve her katılımcının fikirlerini paylaştığı düzenli toplantılar yapılıyor. Böylece öğrencilerin düzeyi ve içerikler tüm ekip tarafından sorgulanıyor. Bu toplantılar da çırak asistanlar için oldukça eğitici oluyor. 

TÇ: Stanford bu eğitim sistemini hangi ülkelerde yaygınlaştırmaya çalışıyor?

BB: Stanford Üniversitesi kurum olarak sistemi yaygınlaştırmak için özel bir çaba harcamıyor. Daha çok, sistemi uygulayıp faydasını gözlemleyen öğretim üyeleri inisiyatif alıp CS Bridge çatısı altında sosyal sorumluluk projeleri gerçekleştiriyorlar ve yaygınlaşmasına katkı sağlamaya çalışıyorlar. Ben de onlar gibi sistemin çok boyutlu faydasına şahit olmuş ve bu sebeple Türkiye’de yaygınlaşması için çalışan bir öğretim üyesiyim. Bu sebeple CS Bridge etkinliklerinde görev alıyorum. CS Bridge, Nick McKeown ve Asena McKeown çiftinin sosyal sorumluluk projesi olarak başlattığı, daha sonra bir Stanford Affiliates programına dönüşen bir geleneksel yaz okulları serisi. Şu ana kadar Türkiye, Çek Cumhuriyeti, Kolombiya ve Birleşik Devletler’de  yaz okulları düzenlendi. Yaz okullarının en düzenli gerçekleştiği yer ise Koç Üniversitesi. Koç Üniversitesi yöneticileri, öğretim üyeleri ve idari personeli bu programa en başından beri sahip çıktılar, destek oldular. Sayelerinde en fazla öğrenciye ulaşan CS Bridge yaz okulları Türkiye’de düzenlendi ve düzenlenmeye devam ediyor. Bu programa dair bilgiler ve program sırasında öğrenci ve öğrenci asistanlar üzerinde yapılan anket sonuçlarının değerlendirildiği bir makale [3] 2020 “ACM Learning@ scale” konferansında en iyi makale ödülü aldı. İlgilenen okurlar altta verdiğimiz linkten makaleye erişebilirler.

TÇ: Bu eğitim sistemi Türkiye’de ne zaman uygulanmaya başladı? Bu eğitimden kaç öğrencimiz yararlandı?

BB: Stanford Ünv. Bilgisayar Bilimleri Bölümü öğretim üyelerinin düzenlediği yaz okulları 2014’te başladı. Yaz okulları, düzenlenen ortak kurumdaki öğretim üyeleri ve öğrencilerle beraber bir ekip kurularak gerçekleştiriliyor. 2021’e kadar Darüşşafaka Lisesi, Boğaziçi Üniversitesi, Koç Üniversitesi’nde yaz okulları düzenlendi. Bu sene Türkiye’de yapılan yaz okulunu Koç Üniversitesi, İzmir Demokrasi Üniversitesi ve Stanford Üniversitesi çevrimiçi olarak beraber düzenliyoruz. Her sene ortalama 200 lise öğrencisine 20 kişilik ekiple eğitim veriliyor. Bu sene öğrenci sayısı 300 ve eğitim ekibinde 32 kişi var.

Eğitimden yararlanan öğrenci sayısına gelince; ilk bakışta bu yaz okulu sadece lise öğrencilerine hizmet veriyor gibi görünüyor. Ancak benim bir öğretim üyesi olarak daha merkezî hedefim, geleceğin öğretim üyeleri ve/veya yazılımcıları olacak öğrenci-asistan ekibinin sistemden sağladıkları faydanın mümkün olan en yüksek düzeyde olması. Meşhur fizik profesörü Richard Feynman’ın ünlü sözünü bilirsiniz: “Bir şeyde uzman olmak istiyorsanız, onu öğretin”. Bu sistem de bir öğrenci asistana programlama konusunda “öğretirken uzmanlaşma” imkanı sunuyor. Eğitimden en fazla faydalananlar bu sebeple öğrenci asistanlar oluyor. 

TÇ: Bu sistemi öncelikle lise öğrencilerine uyguladığınızdan bahsettiniz. Stanford’da olduğu gibi üniversite öğrencilerine uygularken eğitmen ekibini nasıl seçiyorsunuz? Onlarla, Stanford desteği olmadan bu eğitimi yaygınlaştırabilir misiniz?

BB: Eğitmen ekibi öğretim üyesi olarak bizler ve öğrencilerimiz içerisinden başvuranlar arasından seçtiğimiz öğrenci asistanlardan oluşuyor. Beraber düzenlenen CS Bridge yaz okullarını takiben sistemin başarısını gözlemleyen Koç Üniversitesi Bilgisayar Mühendisliği Bölümü, mühendislik öğrencilerine verilen ilk programlama dersi için sistemi uygulamaya başladı ve bu uygulama birkaç senedir devam ediyor. 

İzmir Demokrasi Üniversitesi’nde bu yıl dönem içerisinde az sayıda öğrenci ile uygulamaya başladık. Sistemin uygulamadaki başarısı, içinde görev alan kişilerin hedef ve yöntemler konusunda fikir birliğine sahip olma düzeylerine bağlı; yaygınlaştırılabilme potansiyeli de öyle. Şimdiye kadar denemelerimizde farklı düzeylerde başarılar gözledik, hepsinin çok başarılı olduğunu söyleyemem. Sistemin üniversite eğitiminde ülkemizde alışık olduğumuz hoca-öğrenci ilişkisini değişmeye zorlayan yönleri var ve bu konuda direnç yaşanabiliyor. 

Ben şahsen sistemin başarısının öğrenci asistanlara inisiyatif tanıma düzeyine, öğretim üyesinin bilen ve görev tanımlayıp dağıtan bir fonksiyondan uzaklaşıp ekibin deneyimli bir üyesi rolü almasına, dersi alan öğrencilere ”Herkes kendisinden sorumludur.” bakışıyla değil “Bu öğrenciye biz ekip olarak nasıl yardım edebiliriz?” bakışıyla yaklaşılmasına bağlı olduğunu düşünüyorum. Öğretim üyelerinin eğitici ekip içerisinde rollerini alıştığımız şekilde, ders verdikten sonra asistanlara görev dağıtıp köşesine çekilerek sürdürdüğü durumda sistemin başarıyla yaygınlaştırılmasının mümkün olacağını pek düşünmüyorum. Sistemin merkezinde öğrenci asistanlar var ve asıl hedefimiz onların öğretirken öğrenmeleri ve eğitim sürecini ekip içerisinde beraber sorgulama deneyimini yaşamaları. 

Bir programlama yaz okulunun hedefinin, programlama bilmeyen bir gruba programlama öğretmek olduğu düşünülecektir. Bu bizim için ikincil bir hedef. Temel hedefimiz, programlama bilmeyen bir gruba eğitim veren öğrenci asistanların (çırakların) geleceğin yetkin eğitmenlerine dönüşmelerine yardımcı olmak, onları eğitici olarak eğitmek. Bu sırada bizim için ikincil olan hedefe (programlama bilmeyen bir gruba programlama öğretmek) de ulaşıyoruz. Sistemin yaygınlaştırılma potansiyelinde öğretim üyelerinin rolünden bahsettim. Elbette öğrenci asistanlar da denklemin bir parçası. Onlar böyle bir sisteme adapte olmaya daha yatkın ve istekliler ve genç oldukları için alıştıklarının dışında süreçlerde görev almaya ve iletişim kurmaya açıklar. Bu açıdan çok risk görmüyorum. 

TÇ: Sizin şahsen bu eğitimlere aktif bir şekilde katılırken nihai amacınız nedir? Bu sistemin eğitim dünyasında hangi tür sorunlara çare olacağını düşünüyorsunuz?

BB: Lisans, yüksek lisans ve doktora eğitimim 12 yıllık bir öğrencilik sürecine karşılık geliyor. 15 yıl da öğretim üyeliği deneyimim var. Bu deneyim sonucu görüşüm: Üniversite eğitiminde öğrenciyi yalnız bırakıyoruz, geniş bir kitleye tahtada bilgi aktaran uzman modelini tercih etmiş durumdayız. Aslında, öğrencilerin pratik yapıp, yaptıkları hatalara dair bir geri bildirim alabilecekleri bir sistemi işletemiyoruz. Ayrıca, belirli konuda uzmanlaşmış bir bireyin o konuda eğitim vermekte başarılı olacağını varsayıyoruz. Eğiticiliğin öğrenilmesi ya da en azından sürekli sorgulanarak iyileştirilmesi gerektiğini göz ardı ediyoruz. Bu sistem, öğrencileri küçük destek gruplarına bölerek, takıldıkları yerleri grup içinde sorgulamalarına, yaptıkları hatalara dair geri bildirim almalarına imkan sağlıyor. Öğrenci asistanlara da öğretirken öğrenme ve grup çalışması deneyimi sunuyor. Ayrıca birebir iletişim becerileri konularında kendilerini geliştirmelerine yardımcı oluyor. 

Öğretim üyesi olarak bana da, 200 öğrenciye ders verdiğim durumda bile öğrencilerin hangi kavramları anlamakta zorlandıklarını öğrencilerle birebir iletişim içerisindeki asistanlardan öğrenme ve süreci iyileştirme şansı tanıyor. Öğrenci asistan ekibimle beraber içerikleri ve derslerin etkinliğini sürekli sorguluyor olmak hatalarımı farketmemi kolaylaştırıyor, eğitmen olarak gelişmemi sağlıyor.

TÇ: Öğrenci asistanların güçlü bir dayanışma ağı oluşturduğundan bahsettiniz. Bu bana çok ilginç geldi. Bu konuyu biraz açabilir misiniz?

BB: Stanford Üniversitesi’nde 35 yıldır uygulanan bu sistem, işinde iyi ve iletişim becerileri yüksek geniş bir öğrenci asistan dayanışma ağı kurulmasını sağlamış. Silikon Vadisi şirketleri için önemli bir insan kaynağı havuzu oluşmuş. Eğitimde beraber görev alan öğrenci asistanlar daha sonra beraber şirketler kurmuşlar. Bu sistem burada uygulandıkça biz de benzer süreçleri deneyimlemeye başladık. Stanford Üniversitesi’ndeki öğrenci asistan ağı Silikon Vadisi’ndeki üretim ekonomisinin altyapısını oluşturan önemli bir ağa dönüşmüş durumda. Ben bu modelin ülkemizde de başarılı bir şekilde uygulanabileceğini düşünüyorum. 

TÇ: Bu sistemi Türkiye’de uygulamak isteyen üniversiteler olursa onlara tavsiyeleriniz ne olur?

BB:  Sistemi açıklayan bilgiler makalelerde ve sistemi uygulayan üniversitelerin sayfalarında [6, 7] mevcut. Bunlardan yola çıkarak üniversiteler kendi özel tasarımlarını deneyebilirler. Ancak sistemin işlerliğinde önemli rolü olan bazı öğeler gözden kaçabilir. CS Bridge yaz okulları pilot deneme yapmak ve Stanford Üniversitesi öğretim üyeleriyle beraber tasarladığınız sistemi sorgulamak için büyük fırsat sunuyor. Bu sosyal sorumluluk projesinde rol almak, sistemi öğrenmek ve uygulamaya başlamak için ideal yöntem diye düşünüyorum. Bu sene ilk defa İzmir’de gerçekleştirdiğimiz yaz okuluna özellikle birden fazla İzmir üniversitesinden öğrenci-asistan dahil ettik. Program bittikten sonra bu öğrencilerimizle beraber ilgili bölüm başkanlarıyla deneyimlerimizi paylaşmak ve ilgilenirlerse üniversitelerinde sistemi uygulama olasılığını ele almaları için görüşeceğiz.   

Son Söz: Silikon Vadisi’nin sırrı, usta-çırak ilişkisi içinde öğrendiğini uygulamak ve öğretmektir. 

TÇ: Barış Hocam bu önemli eğitim modelini Türkiye’de uyguladığınız için sizi kutlarım. Sorularımı cevapladığınız ve görüşlerinizi paylaştığınız için size ve Ahmet Bey’e çok teşekkür ederim. Son olarak okuyucularımıza ne söylemek istersiniz?

BB: Pilot çalışmaları Stanford Üniversitesi’nden öğretim üyeleri Nick McKeown, Chris Piech, Lisa Yan ve  Nick Troccoli ile beraber yürütüyoruz. Kendilerine emekleri için ve organizasyonel deneyimi bize aktardıkları için müteşekkirim. Bu çalışmayı sosyal sorumluluk projesi olarak başlatan Asena McKeown ve şu an organizasyonu yürüten Yosefa Gilon sayesinde bu çalışmaları Türkiye’de yapmak mümkün oldu. Koç Üniversitesi yöneticileri, öğretim üyeleri ve personeli ilk yaz okulundan bugüne CS Bridge etkinliklerine sahip çıktılar ve gönülden desteklediler. Türkiye’de gelenekselleşmesi onlar sayesindedir. Bu sene yaz okulunu İzmir’de düzenlemeye başlamış olmaktan mutluyum. Yaz okullarının bir pilot uygulama ve kaldıraç görevi görerek sistemin İzmir üniversitelerinde uygulanmaya başlamasına yardımcı olmasını umuyorum. Dijital oyun tasarımı şirketi olan Rollic öğrenci-asistanlarımıza burs sağlayarak yaz okuluna destek oldu. Kendilerine çok teşekkür ederim.  


[1] Eric Roberts, John Lilly, and Bryan Rollins, “Using undergraduates as teaching assistants in introductory programming courses: an update on the Stanford experience”, Proceedings of the Twenty-sixth SIGCSE Technical Symposium on Computer Science Education, Nashville, Tennessee, March 1995. (https://cs.stanford.edu/people/eroberts/papers/SIGCSE-1995/UsingUndergraduateTAs.pdf )

[2] Stuart Reges, John McGrory, and Jeff Smith, “The effective use of undergraduates to staff large

introductory CS courses,” SIGCSE Bulletin, February 1988. (https://dl.acm.org/doi/10.1145/52965.52971 )

[3] Piech, C., Yan, L., Einstein, L., Saavedra, A., Bozkurt, B., Sestakova, E., ... & McKeown, N. (2020, August). Co-Teaching Computer Science Across Borders: Human-Centric Learning at Scale. In Proceedings of the Seventh ACM Conference on Learning@ Scale (pp. 103-113). (https://stanford.edu/~cpiech/bio/papers/crossBorderCoteaching.pdf )

[4] CS Bridge ana sitesi: https://www.csbridge.org/

[5] 2021 CS Bridge İzmir Yaz Okulu duyurusu: http://muhendislik.idu.edu.tr/Educat/Dosya/CSBridgeProgramDescription_Izmir2021_TR.pdf 

[6] Stanford Section Leader Program: https://cs198.stanford.edu/cs198/ 

[7] Arizona Üniversitesi Section Leader Program: https://www2.cs.arizona.edu/slprogram/