FOUNDATIONS OF COMPUTER SCIENCE A - E
Academic Year 2024/2025 - Teacher: Maria Serafina MADONIAExpected 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
Each lesson is divided into two parts. The first one (about one third of the time) is devoted to the solution of exercises and to the clarification of unclear topics of the previous lessons. The second part is devoted to the explanation of new topics.
Should teaching be carried out in mixed mode or remotely, it may be necessary to introduce changes with respect to previous statements, in line with the programme planned and outlined in the syllabus.
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.
- Statements of some fundamental theorems. .
- Induction-Recursion correspondence: a hint.
Programming-languages semantics:
- Structured Operational Semantics
The work of the computer scientists in a globalized world.
Textbook Information
http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html
Course Planning
Subjects | Text References | |
---|---|---|
1 | Introduzione alla teoria dei linguaggi formali. Definizioni di alfabeto, stringa, linguaggio. Espressioni regolari | http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
2 | Enumerazione di Sigma*. Non numerabilita' dei linguaggi su un alfabeto Sigma. Numerabilita' dei programmi di riconoscimento dei linguaggi. Introduzione alle Grammatiche di Chomsky. Classi di grammatiche. | http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
3 | BNF. Cosa significa computare. Automi. Automi a stati finiti e corrispondenza con linguaggi regolari. | http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
4 | Linguaggio decidibili e semidecidibili. Introduzione al Pumping Lemma | http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
5 | Automi a stati finiti non deterministici. Pumping Lemma: enunciato e dimostrazione. Induzione e suo utilizzo per dimostrare proprieta' di programmi. | http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
6 | Uso del Pumping Lemma. Alcune caratteristiche dei linguaggi context-free. Alberi di derivazione sintattica. Esistenza di linguaggi non generabili da grammatiche: metodo di diagonalizzazione. | http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
7 | Introduzione alle macchine di Turing. Definizione formale di Macchina di Turing. Esempio di macchina di Turing. | http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
8 | Induzione completa ed esempio di uso per dimostrare proprieta' di programmi. Trasduttori. Esempi di trasduttori. Macchina di Turing Universale. | http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
9 | Codici. Rappresentazione informazione numerica. Rappresentazione posizionale e algoritmi di conversione di base. Codici a lunghezza fissa e variabile. Codici ad espansione. | http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
10 | Definizione di rappresentazione degli interi in complemento alla base. Proprieta' della rappresentazione in complemento a due e loro dimostrazioni. Introduzione alla programmazione funzionale. | http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
11 | Intro alla programmazione funzionale ed al lambda-calcolo Lambda-termini; beta-riduzione (informale). | http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
12 | Variabili libere e legate; Alfa-conversione; Sostituzione; Forme normali e loro unicita'; strategie di riduzione; Introduzione alle funzioni lambda-definibili. | http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
13 | Lambda-definibilita' di algoritmi che calcolano funzioni. Teorema del punto fisso (enunciato). Lambda-definibilita' di algoritmi ricorsivi. Introduzione ai sistemi formali. Esempio di sistema formale: alfa-conversione. | http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
14 | Sistemi formali. Principali definizioni correlate ai sistemi formali. Esempio di sistema formale: Combinatory Logic. | http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
15 | Logica Proposizionale alla Hilbert. Teorema di deduzione. Semantica della Logica Proposizionale. Teorema di correttezza e completezza (enunciato), | http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
16 | Logica Proposizionale in deduzione naturale. Corrispondenza deduzioni-programmi. | http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
17 | Logica del primo ordine: segnatura, fbf, strutture, semantica. | http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
18 | Regole ammissibili e derivabili. Deduzione naturale per logica primo ordine. | http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
19 | Correttezza e completezza; Assiomi non logici dell'aritmetica (PA) e dei gruppi. Non esistenza di formalismi per tutte e sole le funzioni totali. | http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
20 | Alcuni risultati fondamentali di Teoria della Ricorsivita'. Problema della fermata. Isomorfismo di Cantor. Codifica di stringhe con numeri naturali. Definizione di macchina astratta. Corrispondenza Macchine astratte e linguaggi. | http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
21 | Realizzazione di Macchine Astratte. Gerarchie di Macchine Astratte. Primo teorema di Incompletezza di Goedel e schema di dimostrazione. Enunciato secondo teorema di Incompletezza di Goedel. | http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
22 | Teorema di Church. Semidecisione per relazione di derivabilita'; Clausole di Horn. Cenni di Prolog. Induzione ben-fondata. | http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
23 | Introduzione alla semantica formale dei linguaggi di programmazione. Semantica Operazionale Strutturata dei linguaggi imperativi: il linguaggio WHILE | http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
24 | Alcuni risultati fondamentali. Il lavoro dell'informatico nel mondo globalizzato. | http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html |
Learning Assessment
Learning Assessment Procedures
The exam consists of a written and an oral exam (the latter optional).
In the written exam, questions of both a theoretical nature and exercises are proposed.
The written exam is generally composed of three subparts: the first, divided into three questions (the first usually of a theoretical nature), is based on the first part of the program.
Compatibly with the relatively subjective nature of the concept of "difficulty", the three questions are proposed in order of difficulty.
Similarly for the second part of the writing.
The third part instead consists of a single exercise or question which can focus on the first or second part of the program, but in any case on topics not taken into consideration by the two previous parts.
A sufficient assessment of the written exam allows you to accept the grade as final or to access, upon request, the optional oral exam which will contribute to the final assessment.
NOTE. Verification of learning can also be carried out electronically, should conditions require it.