Purpose: "Classifying is a central activity in object-oriented pro- gramming and distinguishes it from procedural pro- gramming. Traditional logic, initiated by Aristotle, assigns classification to our first activity in reasoning, whereby we come to know what a thing is. Such a grasp of the thing's whatness is the foundation for all further reasoning about it. This connection between Aristotle's way of classify- ing and object-oriented programming is sometimes ac- knowledged, but rarely explored in depth3 We explore this relation more closely and more carefully..." (p. 237).
Findings: "Symbolic logic is vital to the student of computer sci- ence in coming to understand how machines operate: by the abstract manipulation of symbols, with logical consistency, and without regard for meaning or content. However, in programming we name things with words that have meaning to the programmer (although not to the machine). It is simply foolish to pretend that human reason is not concerned with meaning, or that programming is not an application of human reason. Traditional logic is concerned with developing the student's ability to understand what each thing is; that is, with developing the student's ability to handle mean- ing. This is important to all students insofar as they are human, and therefore their reasoning is concerned with content" (p. 244).
Recommendations: "It is doubly important to all students of com- puter science, whose future success will depend upon their ability to express complex technical ideas clearly to both computers and their colleagues. It is triply im- portant to all students of object-oriented programming, and the reasons are twofold: (1) the form of object- oriented programs reflects the form of the syllogism; and (2) traditional logic is where the ideas underlying classification are considered as such, without resorting to metaphor" (p. 244).