Home About

On Building Blocks and Castles

About 300 BCE, Euclid of Alexandria composed a work a marvel. He collected te common mathematical truths of his day, invented some and wrote an incredibly beautiful book titled “The Elements”. Today it’s known as Euclid’s Elements. The Elements is also a historical book because it set the foundations which revolutionarized scientific thought forever. The method Euclid used is called the axiomatic method.

Starting from some very primitive elements and a few basic rules he called axioms or postulates, Euclid constructed a form of plane geometry a.k.a Euclidean Geometry and did some number theory. In other words, he started with simple points in a plane, and ended up with the 5 platonic solids. He built castles from his bricks and empires starting from nothing but points, which he defined as “that which has no parts”.

Linguists construct languages from basic building blocks like characters. Characters are used to build words, words to build sentences, sentences to build paragraphs, then pages, then chapters, then books, then collections, then libraries and so on.

Biologists start with cells, which are defined as the basic functional units of organisms, then the cells are combined, intelligently, to form tissues, then organs, them systems, then organisms and so on. How beautiful these systems are. They arise from basic primitive components and they are combined to form the most complex organisms we can dream or not dream of.

Chemistry, Physics, Economics and most of the sciences have their primitive elements from which every other component can be built from.

This brings me to my favorite, computer science. Computer science is a relative of Mathematics. But unlike mathematics, computer science is concerned with the formailization of imperative knowledge. Mathematics is primarily concerned with formal means of talking precisely about declarative knowledge. That is knowledge about what is true in space and time. The Mathematician is able to observe phenomena, express them in concise symblic forms.

The Mathematics of motion, also called kinematics describes motion in 1, 2, 3 and higher dimensions. It formalized intuitions about motion. By using Mathematics, we are able to speak precisely about what motion is and eventually understand how particles in motion are displaced. By learning and speaking Mathematics, we can communicate these processes and pass around what is happening.

Like other sciences, mathematics uses basic logical rules and building blocks. Its objects are numbers, points, triangles and its basic rules and arithmetic and algebraic rules for addition, subtraction, multiplication and division of its objects. From these rules, simple objects can be combined to form compound objects, larger objects can be decomposed into their components and phenomena can be represented and investigated using these mathematical objects and methods.

Mathematicians often find much fun in building mathematical models, but they end up communicating just the truths or conclusions of their findings. They leave out the actual processes of computing values or objects. Isaac Newtion once said, “Geometry does not teach you how to draw lines, but requires you to draw them”. Mathematics also does not teach you how to use numbers and other objects but requires you to use them. The how is often figured out in other practical fields. For Isaac Newton, mechanics helped the geometer become more skillfull. And the geometer used mechanics as a means of drawing lines in his/her practice of geometry.

If Mathematics does not tell us much about how to perform mathematical operations or computation, who and what does? Computer science does. At the center of computer science is the idea of processes, or method, so to speak. In computer science, we build processes to evolve from a starting point, with a set of inputs, and proceeds to a finish, whence they return results. Mathematical knowledge plays an important role, of course, in comuter science, in the sense that mathematical truths serve as means of verfiying the validity of the results returned by our computational methods.

In computer science, we start with a simple primitive object called a binary digit or bit. The bit is either 1 or 0. In the wisdom of Euclid, we can define a bit as that which has no parts, hence it can’t be broken down into other discrete parts. Bits are however so primitive, so the computer science groups them into 8s and calls each group a byte. Like the biologists calls the cells the basic structural and functional unit, computer scientists can be said to call the byte their basic structural and functional unit.

Bytes are combined to represent other objects like characters, sentences, pictures, databases, operating systems and other objects we can imagine. In a way, we are doing what Euclid did, but just with some other technology. Eventually, we start from bits, and end up building castles and empires like google, amazon, facebook, online libraries and email :-)

Thank you Euclid!

Fork me on GitHub