Go to:
Logótipo
You are here: Start > L.EIC010

Theory of Computation

Code: L.EIC010     Acronym: TC

Keywords
Classification Keyword
OFICIAL Informatics Engineering and Computing

Instance: 2024/2025 - 2S Ícone do Moodle

Active? Yes
Web Page: https://moodle2425.up.pt/course/view.php?id=5426
Responsible unit: Department of Informatics Engineering
Course/CS Responsible: Bachelor in Informatics and Computing Engineering

Cycles of Study/Courses

Acronym No. of Students Study Plan Curricular Years Credits UCN Credits ECTS Contact hours Total Time
L.EIC 401 Syllabus 1 - 6 52 162

Teaching Staff - Responsibilities

Teacher Responsibility
Jácome Miguel Costa da Cunha
Luís Filipe Coelho Antunes
Mais informaçõesLast updated on 2025-02-04.

Fields changed: Page URL, Obtenção de frequência, Fórmula de cálculo da classificação final, Componentes de Avaliação e Ocupação, URL da página, Obtenção de frequência, Fórmula de cálculo da classificação final, Componentes de Avaliação e Ocupação

Teaching language

Suitable for English-speaking students

Objectives

To prepare students about computing theory topics with a special emphasis on formal language topics.

Students will learn about regular languages, regular expressions, non-regular languages, deterministic and nondeterministic finite automata, context-free languages and grammars, deterministic and non-deterministic pushdown automata, and Turing machines, and how to apply these topics to problems.

Students will be able to express computing problems by using formal languages, automata, and Turing machines.

In addition, students will learn how to formally specify computing problems related to formal languages and prove related statements.

Learning outcomes and competences

At the end of the semester, students should:
- Be capable of identifying the important contributions to computing theory and its protagonists;
- Be capable of identifying the problems that can be solved with finite automata and express them rigorously;
- Be capable of comparing deterministic finite automata (DFAs), non-deterministic finite automata (NFAs), regular expressions, and regular languages;
- Be capable of applying the properties of regular languages;
- Be capable of identifying problems that can be handled by context-free grammars (CFGs);
- Be capable of relating context-free grammars and pushdown automata (PDAs) in the processing of context-free languages;
- Be capable of expressing computing problems by using Turing machines;
- Be capable of relating the studied computing models with their applications in the computability theory and complexity theory.

Working method

Presencial

Pre-requirements (prior knowledge) and co-requirements (common knowledge)

It is recommended that students have attended the Discrete Mathematics course.

Program

Notions of formal languages. Automata Theory; Finite Automata;

Regular Expressions and Languages;

Properties of Regular Languages;

Automata minimization and pumping lemma;

Context-Free Grammars and Languages;

Pushdown Automata;

Properties of Context-Free Language;

Introduction to Turing Machines.

Mandatory literature

John E. Hopcroft; Introduction to automata theory, languages, and computation. ISBN: 978-1-292-03905-3

Complementary Bibliography

Hopcroft, John E.; Introdução à teoria de autômatos, linguagens e computação. ISBN: 85-352-1072-5
Sipser, Michael; Introduction to the theory of computation. ISBN: 0-619-21764-2
Sudkamp, Thomas A.; Languages and Machines. ISBN: 0-201-15768-3

Teaching methods and learning activities

In lectures, the contents are formally exposed along with presentation and discussion of examples.
In the tutorial classes, application exercises are proposed.
Weekly, the students are asked to do exercises to check if the basic concepts are being understood by the majority of students.
The foreseen effort beyond classes is about 4h per week.

Software

JFLAP is software for experimenting with formal languages topics. (https://www.jflap.org/)
https://automata-tutor.model.in.tum.de/index
http://turingmachine.io/
https://pypi.org/project/fado/

keywords

Physical sciences > Computer science
Physical sciences > Mathematics > Computational mathematics

Evaluation Type

Distributed evaluation without final exam

Assessment Components

Designation Weight (%)
Teste 100,00
Total: 100,00

Amount of time allocated to each course unit

Designation Time (hours)
Estudo autónomo 103,00
Frequência das aulas 59,00
Total: 162,00

Eligibility for exams

Students must attend at least 75% of TP classes.

Calculation formula of final grade

Two written tests will be carried out, each with a weight of 50% of the final grade, the second being during the normal exam period. 

Final exam grade: 100% exam.

Examinations or Special Assignments

None.

Classification improvement

The final grade can be improved with a classification improvement exam (implies a registration to improve the grade in the course). In the case of improvement, the grade of the exam will be the final grade of TC.

Recommend this page Top
Copyright 1996-2025 © Faculdade de Engenharia da Universidade do Porto  I Terms and Conditions  I Accessibility  I Index A-Z  I Guest Book
Page generated on: 2025-06-15 at 09:55:50 | Acceptable Use Policy | Data Protection Policy | Complaint Portal