Forum: D Programlama Dili RSS
Ders planı
acehreli (Moderatör) #1
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Ders planı
Derslerin başına şimdilik aklımda olan planı yazdım:

  http://ddili.org/ders/d/

Tabii ki ilerledikçe değişecek...

Ali
Avatar
esatarslan52 (Moderatör) #2
Üye Haz 2009 tarihinden beri · 142 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Birim Testler [unit testing] bölümünü merak ediyorum. Daha öncede bir çok yerde duydum. Fakat tembellikten zaman ayırıp bakmak bir türlü kısmet olmadı :).

Sözleşmeli programlama [contract programming] yı daha önce hiç duymadım. D ye özel bişey mi?? Google'da çift tırnak içinde arattığımda da sadece bu başlık çıktı.
acehreli (Moderatör) #3
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Unit testing çok yararlı ama hep dış araçlarla halledilir. D'nin bunu dilin içine sokması çok iyi bir fikir. Ama duyduğuma göre daha da iyi olabilirmiş. Yine de hiç yoktan iyidir.

D'de "contract programming" diye geçen şey, Eiffel dilinin meşhur ettiği "design by contract" olanağı. Eiffel, Bertrand Meyer diye birisinin özel dili (belki artık açık kod olmuştur). Hatta "design by contract" sözünü bile tescilli hale getirmiş! :D O yüzden D'de başka bir isim kullanıyorlar.

Benim çevirim de doğru olmayabilir. Belki Türkçe'de zaten çok kullanıldığı için "kontratlı programlama" demeliydim...

Fikir şunun gibi: Diyelim bir Dikdörtgen sınıfı yazdık ve herhangi bir nedenle hem kenar uzunluklarını hem de alanını üye olarak tutuyoruz. Bu sınıfın bir "değişmez"i [invariant], "en*boy==alan"dır.

İşte "contract programming", sınıfın her üye fonksiyonu sonrasında bu değişmezin korunup korunmadığını otomatik olarak denetler. Eğer "en*boy==alan" bozulmuşsa, nesne bozuk durumda demektir.

Bunun dışında fonksiyona giriş ve çıkışlarda da denetimler vardır: bir fonksiyon gelen parametrelerin mutlaka uymaları gereken kuralları belirler; örneğin bir tanesi hiç null olmamalıdır. Veya döndürdüğü sonuç için bir denetim koyar.

İşte bu "değişmezler"in otomatik olarak denetlenmesine "contract programming" denir.

Ali
acehreli (Moderatör) #4
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Bu ders planı hakkında fikri olan öğretmen arıyorum? Aramızdan veya tanıdığınız öğretmenlerden fikir gerekiyor.

Örneğin bu sabah Aritmetik İşlemler bölümünün çoğunu bitirdim ama korktum! :) Bit uzunlukları, tamsayı işlemlerindeki taşmalar ve kırpmalar gibi konular fazla teknik geldi. Galiba onları ayrı bir bölüme ayıracağım.

Eğer derslerin bu kadarı hakkında fikriniz varsa çok sevinirim.

Ali
erdem (Moderatör) #5
Üye Tem 2009 tarihinden beri · 981 mesaj · Konum: Eskişehir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Bence bu ders planı gayet güzel. Böyle güzel bir kaynak oluşturma çabalarınız için teşekkürler! :)

Bir fikir olarak ben nedense tek bir örnek üzerinde yoğunlaşıp dille ilgili ayrıntıları yeri geldikçe izah eden kitapları daha seviyorum. Belki benim düşündüğüm gibi düşünen başkaları da olabilir :)

Örneğin Accelerated C++ bir öğrenci kayıt programı, C++ In Action da yanlış hatırlamıyorsam bir hesap makinesi programı yapıyordu. Okuyucu gözüyle ben Accelerated C++'nin anlatım üslubunu ve öğretici yanını (pedagojik mi derler :) çok iyi buldum. Belki bu kitabı hazırlayan kişilerin aynı zamanda eğitmen olmalarından kaynaklanıyor olabilir.
Avatar
esatarslan52 (Moderatör) #6
Üye Haz 2009 tarihinden beri · 142 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #4
acehreli:
Bu ders planı hakkında fikri olan öğretmen arıyorum? Aramızdan veya tanıdığınız öğretmenlerden fikir gerekiyor.
Ben varım, öğretmen olmasam bile öğretmen adayıyım :). Ama programlama dersi veren hocaların tecrübelerinden faydalanmak daha iyi olur tabi. Ben kendi programlama hocalarımdan, dersler hakkındaki görüşlerini yazmaları için istekte bulunabilirim.
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-21, 19:31:16 (UTC -08:00)