Skip to main content

BIM 431 - Formal Languages ​​and Automata Theory

Faculty of Engineering and Natural Sciences · Computer Engineering · Undergraduate

ECTS: 5 T+P+L: 2+0+1 Departmental Elective
Coordinator: Dr. Öğr. Üyesi Şengül BAYRAK
Instructors: Dr. Öğr. Üyesi Şengül BAYRAK

Course Objective

It is aimed to have the most basic knowledge in the classification and definition of languages and to develop programming skills by learning the types and functioning of automata.

Course Content

Introduction to Finite State Automata, Relations between languages and Finite State Automata, Regular languages and Regular expressions,Regular grammars, Ambiguity in grammars, Normal forms (Chomsky Normal form, Greibach Normal form), Stack structured automata, Stack structured automata for context-free grammars, Properties of context-free languages, Turing machines.

Required Resources

Ünal Yarımağan,  Özdevinirler (Otomatlar) Kuramı ve Biçimsel Diller, Bıçaklar Kitabevi, 2003.

Recommended Resources

Peter Linz, An Introduction to Formal Languages and Automata, Third Ed., Jones and Bartlett, 2001.

Rules

Remarks and Rules

 

  1. Attendance: According to the regulations, if a student does not attend 30% of the total course hours, he/she is absent from the course (DZ) and fails.

 

       2- Plagiarism: You are not allowed to directly copy and paste codes without understanding them available online for your project or homework. If you understood and used the online material, then you must provide and reference to the website or resource that you have used. Otherwise, it will be considered plagiarism and no marks will be given to you.

Course Learning Outcomes

  1. Uses multiple automata or grammars to represent a complex system.
  2. Identify abstract machine models and formal languages.
  3. Explains the definitions of formal languages, language classes (regular, context-free, etc.), and the Chomsky hierarchy.
  4. Designs finite state machines (DFA/NFA), pushdown automata, and Turing machines.
  5. Designs an automaton that uses proper language and proper grammar structure.
  6. Defines a non-regular language using a Push-Down Automata

Core Area Distribution

(48) Computing%50 (52) Engineering and Engineering Trades%50

Teaching Methods

ExpressionQuestion-AnswerExercise and PracticeProblem Solving

Assessment & Evaluation

Testing (Essay / Tests: True-Falls, multiple-choice, short answer, matching)

ECTS / Workload

ActivityQuantityDuration (h)Total Workload
Course Duration (Including Exam Week)15345
Out of Class Study Period15575
Midterm122
Quiz000
Assignment000
Practice000
Final122

Course Schedule

WeekSubjectPreparation
1Concept of Formal Language, Concept of Automata Theory Introduction to Computation Theory (Sets, Functions, Relations, Graphs, Trees and Proof Methods)Slides
2LanguagesSlides
3Finite AutomataSlides
4Finite Automata (continous)Slides
5Regular Sets and Regular ExpressionsSlides
6Grammar, Languages and Properties of the Regular LanguagesSlides
7MidtermMidterm
8Context-Free Languages ​​and GrammarsSlayt
9Simplifying Context-Free GrammarsSlides
10Chomsky and Greibach Normal FormsSlides
11Chomsky and Greibach Normal Forms (Continuous)Slides
12Pushdown AutomataSlides
13Pushdown Automata (Continues)Slides
14Turing MachinesSlides
15Turing Machine modelsSlides
16Final ExamFinal Exam