Bilgisayar Mühendisliği (İngilizce) | |||||
Lisans | TYYÇ: 6. Düzey | QF-EHEA: 1. Düzey | EQF-LLL: 6. Düzey |
Ders Kodu: | COE208 | ||||
Ders İsmi: | Biçimsel Diller ve Otomata Teorisi | ||||
Ders Yarıyılı: | Bahar | ||||
Ders Kredileri: |
|
||||
Öğretim Dili: | İngilizce | ||||
Ders Koşulu: | |||||
Ders İş Deneyimini Gerektiriyor mu?: | Hayır | ||||
Dersin Türü: | Zorunlu | ||||
Dersin Seviyesi: |
|
||||
Dersin Veriliş Şekli: | Yüz yüze | ||||
Dersin Koordinatörü: | Doç. Dr. AMIR SEYYEDABBASI | ||||
Dersi Veren(ler): | Dr. Öğr. Üyesi Ali HAMİTOĞLU | ||||
Dersin Yardımcıları: |
Dersin Amacı: | Biçimsel diller, gramerler ve otomatalar da dahil olmak üzere hesaplama teorisinin temel kavramlarını ve tekniklerini anlamak. Matematiksel gösterimi kullanarak biçimsel dilleri analiz etmek ve tanımlamak ve bu dilleri tanıyan veya üreten otomataları oluşturmak. Dil tanıma ve üretme ile ilgili sorunları çözmek için teorik kavramları uygulamak. Farklı otomata sınıflarının ve dillerin sınırlamalarını anlamak ve analiz etmek. Bilgisayar bilimi, matematik ve dilbilim gibi alanlardaki problemleri çözmek için hesaplama teorisini uygulamak. |
Dersin İçeriği: | Bu ders hesaplama teorisinin temel kavramlarını ve tekniklerini kapsar. G grameri, sonlu otomata, düzenli ifade, biçimsel dil, aşağı açılan otomata ve Turing makinesi gibi konuları kapsar. Dizi kümelerini veya sembol dizilerini temsil eden matematiksel yapılar olan biçimsel dillerin yanı sıra bu dilleri tanıyan ve üreten otomataların derinlemesine anlaşılmasını sağlar. Öğrenciler dilleri tanımlamak için matematiksel gösterimi nasıl kullanacaklarını ve dilleri tanımak veya oluşturmak için sonlu otomataların, aşağı açılan otomatların ve Turing makinelerinin nasıl oluşturulacağını öğrenecekler. |
Bu dersi başarıyla tamamlayabilen öğrenciler;
1) Biçimsel dilleri bilir. 2) Hesaplama modellerini bilir. 3) Düzenli ifadeleri, grameri ve sonlu durum makinelerini dönüştürebilir. 4) Bağlamdan bağımsız gramer ve chunky otomataları birbirine dönüştürebilir. 5) Turing Makinelerini ve hesaplanabilirliği bilir. |
Hafta | Konu | Ön Hazırlık |
1) | Giriş ve tanımlar. sonlu durum makinesi | |
2) | Sonlu Durum Makineleri (FSM) | |
3) | Sonlu Durum Makineleri (FSM) | |
4) | Biçimsel dillerin temelleri - alfabeler ve diller | |
5) | Biçimsel dillerin temelleri - Diller ve gramerler | |
6) | Biçimsel dillerin temelleri - Chomsky Hiyerarşisi, düzenli ifadeler | |
7) | Deterministik Sonlu Otomatlar (DFA) - Determinist Olmayan Sonlu Otomatlar (NFA) | |
8) | Ara Sınav | |
9) | Deterministik Sonlu Otomatlar (DFA) - Determinist Olmayan Sonlu Otomatlar (NFA) | |
10) | NFA-DFA denkliği | |
11) | Düzenli dili oluşturmanın sistematik yöntemi | |
12) | Yığın tabanlı otomatlar ve Bağlamdan bağımsız diller | |
13) | Yığın tabanlı otomatlar ve Bağlamdan bağımsız diller | |
14) | Turing Makineleri |
Ders Notları / Kitaplar: | Automata Theory, Languages and Computation, by John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman. (Pearson – 3rd Edition) |
Diğer Kaynaklar: | Thomson, Introduction to the Theory of Computation, by Michael Sipser (3rd Edition). |
Course Learning Outcomes | 1 |
2 |
3 |
4 |
5 |
||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Program Kazanımları | |||||||||||
1) Matematik, bilim ve bilgisayar mühendisliği prensipleri hakkında yeterli bilgiye sahip olma, hem teorik hem de pratik olarak, ve bu bilgiyi karmaşık mühendislik problemlerine uygulayabilme becerisi. | |||||||||||
2) Uygun analiz ve modelleme tekniklerini kullanarak karmaşık bilgisayar mühendisliği problemlerini tanımlama, formülleme ve çözebilme yeteneği. | 2 | 2 | 2 | ||||||||
3) Belirli gereksinimleri karşılayan ve gerçekçi kısıtlar ve koşullar altında çalışan karmaşık bilgisayar sistemleri, cihazlar veya ürünler tasarlama ve geliştirme yeteneği, modern tasarım yöntemlerini kullanma yeteneği. | 2 | 2 | 2 | ||||||||
4) Karmaşık bilgisayar mühendisliği problemlerinin analizi ve çözümü için kullanılan modern teknikleri ve araçları geliştirme, seçme ve kullanabilme yeteneği, bilgi teknolojilerini etkili bir şekilde kullanabilme yeteneği. | 2 | 2 | 2 | ||||||||
5) Karmaşık bilgisayar mühendisliği problemleri veya araştırma konularının incelenmesinde deney planlama ve yürütme, veri toplama ve analiz etme, sonuçları yorumlama yeteneği. | |||||||||||
6) Çok disiplinli ekiplerde etkili bir şekilde çalışma yeteneği; bireysel çalışma becerileri. | |||||||||||
7) Sözlü ve yazılı iletişim becerileriyle etkili iletişim kurabilme; en az bir yabancı dil bilgisi; etkili raporlar yazabilme ve yazılı raporları anlayabilme, tasarım ve üretim raporları hazırlayabilme, etkili sunumlar yapabilme, açık ve anlaşılır talimatlar verip alabilme yeteneği. | |||||||||||
8) Yaşam boyu öğrenme gerekliliğinin farkında olma; bilgiye erişme yeteneği, bilim ve teknolojideki gelişmeleri takip etme ve sürekli yenileme yeteneği. | |||||||||||
9) Etik prensiplere, mesleki ve etik sorumluluğa uygun davranma; mühendislik uygulamalarında kullanılan standartlar hakkında bilgi sahibi olma. | |||||||||||
10) Proje yönetimi, risk yönetimi ve değişim yönetimi gibi iş uygulamaları hakkında bilgi; girişimcilik ve yenilik farkındalığı; sürdürülebilir kalkınma hakkında bilgi. | |||||||||||
11) Bilgisayar mühendisliği uygulamalarının sağlık, çevre ve güvenlik üzerindeki etkileri ve bilgisayar mühendisliğine yansıyan dönemin sorunları hakkında bilgi sahibi olma; bilgisayar mühendisliği çözümlerinin yasal sonuçları konusunda farkındalık. |
Etkisi Yok | 1 En Düşük | 2 Orta | 3 En Yüksek |
Dersin Program Kazanımlarına Etkisi | Katkı Payı | |
1) | Matematik, bilim ve bilgisayar mühendisliği prensipleri hakkında yeterli bilgiye sahip olma, hem teorik hem de pratik olarak, ve bu bilgiyi karmaşık mühendislik problemlerine uygulayabilme becerisi. | |
2) | Uygun analiz ve modelleme tekniklerini kullanarak karmaşık bilgisayar mühendisliği problemlerini tanımlama, formülleme ve çözebilme yeteneği. | 2 |
3) | Belirli gereksinimleri karşılayan ve gerçekçi kısıtlar ve koşullar altında çalışan karmaşık bilgisayar sistemleri, cihazlar veya ürünler tasarlama ve geliştirme yeteneği, modern tasarım yöntemlerini kullanma yeteneği. | 2 |
4) | Karmaşık bilgisayar mühendisliği problemlerinin analizi ve çözümü için kullanılan modern teknikleri ve araçları geliştirme, seçme ve kullanabilme yeteneği, bilgi teknolojilerini etkili bir şekilde kullanabilme yeteneği. | 2 |
5) | Karmaşık bilgisayar mühendisliği problemleri veya araştırma konularının incelenmesinde deney planlama ve yürütme, veri toplama ve analiz etme, sonuçları yorumlama yeteneği. | |
6) | Çok disiplinli ekiplerde etkili bir şekilde çalışma yeteneği; bireysel çalışma becerileri. | |
7) | Sözlü ve yazılı iletişim becerileriyle etkili iletişim kurabilme; en az bir yabancı dil bilgisi; etkili raporlar yazabilme ve yazılı raporları anlayabilme, tasarım ve üretim raporları hazırlayabilme, etkili sunumlar yapabilme, açık ve anlaşılır talimatlar verip alabilme yeteneği. | |
8) | Yaşam boyu öğrenme gerekliliğinin farkında olma; bilgiye erişme yeteneği, bilim ve teknolojideki gelişmeleri takip etme ve sürekli yenileme yeteneği. | |
9) | Etik prensiplere, mesleki ve etik sorumluluğa uygun davranma; mühendislik uygulamalarında kullanılan standartlar hakkında bilgi sahibi olma. | |
10) | Proje yönetimi, risk yönetimi ve değişim yönetimi gibi iş uygulamaları hakkında bilgi; girişimcilik ve yenilik farkındalığı; sürdürülebilir kalkınma hakkında bilgi. | |
11) | Bilgisayar mühendisliği uygulamalarının sağlık, çevre ve güvenlik üzerindeki etkileri ve bilgisayar mühendisliğine yansıyan dönemin sorunları hakkında bilgi sahibi olma; bilgisayar mühendisliği çözümlerinin yasal sonuçları konusunda farkındalık. |
Yarıyıl İçi Çalışmaları | Aktivite Sayısı | Katkı Payı |
Küçük Sınavlar | 2 | % 30 |
Ara Sınavlar | 1 | % 30 |
Final | 1 | % 40 |
Toplam | % 100 | |
YARIYIL İÇİ ÇALIŞMALARININ BAŞARI NOTU KATKISI | % 60 | |
YARIYIL SONU ÇALIŞMALARININ BAŞARI NOTUNA KATKISI | % 40 | |
Toplam | % 100 |
Aktiviteler | Aktivite Sayısı | İş Yükü |
Ders Saati | 14 | 42 |
Sınıf Dışı Ders Çalışması | 14 | 42 |
Ödevler | 13 | 26 |
Ara Sınavlar | 1 | 15 |
Final | 1 | 15 |
Toplam İş Yükü | 140 |