**Presentation**

This course, designed for Master Students in Philosophy aims at providing students with the technical and conceptual tools to understand and master the mathematical, engineering and experimental foundations of computational and information system.

Computing is developing academically and industrially, and it has a huge impact on everyday’s life. This requires not only for practitioners to be aware of the delicate and extensive role they are playing in society, but it also imposes an essential task to disciplines like Philosophy that have traditionally played a critical role on the methodological and epistemological nature of the sciences. Computing and information represent new essential disciplines for students of philosophy, be they oriented towards an academic or professional career, to reflect and judge upon, to assess their working methodologies and foresee future developments. By locating computing in its conceptual, technical and historical evolution and by learning the principles that define it, students will gain a critical awareness and technical knowledge of the processes by which computing has become an essential aspect of our lives and will understand how this subject is located with respect to other sciences. After completing the module, students will be better equipped to understand research directions, commercial and industrial developments, but also the requirements that society can and will impose on such developments.

**Prerequisites**

Successful completion of at least one course in Logic is strongly recommended to students who wish to enroll for this module.

**Learning outcomes**

The course provides knowledge of philosophical and technical literature in the area of computing and the philosophy of information; principles of logic, thinking and argumentative skills on the nature of science and technology; and the understanding of new software and data-intensive science methodologies. The course will provide students with technical and analytical skills in the following topics:

– Logic and computability

– Algorithms

– Turing Computability

– Logics of Program Correctness

– Laws of Computing Evolution

– Logics of Information

– Errors in Computing

– Computer Modelling, Experiments and Simulation

– Multi-Agent Systems and Logics of Communication

**Structure of the Course**

Module A (20hours, 3cfu): Mathematical Foundation

Module B (20 ore, 3cfu): Engineering Foundation

Module C (20 ore, 3cfu): Experimental Foundation

**Reading Material**

G. Primiero. *On the Foundations of Computing. OUP, 2019.*

L. Floridi, The Logic of Being Informed, Logique et Analyse, 49 (2006).

G. Primiero, An Epistemic Logic for Becoming Informed, Synthese, 167:2, pp.363-389, 2009.

M. Huth, M. Ryan, Logic in Computer Science, CUP, 2004.

All reading material, including reference papers, will be shared on the Ariel platform.

**Practical Details**

The course assumes that students will attend regularly, will read the provided material on a weakly basis and test their progress with the accompanying exercises.

The course includes three intermediate tests, one for each module. Each test reflects the structure and evaluation criteria of the exam as reported below. The (provisional) dates of the tests are provided at the beginning of the course.

An optional short paper between 5 and 10 pages, article document class in Latex, can complete the exam. This is especially for students who intend to present a Master Thesis in Logic and/or Philosophy of Computation. For topics see my Projects page. Students are expected to submit an abstract beforehand and the paper before the exam date. Please discuss details with me.

**Programma d’esame/****Topics**

**Unità didattica A**

Mathematical Foundations of Computing:

1. The foundational Crisis of Mathematics

2. Computing and Decidability

3. Definition of Computable

4. Mechanical Computation

5. Logics of Program Correctness

**Unità didattica B**

Engineering Foundations of Computing:

1. Universality and All-purposefulness

2. The Laws of Computing Evolution

3. Logics of Information

4. Specification and Implementation

5. Miscomputation

**Unità didattica C**

The Experimental Foundation of Computing:

1. Computer Experiments, Models and Simulations

2. Logics for Multi-Agent Systems

4. Logics of Communication

5. Epistemology of Experimental Computing

**Written Examination:**

**For attending students:**

1. **Compulsory**: Each unit in this module will be followed by a compulsory written test to verify understanding and technical mastering of issues specific to that unit. Each test is structured as follows:

*Group I: Definitions and Basic Concepts
*This set contains 6 questions of 3 points each concerning

*essential*knowledge. The criteria of evaluation are correctness and clarity. All these questions need to be answered correctly to pass the exam. Only full points are given. Total points: 18.

*Group II: Technical and Formal Analysis*

This set contains 2 questions of 4 points each concerning more complex formal and technical aspects related to computing. The criteria of evaluation are correctness and clarity. Partial evaluation on each question is admitted. Total points available: 8.

*Group III: Philosophical Analysis*

This set contains 2 questions of 5 points each concerning philosophical aspects related to computing. The criteria of evaluation are correctness, clarity and completeness. Partial evaluation on each question is admitted. Total points available: 10.At most 1 test can be failed, and a possibility for retaking it will be offered at the end of the course. With two failed tests the student will need to take the full exam at the end of the course.

Participation to Test 2 is reserved to students who have passed Test 1. Participation to Test 3 is reserved to students who have passed Test 2. With a failed test the student will need to take the full exam at the end of the course as by the modalities given for non-attending students.

Dates of the Tests will be made available to Students on the Website of the Course. Corrections of each test will be communicated with feedback to students via email. The final mark offered to the students will be one consistent with each Test counting for 1/3 of the total.

2. **Optional**: A short paper to be presented at the end of the course. This additional task is for students who wish to take the opportunity to explore one of the topics presented during the course for research. This can represent the basis for a Master dissertation. In the case this option is taken, the evaluation of the paper will count towards ¼ of the total final marking.

**For non attending students:**

A written exam covering topics from the whole program. The final exam is structured as follows:

*Group I: Definitions and Basic Concepts
*This set contains 6 questions of 3 points each concerning

*essential*knowledge. The criteria of evaluation are correctness and clarity. All these questions need to be answered correctly to pass the exam. Only full points are given. Total points: 18.

*Group II: Technical and Formal Analysis*

This set contains 4 questions of 2 points each concerning more complex formal and technical aspects related to computing. The criteria of evaluation are correctness and clarity. Partial evaluation on each question is admitted. Total points available: 8.

*Group III: Philosophical Analysis*

This set contains 4 questions of 2 points each concerning philosophical aspects related to computing. The criteria of evaluation are correctness, clarity and completeness. Partial evaluation on each question is admitted. Total points available: 8.