# Algorithms, Arithmetic and Aristotle: Student Combines Philosophy and Mathematics in Studies and Life

Liberal arts universities pride themselves on being able to offer their students education across diverse fields of study. It is the belief that it leads to a deeper understanding of topics and creative problem solving when issues arise. Senior Colin Causey is learning just how true that is in his final semester as a philosophy and computer science double major with a minor in mathematics.

“Philosophy has absolutely impacted how I view mathematics,” Causey emphatically stated during a discussion about his research projects. “The most interesting philosophical question we can ask about math is, does it exist independently of the mind, or is it merely a product of the human intellect?”

This question is what has driven Causey to pursue a full field of study spanning the hard and soft sciences. Captivated by the logical puzzles that are introduced in philosophy, he has utilized that way of thinking as a way to comprehend complex mathematical theories. While Causey has been interested in computer science since he was in the first grade, his fascination with philosophy started the summer before his senior year of high school. He knew double majoring was the right choice because a degree in philosophy can lend its skill set to any other field. As philosophy is the study of fundamental issues such as existence, knowledge, values and logic, it is natural that it intertwines with mathematics, where systems are inherently based around logical reasoning. “The truth is you can apply philosophy to any and everything,” he said. “I think the greatest virtue of philosophy is that it doesn’t necessarily teach you what to think, but it teaches you how to think, which is vital in any endeavor.”

How Causey applies this philosophical principle can be seen in his research projects completed in his math and computer science courses. In 2017, he dedicated his time to working on two projects that blend math and computer programming: an algorithm for finding eulerian walks in a graph and arbitrary precision arithmetic.

## Eulerian Walks

Graphs consist of nodes, and edges that connect the nodes. When imagining graphs, one can envision a city with the nodes being buildings and the edges as roads that connect the buildings. To be considered a Eulerian walk, you need to be able to walk down every road exactly one time without backtracking. To take it one more step, a closed Eulerian walk requires you to be able to start and finish at the same building while only walking down each road once. When Causey began learning about this mathematical concept in class, the professor had them drawing the graphs by hand. He said that it wasn’t so bad if the graph had only a few nodes, but he thought further and realized how daunting it would be if there were thousands of nodes. “I immediately asked myself if I could make a computer solve the question of if there was a Eulerian walk,” Causey said. “For things like shipping logistics where there could be thousands of possible hubs, this concept can be used to optimize that but only if it can be modeled quickly.” He set to work developing a computer algorithm that could take into account all the nodes and edge,s and even create possible solutions like adding a parallel edge if a true Eulerian walk was not possible.

A unique issue when designing this algorithm was how to represent the data. When plotting the data by hand a physical model is created, but that cannot be coded into a computer. “A computer doesn’t look visually at things, that’s just not how it operates. I had to think about how a computer would represent a graph internally and work around that,” Causey explained.

While this project was completed for a purely theoretical purpose, the algorithm can be used in real-world applications. The most well-known of these applications is the classic mail route question, but a more modern and unique application is DNA sequencing. Plotting genomes has been the subject of medical marvels for the past decade and the technology which makes it possible is continuously improving. By understanding how computers view physical representations, whether it be a graph or a gene, calculations can be done faster and medical research can move forward.

## Arbitrary Precision Arithmetic

Also known as multiple precision or infinite precision, arbitrary precision arithmetic, simply put, is computer arithmetic with numbers that are thousands of digits long. To put it in perspective, 1 billion is only 10 digits long. This type of arithmetic is typically used on very large scales, like outer space, or very small scales, like quantum mechanics, but many people interact with it daily as a tool to fight computer security threats through encryption codes.

When computers work with large numbers, they run into the issue of size. Modern commercial computers are 64 bits, which means they can store over 18 quintillion different values. For the average person, that is more than enough. For scientists and mathematicians, more information and space is needed. Causey discovered this issue during a programming class when he wanted to test a larger number in a factoring algorithm he had created. Once he discovered his computer could not handle the calculation, he approached his professor about a possible solution. “The only thing I could do was look it up in a big number arithmetic library. I figured if that was the solution, I might as well build my own,” Causey explained. The library he developed operates not by having the computer view each number as a whole, but rather by breaking up the numbers into the individual digits, which are then fed into the central processing unit one at a time. Once the calculation runs, the answer is stored and then placed in the correct column to be represented in the final calculated number. The largest number Causey has calculated is 2^{100000}, which ends up being over 16,000 digits and took over 20 minutes to compute.

## Looking to the Future

Taking on a double major and a minor is not a traditional academic path. Causey credits the University of Findlay with giving him an exceptional education while ensuring he graduated in a reasonable amount of time. “Findlay has been great. There was maybe a semester or two where I had to take a class the following semester, but nothing that prevented me from graduating on time,” said Causey.

Causey is interested in returning to school for a doctorate to pursue research someday, but has more immediate plans following graduation having accepted a position at Argonne National Laboratory, just outside of Chicago, Illinois. One of the projects he will work on is designing a globally-accessible thermal chemical database that scientists can add to and take advantage of. The position revolves around computer science research, but Causey said he will use his philosophy degree to help him think about problems in a creative way.