Ders Bilgileri
Ders Adı Kod Yarıyıl T+U AKTS
Sembolik Programlama MTK378 6 3 + 0 5

Ön Koşul Yok

Dil Türkçe
Seviyesi Lisans
Tür Seçmeli
Koordinatör Yrd.Doç.Dr. FİKRET GÖLGELEYEN
Dersi Verenler Yrd.Doç.Dr. FİKRET GÖLGELEYEN
Amacı Bu ders sembolik programlamanın temel kavramlarını ve yöntemlerini tanıtır. Sembolik programlama; matematiksel formüller, nesneler ve nesnelerin ilişkileri(object oriented (nesne yonelimli)) ile doğal dil cümleleri de dahil olmak üzere birçok farklı bilgi türünü temsil etmek için kullanılan karmaşık sembolik ifadelerin inşaası ve analizini içerir.
İçeriği Genel veri Yapıları ve bu yapılar uzerindeki işlemler, bu işlemlerin matematiksel analizi (cost of the algorithms) , Ağaç Yapıları (Binary Trees , B Trees) ve bu yapılar kullanılarak algoritmaların düzenlenmesi, Fonksiyonel Programlamanın tanimi, temel ozellikleri, fonksiyonel programlama tekniklerinin kullanarak program kodlama, Mantik Programlama tanimi, temel ozellikleri mantik programlama tekniklerini kullanarak program kodlama.
İşe Yerleştirme Yok

No Yeterlilikler (Öğrenme Çıktıları)
1 Sembolik ifadeler oluşturan ve bunlarla işlem yapabilen programlar yazabilir;
2 Sayısal ve liste işlemleri için algoritmalar oluşturabilir, bu algoritmalari kullanarak ilgili programlari özyinelemeli(recursive) ve tekrarlamali(iteratif) yordamları (yontemleri) kullanarak düzenler ve kodlar;
3 Kuyruklama(queueing) işleminin mantiğını bilir, kuyruklama yaklasimlarini(baglantili , baglantisiz)bilir, kuyruklama işlemlerinde öncelikleme(prioritization) yapabilir kuyruklama işlemleri ile ilgili prosedürleri özyinelemeli(recursive) ve tekralamalı(iterative) olarak kodlar;
4 Fonksiyonel programlama paradigmasını bilir ve bu paradigmayı kullanarak programlar kodlar;
5 Mantık programlama paradigmasını kullanan programlar kodlar;
6 Eşleme algoritması tanımlar.

Öğretim Yöntemi Yüz yüze
Planlanan Öğrenme Aktiviteleri ve Öğretme Yöntemleri Anlatım, soru cevap, grup çalışması, problem çözme.
Ölçme Yöntemleri Ara sınav, ödev, genel sınav.



Ders Akışı
Hafta Konular Ön Hazırlık
1 Scheme Programlama dilinin tanitilmasi ve bazı örnekler İlgili konunun ders materyallerinden çalışılması.
2 Fonksiyonel Programlama kavramı İlgili konunun ders materyallerinden çalışılması.
3 Fonksiyonel Programlama (II) İlgili konunun ders materyallerinden çalışılması.
4 Özyineleme (Recursion) kavramı, Bilinen bazı algoritmaların Özyineleme kavramı kullanılarak yeniden kodlanması. İlgili konunun ders materyallerinden çalışılması.
5 Veri yapıları (liste (baglantılı(linked list), baglantısız(array))) ve bu veri yapıları üzerinde tanımlanan fonksiyonlar (veri ekleme, veri silme, veri arama, verileri sıralama). İlgili konunun ders materyallerinden çalışılması.
6 Kuyruklama mantığının ve ilgili fonksiyonların tanıtılması. Kuyruklama fonksiyonlarının Özyinelemeli olarak inşaası. İlgili konunun ders materyallerinden çalışılması.
7 Arasınav Önceki haftalarda işlenen konuların ders materyallerinden çalışılması ve çeşitli problemlerin çözülmesi.
8 Agaç yapılarının tanıtılması (Binary trees, B-trees). İlgili konunun ders materyallerinden çalışılması.
9 Agac yapıları kullanarak bazı fonksiyonların yeniden düzenlenmesi, Agac algoritmalarının matematiksel analizi ve bunlarin lineer algoritmalarla kıyaslanması. İlgili konunun ders materyallerinden çalışılması.
10 Prolog programlama dilinin tanıtılması, Prolog dilinde program kodlama. İlgili konunun ders materyallerinden çalışılması.
11 Prolog programlama dili (II) İlgili konunun ders materyallerinden çalışılması.
12 Mantıksal Programlama İlgili konunun ders materyallerinden çalışılması.
13 Mantıksal Programlama (II) İlgili konunun ders materyallerinden çalışılması.
14 Genel tekrar Önceki haftalarda işlenen konuların ders materyallerinden çalışılması ve çeşitli problemlerin çözülmesi.
15 Genel Sınav Önceki haftalarda işlenen konuların ders materyallerinden çalışılması ve çeşitli problemlerin çözülmesi.



Kaynaklar
Ders Notu Bramer, Max. Logic Programming with Prolog. Springer, 2005.
Diğer Kaynaklar K. O. Geddes, S. R. Czapor, G. Labahn, Algorithms for Computer Algebra, Springer, 1992. R. L. Burden, J. D. Faires, Numerical Analysis, Brooks Cole, 2010.



Değerlendirme Sistemi Sayısı Toplam Katkı Yüzdesi
Yıl/Yarıyıl İçi Çalışmalar
Arasınavlar 1 70
Ödev 3 30
Yıliçi Toplam 4 100
Yıliçinin Başarıya Oranı 40
Yıl/Yarıyıl Sonunun Başarıya Oranı 60
Genel Toplam 100





Program Çıktılarına Katkısı
No Program Yeterlilikleri (Öğrenme Çıktıları) Katkı Düzeyi
1 2 3 4 5



AKTS / İş Yükü Tablosu
Etkinlik Sayısı Süresi (saat) Toplam İş Yükü (saat)
Ders Süresi 14 3 42
Sınıf Dışı Ders Çalışma Süresi 14 4 56
Ödev 5 3 15
Arasınavlar 1 17 17
Yarıyıl / Yıl Sonu Sınavı 1 32 32
Toplam İş Yükü (saat) 162
Toplam İş Yükü / 30 (s) 5,4
Dersin AKTS Kredisi 5