Entry 2 - George Boole and Boolean Algebra

Description of Topic
The name George Boole is not a household name by any means, and even to a lot of computer scientists and especially computer science students it probably does not ring much of a bell. But George Boole was one of the most important early pioneers to computer science because of his brilliant mind and his vast innovations in the fields of philosophy and mathematics. Growing up in Lincoln, England, Boole was a mathematical prodigy, surpassing his professors and becoming a teacher at the young age of 16.  He made numerous achievements in the field of mathematics including developing Invariant Theory, which later inspired Albert Einstein. ⁴ However, Boole was always fascinated by the relationship between mathematics and logic, and wanted to develop a way to link the two. He finally achieved this in 1847 when he published his essay Mathematical Analysis of Logic. In this essay, Boole described Boolean algebra, a new branch of mathematical logic in which there are two possible numerical outcomes: 1 or 0. True or false. 

Boolean algebra uses something called gates, which correspond closely to boolean truth tables in computer science. Basically, in boolean algebra, multiplication is equivalent to "and" and addition is equivalent to "or" (there are more gates but for the sake of simplicity we will only discuss these two in this blog). For example, if you take the equation 1 x 0, you would read it as 1 (true) and 0 (false) and evaluate whether the values are true. The resulting answer would be 0, or false, because the two values are not both true. The equation 1 + 0 would be evaluated to 1, because when using addition (or) you need to evaluate if either of the values are 1, and if one of them is then the equation is evaluated to 1. This is very similar to the truth tables that we have done in class, which shows that this concept of booleans dates back to before computers and has other applications outside of the world of computer science. 



Relation to Computer Science
During his lifetime, George Boole never had any concept of computers or how his mathematical theory would apply to modern computations. Boolean algebra was almost completely an abstract idea in his time, with no clear practical applications. However, in 1938 (after the death of Boole) a man named Claude Shannon realized that boolean algebra could be applied to circuits, with a 1 or a 0 denoting on or off. ⁶ Furthermore, using Boole's "and", "or" and "not" operators allowed for multiple circuits to be used together, and for the relationships between many circuits to be easily described. This was a massive innovation in the computer world, and it led to machinery being able to be programmed electronically, all thanks to theory developed by a mathematician nearly 100 years before. Aside from the actual circuitry possibilities that boolean algebra opened up, it also has applications in coding itself. In java, boolean is an actual type that can be used in many different instances. Booleans are also applied to conditional statements in "if statements" which allows for control flow to be extremely complex and for programs to advance over time. 

Boole's findings clearly made waves within the computing world well after his death, however these waves could potentially have been made much earlier. In last weeks blog, I discussed Charles Babbage and his difference engine, an early ancestor of the modern computer. Boole and Babbage actually met at the Great London Exposition of 1862. ³ Boole enjoyed seeing Babbage's difference engine, but their interaction ended there. One can only wonder what would have occurred if Boole had taken a larger interest in the difference engine and tried to apply the premise of his boolean algebra to it. They may have been able to develop a sort of computer well before it was actually created. Who knows where that would leave us today, if computers could potentially have accelerated in growth by 80 years. We will never know, but regardless, George Boole was a true pioneer of computer science even if he never knew it. 

References

1: “Boolean Arithmetic.” All About Circuits, EETech Media, www.allaboutcircuits.com/textbook/digital/chpt-7/boolean-arithmetic/.

2: “Boolean Logic.” Math Wiki, Fandom, 2 May 2014, math.wikia.com/wiki/Boolean_logic.

3: “Computer Science.” George Boole 200, University College Cork, georgeboole200.ucc.ie/boole/legacy/computerscience/.

4: “George Boole.” History of Computers and Computing, Babbage, Analytical Engine, history-computer.com/ModernComputer/thinkers/Boole.html.

5: “George Boole.” Wikipedia, Wikimedia Foundation, 30 Oct. 2017, en.wikipedia.org/wiki/George_Boole.

6: Kiersz, Andy. “This Simple Math Concept Went Nowhere For A Century And Then - BOOM - Computers.” Business Insider, Business Insider, 22 July 2014, www.businessinsider.com/boolean-algebra-computers-2014-7.

7: Marshall Brain "How Boolean Logic Works" 1 April 2000.
HowStuffWorks.com. <https://computer.howstuffworks.com/boolean.htm> 30 October 2017




Comments

  1. I love how you are digging into the history of Computer Science and introducing people like Boole! Even though we use Booleans in so many of our programs, I had never asked myself where the term Boolean came from and I honestly had no idea where the whole concept came from. Which I am a little sorry about, since I am a huge fan of integrating subjects that seem unrelated at first glance – like Boole did in his studies of mathematics and philosophy.

    And my first thoughts while reading your blog went straight to my biology class yesterday! We were talking about Mendelian inheritance and come to think of it, the those Punnet squares (the tables of recessive and dominant genes) are basically truth tables… I also remembered that during class, when we were talking about the genotype ratios (like, aa/AA/aA), the professor asked us to answer "explicitly using logic statements.” When he said that, my first thought was CS, of course. So thank you for helping me make more connections!

    ReplyDelete

Post a Comment

Popular posts from this blog

Entry 3 - Konrad Zuse: Father of the Computer

Entry 4 - Leonard Kleinrock: The ARPANET