Code: | CC3004 | Acronym: | CC3004 | Level: | 300 |
Keywords | |
---|---|
Classification | Keyword |
OFICIAL | Computer Science |
Active? | Yes |
Web Page: | http://www.dcc.fc.up.pt/~rvr/aulas/AC1516/CeC/ |
Responsible unit: | Department of Computer Science |
Course/CS Responsible: | Bachelor in Computer Science |
Acronym | No. of Students | Study Plan | Curricular Years | Credits UCN | Credits ECTS | Contact hours | Total Time |
---|---|---|---|---|---|---|---|
L:CC | 32 | Plano de estudos a partir de 2014 | 3 | - | 6 | 56 | 162 |
MI:ERS | 14 | Plano Oficial desde ano letivo 2014 | 3 | - | 6 | 56 | 162 |
Study and comparison of different (Turing-complete) models of computation, their computational power and limitations. Study of the various complexity classes of problems.
After completing this course students are expected to
- know the classical models of computation;
- be able to prove the equivalence of several Turing-complete models;
- know the fundamental results and methods used in the study of computability and complexity;
- be able to classify concrete examples of problems and prove their (un)decidability within several classes of computability;
- be able to classify concrete problems about their time complessity, and understand the consequences of that classification.
Students are exposed to different standard Turing-complete models of computation, such as register machines, Turing machines e recursive functions. Besides proving the equivalence of those models, they also are used to identify different undecidable problems. For this, different techniques, such as the diagonalization method and the reduction between languages are used. In order to gain experience identifying the computational complexity of concrete problems, students are introduced to the classes P and NP, the notion of NP-completeness and Cook’s theorem, revisiting again the reduction technique.
Knowledge of some models of computation such as Finite Automata, Regular Expressions and Context-free Grammars. Basic notions of Logic.
Notion of (semi-)decidable language/problem. Revision of some models of computation (DFA, NFA, CFG and PDA) and their power of computation. Register machines. Church-Turing thesis. Chomsky hierarchy. Study of other Turing-complete models of computation and their equivalence (Turing machines, recursive functions). Effective enumerability of the instances of a model of computation. The diagonalization method and the indecidability of the halting-problem. Reduction “many to one” between languages. Introduction to complexity theory: P and NP classes, NP-completeness, Cook’s theorem and other NP-complete problems.
Lectures: exposition of the elements in the syllabus.
Lab classes: resolution of exercises proposed each week.
designation | Weight (%) |
---|---|
Exame | 100,00 |
Total: | 100,00 |
N/a
The final mark corresponds to the classification obtained
- as average grade of two tests to be realized during the semester (each with a classification of at least 7 out of 20 points) and at the date of the first exam;
- or the grade of the second exam (época de recurso).