Thursday, January 3, 2013

Computer Programming is Good for the Brain and the Soul

Being creative is part of our DNA.

Some of us are artists, musicians, scientists, writers, educators, technologists and engineers, leaders of corporations, doctors and nurses, and/or entrepreneurs.

Being creative requires focus to accomplish the task and in this world of increasing distractions and interruptions (some of it caused by advances in computer technology) I argue that computer programming is good for the brain and for the soul.

Computer programming requires precision, attention to detail, creativity in terms of identifying the appropriate data structures and the design of the software, and knowledge of the underlying algorithm(s), whether developed by you or by someone else. You need to have patience and stamina and having curiosity also helps. I am always eager to see how the software programs that I develop will work. We strive for correctness of our codes and of the algorithms that we implement, with the realization that, even if initially developed as research, they may eventually be applied to solve problems ranging from those in transportation, energy, and infrastructure, to healthcare, supply chains, financial analysis, and even disaster planning and management.

In writing a computer program you are creating something that is useful and something that may be quite novel and original.

I have written previously about the importance of including computer programming in curricula and hope that every child before graduating from high school gets a chance to explore the power (and joy) of computer programming. Such experiences would add to a deeper understanding of technology and the underlying algorithms and would create, I believe, a richer appreciation of mathematics and its role in our world today.

Recently, I have been working on different computer programs (software codes) for game theory problems in applications ranging from the redesign of the Internet, on a project funded by NSF,  to competition in supply chain networks with outsourcing. There is great satisfaction in seeing the mathematical models that one develops and implements algorithms for actually being solved with code that you have programmed yourself. It is very rewarding to see your focus and efforts resulting in what is a type of product. One can then also address and answer so many interesting questions through simulations!

Hence, computer programming is good for the soul, too!