Vivek Kulkarni, Principal Architect at Persistent Systems, has recently published a book, Theory of Computation with Oxford University Press, India. An author of over 15 books used throughout Indian Universities, Vivek is an avid writer and passionate technology wizard.
With more than 18 years of experience in academia and software industry, Vivek has served as a subject chairman for multiple subjects on the Board of Computer Engineering, University of Pune. He is the brain behind the System and Method of Universal Programming Language Conversion, which has been internationally recognized and patented in his name.
In an exclusive interview, Vivek Kulkarni talks about his latest book on Theory of Computation.
Why did you decide to write this book?
In my 3rd year as a Computer Engineering student, I was studying Computational Theory and I couldn’t find any reputable books in the market. 5 days prior to the final exam, I finally found a book. Despite being a tough read, I managed to study for the examination. In those 5 days I realized the importance of computational theory for any Computer Science graduate. As a result of this influence, I decided to take up teaching after graduation. My first job was at Cummins Engineering College in Pune, India where I taught only Computational Theory. Few years down the line, I also served as subject chairman on the Board of Computer Engineering, University of Pune.
In 1998, I published my first book on the subject and now with over 15 books on the subject used widely across throughout universities, I wanted to write a reference book, which would be followed by all the Computer Engineering/Science graduates across India and also as a reference book for those who would wish to learn the subject. I am extremely passionate about the subject and still very active as an academician. I voluntarily teach this subject to many engineering graduates from Pune. Theory of Computation is my first book with an international publisher, Oxford University Press (OUP).
How has Alan Turing inspired you?
Alan Turing, the founder of Computer Science, a mathematician, philosopher, code-breaker, was an extraordinary visionary of his time. His invention, the Universal Turing Machine (UTM), laid the foundation for today’s digital computers and thus a major contributor to Computability Theory.
While working on System and method of universal programming language conversion, I realized that no programming language that exists today or that might be invented tomorrow can do computationally more things than a UTM.
Who should read this book?
Theory of Computation is a textbook designed for students, pursuing undergraduate courses in Computer Science, Engineering, Computer Applications, and Information Technology. It can also be used as a reference for postgraduate courses in Computer Science and Engineering.
What approach did you use to write the book?
Computational Theory is the backbone for various computer engineering facets,compiler construction, lan?¡guage processing, and operating system design,among many others. The subject also has its roots in different programming paradigms such as procedural programming, object-oriented programming, and functional programming.
The book emphasizes on how to solve problems to the fullest, rather than only for a specific input condition. The language throughout this book is lucid – helping the reader understand complex mathematical concepts in an easy manner. Each procedure in the text is represented in an algorithmic form so that readers can learn the concepts in any programming language. Each algorithm is simulated in detail for the reader to understand its working for all possible sets of input conditions.
Illustrations and complete examples make it easy for readers to grasp the theory and mechanics behind concepts. Objective questions along with answers are listed at the end of each chapter to help readers validate their understanding of key concepts.
There are many other books on computational theory, how is your book different?
Most of them are difficult to comprehend at the graduate level. Beginners find it difficult to follow these books, as the concepts are explained in a complicated manner and they lack thorough examples. Additional, these books do not explore the applications behind theoretical concepts; they lack the connection with valuable programming concepts necessary for Computer Engineering students.
How was it writing a book with a full time job and other commitment?
Hectic is the simple answer. I worked on all Saturdays and Sundays since August 2011 till March 2013, including holidays. Together with many other personal responsibilities, it was a tireless period.
Any interesting incident that you came across while working on this book and you might want to share
After I signed the contract with OUP, my wife and I had one more reason to celebrate as she delivered our first baby girl on 30th August 2012,the last date for finishing my chapters. Finally, on the 13th of April 2013, when I received the copies of the book, my wife said, “look your child is delivered too it simply took 2 years to come to this world?Ǫ” It was indeed an amazing experience to publish with an international publisher!
So what’s next? Another Book?
I am interested in writing about Object Oriented Compiler Construction. However, I have not really planned for it yet.