Academic year 2014-15
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 "Decidability 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 background 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.
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 has the following parts.
1.-Continuous evaluation. Includes class participation, deliverables and other activities. The result will be a grade, C, in the range 0-10.
2.-Partial exam. It consists of a compulsory exam containing theory questions and problems about units 1 and 2 that will be done in the middle of the trimester. The result will be a grade, B1, in the range 0-10.
3.-Final exam (december). It consists of a compulsory exam containing theory questions and problems about units 1 and 2 (although it might also contain, to an smaller extent, questions about other units) that will be done during the exams period at the end of the trimester. The result will be a grade, B2, in the range 0-10. Additionally, there will be an optional exam about units 1 and 2. The grade B1 will be updated accordingly, if better.
4.-Final exam (july). It consists of two optional and independent exams (one for units 1 and 2 and another for units 3 and 4). Grades B1 and B2 will be updated accordingly, if better.
Students might choose the type of evaluation.
A) Continuous evaluation.
In order to pass it is necessary that grades B1 and B2 are, at least, 5. In this case, the final grade will be 0.30*C+0.30*B1+0.40*B2.
B) Non-continuous evaluation.
In order to pass it is necessary that grades B1 and B2 are, at least, 5. In this case, the final grade will be (0.30*C+0.30*B1+0.40*B2)/0.70
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. This material might contain exercises that the student will need to solve.
During class.
During class, the students will be asked to discuss the exercises in group and to solve them on the blackboard.
In addition, the professor might require other tasks such as delivering exercises or presenting some material.
Activity table
In-class activity | Out-of-class activity | Assessment activity | ||||
---|---|---|---|---|---|---|
Topic | Full group | Medium group | Small group | |||
Block 1 |
20 |
|
|
30 |
|
|
Block 2 |
20 |
|
|
30 |
|
|
Total: |
40 |
|
|
60 |
|
Total:100 h |
Resources.
-Material provided by the professor. 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.