by: Ryan Cashen
I didn’t start programming until my Freshman year of college, where I was required to take a “Computational Programming” class as part of my Chemical Engineering curriculum. At first it was a bit overwhelming, but it became easier after realizing you could just google how to do each individual task you needed to do, just like you can search how to say a new phrase in a new language. After gaining a bit more familiarity, I started to see the potential applications.
Hobbyists can interface with little robots and make lights blink, make speakers play songs and use a knob as a volume control, power outlets on and off at set times of the day, and so much more (check out Arduinos if you are curious)!
Picture of an Arduino microcontroller. Arduinos are excellent introductory devices to get involved in code that interfaces with real world devices, like lights, speakers, sensors, etc.
There are many ways that programming can interface with the real world through physical devices, but there is a lot of power within programs that run on your computer alone, too. Beyond the software that we use to write documents, listen to music, and view webpages such as this one, there is an entire realm of computational programming that researchers can use to manage information gathered during experiments, identify relationships between various properties in the real world, and find the best ways to communicate these results. Many different programming languages are used for a variety of such tasks, including Python, varieties of C, Matlab, Java, etc. Check out this website for more information about some popular programming languages. Programming has revolutionized our world, becoming ubiquitous in many aspects of our lives. Today, I am going to share a bit of my perspective about how programming applies to the world of research. Let’s get started!
What is computational programming?
The way that I see it, coding in general is just a series of defined logical steps that you tell a computer to take. All that really means is you told the computer what to do, and under which circumstances to do it. In some simpler cases, you can imagine just programming in a series of calculations, much like you would do in Microsoft Excel. Translating these calculations into a programming language is one of the simplest cases of computational programming. The added benefit of computational programming instead of using an interface like Excel is how well it can be adapted to generalize repetitive tasks. One of my advisors once told me “If I have to do a task once, I’ll do it manually. If I have to do it twice, I’ll make a code for it. If I have to do it 100 times, it’s already done.” As a side note, Artificial Intelligence (AI) raises debate about “how defined” a program is, but that’s a story for another day. In general, computational programming makes use of a chain of logical steps that are performed automatically. Are you measuring a ton of data and want to have the computer identify when some event happens and find the cause of it without having to manually look through all of the data? Congratulations, programming is now your best friend!
An example of programming that might apply to researchers is computational programming for statistics of gathered data. If we are to make claims about discovering something new and contributing to a field of knowledge, we must be confident of our results. This means running repetitions of experiments, analyzing errors to understand if changing one variable really has an impact on another, forming models to explain these impacts, and repeating this process tens to hundreds of times to back up claims with evidence. Programming is vital in this step, in that it makes these tasks simple, and brings feasibility to some tasks that would otherwise be too impossible to do manually.
Next time that I write for ISEE, I’ll be discussing how computational programming can take many forms in Chemical Research. Stay tuned!