Dersin Adı Biçimsel Diller ve Otomatlar İTÜ DERS KATALOG FORMU (COURSE CATALOGUE FORM) Course Name Formal Languages And Automata Ders Uygulaması, Saat/Hafta (Course Implementation, Hours/Week) Kodu Yarıyılı Kredisi AKTS Kredisi Ders Uygulama Laboratuvar (Theoretical) (Tutorial) (Laboratory) (Code) (Semester) (Local Credits) (ECTS Credits) BLG311/ 4 3 5 3 - - BLG311E Bölüm / Program (Department/Program) Bilgisayar Mühendisliği / Computer Engineering Dersin Türü Mühendislik Tasarımı, Zorunlu / Dersin Dili Türkçe (Turkish) / (Course Type) Engineering Design, Compulsory (Course Language) İngilizce (English) Dersin Önkoşulları BLG 112/ BLG 112E (Course Prerequisites) Dersin mesleki Temel Bilimler Temel Mühendislik Mühendislik Tasarım İnsan ve Toplum Bilim bileşene katkısı, % (Basic Sciences) (Engineering Science) (Engineering Design) (General Education) (Course Category 25 10 65 - by Content, %) Biçimsel diller. Gramerler ve Chomsky hiyerarşisi. Düzenli ifadeler. Sonlu durum Dersin İçeriği makineleri(fsm): Mealy ve Moore modelleri. Makina eşdeğerliliği ve durum indirgemesi. Deterministik ve deterministik olmayan otomatalar. Yığın yapılı otomatalar ve bağlamdan (Course Description) bağımsız gramerler. Turing makinası ve hesaplanabilirlik. Formal languages. Grammars and the Chomsky hierarchy. Regular expressions. Finite state machines (FSM) : Mealy and Moore models. Machine congruence and reduction of states. Deterministic and non deterministic automata. Push down automata and context-free grammars. Turing machines and computability. Dersin Amacı (Course Objectives) 1. Sonlu durum makina kavramlarını derinlemesine anlama, 2. Sentaks analizlerini ve çözümleme kavram ve metotlarını derinlemesine anlama, 3. Basit bir derleyici tasarımının temeli 1. A broad understanding of the finite state machine concepts. 2. A broad understanding of syntax analysis and parsing concepts and methods. 3. A knowledge of the basis of compiler design Dersin Öğrenme Çıktıları (Course Learning Outcomes) 1. Donanım tasarımına sonlu durum makinası modelinin uygulanması. Bilgisayar ağları protokollerinin tasarımının hazırlanması. 2. Düzenli ifadelerin tanınması. Bu amaçla sonlu otomata(fa) kullanma ve derleyici tasarımına hazırlanma. 3. Turing Makinası ve hesaplamalı algoritmaların modellenmesini anlama(3, 4, 5 ve kısmi olarak 1, 11, 13) 1. Application of FSM model to hardware design.preparation to the design of computer network protocols. 2. Regular expression recognition. Usage of FA for this purpose and preparation to compiler design 3. Turing Machine and understanding of how to model computational algorithms (3,4,6 and partially 1,11, 13).
Ders Kitabı 1 - Elements of the Theory of Computation (Textbook) H.R.Lewis, C.H. Papadimitriou ; Prentice Hall 1981 2 - Introduction to Automata Theory, Languages and Computation J.E. Hopcroft, J. D. Ullman ; Addison Wesley 1979 3 - Machine, Languages and Computation P. Denning, J.B.Dennis, J.E. Qualitz ; Prentice Hall 1978 Diğer Kaynaklar (Other References) Ödevler ve Projeler (Homework & Projects) Laboratuvar Uygulamaları - (Laboratory Work) - Bilgisayar Kullanımı - (Computer Use) - Diğer Uygulamalar - (Other Activities) - Başarı Değerlendirme Sistemi Faaliyetler (Activities) Adedi (Quantity) Değerlendirmedeki Katkısı, % (Effects on Grading, %) Yıl İçi Sınavları 2 50 (Assessment Criteria) (Midterm Exams) Kısa Sınavlar 5 10 (Quizzes) Ödevler (Homework) Projeler (Projects) Dönem Ödevi/Projesi (Term Paper/Project) Laboratuvar Uygulaması (Laboratory Work) Diğer Uygulamalar (Other Activities) Final Sınavı 1 40 (Final Exam)
DERS PLANI Dersin Hafta Konular Çıktıları 1 Tanımlar: Mealy ve Moore modelleri, Algoritmik Durum Makinaları(ASM) 1 2 ASM üzerine alıştırmalar. Durum eşitliği ve durum indirgemesi 1 3 Uyuşma bağıntısı. Uyuşan durumlar ve durum indirgemesi 1, 2 4 Mealy ve Moore modelleri arasında dönüşüm. İndirgeme alıştırmaları. Bağıntılar, kümeler 1, 2 5 Alfabeler ve diller 1, 2 6 Uygulama 1, 2 7 Diller üzerinde alıştırmalar. Gramerler, Chomsky sınıflandırması 2 8 Düzenli ifadeler. Deterministik Sonlu Otomata(DFA) ve düzenli ifadelerin tanınması 2 9 Gramerler ve düzenli ifadeler üzerine alıştırmalar. Deterministik olmayan sonlu otomatlar(nfa). NFA-DFA dönüşümleri. 2 10 NFA dan düzenli ifadelerin elde edilmesi. Alıştırmalar. 1, 2 11 Yığın yapılı otomata ve bağlamdan bağımsız gramerler. Alıştırmalar. 3 12 Uygulama 3 13 Turing Makinası. Alıştırmalar. 3 14 Turing Makinası. Alıştırmalar. 3 COURSE PLAN Course Weeks Topics Outcomes 1 Definitions: Mealy and Moore Models, Algoritmic State Machines(ASM) 1 2 Exercises on ASM. State Equivalence and State Reduction 1 3 Compatibility Relation. Compatible States and State Reduction. 1,2 4 Transformation between Mealy and Moore Models. Reduction exercices. Relations, Sets. 1,2 5 Alphabet and Languages 1,2 6 Applied Class Works 1,2 7 Exercices on Languages. Grammars, Chomsky Classification 2 8 Regular Expressions. Deterministic Finite Automata (DFA) and Regular Expression Recognition 2 9 Exercises on Grammars and Regular expressions. Non-deterministic Finite Automata(NFA). NFA-DFA Transformation 2 10 Obtention of Regular Expression from NFA. Exercices. 1,2 11 Push-down Automata and Context Free Grammars. Exercices. 3 12 Applied Class Works 3 13 Turing Machine. Exercices 3 14 Turing Machine. Exercices 3
Dersin Bilgisayar Mühendisliği Programıyla İlişkisi (1: az, 2: kısmi, 3: Tam, Eğer cevabınız Hiçbiri ise boş bırakınız.) a b c d e Bilgisayar Mühendisliği Programı Çıktıları ve Performans Ölçütleri Matematik, temel bilimler ve mühendislik bilgilerini bilgisayar mühendisliği alanında uygulama becerisi a1 a2 a3 Matematik, temel bilimler ve mühendislik bilgilerini edinme Katkı Seviyesi 1 2 3 PC.a1 Matematik için soruların cevapları X PC.a2 Temel bilimler ve mühendislik için soruların cevapları X Matematik bilgisinin uygulanması PC.a3 PC.a4 Bilgisayar mühendisliği problemlerine analitik ve sayısal çözümler üretmede matematik ilkeleri uygulanır Bir probleme yönelik uygun matematiksel yöntem ya da yaklaşımlar seçilir Temel bilimler ve mühendislik esaslarına ait bilginin uygulanması PC.a5 Bilgisayar mühendisliği problemlerinin modellenmesi ve çözümünde temel bilimler ve mühendislik ilkeleri uygulanır Deney tasarlayıp yürütebilme ve verileri analiz edip yorumlama becerisi b1 b2 b3 b4 Deneyleri tasarlama PC.b1 PC.b2 Değişkenler, uygun ekipmanlar, test cihazları, model vb seçilir Sonucun ya da varyantlarının değerlendirileceği etkili ölçü(ler) seçilir Deneyleri yürütme PC.b3 PC.b4 Verilerin analizi PC.b5 Veri toplamak için uygun ölçme teknikleri kullanılır Deneyin tekrarlanabilmesi amacıyla veri toplama süreci belgelendirilir Verileri analiz etmek için uygun araçlar (istatistiksel ve grafiksel vb.) seçilir ve kullanılır Verilerin yorumlanması PC.b6 Orijinal hipoteze göre sonuçlar yorumlanır Bir sistemi, sistem bileşenini veya süreci; ekonomik, çevresel, sosyal, politik, etik, üretilebilirlik, sürdürülebilirlik, emniyet ve kaza önleme gibi istenilen gereksinimleri karşılayacak şekilde tasarlama becerisi c1 c2 c3 c4 Bildirilen ihtiyacların saptanması, işlevsel gereklerin ve kısıtlamaların belirlenmesi PC.c1 PC.c2 Problemin etki alanı tanımlanır ve arzu edilen ihtiyaçlara dayanarak gereksinimler belirlenir Kısıtlamaları ve gereklilikleri karşılayan uygun yöntemler seçilir Bir tasarımın geliştirilmesi PC.c3 Uygun tasarım yöntemleri uygulanır X PC.c4 Yazılım sistemi, bileşeni ya da yöntemi tasarlanır PC.c5 Donanım sistemi, bileşeni ya da yöntemi tasarlanır X PC.c6 Uygun araçlarla tasarımın bütünü sunulur Tasarımın gerçeklenmesi PC.c7 Tasarıma dayanan bir çözüm/prototip geliştirilir Geliştirilen çözümün testi ve doğrulanması PC.c8 PC.c9 Test alt bileşenleri ve stratejileri tanımlanır Geliştirilen çözümde hata ayıklaması yapılır ve tespit edilen hatalar düzeltilir Mevcut bir yapıyı veya sistemi eleştirel yaklaşımla gözleme, irdeleme ve sonuçta düzeltme ve iyileştirme becerisi PC.d1 PC.d2 PC.d3 PC.d4 Mevcut bir yazılım ya da donanım sistemi işlevselliğini incelemek için gözlemlenir Farklı olası durumları kapsayan iyi seçilmiş girişler için çıkışlar incelenir Bir sistemin kusurları bulunur ve düzeltilir Bir sistem gereksinimlere göre iyileştirilir Birden çok disiplinden oluşan bir takım çalışması yürütebilme becerisi X
PC.e1 PC.e2 PC.e3 PC.e4 Uzun vadeli bir grup projesi ya da çok disiplinli bir proje ekibine etkin bir takım üyesi olarak katılınır Takımda sorumluluklar alınır ve yerine getirilir Fikirlerin geliştirilmesinde yer alınır Diğerlerinden alınan geri bildirimler düzeltmelere/iyileştirmelere dahil edilir f Mühendislik problemlerini belirleme, formüle etme ve çözme becerisi PC.f1 PC.f2 PC.f3 Bir bilgisayar mühendisliği problemi belirlenir Bir bilgisayar mühendisliği problem formal bir şekilde tanımlanır Bir bilgisayar mühendisliği problemine çözüm geliştirilir g Mesleki ve etik sorumlulukları kavrama PC.g1 Profesyonel mühendislik uygulamalarına klavuzluk eden etik kuralların farkındadır PC.g2 PC.g3 Verilecek bir kararla ilgili etik konular belirlenir ve tanımlanır Uygulamadaki bir durum gerçekler ve mesleki etik kuralları göz önüne alınarak değerlendirilir ve hakkında hüküm verilir h Etkin sözlü ve yazılı iletişim kurabilme becerisi h1 Etkin yazılı iletişim bilgisi, kavramları ve fikirleri PC.h1 Uygun bir format ve dilbilgisi kullanılarak bir belge hazırlanır ve alıntılar dahil olmak üzere disipline özel kurallar kullanılır h2 Etkin sözlü iletişim bilgisi, kavramları ve fikirleri PC.h2 İyi organize edilmiş bir sözlü sunum planlanır, hazırlanır ve teslim edilir; istenildiği zaman da sunulur h3 Grafiksel iletişim bilgisi, kavramları ve fikirleri PC.h3 Sözlü ve yazılı sunumlarda profesyonel grafiksel öğeler kullanılır i Mühendislik çözümlerinin küresel, toplumsal ve çevresel boyutlarda etkisini kavramak için gereken geniş kapsamlı bir eğitime sahip olma PC.i1 PC.i2 PC.i3 Bir mühendislik çözümünün birçok türde olası etkileri listelenir Toplum yapısını anlamayla ilgili, toplum, kültür ve evrensel toplum gibi terimleri içeren anahtar kelimeler tanımlanır Küresel bir problemin mühendislik yönünün ayırdına varılır j Yaşam boyu öğrenme gereğini algılamış ve kendi kendine öğrenme yeteneğini kazanmış olma j1 Neyin öğrenilmesi gerektiğiyle ilgili bir farkındalık gösterme PC.j1 Gerçek bir projede neyin öğrenilmesi gerektiği belirlenir j2 Yaşam boyu öğrenme yeteneği PC.j2 Öğrenme planı gerçek bir projede ve/veya bağımsız bir öğrenme fırsatında uygulanır PC.j3 Seminerlere ve staj aktivitelerine katılınır k Güncel/Çağdaş konulara ilişkin bilgi sahibi olma PC.k1 PC.k2 PC.k3 Potansiyel olarak doğaya etkileri olan mühendislik problemleri belirlenir Temel sosyo-ekonomik konular listelenir ve tanımlanır Ulusal ya da uluslararası seviyedeki temel politik konular listelenir ve tanımlanır l Mühendislik uygulamaları için gerekli teknikleri, yetenekleri ve modern mühendislik araç ve gereçlerini kullanabilme becerisi Mühendislik teknikleri, yetenekleri ve donanımları bir mühendislik sisteminin performansını PC.l1 gözlemlemek ve/veya bir mühendislik tasarımı yaratmak için kullanılır PC.l2 PC.l3 Mühendislik teknikleri, yetenekleri ve donanımları karar verme için bilgi çıkarımında kullanılır Özel bir mühendislik görevi için uygun teknikler ve donanımlar seçilir m Değişen koşullara uyum sağlama yeteneği PC.m1 Yeni araçlara ve yöntemlere uyum sağlanır PC.m2 Bir çalışma grubunda farklı takım rolleri uygulanır PC.m3 Gelişmekte olan alanların ayırdında olunur ve bunlara uyum sağlanır
Relationship between the Course and Computer Engineering Curriculum (1: Little, 2: Partial, 3: Full, Leave blank if your answer is None ) a b c d Computer Engineering Department Program Outcomes and Performance Criteria an ability to apply knowledge of mathematics, science, and engineering to the field of computer engineering a1 a2 a3 Acquiring knowledge of mathematics, science and engineering Level of Contribution 1 2 3 PC.a1 answers questions on mathematics X PC.a2 answers questions on science and engineering X Applying knowledge of mathematics PC.a3 PC.a4 applies mathematical principles to obtain analytical or numerical solutions to computer engineering problems chooses appropriate mathematical methods/approaches for a given problem Applying knowledge of science and engineering fundamentals PC.a5 applies science and engineering principles to model and solve computer engineering problems X an ability to design and conduct experiments, as well as to analyze and interpret data b1 b2 b3 b4 Designing experiments PC.b1 PC.b2 selects variables, appropriate equipment, test apparatus, model, etc chooses the effective measure(s) by which the outcome or the alternative will be evaluated Conducting experiments PC.b3 PC.b4 Analyzing data PC.b5 Interpreting data PC.b6 uses appropriate measurement techniques to collect data documents collection procedures so that the experiment may be repeated selects and uses appropriate tools (i.e., statistical and graphical) to analyze data interprets results with respect to the original hypothesis an ability to design a system, component, or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability c1 c2 c3 c4 Identifying stated needs and determining functional requirements and limitations PC.c1 PC.c2 describes scope of the problem and specifies the requirements based on the desired needs selects appropriate methods satisfying the constraints and the requirements Developing a design PC.c3 applies appropriate design methods X PC.c4 designs a software system, component or process PC.c5 designs a hardware system, component or process X PC.c6 presents the complete design with appropriate tools Implementing the design PC.c7 develops a solution/prototype based on the design Testing and validating the developed solution PC.c8 PC.c9 describes test cases and strategies debugs the developed solution and corrects detected errors an ability to observe and examine an existing structure or system in a criticizing attitude and finally correct or enhance it PC.d1 PC.d2 PC.d3 PC.d4 observes an existing hardware/software system to analyze its functionality analyzes outputs given certain well-chosen inputs that cover different possible cases finds and corrects defects of a system enhances a system according to the requirements
e f g h i j k l an ability to function on multi-disciplinary teams PC.e1 PC.e2 PC.e3 PC.e4 participates effectively as a team member in a long-term group/multi-disciplinary project team takes and fulfills responsibilities in the team participates in the development of ideas incorporates feedback from others into revisions/improvements an ability to identify, formulate, and solve engineering problems PC.f1 PC.f2 PC.f3 identifies a computer engineering problem formally describes constituents of a computer engineering problem develops a solution for a computer engineering problem an understanding of professional and ethical responsibility PC.g1 PC.g2 PC.g3 is aware of the code of ethics that guide the professional practice of engineering identifies and defines ethical issues concerning a decision evaluates and judges a situation in practice, using facts and a professional code of ethics an ability to communicate effectively h1 h2 h3 Written communication of information, concepts, and ideas effectively PC.h1 writes a document using an appropriate format and grammar and uses discipline-specific conventions including citations Orally communicating information, concepts, and ideas effectively PC.h2 plans, prepares, and delivers a well-organized, logical oral presentation; explains when questioned Graphically communicating information, concepts, and ideas PC.h3 uses professional graphics on written and oral presentations the broad education necessary to understand the impact of engineering solutions in a global, economic, environmental and societal context PC.i1 PC.i2 PC.i3 lists several types of impacts an engineering solution might have defines key terms associated with understanding of a societal context including society, culture, and global society recognizes the engineering aspects of a global problem a recognition of the need for, and an ability to engage in life-long learning j1 j2 Demonstrating an awareness of what needs to be learned PC.j1 determines what needs to be learned in an actual project Ability to engage in life-long learning PC.j2 PC.j3 applies the learning plan to an actual research project and/or independent learning opportunity attends seminars and training activities a knowledge of contemporary issues PC.k1 PC.k2 PC.k3 identifies engineering problems with potential environmental impact issues lists and describes major socio-economic issues lists and describes major political issues at national or international levels an ability to use the techniques, skills, and modern engineering tools necessary for engineering practice PC.l1 PC.l2 PC.l3 uses engineering techniques, skills, and tools to monitor performance of an engineering system and/or create an engineering design uses engineering techniques, skills, and tools to acquire information needed for decision-making selects appropriate techniques and tools for a specific engineering task m an ability to adapt to changing conditions PC.m1 adapts to new tools and approaches PC.m2 practices different team roles in a working group PC.m3 is aware of emerging fields and adapts to them
Düzenleyen (Prepared by) Tarih (Date) İmza (Signature) 14.04.2010