Skip to content

bozsahin/cogs579

Repository files navigation

cogs579 Spring 2024

METU course on Philosophy of Computer Science

What kind of thinking is involved when humans choose to study a problem computationally? This is the general question of the course. At this day and age, it is inevitable to get into AI issues, and we do so. But this is NOT a course on AI. It's about Computer Science in general.

This is the web home when I teach it. This page is the course syllabus.

NOTE: During registration, the course is open to II students, PHIL, BIOL, PHYS and CENG grad students, and CENG seniors. I will open to others during ADD/DROP.

Please send me an email so that I can invite you to the first meeting even if you're not registered. If you are eligible, you can register during add/drop.

Lectures: Thursdays, 11.40-14.30, at room S03. Second room on the first right, entering through main gate of Informatics.

The course is face to face.

Lecturer: Cem Bozsahin (Spring 2024)

TA: Rojda Ozcan

Catalog Content and Description:

Philosophical questions in the practice of computer science: what is a computer; what kind of science is computer science; what are the terms of computationalist explanations; are digital and analog computers different in kind; does nature compute? computers and exploration; ethics of computers with or without human in the loop; activity of programming; paradigms of thinking in computer science.

Background Requirements:

The course aims to bring together advanced undergraduates and graduates of philosophy, computer science and cognitive science. Advanced undergraduate standing in one of these fields, or studying one of these fields at the graduate level, or having a focus on the topic in a related field (such as physics, mathematics, linguistics, biology) is required. We do not teach programming, and assume that its intellectual aspects (e.g. program and data abstraction) are well-known through first-hand experience. First-hand experience means being able to program beyond using library functions and packaged tools. You must have gone through one programming design experience, no matter how small.

NOTE TO ALL STUDENTS: If you have not done programming by designing and writing your own programs, large or small, I advise you NOT to take this course. Using libraries or studying someoneelse'e code or auto-generated code do not count as programming experience in my book. You have to be in the programmer's shoes in this course.

NOTE TO UNDERGRADUATE STUDENTS: This course thrives on in-class discussion and off-class writing. It also includes taking responsibility of presenting a paper. We know that you have the right to withdraw from a course, but that can disrupt the course if you withdraw close to your presentation. Please think thoroughly before you register for the course.

Course Objectives:

At the end of the course, students are expected to assess (a) the potential role of computers in scientific explanation, (b) the nature of computing (algorithms, analogs, etc.), (c) ethical aspects with and without human in the loop, (d) conceptual problems related to computer science.

Course Textbooks: (both are partially covered, course reader pending change in Spring 2024)

  1. Rapaport, William (2020). Philosophy of Computer Science. OpenLibra.

This textbook is great for bringing yourself up to speed for the course, if (a) you know computers but not philosophy, (b) you know philosophy but not how computers relate to it. A bit of both I will assume to be common background.

The ethic part is the one we will cover in class.

  1. Weizenbaum, Joseph (1976). Computer Power and Human Reason. W.H. Freeman and Company.

This is a nowadays neglected classic. If you don't have an understanding of the inner workings of a computer but know programming, there are great chapters here to help you with that. But it's much more than that, outlining a philosophy of computer science that seems much relevant today, what with all that transhumanism and posthumanism.

Main readings (subject to change before paper assignment starts, sometime around W5-6):

auditorem non adiutorem---Aaron Garrett

  1. The textbooks. 0-1 is Rapaport. 0-2 is Weizenbaum.

  2. R. Hill (2014). What an algorithm is. Philosophy and Technology 29.1:35-59, 2016.

  3. Scot Aaronson (2011). Why should philosophers care about computational complexity. In Computability: Gödel, Turing, Church, and beyond. Copeland, Posy, Shagrir (eds). MIT Press.

  4. P. Brey (2000). Disclosive computer ethics. Computers and Society 30(4): 10-16.

  5. Kruger, Oliver. (2021). The singularity is near! visions of artificial intelligence in posthumanism and transhumanism. Int. Journal of Interactive Multimedia and Artificial Intelligence 7 (1): 16.

  6. Konigs, Peter. (2022). Artificial intelligence and responsibility gaps: what is the problem? Ethics and Information Technology 24 (36): 1–11.

  7. C. Bozsahin, (2018). Computers aren’t syntax all the way down or content all the way up. Minds & Machines 28:543-567.

  8. C. Bozsahin (2016). Natural recursion doesn’t work that way. in Fundamental Issues of Artifical Intelligence, V. Mueller (ed.), Springer

  9. C. Bozsahin (2016). What is a computational constraint? In Computing & Philosophy, p.3-16, V. Muller (ed.), Springer.

  10. C. Horsman, S. Stepney S, R. Wagner R, V. Kendon. (2014). When does a physical system compute? Proc. Royal Society A, 470:20140182.

  11. D. Knuth (1996). Selected Papers on Computer Science, CSLI.

  12. D. McDermott (2016). GOFAI considered harmful (and mythical). Ms.

  13. P. Wadler (1997). How to declare an imperative. ACM Computing Surveys, 29:3, 240-263.

  14. E. Rieffel, P. Wolfgang (2000). An introduction to quantum computing for non-physicists. ACM Computing Surveys, 32:3, 300-335.

  15. A. Birhane (2021). Algorithmic injustice: a relational ethics approach. Patterns 2, February.

  16. A. Martin, M. Magnaudet, S. Conversy (2023). Computers as Interactive Machines: Can We Build an Explanatory Abstraction? Minds and Machines.

Weekly Course Outline (subject to change before presentations begin):

(NB. main readings for references to weekly reads. Number 0 means the textbooks.)

W1: Orientation (please attend, if you are registered or intend to register. We set the agenda)

W2: Why philosophers should care about computer science, and computer scientists should care about philosophy (0-1:ch.1-3)

W3-4: Programs in our lives; the compute cycle: encoding and decoding versus interpretation (9,11)

W5-6: Some experiences with the compute cycle (8)

Does nature compute? Representation (6,8)

W7: Clarifying the terms of discussion: Programs, from qubits to monads (12, 13)

W8: Panel 1: assessment so far (all of us)

W9-13: Presentations by the students.

W14: Panel 2 (with some invited guests)

Course Conduct:

Formal and informal lectures; paper reading/presentation and discussion in class; essay writing off class.

There is a discussion group. Membership is required for registered students. All quiz, etc. are announced there.

Student conduct: METU student code applies. All quiz, exam etc. are expected to be individual effort and wording.

Grading:

Term report, presentation, weekly essays, discussion. 10 essays total, 9 max counted toward grade. Essays account toward 54% of the total grade; others are equal weight.

-Cem Bozsahin