Why CS3110 is like Studying Aristotle

One of the Philosophy classes I’m taking this semester is PHIL3203: Aristotle. I did not have a particular interest in studying Aristotle, but I wanted to take a higher level Philosophy class and the professor teaching this class has great reviews. So I signed up for it. For almost three quarters of the semester, we just studied Aristotle’s texts. We started with his categories, rules of logic and proof, theory of knowledge, and went on to study his books on physics, biology and metaphysics.

I found two things difficult about studying Aristotle –

1) Reading Aristotle.
The text we use is an English translation of the Greek sources. Although Aristotle is a far better writer than most other philosophers (I was almost in tears – not of joy – when I  had to read Kant last year) and has a great style of writing his essays, the English is not very straightforward. The style of writing was unfamiliar to me because of how old the text is and several words were misleading because Aristotle used them in contexts that they are no longer used in. Just when I became comfortable reading Aristotle, I ran into roadblock two.

2) What a strange worldview!
When we began reading Aristotle’s books on Physics, I encountered the evolution of scientific knowledge very drastically. Many of the fundamental assumptions Aristotle holds about the physical world and the laws of nature are very different from what we accept to be true now. Aristotle’s conception of the physical world was entirely foreign to me. It was difficult to set aside the model of the physical world I’ve been taught for years throughout school and college and fairly evaluate Aristotle’s arguments in light of his own assumptions. Following his explanations of some physical phenomena was a task that took great mental strength simply because they sound so absurd today.

In the last few weeks, the nature of our study has changed. We don’t just read Aristotle’s texts and try to understand them now. In class, our professor sometimes presents us with puzzles. Our class of about 15 students tries to come up various Aristotelian explanations for the puzzle and then we try to judge which one Aristotle would most likely agree with. Basically, now that we have some understanding of Aristotle’s texts, we put on the Aristotle cap and try to think like Aristotle would.


How is this like CS3110 (Functional Programming and Advanced Data Structures) at all? CS3110 class is the third programming class a CS major might take at Cornell. The first two are taught using Java and Python, which are both imperative programming languages. A lot of students find CS3110 challenging because it introduces functional programming, a vastly different paradigm. It’s not that functional programming itself is difficult. But for students who have gotten used to the thinking imperatively, setting aside the imperative thought process and embracing a new model of problem solving can be challenging. In this way, it’s exactly like studying Aristotle. First you have to learn a new language, OCaml in CS3110 and Aristotelian-English in PHIL3203. Then, you must set aside your current model of the world and learn to think fluently in a strange, new model of the world. Both classes teach you to think using differing models and to be comfortable switching between the old and the new. Computer Science and Philosophy aren’t so disparate after all!