Degree | Informatics Engineering
Introduction to Computer Science
Scientific Field
Computer Science
Duration
Semester
ECTS
6
Contact Hours Theoretical Practices
60h
LEARNING OBJECTIVES
To complete this unit, students must acquire the following knowledge and skills:
1. Understand the theoretical importance of computer science;
2. Acquire the mathematical knowledge required to approach the theoretical foundations of computer science;
3. Master the fundamental notions of automata theory and formal languages;
4. Understand the concept of a Turing machine;
5. Understand the relevance of the Turing machine relative to computer system analysis;
6. Analyse the concept of language decidability;
7. Understand the theoretical foundations of computability problems;
8. Understand the theoretical foundations to analyse the complexity of computer algorithms.
PROGRAM
1. Introduction to computer logic
2. Mathematical fundamentals
2.1. Sets, Relations, and Functions
2.2. Graphs and trees
2.3. Mathematical induction principle
3. Automata Theory
3.1. Automaton concept
3.2. Description of finite automata
3.3. Finite State Machines
4. Formal Languages
4.1. Concept
4.2. Grammar
4.3. Grammar-Generated languages
4.4. Operations in Languages
4.5. Languages and Automatons
5. Regular Sets and Grammars
5.1. Regular Expression
5.2. Finite Automata and Regular Expressions
5.3. Regular Grammars
6. Turing Machines
6.1. Turing Machine Model.
6.2. Turing machine representation
6.3. Turing Machines and Languages
7. Decidability
7.1. Algorithms
7.2. Decidable Languages
7.3. Undecidable languages
8. Computability
8.1. Fundamental concepts
8.2. Computability analysis
9. Computational complexity
9.1. Growth Functions
9.2. P and NP Classes
9.3. Analysis of algorithms complexity
DEMONSTRATION OF COHERENCE BETWEEN SYLLABUS AND LEARNING RESULTS
This curricular unit was defined to allow students to acquire knowledge and understanding, starting from basic concepts. This will give them an understanding of conceptual building that sustains the theory of computer science, concerning computability and the spatial and temporal complexity of algorithms.
TEACHING METHODOLOGY AND ASSESSMENT
This unit has a theoretical-practical nature. In total 60 hours are planned for classroom teaching. The student’s total study time should be 162 hours. As this unit has a high level of abstraction, it is fundamental that the concepts be immediately illustrated with practical examples. This allows students to test their understanding of the subjects.
Under ISTEC’s Regulation of Functioning, students are evaluated through a mandatory individual written exam. The student’s final classification may be positively affected by elements resulting from a continuous assessment process, such as tests, individual or group academic work, individual initiatives to participate in classes and learning resources provided by e-learning systems.
DEMONSTRATION OF CONSISTENCY BETWEEN TEACHING METHODOLOGIES AND LEARNING RESULTS
The methodology used consists of theoretical expositions, practical examples and exercises solved in class, this allows students to assimilate concepts necessary to understand the theoretical foundations of computer science, the theory of automata, formal languages, computability and complexity computing.
BIBLIOGRAPHY
Fundamental:
N. Chandrasekaran, Theory of Computer Science: Automata, Languages and Computation
Michael Sipser, Introduction to the Theory of Computation 3rd Edition
Complementary:
Shyamalendu Kandar, Introduction to Automata Theory, Formal Languages and Computation
Krithivasan, Kamala and R Rama, Introduction to Formal Languages, Automata Theory and Computation
INTERNET:
Access to specialist publications, free of charge, through the SPRINGER network:
https://link.springer.com/

