3 puan yazan GN⁺ 2024-06-17 | 1 yorum | WhatsApp'ta paylaş

Bilgisayar Programlarının Yapısı ve Yorumlanmasının neden önemli olduğu

SICP'nin yenilikleri

  • Entelektüel düzeyi yükseltme: SICP, başlangıç düzeyindeki bilgisayar bilimi eğitiminin entelektüel seviyesini büyük ölçüde yükseltti. Önceki ilk CS dersleri belirli bir programlama dilinin ayrıntılarını öğrenmeye odaklanırken, SICP programlama sürecinin büyük resmini öğrenmeye odaklandı.
  • Soyutlamaya vurgu: Somut problemlerden genel kalıpları bulmanın ve her kalıbı gerçekleştiren yazılım araçları üretmenin, yani soyutlamanın önemini vurguladı.
  • Fonksiyonların veri olarak ele alınması: Fonksiyonların veri olarak kullanılabileceği fikrini merkeze aldı. Öğrenmesi zor olsa da bir kez öğrenildiğinde son derece güçlü bir kavramdır.
  • Çeşitli programlama paradigmaları: Fonksiyonel, nesne yönelimli ve bildirime dayalı olmak üzere üç programlama paradigmasını ilk CS dersine entegre etti.

Scheme dilinin seçimi

  • Basit ve tutarlı gösterim: Scheme, her şey için çok basit ve tutarlı bir gösterime sahiptir. Diğer diller değişken atama, koşul çalıştırma, yineleme ve fonksiyon çağrısı için ayrı gösterimler kullanırken, Scheme tüm bunları tek bir gösterimle ele alır.
  • Farklı paradigmaları öğrenebilme: Scheme'in sadeliği sayesinde çeşitli programlama paradigmaları kolayca öğrenilebilir. Özellikle nesne yönelimli programlamanın nasıl gerçekleştirildiğini anlamayı sağlar.
  • Geleceğe hazırlık: SICP, öğrencilere yeni programlama dillerini öğrenme yeteneği kazandırır. "Gelecekte kullanacağınız dil henüz icat edilmedi" felsefesini taşır.

SICP'nin iyimser yaklaşımı

  • Yüksek beklentiler: SICP, üniversite birinci sınıf öğrencilerinin başarabilecekleri konusunda iyimser beklentilere sahiptir. Öğrenciler genellikle normalde üst sınıfların ele aldığı programlama dili yorumlayıcıları yazar.
  • Derinlemesine öğrenme: Metnin kendisi kolay okunmaz, ancak her cümle önemlidir ve her alıştırma önemli yeni bir fikir öğretir.

SICP'nin etkisi

  • Süregelen etki: SICP tabanlı dersler az sayıdaydı, ancak etkileri çok büyüktü. Sonraki birçok ders kitabı SICP'nin koyduğu standardı izlemeye çalıştı.
  • Scheme'in yayılması: Scheme'in öğrenme dili olarak kullanım alanı ortaokuldan lisansüstü seviyeye kadar genişledi.
  • Fikir merkezli bilgisayar bilimi: Bilgisayar biliminin fikir merkezli olması gerektiği anlayışı geniş ölçüde yayıldı.

SICP'nin kalıcılığı

  • Uzun ömür: SICP 25 yıldan uzun süredir varlığını sürdürdü ve hâlâ basılmaktadır. Bilişim ortamı büyük ölçüde değişmiş olsa da, arkasındaki büyük fikirler değişmedi.
  • Derslerin değişimi: SICP tabanlı dersler zamanla paralellik, eşzamanlılık denetimi, kullanıcı arayüzü tasarımı ve istemci/sunucu paradigması gibi konuları ekledi.

MIT'nin müfredat değişikliği

  • Uygulama odaklı müfredat: MIT, konu odaklı bir müfredattan uygulama odaklı bir müfredata geçti. Programlama dili seçimi bu kararın en küçük parçalarından biriydi.
  • Yeni yaklaşımın zorlukları: Yeni yaklaşımın öğretilmesi daha zordur ve her dersin elektrik mühendisliği ile bilgisayar bilimi öğretim üyelerinin işbirliğini gerektirmesine yol açar.

Öğrencilerin tepkileri

  • Sonradan gelen popülerlik: Öğrenciler ders sırasında ne kadar çok şey öğrendiklerini pek fark etmezler, ancak daha sonra onu en popüler derslerden biri olarak değerlendirirler. Mezun olduktan sonra da öğrendiklerini işlerinde kullandıklarına dair geri bildirim gelir.

GN⁺ görüşü

  • SICP'nin eğitim felsefesi: SICP, programlama dillerinin ayrıntılarından çok büyük fikirleri öğrenmeye odaklanarak, öğrencilerin yeni dilleri kolayca öğrenebilme yeteneğini geliştirir.
  • Scheme'in avantajları: Scheme'in sadeliği ve tutarlı gösterimi, başlangıç seviyesindeki öğrenciler için çok faydalıdır. Çeşitli programlama paradigmalarını kolayca anlamayı sağlar.
  • MIT'deki değişim: MIT'nin müfredat değişikliği uygulama odaklı öğrenmeyi vurgular; bu da pratiğe daha yakın bir deneyim sunabilir.
  • Eğitimin sürekliliği: SICP'nin uzun ömürlü olması, eğitim felsefesinin ve içeriğinin hâlâ geçerli olduğunu gösterir. Bu, eğitimin öz değerini vurgular.
  • Pratikle bağlantı: SICP tabanlı eğitim, iş hayatında doğrudan uygulanabilecek beceriler kazandırır ve bu da mezuniyet sonrasında büyük fayda sağlar.

1 yorum

 
GN⁺ 2024-06-17
Hacker News görüşleri
  • Prof. Abelson’ın dersleri YouTube’da izlenebilir ve buna zaman ayırmaya değer: bilgisayar bilimine dair derinlemesine bir anlayış sunuyor ve son dönemdeki abartıyı azaltmaya yardımcı olabilir.

  • Kitabın ilk yarısı hafif ve ilgi çekici bir okumaydı: nesne yönelimli kısımda zorlandım; kişisel olarak işlevsel düşünme bana daha uygun geldi.

  • YouTube’da 80’lerin başından kalma dersleri izleyebilirsiniz: mizah, erken dönem grafik denemeleri ve 70’ler modası içerdiği için eğitici.

  • Oldukça deneyimli programcılar için bile bu kitabın hâlâ okunmaya değer olup olmadığını merak ediyorum.

  • SICP’nin amacının bilgisayar biliminden hoşlanmayan insanları korkutmak olduğunu düşünmüştüm: aslında çok değerli bir temel dersti, ancak bazı insanların başka bölümlere yönelmesine neden oldu.

  • İlk birkaç sayfayı geçemedim: eğer zorunlu ders olsaydı, şimdi başka bir iş yapıyor olurdum.

  • Berkeley’de CS 61A dersinde öğretim asistanı olarak çalıştım: Scheme dilinin basit ve birleşik gösteriminin eğitimde yardımcı olduğu savunulsa da, pratikte öğrenciler bunun yüzünden kafası karışıyordu. Scheme’de her şeyin aynı görünmesini bir hata olarak görüyorum.

  • SICP’den öğrendiğim en iyi ders, ilk fonksiyonu yazdığınız anda alan problemini çözmek için bir DSL oluşturmaya başlamanız gerektiğiydi: bu kavrayış beni programcı olarak bir üst seviyeye taşıdı.

  • SICP hakkında her okuduğumda Javascript’e karşı hayal kırıklığı hissediyorum: Javascript, Scheme olsaydı web geliştirme daha iyi olurdu.

  • SICP ile PAIP’in karşılaştırılmasına dair bir istek: SICP işlevsel programlama ve bilgisayar biliminin temellerini ele alırken, PAIP daha çok genel programlama pratiğine odaklanıyor gibi görünüyor.