Academic year 2013-14
Formal Systems
Degree: | Code: | Type: |
Bachelor's Degree in Computer Science | 21424 | Compulsory subject, 3rd year |
Bachelor's Degree in Telematics Engineering | 22607 | Optional subject |
Bachelor's Degree in Audiovisual Systems Engineering | 22673 | Optional subject |
ECTS credits: | 4 | Workload: | 100 hours | Trimester: | 1st |
Department: | Dept. of Information and Communication Technologies |
Coordinator: | VĂctor Dalmau |
Teaching staff: | Victor Dalmau |
Language: | Catalan |
Timetable: | |
Building: | Communication campus - Poblenou |
This course introduces and studies the basic computational models. The course is divided in two blocks.
The first block deals with regular expressions and context-free grammars. The goal is to show the foundations of the technology underlying the design of compiler and text processors. Another application of these concepts is in the field of system's verification.
The second block studies the Turing Machine. The Turing Machine is a mathematical model that has the very same power than a computer. First, we shall investigate which computational tasks can be solved by a Turing Machine. This area of research is called "Decidabilty Theory". We will show surprising results. For example, we will see that there are some computational tasks that are not solvable by any computer. Secondly, we will introduce "Complexity Theory". The goal of Complexity Theory is to investigate which tasks can be solved efficiently by a Turing Machine. In particular, we shall discuss the so-called P=?NP question, considered as one of the 10 most important mathematical problems (in fact, the "Clay Institute" has set a million dollar award for it).
This course aims to improve the student's reasoning capabilities, strengthening his/her capacity of abstraction. The course has a theoretical and deductive focus.
The course requires certain basic mathematical ground that the student should have acquired during secondary school or when studying the mathematical courses of the first year:
-Basic algebraic notions.
-Basic arithmetic.
-Capability to understand and write simple mathematical expressions.
-Familiarity with basic proof techniques: induction, contradiction.
-Basic graph theory notions.
The students that are not familiar with the mathematical requirements will be able to pass the course but will need to do and extra effort, as they will need to strengthen their mathematical background. The bibliography contains several references that can be used to this end.
It is also convenient to have some basic notions about algorithms and logic introduced previously in the courses "Foundations of programming" and "Computational Logic". Again, the students that have not taken those courses sill can pass this course by just devoting a little extra effort.
Competències transversals | Competències específiques |
---|---|
Instrumentals G2. Capacidad de organización G3. Capacidad para aplicar los G4. Habilidad en la búsqueda y G5. Habilidad en la toma de decisiones G6. Capacidad de comunicarse Interpersonals G8. Capacidad de trabajo en equipo Sistèmiques G11. Capacidad de aplicar G12. Capacidad para progresar G14. Capacidad de motivación G15. Capacidad de generación |
H1. Capacidad de concebir y llevar a H3. Capacidad para la redacción y H4. Aprender de manera autónoma IN26. Conocer los lenguajes libres de IN27. Conocer la máquina de Turing
|
The evaluation is as follows
1.-Continuous evaluation. Before class, students will prepare exercises that will be solved on the blackboard and/or delivered. A part of these exercises will be evaluated. The result will be a grade, L, in the range 0-10.
2.-Partial exam. It consists of a compulsory exam containing theory questions and problems that will be done in the middle of the trimester. The result will be a grade, EP, in the range 0-10.
3.-Final exam (december). It consists of a compulsory exam containing theory questions and problems that will be done during the exams period at the end of the trimester. The result will be a grade, EF1, in the range 0-10.
4.-Final exam (july). It consists of a compulsory exam containing theory questions and problems that will be done during the exams period in July.
The result will be a grade, EF1, in the range 0-10.
The final grade is computed as follows:
-December. In order to pass it is necessary that the grade of december's exam, EF1, is at least 5. In this case, the final grade will be
0.20*L+0.15*EP+0.65*EF1.
-July.-December. In order to pass it is necessary that the grade of july's exam, EF2, is at least 5. In this case, the final grade will be
0.20*L+0.15*EP+0.65*EF1.
The course is divided in four units:
1.-Regular languages.
Finite deterministic and non deterministic automaton. Regular expressions. Equivalence between regular expression and DFAs (Kleene Theorem). Regular languages and their basic properties.
2.-Context-free languages.
Context-free grammars. Context-free languages and their basic properties.
3.-Decidability Theory.
Turing Machines (TMs). Equivalence between TMs and computer programs. Recursively enumerable and recursive languages. Diagonal, Universal, and Halting Problems.
4.-Complexity Theory.
Temporal complexity of a Turing Machine. The classes P and NP. NP-completeness and Cook's theorem.
Before class.
The student will prepare, before each class, some material that will be provided previously by the professor. In general (although not necessarily always) this material will consists of several sections of the course notes. The student will need to read this sections carefully and solve the exercises in them.
During class.
During class, the students will be asked to solve exercises on the blackboard. The professor participation during the class will be minimal, merely asking questions.
In addition, the professor might require other tasks such as delivering exercises or presenting some material.
Resources.
-Course Notes. Available online at Moodle.
Basic bibliography.
-J. Hopcroft, R. Motwani i J. Ullman. Introduction to Automata Theory, Languages, and Computation. Addison-Wesley, 2007.
- M. Sipser. Introduction to the Theory of Computation. PWS Publishing Company, 1997.
Auxiliary bibiography
- D. Kelley. Teoría de autómatas y lenguajes formales. Prentice-Hall, 1995.
- D. Kozen. Automata and Computability. Springer-Verlag, 1997.
- H. Lewis i C. Papadimitriou. Elements of the Theory of Computation. Prentice-Hall, 1997.