BİLGİSAYAR MÜHENDİSLİĞİ (YL) (TEZLİ) (İNGİLİZCE)
Yüksek Lisans TYYÇ: 7. Düzey QF-EHEA: 2. Düzey EQF-LLL: 7. Düzey

Ders Genel Tanıtım Bilgileri

Ders Kodu: 3017002003
Ders İsmi: Compiler Design
Ders Yarıyılı: Bahar
Ders Kredileri:
Teorik Pratik Kredi AKTS
3 0 3 6
Öğretim Dili: EN
Ders Koşulu:
Ders İş Deneyimini Gerektiriyor mu?: Hayır
Dersin Türü: Department Elective
Dersin Seviyesi:
Yüksek Lisans TYYÇ:7. Düzey QF-EHEA:2. Düzey EQF-LLL:7. Düzey
Dersin Veriliş Şekli: Yüz yüze
Dersin Koordinatörü: Dr.Öğr.Üyesi Recep DURANAY
Dersi Veren(ler): Doç. Dr. Fatih KOÇAN
Dersin Yardımcıları:

Dersin Amaç ve İçeriği

Dersin Amacı: Bu dersin amacı, öğrencilere derleyici tasarlama ve gerçekleştirme bilgi ve becerilerini kazandırmaktır.
Dersin İçeriği: Bu ders, öğrencilere biçimsel bir dili başka bir biçimsel dile çevirme yöntemlerini tanımlayarak derleyicileri tanıtmaktadır. Tarayıcı ile başlayan ve ardından ayrıştırıcı tasarımı ve uygulaması ile devam eden derleme adımlarını açıklar. Kurs ayrıca semantik analiz ve yerel ve global derleyici optimizasyon algoritmaları hakkında bilgi sağlar. Ders boyunca her öğrencinin lex ve yacc araçlarını kullanarak basit bir derleyici uygulaması beklenmektedir.

Öğrenme Kazanımları

Bu dersi başarıyla tamamlayabilen öğrenciler;
Öğrenme Kazanımları
1 - Bilgi
Kuramsal - Olgusal
1) Öğrenciler derleme işleminin aşamalarını anlayacak ve her bir derleme aşamasının amacını ve gerçekleştirim amacını açıklayabilecektir.
2 - Beceriler
Bilişsel - Uygulamalı
1) Öğrenciler, modern derleyicilerin işlev ve karmaşıklığı hakkında bilgi sahibi olacaktır.
3 - Yetkinlikler
İletişim ve Sosyal Yetkinlik
Öğrenme Yetkinliği
1) Öğrenciler, bilgisayar bilimlerinin biçimsel diller, dilbilgileri ve otomatlar gibi teroik kavramlarına pratik yaklaşım olanağı bulacaktır.
2) Öğrenciler, derleyiciler tarafından kullanılan optimizasyon algoritmalarını bilir.
3) Öğrenciler çok işlemcili sistemler için derleyici tasarımı yöntemlerini bilir.
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 Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly. An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.
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) Arası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

5

Program Kazanımları
1) Bilgisayar Bilimi ve Mühendisliği alanında bilimsel araştırma yaparak geniş ve derin bilgilere ulaşma, değerlendirme, yorumlama ve uygulama becerisi.
2) Sınırlı ya da eksik bilgiyi kapatmak ve uygulamak için bilimsel yöntemleri kullanma ve farklı disiplinlerin bilgilerini bütünleştirme kabiliyeti.
3) Bilgisayar Bilimi ve Mühendisliği problemlerini kurgulayabilme, problemleri çözmek için yöntemler geliştirebilme ve çözümde yenilikçi yöntemler kullanabilme.
4) Yeni ve/veya orijinal fikirler ve algoritmalar geliştirme becerisi; sistem, bileşen veya süreç tasarımında yenilikçi çözümler geliştirmek.
5) Bilgisayar Mühendisliğinde uygulanan güncel teknikler ve yöntemler ve bunların kısıtları hakkında geniş bilgi sahibi olma kabiliyeti.
6) Analitik modelleme ve deneysel araştırma tasarlama ve uygulama, süreçte karşılaşılan karmaşık durumları çözme ve yorumlama becerisi.
7) Bir yabancı dili (İngilizce) en az Avrupa Dil Portföyü seviyesinde sözlü ve yazılı iletişimde kullanabilme kabiliyeti.
8) Çok disiplinli ekiplerde liderlik etme, karmaşık durumlara çözüm geliştirme ve sorumluluk alma kabiliyeti.
9) Toplumsal, yasal, etik ve ahlaki değerlerin bilincinde olmak ve bu değerler çerçevesinde araştırma ve uygulama çalışmaları yapabilmek.
10) Bilgisayar Bilimi ve Mühendisliği alanında yeni ve gelişmekte olan uygulamalar hakkında farkındalık ve bunları inceleme ve gerekirse öğrenme kabiliyeti.

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) Bilgisayar Bilimi ve Mühendisliği alanında bilimsel araştırma yaparak geniş ve derin bilgilere ulaşma, değerlendirme, yorumlama ve uygulama becerisi.
2) Sınırlı ya da eksik bilgiyi kapatmak ve uygulamak için bilimsel yöntemleri kullanma ve farklı disiplinlerin bilgilerini bütünleştirme kabiliyeti.
3) Bilgisayar Bilimi ve Mühendisliği problemlerini kurgulayabilme, problemleri çözmek için yöntemler geliştirebilme ve çözümde yenilikçi yöntemler kullanabilme.
4) Yeni ve/veya orijinal fikirler ve algoritmalar geliştirme becerisi; sistem, bileşen veya süreç tasarımında yenilikçi çözümler geliştirmek.
5) Bilgisayar Mühendisliğinde uygulanan güncel teknikler ve yöntemler ve bunların kısıtları hakkında geniş bilgi sahibi olma kabiliyeti.
6) Analitik modelleme ve deneysel araştırma tasarlama ve uygulama, süreçte karşılaşılan karmaşık durumları çözme ve yorumlama becerisi.
7) Bir yabancı dili (İngilizce) en az Avrupa Dil Portföyü seviyesinde sözlü ve yazılı iletişimde kullanabilme kabiliyeti.
8) Çok disiplinli ekiplerde liderlik etme, karmaşık durumlara çözüm geliştirme ve sorumluluk alma kabiliyeti.
9) Toplumsal, yasal, etik ve ahlaki değerlerin bilincinde olmak ve bu değerler çerçevesinde araştırma ve uygulama çalışmaları yapabilmek.
10) Bilgisayar Bilimi ve Mühendisliği alanında yeni ve gelişmekte olan uygulamalar hakkında farkındalık ve bunları inceleme ve gerekirse öğrenme kabiliyeti.

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

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

Ö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 6 78
Proje 1 25 25
Ara Sınavlar 1 15 15
Final 1 30 30
Toplam İş Yükü 187