FOUNDATIONS OF COMPUTER SCIENCE F - N

Academic Year 2023/2024 - Teacher: Maria Serafina MADONIA

Expected 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 independently the study of theoretical arguments when formally described.

Course Structure


The course site contains a notable set of exercises, and students are encouraged to tackle them during self-study. Those in which the students encountered difficulties are addressed in the first part of the lesson, at the students' request. Also in the first part, the teacher invites the students to communicate any difficulties encountered in tackling the study of the topics of the previous lessons, so that we can discuss them together.

In the second part of the lesson, new topics are addressed and exercises relating to them are often indicated, among those present on the course exercises page or new ones (which will eventually increase the set of available exercises). 

As in the previous year, we will try to organize numerous ongoing tests, the evaluation of which will allow you to be exempted from taking part of the final exam.

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.

Required Prerequisites

None

Attendance of Lessons

Non compulsory but strongly recommended

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

The work of the computer scientists in a globalized world.

Textbook Information

The majority of texts are in electronic format and can be downloaded from the following web page:

http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html

Course Planning

 SubjectsText References
1Introduction to the theory of formal languages. Definitions of alphabet, string, language. Regular expressionshttp://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html
2Enumeration of Sigma*. Uncountability of languages ​​on a Sigma alphabet. Countability of language recognition programs. Introduction to Chomsky's Grammars. Grammar classes.http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html
3BNF. What does it mean to compute. Automata. Finite state automata and correspondence with regular languages.http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html
4Decidable and semi-decidable languages. http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html
5Non-deterministic finite state automata. Pumping Lemma: statement and proof. Induction and its use to prove properties of programs.http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html
6Use of the Pumping Lemma. Some characteristics of context-free languages. Syntactic derivation trees. Existence of languages ​​that cannot be generated from grammars: diagonalization method.http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html
7Introduction to Turing machines. Formal definition of Turing Machine. Example of a Turing machine.http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html
8Complete induction and example of use to demonstrate properties of programs. Transducers. Examples of transducers. Universal Turing Machine.http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html
9Codes. Representation of numerical information. Positional representation and basic conversion algorithms. Fixed and variable length codes. Expanding codes.http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html
10Definition of representation of integers in complement to the base. Properties of two's complement representation and their proofs. Introduction to functional programming.http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html
11Intro to functional programming and lambda-calculus Lambda-terms; beta-reduction (informal).http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html
12Free and bound variables; Alpha-conversion; Replacement; Normal forms and their uniqueness; reduction strategies; Introduction to lambda-definable functions.http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html
13Lambda-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.http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html
14Formal systems. Main definitions related to formal systems. Example of formal system: Combinatory Logic.http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html
15Hilbert Propositional Logic. Deduction theorem. Semantics of Propositional Logic. Correctness and completeness theorem (statement)http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html
16Propositional Logic in natural deduction. Correspondence of deductions-programs.http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html
17First order logic: signature, wff, structures, semantics.http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html
18Admissible and derivable rules. Natural deduction for first order logic.http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html
19Correctness and completeness; Non-logical axioms of arithmetic (PA) and groups. Non-existence of formalisms for all and only the total functions.http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html
20Some fundamental results of Recursion Theory. The Halt problem. Cantor isomorphism. Coding of strings with natural numbers. Definition of abstract machine. Correspondence Abstract machines and languages.http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html
21Creation of Abstract Machines. Hierarchies of Abstract Machines. Goedel's first incompleteness theorem and proof scheme. Statement of Goedel's second Incompleteness theorem.http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html
22Church's theorem. Semi-decision by differentiability relation; Horn clauses. Notes on Prolog. Well-founded induction.http://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html
23Introduction to the formal semantics of programming languages. Structured Operational Semantics of imperative languages: the WHILE languagehttp://www.dmi.unict.it/barba/FONDAMENTI/PROGRAMMI-TESTI/programmaAAcorrente.html
24Some key findings. The work of the computer scientist in the globalized world.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.

Examples of frequently asked questions and / or exercises

A web portal has been prepared containing all the texts of the writings of previous years:

http://www.dmi.unict.it/barba/FONDAMENTI/ESAMI/AppelliPassati/index.html

The solutions to the exercises proposed for the exams, together with many others, with related solutions, can be found in another specially developed portal:

http://www.dmi.unict.it/barba/FONDAMENTI/ESERCIZI/index.html