University of Bahrain College of Information Technology Department of Computer Science Course Information Form Code ITCS312 Title Formal Languages and Automata Pre/co-requisites Web Page ITCS251 Course Instructor Email Hesham al-Ammal heshaaam@gmail.com Credit Hours 3-2-3 http://heshaaam.wordpress.com/ Office Hours Course Coordinator UT: 8:00 9:00 S40-2076 Hesham al-Ammal Course Description Introduces the concept of abstract machines and basic concepts in the foundations to computer science. Formal languages and their relation to automata; the Chomsky hierarchy of classes of grammars; normal forms, recognition of languages; finite state automata; finite transducers; push down transducers; Turing machines; conversion algorithms and decidability problems. Course Learning Outcomes On successful completion of this course, students will be able to: Mapping to POs 1. Construct finite automata, regular grammars, or regular expressions for a given formal language. a, c 2. Analyze a given automaton and convert it to an equivalent grammar. a 3. Compare and identify regular, context-free, and recursively enumerable languages. a, j 4. Assess the implications of the Church-Turing thesis. a, b 5. Analyze a given language and construct a grammar for it. j 6. Implement at least one algorithm for top-down or bottom-up parsing. i 7. Assess the implications of the classes P and NP on algorithmic efficiency. a Textbook Peter Linz, An Introduction to Formal Languages and Automata, 4th Edition, Jones and Bartlett, 2006. Assessments Term Tests Test #1: 20% Assignments Quizzes Projects Final Exam 10% 5% 40% Lab: 5% Test #2: 20% Practical: Tests dates and timings Test #1 Test #2 31-10-2011 in class 26-12-2011 in class Practical Final Exam Topics Week 1 2 3 4 5 Topics Remarks 1.1: Introduction 1.2: Languages, grammars and Automata 2.1-2.2: Finite automata: DFAs and NFAs 2.3: Equivalence of DFAs and NFAs Lab 1: Finite state automata using JFLAP 3.1- 3.2: Regular expressions 3.3: Regular grammars 4.1-4.2: Properties of regular grammars Lab 2: Regular expressions 4.3: Identifying non-regular languages 5.1: Context-free grammars 5.2: Parsing and ambiguity 6 6.1: Methods of transforming grammars Midterm exam 1 (2/11/2011) 6.2: Chomsky normal form 7 8 9 10 11 12 13 7.1: Pushdown automata 7.2: Pushdown automata Lab 3: Term project – part 1: parsing and compiler design 9.1-9.2: The standard Turing machine Mid-semester break 9.3: Turing’s thesis Lab 4: Term project – part 2: implementation 11.1: A Hierarchy of formal languages 12 Limits of Algorithmic Computation 12 Limits of Algorithmic Computation 14 14. An Overview of Computational complexity 15 14. An Overview of Computational complexity Midterm exam 2 (19/12/2011) Lab 5: Term project – part 3: submission date