Code: | EIC0022 | Acronym: | TCOM |
Keywords | |
---|---|
Classification | Keyword |
OFICIAL | Programming Fundamentals |
Acronym | No. of Students | Study Plan | Curricular Years | Credits UCN | Credits ECTS | Contact hours | Total Time |
---|---|---|---|---|---|---|---|
MIEIC | 190 | Syllabus since 2009/2010 | 2 | - | 6 | 56 | 162 |
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.
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.
Automata Theory; Finite Automata;
Regular Expressions and Languages;
Properties of Regular Languages;
Context-Free Grammars and Languages;
Pushdown Automata;
Properties of Context-Free Language;
Introduction to Turing Machines.
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.
Designation | Weight (%) |
---|---|
Exame | 75,00 |
Participação presencial | 0,00 |
Teste | 25,00 |
Total: | 100,00 |
Designation | Time (hours) |
---|---|
Estudo autónomo | 103,00 |
Frequência das aulas | 59,00 |
Total: | 162,00 |
Distributed evaluation not inferior to 7 marks and a maximum of 3 non-justified absences (25%) on the tutorial classes.
AD: Distributed Evaluation (min: 7.0 marks) consists of three components:
- Preparation activities
- Evaluation activities
- Challenges
AD Grade (ADG) =
AD, if AD <= EF+3, OR
EF+3, otherwise
EF: final exam (min: 7.0 marks)
Final Grade = rounded(0.25 AD + 0.75 EF)
None.
One of the following possibilities (selected by the student):
- Final Exam
- Final Exam (EF) + Activities (AD)
The final grade can be improved with a classification improvement exam. In the case of improvement, the grade of the exam will be the final grade of TCOM.
- The pre-requirements are knowledge of Computational Logic and of programming.
- Students that have obtained Distributed Evaluation (AD) in the previous year are able to use their AD grade in the current year.
- The official language of the classes is Portuguese. However, the classes might be given in English.
- All the materials used (including slides and exercises) and all the assessment materials are all in English.