YAZILIM MÜHENDİSLİĞİ (İNGİLİZCE)
Lisans TYYÇ: 6. Düzey QF-EHEA: 1. Düzey EQF-LLL: 6. Düzey

Ders Genel Tanıtım Bilgileri

Ders Kodu: 1413002002
Ders İsmi: Compiler Design
Ders Yarıyılı: Güz
Ders Kredileri:
Teorik Pratik Kredi AKTS
3 0 3 5
Öğretim Dili: EN
Ders Koşulu:
Ders İş Deneyimini Gerektiriyor mu?: Hayır
Dersin Türü: Department Elective
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.Üyesi Adem ÖZYAVAŞ
Dersi Veren(ler): Doç. Dr. Fatih KOÇAN
Dersin Yardımcıları:

Dersin Amaç ve İçeriği

Dersin Amacı: Bu dersin amacı, öğrencilerin derleyici tasarımı ve geliştirme konularında bilgi ve becerilere sahip olmasını sağlamaktır.
Dersin İçeriği: Bu ders öğrencilere biçimsel bir dilden bir diğer biçimsel dile çeviri yapmak için kullanılan metodları açıklar. Ders, tarayıcı adımından başlayarak ayrıştırıcı tasarımı ve geliştirilmesine kadar kullanılan adımları açıklar. Ayrıca, ders anlamsal analiz ve lokal ve global derleyici optimizasyonu konularında bilgi verir. Ders sırasında, her öğrencinin lex ve yacc yazılım araçları kullanarak basit bir derleyici tasarlaması beklenir.

Öğrenme Kazanımları

Bu dersi başarıyla tamamlayabilen öğrenciler;
Öğrenme Kazanımları
1 - Bilgi
Kuramsal - Olgusal
1) Derleyici adımları hakkında temel bilgi; otomat teorisi ve biçimsel diller bilgisini kullanma becerisi.
2 - Beceriler
Bilişsel - Uygulamalı
1) Derleyiciler tarayıcı modüllerini tasarım ve geliştirme becerisi.
3 - Yetkinlikler
İletişim ve Sosyal Yetkinlik
Öğrenme Yetkinliği
1) Derleyiciler için vakaya uygun ayrıştırıcı stratejilerini seçme becerisi. Alternatif metodlar konusunda bilgi (yukarıdan-aşağıya veya aşağıdan-yukarıya, vb.)
2) Derleyici tasarımı ve gerçeklenmesi için gerekli olan güncel teknolojiler konusunda bilgi ve bu teknolojileri etkin bir şekilde kullanabilme becerisi.
Alana Özgü Yetkinlik
Bağımsız Çalışabilme ve Sorumluluk Alabilme Yetkinliği

Ders Akış Planı

Hafta Konu Ön Hazırlık
1) Derleyici Nedir? Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly. An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.
2) Hedef Diller A.V. AHO, M.S. LAM, R. SETHI, J.D. ULLMAN, “COMPILERS: PRINCIPLES, TECHNIQUES AND TOOLS, 2nd ED., ADDISON WESLEY, 2006. K.D. COOPER, L. TORCZON, “ENGINEERING A COMPILER”, 2nd ED., MORGAN KAUFMANN, 2012.
3) Biçimsel Gramerler Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly. An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.
4) Ara Gösterimler Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly. An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.
5) Sözlüksel Çözümleme Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly. An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.
6) Sözdizimsel analiz yöntemleri Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly. An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.
7) Hata ele alma Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly. An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.
8) Ara Sınav
9) Ayrıştırıcı üreteç Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly. An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.
10) Anlamsal kontrol Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly. An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.
11) Kod Üretimi Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly. An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.
12) Kod optimizasyonu Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly. An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.
13) VSL için derleyicinin tamamı Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly. An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.
14) Ödevleri etkileşimli olarak gözden geçirme Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly. An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.
15) Yıl sonu sınavı
16) Final Haftası

Kaynaklar

Ders Notları / Kitaplar: Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly.
An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.
Diğer Kaynaklar: Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly.
An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.

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

Ders Öğrenme Kazanımları

1

2

3

4

Program Kazanımları
1) Matematik, fen bilimleri ve bilgisayar mühendisliği konularında yeterli bilgi birikimi; bu alanlardaki kuramsal ve uygulamalı bilgileri mühendislik problemlerini modelleme ve çözme için uygulayabilme becerisi.
2) Karmaşık mühendislik problemlerini saptama, tanımlama, formüle etme ve çözme becerisi; bu amaçla uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisi.
3) Karmaşık bir sistemi, süreci, cihazı veya ürünü gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisi; bu amaçla modern tasarım yöntemlerini uygulama becerisi.
4) Mühendislik uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları geliştirme, seçme ve kullanma becerisi; bilişim teknolojilerini etkin bir şekilde kullanma becerisi.
5) Karmaşık 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 becerisi.
6) Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışma becerisi.
7) Türkçe sözlü ve yazılı etkin iletişim kurma becerisi; en az bir yabancı dil bilgisi; etkin rapor yazma ve yazılı raporları anlama, tasarım ve üretim raporları hazırlayabilme, etkin sunum yapabilme, açık ve anlaşılır talimat verme ve alma becerisi.
8) Yaşam boyu öğrenmenin gerekliliği bilinci; bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisi.
9) Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk bilinci; mühendislik uygulamalarında kullanılan standartlar hakkında bilgi.
10) Proje yönetimi, risk yönetimi ve değişiklik yönetimi gibi, iş hayatındaki uygulamalar hakkında bilgi; girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgi.
11) Mühendislik uygulamalarının evrensel ve toplumsal boyutlarda sağlık, çevre ve güvenlik üzerindeki etkileri ve çağın mühendislik alanına yansıyan sorunları hakkında bilgi; mühendislik çözümlerinin hukuksal sonuçları konusunda farkındalık.

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

Etkisi Yok 1 En Düşük 2 Düşük 3 Orta 4 Yüksek 5 En Yüksek
           
Dersin Program Kazanımlarına Etkisi Katkı Payı
1) Matematik, fen bilimleri ve bilgisayar mühendisliği konularında yeterli bilgi birikimi; bu alanlardaki kuramsal ve uygulamalı bilgileri mühendislik problemlerini modelleme ve çözme için uygulayabilme becerisi.
2) Karmaşık mühendislik problemlerini saptama, tanımlama, formüle etme ve çözme becerisi; bu amaçla uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisi.
3) Karmaşık bir sistemi, süreci, cihazı veya ürünü gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisi; bu amaçla modern tasarım yöntemlerini uygulama becerisi.
4) Mühendislik uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları geliştirme, seçme ve kullanma becerisi; bilişim teknolojilerini etkin bir şekilde kullanma becerisi.
5) Karmaşık 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 becerisi.
6) Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışma becerisi.
7) Türkçe sözlü ve yazılı etkin iletişim kurma becerisi; en az bir yabancı dil bilgisi; etkin rapor yazma ve yazılı raporları anlama, tasarım ve üretim raporları hazırlayabilme, etkin sunum yapabilme, açık ve anlaşılır talimat verme ve alma becerisi.
8) Yaşam boyu öğrenmenin gerekliliği bilinci; bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisi.
9) Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk bilinci; mühendislik uygulamalarında kullanılan standartlar hakkında bilgi.
10) Proje yönetimi, risk yönetimi ve değişiklik yönetimi gibi, iş hayatındaki uygulamalar hakkında bilgi; girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgi.
11) Mühendislik uygulamalarının evrensel ve toplumsal boyutlarda sağlık, çevre ve güvenlik üzerindeki etkileri ve çağın mühendislik alanına yansıyan sorunları hakkında bilgi; mühendislik çözümlerinin hukuksal sonuçları konusunda farkındalık.

Öğrenme Etkinliği ve Öğretme Yöntemleri

Ölçme ve Değerlendirme Yöntemleri ve Kriterleri

Yazılı Sınav (Açık uçlu sorular, çoktan seçmeli, doğru yanlış, eşleştirme, boşluk doldurma, sıralama)
Ödev

Ölçme ve Değerlendirme

Yarıyıl İçi Çalışmaları Aktivite Sayısı Katkı Payı
Toplam %
YARIYIL İÇİ ÇALIŞMALARININ BAŞARI NOTU KATKISI % 0
YARIYIL SONU ÇALIŞMALARININ BAŞARI NOTUNA KATKISI %
Toplam %

İş Yükü ve AKTS Kredisi Hesaplaması

Aktiviteler Aktivite Sayısı Süre (Saat) İş Yükü
Ders Saati 13 3 39
Sınıf Dışı Ders Çalışması 13 4 52
Proje 1 35 35
Ödevler 2 10 20
Ara Sınavlar 1 40 40
Final 1 40 40
Toplam İş Yükü 226