Yazılım Mühendisliği
Lisans TYYÇ: 6. Düzey QF-EHEA: 1. Düzey EQF-LLL: 6. Düzey

Ders Genel Tanıtım Bilgileri

Ders Kodu: YAZ035
Ders İsmi: Biçimsel Diller ve Otomata Kuramı
Ders Yarıyılı: Bahar
Ders Kredileri:
AKTS
5
Öğretim Dili: Türkçe
Ders Koşulu:
Ders İş Deneyimini Gerektiriyor mu?: Hayır
Dersin Türü: Bölüm/Program Seçmeli
Dersin Seviyesi:
Lisans TYYÇ:6. Düzey QF-EHEA:1. Düzey EQF-LLL:6. Düzey
Dersin Veriliş Şekli: Yüz yüze
Dersin Koordinatörü: Dr. Öğr. Üy. MUHAMMED DAVUD
Dersi Veren(ler): Ferzat Anka
Dersin Yardımcıları:

Dersin Amaç ve İçeriği

Dersin Amacı: Bu ders temel biçimsel dilleri ve soyut hesaplamalı modelleri tanıtır. Bu dillerin ve modellerin gücü ve sınırlılıkları ele alınır. Karar verilemeyen ve NP-tam problemlere giriş yapılır.
Dersin İçeriği: Giriş, string'ler ve diller, düzenli diller, sonlu makinalar, sonlu makina tasarımı, deterministik olmayan makinalar, deterministik olmayan makinalar ve deterministik makinaların eşitliği, düzenli ifadeler ve sonlu makinalarla eşitlik, düzenli diller için pumping lemma, bağlam bağımsız gramerler ve tasarımları, Chomsky normal formu, yığıtlı makinalar, bağlam bağımsız gramerlerle eşitlik, bağlam bağımsız olmayan gramerler, Turing makinaları ve örnekleri, Turing makinaları tasarımı, durma problemi, karar verilemeyen problemler, NP-tam problemler.

Öğrenme Kazanımları

Bu dersi başarıyla tamamlayabilen öğrenciler;
1) Biçimsel diller ve hesaplamalı modellerin sınıflarını ve ilişkilerini tespit edebilmek.
2) Düzenli ifadeleri ve sonlu durum makinaları tasarlayabilmek.
3) Deterministik olamayan sonlu makinaları deterministik sonlu makinlara çevirebilmek.
4) Düzenli ifadeleri deterministik olamayan sonlu makinalara çevirebilmek.
5) Gramer ve yığıtlı makina tasarlayabilme.
6) Context-Free diller ve PDA
7) Turing makinaları tasarlayabilme.
8) Otomatlar teorisinde kuram ispatlayabilme.
9) Karar verilemen ve NP-tam problemlere aşina olmak ve bir grup projesinde NP-tam problemlerin çözümü için sezgisel algoritmalar kullanmak.

Ders Akış Planı

Hafta Konu Ön Hazırlık
1) Giriş: Dizgiler ve Diller Bölüm 1
2) Terimler ve kavramlar Bölüm 1
3) Sonlu Makinalar Bölüm 2
4) Düzenli diller Bölüm 2
5) Deterministik Olmayan Makinalar Bölüm 3
6) Düzenli İfadeler Bölüm 4
7) Düzenli Olmayan Diller Bölüm 5
8) Bağlamdan Bağımsız Gramerler Bölüm 6
9) Ara-Sınav
10) Bağlamdan Bağımsız Gramerler Bölüm 6
11) Yığıtlı Makinalar Bölüm 7
12) Deterministik Bağlamdan Bağımsız Diller ve makineler Bölüm 8
13) Turing Makinaları Bölüm10
14) P ve NP Sınıfları ve problemleri Bölüm 11

Kaynaklar

Ders Notları / Kitaplar: Sipser, M. Introduction to the Theory of Computation, (3rd edition), 2012.
Peter Linz, An Introduction to Formal Languages and Automata, 5th Edition
Diğer Kaynaklar: Sipser, M. Introduction to the Theory of Computation, (3rd edition), 2012.
Peter Linz, An Introduction to Formal Languages and Automata, 5th Edition

Ders - Program Öğrenme Kazanım İlişkisi

Ders Öğrenme Kazanımları

1

2

3

4

5

6

7

8

9

Program Kazanımları
1) Matematik, fen bilimleri ve ilgili mühendislik disiplinine özgü konularda yeterli bilgi birikimine; bu alanlardaki kuramsal ve uygulamalı bilgileri, mühendislik problemlerinde kullanabilme becerisine sahiptir. 3 3 3 3 3 3 3 3 3
2) Bir sistemi, süreci veya ürünü ekonomik, çevre, sosyo-politik, etik, sağlık, güvenlik, üretilebilirlik ve sürdürülebilirlik ile ilişkili gerçekçi koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisine sahiptir.
3) Mühendislik problemlerini tanımlama, formüle etme ve çözme; çözüm için gerekli yöntemi seçme ve uygulama becerisine sahiptir. 3 3 3 3 3 3 3 3 3
4) Mühendislik uygulamalarında karşılaşılan problemlerin analizi ve çözümü için gerekli olan modern teknikleri geliştirme, seçme ve kullanma; bilişim teknolojilerini etkin bir şekilde kullanma becerisine sahiptir. 3 3 3 3 3 3 3 3 3
5) Mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi için deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme ve yorumlama becerisine sahiptir. 1 1 1 1 1 1 1 1 1
6) Çok disiplinli takımlarda etkin biçimde çalışabilme becerisine sahiptir. 1 1 1 1 1 1 1 1 1
7) Sözlü ve yazılı etkin iletişim kurma becerisi ile etkin rapor yazma ve yazılı raporları anlama, etkin sunum yapabilme becerisine sahiptir.
8) Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk bilincine sahiptir; mühendislik uygulamalarında kullanılan standartlar hakkında bilgiye sahiptir.
9) Bir yabancı dili Avrupa Dil Portföyü kriteri açısından en az B1 düzeyinde kullanabilme becerisine sahiptir.
10) Yaşam boyu öğrenmenin gerekliliği bilincine sahiptir; bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisine sahiptir.
11) Bilgisayar yazılımı ile birlikte bilişim ve iletişim teknolojilerini Avrupa Bilgisayar Kullanma Lisansı İleri düzeyinde kullanabilme becerisine sahiptir. 2 2 2 2 2 2 2 2 2
12) Proje yönetimi ve risk yönetimi uygulamaları hakkında bilgi; girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgiye sahiptir.
13) Mühendislik uygulamalarının evrensel ölçekte çevre, sağlık ve güvenlik üzerindeki etkileri ve hukuksal sonuçları hakkında bilgi ve farkındalığa sahiptir.
14) Yazılım alternatiflerini irdeleyerek bilgisayar tabanlı sistemlerin modellenmesi ve tasarımında, algoritma prensiplerini, matematiksel temelleri ve bilgisayar bilimleri teorisini uygulama becerisine sahiptir. 2 2 2 2 2 2 2 2 2
15) Türevsel denklemler, integral hesapları, doğrusal cebir, mantık ve ayrık matematik içerecek şekilde ileri matematik eğitimi ile birlikte yazılım mühendisliğinde veri yapıları ve algoritmalar, programlama dilleri, işletim sistemleri, bilgisayar güvenliği, bilgisayar teorisi, ağ programlama ve makine öğrenmesi alanlarını kapsayan mühendislik eğitimine sahiptir. 2 2 2 2 2 2 2 2 2

Ders - Öğrenme Kazanımı İlişkisi

Etkisi Yok 1 En Düşük 2 Orta 3 En Yüksek
       
Dersin Program Kazanımlarına Etkisi Katkı Payı
1) Matematik, fen bilimleri ve ilgili mühendislik disiplinine özgü konularda yeterli bilgi birikimine; bu alanlardaki kuramsal ve uygulamalı bilgileri, mühendislik problemlerinde kullanabilme becerisine sahiptir.
2) Bir sistemi, süreci veya ürünü ekonomik, çevre, sosyo-politik, etik, sağlık, güvenlik, üretilebilirlik ve sürdürülebilirlik ile ilişkili gerçekçi koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisine sahiptir.
3) Mühendislik problemlerini tanımlama, formüle etme ve çözme; çözüm için gerekli yöntemi seçme ve uygulama becerisine sahiptir.
4) Mühendislik uygulamalarında karşılaşılan problemlerin analizi ve çözümü için gerekli olan modern teknikleri geliştirme, seçme ve kullanma; bilişim teknolojilerini etkin bir şekilde kullanma becerisine sahiptir.
5) Mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi için deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme ve yorumlama becerisine sahiptir.
6) Çok disiplinli takımlarda etkin biçimde çalışabilme becerisine sahiptir.
7) Sözlü ve yazılı etkin iletişim kurma becerisi ile etkin rapor yazma ve yazılı raporları anlama, etkin sunum yapabilme becerisine sahiptir.
8) Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk bilincine sahiptir; mühendislik uygulamalarında kullanılan standartlar hakkında bilgiye sahiptir.
9) Bir yabancı dili Avrupa Dil Portföyü kriteri açısından en az B1 düzeyinde kullanabilme becerisine sahiptir.
10) Yaşam boyu öğrenmenin gerekliliği bilincine sahiptir; bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisine sahiptir.
11) Bilgisayar yazılımı ile birlikte bilişim ve iletişim teknolojilerini Avrupa Bilgisayar Kullanma Lisansı İleri düzeyinde kullanabilme becerisine sahiptir.
12) Proje yönetimi ve risk yönetimi uygulamaları hakkında bilgi; girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgiye sahiptir.
13) Mühendislik uygulamalarının evrensel ölçekte çevre, sağlık ve güvenlik üzerindeki etkileri ve hukuksal sonuçları hakkında bilgi ve farkındalığa sahiptir.
14) Yazılım alternatiflerini irdeleyerek bilgisayar tabanlı sistemlerin modellenmesi ve tasarımında, algoritma prensiplerini, matematiksel temelleri ve bilgisayar bilimleri teorisini uygulama becerisine sahiptir.
15) Türevsel denklemler, integral hesapları, doğrusal cebir, mantık ve ayrık matematik içerecek şekilde ileri matematik eğitimi ile birlikte yazılım mühendisliğinde veri yapıları ve algoritmalar, programlama dilleri, işletim sistemleri, bilgisayar güvenliği, bilgisayar teorisi, ağ programlama ve makine öğrenmesi alanlarını kapsayan mühendislik eğitimine sahiptir.

Ölçme ve Değerlendirme

Yarıyıl İçi Çalışmaları Aktivite Sayısı Katkı Payı
Ara Sınavlar 1 % 40
Final 1 % 60
Toplam % 100
YARIYIL İÇİ ÇALIŞMALARININ BAŞARI NOTU KATKISI % 40
YARIYIL SONU ÇALIŞMALARININ BAŞARI NOTUNA KATKISI % 60
Toplam % 100

İş Yükü ve AKTS Kredisi Hesaplaması

Aktiviteler Aktivite Sayısı Aktiviteye Hazırlık Aktivitede Harçanan Süre Aktivite Gereksinimi İçin Süre İş Yükü
Ders Saati 2 1 1 14 32
Laboratuvar 2 1 1 14 32
Sınıf Dışı Ders Çalışması 3 1 1 11 39
Ara Sınavlar 2 1 1 1 6
Final 2 1 1 1 6
Toplam İş Yükü 115