SlideShare una empresa de Scribd logo
1 de 1
Descargar para leer sin conexión
The Joy of
Programming                                                                                                              S.G. GaneSh

Believe It Or Not!                                                                                                              Part I
This month’s column is inspired by Ripley’s ‘Believe It Or not’. We’ll look at some unusual facts about
the Indian connections and contributions to computer science. even if you do not know much about
computers, I’m sure you will enjoy reading this!



Y
        ou may not believe the following trivia, but that’s            If you travel in South India, particularly Tamil Nadu, you
        where the fun lies!                                       can see beautiful ‘kolams’ on the floor in front of houses,
           A modern computer equivalent of a hashing              for decoration. They are related to ‘fractals’—self-similar
algorithm was used in Indian music a few centuries before         geometric figures—that are well known in computer science
hashing was invented for use in computer data structures!         in formal language theory and used extensively in image
    Hashing is a fundamental technique used to derive a           processing and graphics. To quote from Marcia Ascher’s
numeric key from a value to quickly find the index in a table.    book called Mathematics Elsewhere: An Exploration of
Many lovers of Carnatic music know the ‘Katapayadi Sutra’         Ideas Across Cultures: “In addition to their importance
that is used to find the ‘Mela’ number from a ‘Mela’ name; what   to the people of Tamil Nadu, the creation of kolam designs
they may now know is that it is in fact a hashing algorithm.      has become part of the computer science literature, serving
Hashing was originally developed by H.P. Luhn of IBM in           as examples for some types of languages. Thus, the kolam
1953 for use in computers; though the ‘Katapayadi Sutra’ was      provides an exemplar of the way mathematical ideas in
obviously not meant to be used for hash tables, it provided a     a traditional setting can reach beyond their own cultural
scheme to derive numbers from names, which is nothing but a       boundaries to enrich and contribute to scholarly interests.”
hashing algorithm as we know it today.
    The word ‘algorithm’ traces its origins to the                                                       Figure 1: The ‘snake kolam’ that
                                                                                                         can be produced from deterministic
Indian number system and algebra!
                                                                                                         context-free L-System
    The word ‘algorithm’ comes from ‘al-Khwarizmi’, the name
of an Arabic mathematician who wrote a book on the Indian
number system and algebra. The West learnt the numbering
system mainly from this book and referred to the book on
Indian numbers as ‘al-Khwarizmi book’ which when written
and pronounced in Latin became the ‘algorism’ book. To quote          If you have any interesting ‘believe it or not’ trivia like
from wikipedia: “The word ‘algorism’ originally referred only     those featured here, do feel free to send them to me.
to the rules of performing arithmetic using Arabic numerals
but evolved via European Latin translation of al-Khwarizmi’s       Further reading & reFerences
name into ‘algorithm’ by the 18th century. The word evolved
to include all definite procedures for solving problems or         •    	The Katapayadi Formula and the Modern Hashing
                                                                        ‘
performing tasks.”                                                      Technique’,	A.V.	Raman,	IEEE	Annals	of	the	History	of	
    India built its first electronic computer—TIFRAC—                   Computing,		1997
indigenously in 1956!                                              •    en.wikipedia.org/wiki/Algorithm#Origin_of_the_word
    TIFRAC (Tata Institute of Fundamental Research                 •    www.ias.ac.in/resonance/May2008/p420-429.pdf
Automatic Calculator) built at TIFR, Mumbai, was the first         •    	Mathematics Elsewhere: An Exploration of Ideas
                                                                        ‘
operational electronic computer developed in India. It                  Across Cultures’,	Marcia	Ascher,	Princeton	University	
was built using vacuum tubes; had 2 KB of 40-bit memory                 Press,	2002
words; and programming was done in its assembly language.          •    	 he	snake	kolam	image	used	in	the	article	is	
                                                                        T
Input was done using paper tapes and output with an                     taken	from	coco.ccu.uniovi.es/malva/sketchbook/
electronic typewriter. It was a huge machine with high power            lssketchbook/examples/fractal/fractal.htm
consumption, but it was powerful enough for scientists from all
over India to come and use the computer!                           S.G. Ganesh is a research engineer in Siemens (Corporate
    Many of the ‘kolams’ (seen in south Indian homes)              Technology). His latest book is “60 Tips on Object Oriented
                                                                   Programming”, published by Tata McGraw-Hill in December
are related to ‘fractals’ and can be generated by
                                                                   last year. You can reach him at sgganesh@gmail.com.
computer programs.


                                                                       www.openITis.com   |   LINUX For YoU   |   SepTember 2008     105

Más contenido relacionado

Similar a 21 Jo P Sept 08

Computer Scientific Applications
Computer Scientific ApplicationsComputer Scientific Applications
Computer Scientific Applicationsmuhammad-Sulaiman
 
AI in Manufacturing: Opportunities & Challenges
AI in Manufacturing: Opportunities & ChallengesAI in Manufacturing: Opportunities & Challenges
AI in Manufacturing: Opportunities & ChallengesTathagat Varma
 
EmergingTrendsInComputingAndProgrammingLanguages
EmergingTrendsInComputingAndProgrammingLanguagesEmergingTrendsInComputingAndProgrammingLanguages
EmergingTrendsInComputingAndProgrammingLanguagesDeepak Shevani
 
object oriented-programming
object oriented-programmingobject oriented-programming
object oriented-programmingRajendran
 
Mathematics applied in major fields of science and technology
Mathematics applied  in major fields of science and technologyMathematics applied  in major fields of science and technology
Mathematics applied in major fields of science and technologyshreetmishra98
 
M4 - Computing - History
M4 - Computing - HistoryM4 - Computing - History
M4 - Computing - HistoryJamie Hutt
 
Computer software
Computer software Computer software
Computer software Nans Tinghil
 

Similar a 21 Jo P Sept 08 (7)

Computer Scientific Applications
Computer Scientific ApplicationsComputer Scientific Applications
Computer Scientific Applications
 
AI in Manufacturing: Opportunities & Challenges
AI in Manufacturing: Opportunities & ChallengesAI in Manufacturing: Opportunities & Challenges
AI in Manufacturing: Opportunities & Challenges
 
EmergingTrendsInComputingAndProgrammingLanguages
EmergingTrendsInComputingAndProgrammingLanguagesEmergingTrendsInComputingAndProgrammingLanguages
EmergingTrendsInComputingAndProgrammingLanguages
 
object oriented-programming
object oriented-programmingobject oriented-programming
object oriented-programming
 
Mathematics applied in major fields of science and technology
Mathematics applied  in major fields of science and technologyMathematics applied  in major fields of science and technology
Mathematics applied in major fields of science and technology
 
M4 - Computing - History
M4 - Computing - HistoryM4 - Computing - History
M4 - Computing - History
 
Computer software
Computer software Computer software
Computer software
 

Más de Ganesh Samarthyam

Applying Refactoring Tools in Practice
Applying Refactoring Tools in PracticeApplying Refactoring Tools in Practice
Applying Refactoring Tools in PracticeGanesh Samarthyam
 
CFP - 1st Workshop on “AI Meets Blockchain”
CFP - 1st Workshop on “AI Meets Blockchain”CFP - 1st Workshop on “AI Meets Blockchain”
CFP - 1st Workshop on “AI Meets Blockchain”Ganesh Samarthyam
 
Great Coding Skills Aren't Enough
Great Coding Skills Aren't EnoughGreat Coding Skills Aren't Enough
Great Coding Skills Aren't EnoughGanesh Samarthyam
 
College Project - Java Disassembler - Description
College Project - Java Disassembler - DescriptionCollege Project - Java Disassembler - Description
College Project - Java Disassembler - DescriptionGanesh Samarthyam
 
Coding Guidelines - Crafting Clean Code
Coding Guidelines - Crafting Clean CodeCoding Guidelines - Crafting Clean Code
Coding Guidelines - Crafting Clean CodeGanesh Samarthyam
 
Design Patterns - Compiler Case Study - Hands-on Examples
Design Patterns - Compiler Case Study - Hands-on ExamplesDesign Patterns - Compiler Case Study - Hands-on Examples
Design Patterns - Compiler Case Study - Hands-on ExamplesGanesh Samarthyam
 
Bangalore Container Conference 2017 - Brief Presentation
Bangalore Container Conference 2017 - Brief PresentationBangalore Container Conference 2017 - Brief Presentation
Bangalore Container Conference 2017 - Brief PresentationGanesh Samarthyam
 
Bangalore Container Conference 2017 - Poster
Bangalore Container Conference 2017 - PosterBangalore Container Conference 2017 - Poster
Bangalore Container Conference 2017 - PosterGanesh Samarthyam
 
Software Design in Practice (with Java examples)
Software Design in Practice (with Java examples)Software Design in Practice (with Java examples)
Software Design in Practice (with Java examples)Ganesh Samarthyam
 
OO Design and Design Patterns in C++
OO Design and Design Patterns in C++ OO Design and Design Patterns in C++
OO Design and Design Patterns in C++ Ganesh Samarthyam
 
Bangalore Container Conference 2017 - Sponsorship Deck
Bangalore Container Conference 2017 - Sponsorship DeckBangalore Container Conference 2017 - Sponsorship Deck
Bangalore Container Conference 2017 - Sponsorship DeckGanesh Samarthyam
 
Let's Go: Introduction to Google's Go Programming Language
Let's Go: Introduction to Google's Go Programming LanguageLet's Go: Introduction to Google's Go Programming Language
Let's Go: Introduction to Google's Go Programming LanguageGanesh Samarthyam
 
Google's Go Programming Language - Introduction
Google's Go Programming Language - Introduction Google's Go Programming Language - Introduction
Google's Go Programming Language - Introduction Ganesh Samarthyam
 
Java Generics - Quiz Questions
Java Generics - Quiz QuestionsJava Generics - Quiz Questions
Java Generics - Quiz QuestionsGanesh Samarthyam
 
Software Architecture - Quiz Questions
Software Architecture - Quiz QuestionsSoftware Architecture - Quiz Questions
Software Architecture - Quiz QuestionsGanesh Samarthyam
 
Core Java: Best practices and bytecodes quiz
Core Java: Best practices and bytecodes quizCore Java: Best practices and bytecodes quiz
Core Java: Best practices and bytecodes quizGanesh Samarthyam
 

Más de Ganesh Samarthyam (20)

Wonders of the Sea
Wonders of the SeaWonders of the Sea
Wonders of the Sea
 
Animals - for kids
Animals - for kids Animals - for kids
Animals - for kids
 
Applying Refactoring Tools in Practice
Applying Refactoring Tools in PracticeApplying Refactoring Tools in Practice
Applying Refactoring Tools in Practice
 
CFP - 1st Workshop on “AI Meets Blockchain”
CFP - 1st Workshop on “AI Meets Blockchain”CFP - 1st Workshop on “AI Meets Blockchain”
CFP - 1st Workshop on “AI Meets Blockchain”
 
Great Coding Skills Aren't Enough
Great Coding Skills Aren't EnoughGreat Coding Skills Aren't Enough
Great Coding Skills Aren't Enough
 
College Project - Java Disassembler - Description
College Project - Java Disassembler - DescriptionCollege Project - Java Disassembler - Description
College Project - Java Disassembler - Description
 
Coding Guidelines - Crafting Clean Code
Coding Guidelines - Crafting Clean CodeCoding Guidelines - Crafting Clean Code
Coding Guidelines - Crafting Clean Code
 
Design Patterns - Compiler Case Study - Hands-on Examples
Design Patterns - Compiler Case Study - Hands-on ExamplesDesign Patterns - Compiler Case Study - Hands-on Examples
Design Patterns - Compiler Case Study - Hands-on Examples
 
Bangalore Container Conference 2017 - Brief Presentation
Bangalore Container Conference 2017 - Brief PresentationBangalore Container Conference 2017 - Brief Presentation
Bangalore Container Conference 2017 - Brief Presentation
 
Bangalore Container Conference 2017 - Poster
Bangalore Container Conference 2017 - PosterBangalore Container Conference 2017 - Poster
Bangalore Container Conference 2017 - Poster
 
Software Design in Practice (with Java examples)
Software Design in Practice (with Java examples)Software Design in Practice (with Java examples)
Software Design in Practice (with Java examples)
 
OO Design and Design Patterns in C++
OO Design and Design Patterns in C++ OO Design and Design Patterns in C++
OO Design and Design Patterns in C++
 
Bangalore Container Conference 2017 - Sponsorship Deck
Bangalore Container Conference 2017 - Sponsorship DeckBangalore Container Conference 2017 - Sponsorship Deck
Bangalore Container Conference 2017 - Sponsorship Deck
 
Let's Go: Introduction to Google's Go Programming Language
Let's Go: Introduction to Google's Go Programming LanguageLet's Go: Introduction to Google's Go Programming Language
Let's Go: Introduction to Google's Go Programming Language
 
Google's Go Programming Language - Introduction
Google's Go Programming Language - Introduction Google's Go Programming Language - Introduction
Google's Go Programming Language - Introduction
 
Java Generics - Quiz Questions
Java Generics - Quiz QuestionsJava Generics - Quiz Questions
Java Generics - Quiz Questions
 
Java Generics - by Example
Java Generics - by ExampleJava Generics - by Example
Java Generics - by Example
 
Software Architecture - Quiz Questions
Software Architecture - Quiz QuestionsSoftware Architecture - Quiz Questions
Software Architecture - Quiz Questions
 
Docker by Example - Quiz
Docker by Example - QuizDocker by Example - Quiz
Docker by Example - Quiz
 
Core Java: Best practices and bytecodes quiz
Core Java: Best practices and bytecodes quizCore Java: Best practices and bytecodes quiz
Core Java: Best practices and bytecodes quiz
 

Último

Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialJoão Esperancinha
 
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sectoritnewsafrica
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...amber724300
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessWSO2
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...Karmanjay Verma
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 

Último (20)

Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorial
 
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with Platformless
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 

21 Jo P Sept 08

  • 1. The Joy of Programming S.G. GaneSh Believe It Or Not! Part I This month’s column is inspired by Ripley’s ‘Believe It Or not’. We’ll look at some unusual facts about the Indian connections and contributions to computer science. even if you do not know much about computers, I’m sure you will enjoy reading this! Y ou may not believe the following trivia, but that’s If you travel in South India, particularly Tamil Nadu, you where the fun lies! can see beautiful ‘kolams’ on the floor in front of houses, A modern computer equivalent of a hashing for decoration. They are related to ‘fractals’—self-similar algorithm was used in Indian music a few centuries before geometric figures—that are well known in computer science hashing was invented for use in computer data structures! in formal language theory and used extensively in image Hashing is a fundamental technique used to derive a processing and graphics. To quote from Marcia Ascher’s numeric key from a value to quickly find the index in a table. book called Mathematics Elsewhere: An Exploration of Many lovers of Carnatic music know the ‘Katapayadi Sutra’ Ideas Across Cultures: “In addition to their importance that is used to find the ‘Mela’ number from a ‘Mela’ name; what to the people of Tamil Nadu, the creation of kolam designs they may now know is that it is in fact a hashing algorithm. has become part of the computer science literature, serving Hashing was originally developed by H.P. Luhn of IBM in as examples for some types of languages. Thus, the kolam 1953 for use in computers; though the ‘Katapayadi Sutra’ was provides an exemplar of the way mathematical ideas in obviously not meant to be used for hash tables, it provided a a traditional setting can reach beyond their own cultural scheme to derive numbers from names, which is nothing but a boundaries to enrich and contribute to scholarly interests.” hashing algorithm as we know it today. The word ‘algorithm’ traces its origins to the Figure 1: The ‘snake kolam’ that can be produced from deterministic Indian number system and algebra! context-free L-System The word ‘algorithm’ comes from ‘al-Khwarizmi’, the name of an Arabic mathematician who wrote a book on the Indian number system and algebra. The West learnt the numbering system mainly from this book and referred to the book on Indian numbers as ‘al-Khwarizmi book’ which when written and pronounced in Latin became the ‘algorism’ book. To quote If you have any interesting ‘believe it or not’ trivia like from wikipedia: “The word ‘algorism’ originally referred only those featured here, do feel free to send them to me. to the rules of performing arithmetic using Arabic numerals but evolved via European Latin translation of al-Khwarizmi’s Further reading & reFerences name into ‘algorithm’ by the 18th century. The word evolved to include all definite procedures for solving problems or • The Katapayadi Formula and the Modern Hashing ‘ performing tasks.” Technique’, A.V. Raman, IEEE Annals of the History of India built its first electronic computer—TIFRAC— Computing, 1997 indigenously in 1956! • en.wikipedia.org/wiki/Algorithm#Origin_of_the_word TIFRAC (Tata Institute of Fundamental Research • www.ias.ac.in/resonance/May2008/p420-429.pdf Automatic Calculator) built at TIFR, Mumbai, was the first • Mathematics Elsewhere: An Exploration of Ideas ‘ operational electronic computer developed in India. It Across Cultures’, Marcia Ascher, Princeton University was built using vacuum tubes; had 2 KB of 40-bit memory Press, 2002 words; and programming was done in its assembly language. • he snake kolam image used in the article is T Input was done using paper tapes and output with an taken from coco.ccu.uniovi.es/malva/sketchbook/ electronic typewriter. It was a huge machine with high power lssketchbook/examples/fractal/fractal.htm consumption, but it was powerful enough for scientists from all over India to come and use the computer! S.G. Ganesh is a research engineer in Siemens (Corporate Many of the ‘kolams’ (seen in south Indian homes) Technology). His latest book is “60 Tips on Object Oriented Programming”, published by Tata McGraw-Hill in December are related to ‘fractals’ and can be generated by last year. You can reach him at sgganesh@gmail.com. computer programs. www.openITis.com | LINUX For YoU | SepTember 2008 105