FOUNDATIONS OF COMPUTER SCIENCE F - N
Academic Year 2024/2025 - Teacher: GEORGIA FARGETTAExpected Learning Outcomes
Knowledge and understanding: students will acquire knowledge relative to some of the most important formal theories that are fundamental in Informatics. He will understand how all the aspects of applied Informatics have been realized or influenced by knowledge developed at a theoretical level.
Applying knowledge and understanding: students will acquire the ability of applying theoretical notions in applicative contexts.
Making judgements: students will be stimulated to search independently which aspects of theoretical computer science are used in topics covered in more applicative courses he followed in the same year. They will also be stimulated to understand how topics of other different courses could be formalized in mathematical logic.
Communication skills: students will acquire the necessary communication skills and expressive ability in order to express in a formal and non-ambiguous way scientific arguments.
Learning skills: students will get the competences to tackle independentlythe study of theoretical arguments when formally described.
Course Structure
Required Prerequisites
Attendance of Lessons
Detailed Course Content
Elements of Theory of formal languages:
- Alphabet, string, language. Operations on languages. Regular expressions. Cardinality of languages.
- Chomsky grammars. Type 0,1,2,3 grammars. Chomsky Hierarchy. Bakus normal form.
- What does it mean ''to compute''
- Recognition and decision of languages. Automata.
- Finite state automata, deterministic and nondeterministic.
- Pumping Lemma for FSA.
- Context-free languages: a hint.
Computational models and computability theory:
- Turing machines and universal Turing machine.
- Introduction to functional programming and the lambda-calculus
- free and bound variables, alpha-conversion, substiturions, beta-reduction. Definition of formal system, Church numerals. Lambda-definable functions.
- Lambda-definability of recursive functions. Uniqueness of normal form. Consistency of beta-conversion theory.
- The formalism of primitive recursive functions and partial functions.
- Informal introduction to recursion theory and some fundamental results.
- A logic-based computational model: a sketchy introduction to logic programming.
Codes and representation of numerical information:
- Codes and two-complements representation of integers.
- Strings vs Numbers
Abstract machines.
- Abstract machine definition.
- Implementation of abstract machines; layered organization of computation systems.
Logics:
- Formal systems. Admissible and derivable rules. Some properties of formal systems. Consistency.
- Propositional logic definition and main properties. Deduction theorem.
- Semantics of propositional logics. Soundness and completeness.
- Natural deduction for propositional logics-
- The correspondence proofs as programsLa corrispondenza dimostrazioni-programmi
- First-order logic: language and semantics.
- Substitutions, natural deduction, axiomatic system.
- Statements of fundamental theorems.
- Arithmetic and group theory formalizations.
- Induction-Recursion correspondence: a hint.
Programming-languages semantics:
- Structured Operational Semantics
General
- The work of the computer scientists in a globalized world.
Textbook Information
Most of the texts are in electronic format and are downloadable from the following web page
Course Planning
Subjects | Text References | |
---|---|---|
1 | Introduction to the theory of formal languages. Definitions of alphabet, string, language. Regular expressions | https://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
2 | Sigma* enumeration. Uncountability of languages on a Sigma alphabet. Countability of language recognition programs. Introduction to Chomsky Grammars: Definition, Classes of grammars. | https://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
3 | BNF. What does it mean to compute. Automata. Finite state automata and correspondence with regular languages. | https://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
4 | Decidable and semi-decidable language. Introduction to the Pumping Lemma | https://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
5 | Non-deterministic finite state automata. Pumping Lemma: statement and proof. Induction and its use to prove properties of programs. | https://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
6 | Use of the Pumping Lemma. Some characteristics of context-free languages. Syntactic derivation trees. Existence of languages that cannot be generated from grammars: diagonalization method. | https://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
7 | Introduction to Turing machines. Formal definition of Turing Machine. Example of a Turing machine. | https://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
8 | Complete induction and example of use to prove properties of programs. Transducers. Examples of transducers. Universal Turing Machine. | https://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
9 | Codes. Representation of numerical information. Positional representation and basic conversion algorithms. Fixed and variable length codes. | https://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
10 | Definition of representation of integers in complement to the base. Properties of two's complement representation and their proofs. Introduction to functional programming. | https://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
11 | Intro to functional programming and lambda-calculus Lambda-terms; beta-reduction (informal). | https://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
12 | Free and bound variables; Alpha-conversion; Replacement; Normal forms and their uniqueness; reduction strategies; Introduction to lambda-definable functions; | https://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
13 | Lambda-definability of algorithms that compute functions. Fixed point theorem (statement). Lambda-definability of recursive algorithms. Introduction to formal systems. Example of a formal system: alpha-conversion. | https://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
14 | Formal systems. Main definitions related to formal systems. Example of formal system: Combinatory Logic | https://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
15 | Propositional Logic a la Hilbert. Deduction theorem. Semantics of Propositional Logic. Correctness and completeness theorem (statement), | https://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
16 | Propositional Logic in natural deduction. Correspondence of deductions-programs. | https://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
17 | First order logic: signature, wff, structures, semantics. | https://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
18 | Admissible and derivable rules. Natural deduction for first order logic. | https://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
19 | Correctness and completeness; Non-logical axioms of arithmetic (PA) and groups. | https://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
20 | Some fundamental results of Recursion Theory. Stop problem. Cantor isomorphism. Coding of strings with natural numbers. Definition of abstract machine. Correspondence Abstract machines and languages. | https://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
21 | Realisation of Abstract Machines. Hierarchies of Abstract Machines. Goedel incompleteness theorems, statements. | https://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
22 | Church's theorem. Semi-decision of derivability relation; Sketch of Prolog. Well-founded induction. | https://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
23 | Introduction to the formal semantics of programming languages. Structured Operational Semantics of imperative languages: the WHILE language | https://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
24 | The work of the computer scientist in the globalized world. | https://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
Learning Assessment
Learning Assessment Procedures
Erasmus students and other non-italian speakers may ask to take an oral exam.
The assessment may also be conducted online, should the circumstances require it
For the assignment of grades for individual assessments, the following criteria are typically followed:
- Fail: The student has not acquired the basic concepts and is unable to complete the exercises.
- 18-23: The student demonstrates a minimal mastery of the fundamental concepts; their ability to present and connect content is modest, and they can solve simple exercises.
- 24-27: The student shows a good grasp of the course content; their ability to present and connect the content is good, and they solve exercises with few errors.
- 28-30 with honors: The student has acquired all course content and can present them comprehensively with a critical perspective; they solve exercises completely and without errors
Students with disabilities and/or learning disorders (DSA) must contact the instructor and the CInAP representative at DMI well in advance of the exam date to inform them of their intention to take the exam with the appropriate compensatory measures.
Examples of frequently asked questions and / or exercises
The following web site all the previous written examinations.
Solutions of previous written examinations and many more exercises are present in