What is the History and Philosophy of Coding?
The philosophy of computer science is concerned with those ontological, methodological, and ethical issues that arise from within the academic discipline of computer science as well as from the practice of software development. Thus, the philosophy of computer science shares the same philosophical goals as the philosophy of mathematics and the many subfields of the philosophy of science, such as the philosophy of biology or the philosophy of the social sciences. The philosophy of computer science also considers the analysis of computational artifacts, that is, human-made computing systems, and it focuses on methods involved in the design, specification, programming, verification, implementation, and testing of those systems. The abstract nature of computer programs and the resulting complexity of implemented artifacts, coupled with the technological ambitions of computer science, ensures that many of the conceptual questions of the philosophy of computer science have analogues in the philosophy of mathematics, the philosophy of empirical sciences, and the philosophy of technology. Other issues characterize the philosophy of computer science only. We shall concentrate on three tightly related groups of topics that form the spine of the subject.
Attendance
Education is a cooperative endeavor between the student and the instructor. Instructors plan a variety of learning activities to help their students master the course content. Your contribution is to participate in these activities within the framework established in the class syllabus.
Successful learning requires good communication between students and instructors; therefore, in most cases, regular classroom attendance, or regular participation in the case of a non-traditional course format, is essential.
It is your responsibility to inform your instructor prior to an absence from class if this is requested by the instructor in the class syllabus. You are responsible for making up all course work missed during an absence. In the event of unexplained absences, your instructor may withdraw you administratively from the course.
Prerequisites
- One of the following:
- 80% or higher final grade in one of these courses:
- 001N: Introduction to Java
- 001B: Introduction to Python
- 65% or higher final grade on one of these exams:
- 001N: Introduction to Java Final
- 001B: Introduction to Python Final
- 80% or higher final grade in one of these courses:
- Fundamental understanding of Java or Python
- Self-reliance, logic and patience.
Requirements
- Computer with a good internet connection.
- Webcam.
- Microphone.
- Free time to finish homework assignments.