Philosophy of Computation and Information

Title: On the Foundations of Computing (60 ore, 9cfu)

Semester: 2nd

Professor in charge of the course: Giuseppe Primiero

Teaching Unit A (20 ore, 3cfu): Mathematical Foundation

Teaching Unit B (20 ore, 3cfu): Engineering Foundation

Teaching Unit C (20 ore, 3cfu): Experimental Foundation

This course is addressed to students of the Master Degree in Philosophical Sciences (Classe LM-78, enrolled from AY 2017/2018, 120 CFU).

Description

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.

Learning Objectives

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. The course includes programming activities for the model of Turing Machines and for an agent-based simulation software. Such notions and methods will be valuable in any activity requiring advanced reasoning and problem-solving abilities in the computational domain.

Prerequisites

Successful completion of at least one course in Logic is strongly recommended.

Expected Learning Outcomes

Knowledge acquisition and understanding:

The course provides knowledge of philosophical and technical literature in the area of computing and the philosophy of information; principles of logic, epistemology of computing sciences and technologies; and the understanding of new software and data-intensive science methodologies.

Skills acquisition and ability to apply knowledge:

The course provides technical and analytical skills in the following topics:

– Logic and computability

– 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

At the end of the course, students are expected to be able to:

  • identify classes of computational functions and problems;
  • identify algorithmic processes and their properties;
  • formulate formal structures applied to computational and informational structures;
  • analyze the ontological structure of computational systems and their properties;
  • formulate hypothesis and experiments in a computational setting.

References

Teaching Unit A+B+C

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


Teaching Unit B

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.

Teaching Unit C

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

G.Primiero, M. Bottone, F. Raimondi, J. Tagliabue, Trust and Distrust in Contradictory Information Transmission. Applied Network Science, 2:12. DOI: 10.1007/s41109-017-0029-0 (2017).

All the reading material will be made available to students.

Programme for Attending and Non-Attending Students

Teaching Unit 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

Teaching Unit 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

Teaching Unit 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

Examination: Written

For attending students:

1. Compulsory: Each unit in this course will be followed by a compulsory written test with open questions, 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.

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 research one of the topics presented during the course. This can constitute 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.

Notes

The exam for students with (learning) disabilities must be agreed with the lecturer and with the competent office.