School of Computer Science and Engineering
Department of Computer Engineering and Technology
Biography Study Component
Academic Year: 2024-25 (SEM -I)
1 Class and Branch SY / TY / BTech (CSE/AIDS/CSBS )
2 Panel J
3 Course Name Data Structures.
4 Course Code CSE2PM01A
5 Name of Famous Scientist/Researcher Alan Turing.
6 Name of Students Anshul Kumaria – 02.
( Group Activity – 6 to 7 students ) Arya Kulkarni – 10.
Gaurav Mahajan – 35.
Daiwiik Harihar – 38.
Rishabh Zambre – 41.
Farjad Syed – 42.
7 Number of Students Attended Session 6
8 Date of Conduction 22-10-24
9 Subject Teacher Nikhil Mhala.
Biography of Alan Turing
Alan Mathison Turing was an English mathematician, computer
scientist, logician, cryptanalyst, philosopher and theoretical biologist. He was
highly influential in the development of theoretical computer science, providing
a formalization of the concepts of algorithm and computation with the Turing
machine, which can be considered a model of a general-purpose computer.
Turing is widely considered to be the father of theoretical computer science.
Turing devised techniques for speeding the breaking of German ciphers,
including improvements to the pre-war Polish bomba method,
an electromechanical machine that could find settings for the Enigma machine.
He played a crucial role in cracking intercepted messages that enabled the
Allies to defeat the Axis powers in many crucial engagements, including
the Battle of the Atlantic.
After the war, Turing worked at the National Physical Laboratory, where he
designed the Automatic Computing Engine, one of the first designs for a
stored-program computer. In 1948, Turing joined Max Newman's Computing
Machine Laboratory at the Victoria University of Manchester, where he helped
develop the Manchester computers.
Alan Turing’s work laid the groundwork for many concepts that are integral to
the field. Here are some key contributions relevant to data structures and
algorithms:
The Turing Machine:
A Turing machine is a mathematical model of computation describing
an abstract machine that manipulates symbols on a strip of tape according to a
table of rules. Despite the model's simplicity, it is capable of implementing
any computer algorithm.
With this model, Turing was able to answer two questions in the negative:
• Does a machine exist that can determine whether any arbitrary machine
on its tape is "circular" (e.g., freezes, or fails to continue its
computational task)?
• Does a machine exist that can determine whether any arbitrary machine
on its tape ever prints a given symbol?
Thus, by providing a mathematical description of a very simple device capable
of arbitrary computations, he was able to prove properties of computation in
general. Turing machines proved the existence of fundamental limitations on
the power of mechanical computation.
The concept of a Turing machine is still used in complexity theory and
computational models to analyze algorithmic efficiency (e.g., time complexity,
space complexity).
The Universal Turing Machine:
The Universal Turing Machine is an extension of the Turing machine concept,
capable of simulating any other Turing machine. This concept introduced the
idea of programmability, where a single machine can run any algorithm given
the correct input, which became the theoretical basis for modern general-
purpose computers, which are able to run any algorithm.
Cryptography:
Turing worked on breaking the German Enigma code, with his work involving
the development of algorithmic and mechanical methods to systematically test
and break encryption. Turing's Bombe machine was an early form of a
heuristic algorithm designed to break the Enigma cipher. His approach to
breaking the Enigma machine contributed to developing efficient methods for
solving large-scale algorithmic problems.
Early Programming Languages:
Turing’s concepts on computing and algorithms influenced early programming
languages and formal systems for describing algorithms like Lambda Calculus
and later, languages like LISP and ALGOL. His foundational work on
algorithms and computation influenced the development of programming
languages, which in turn influenced how data structures are implemented and
manipulated in code.
The Stored Program Concept:
Turing’s work on stored-program computers (influenced by John von
Neumann’s architecture) helped establish the principles where both data and
algorithms are stored in memory. The stored-program concept enables dynamic
manipulation of data structures in memory and allows for more complex
algorithmic operations to be carried out, making it easier to create and modify
data structures like arrays, lists, and trees.
Computational Complexity:
Turing’s insights into computation also opened the door to the study of
algorithm efficiency. His early work on computational theory is the basis for
understanding complexity classes, such as P and NP, which are essential when
designing efficient algorithms.
Presentation: