Explore chapters and articles related to this topic
The composite professional
Published in Riadh Habash, Professional Practice in Engineering and Computing, 2019
The electromechanical age signaled the beginnings of telecommunications. This age can be outlined around the time between 1840 and 1940. Charles Babbage (1791–1871) worked on his “difference engine”, a mechanical computer which could perform mathematical calculations. The world’s first computer algorithm was written by Ada Lovelace (1815–1852) in the UK. In 1890, Herman Hollerith used punch cards to help classify information for the US Census Bureau. John Von Neumann (1903–1957) developed many concepts, including the “Von Neumann architecture”. In the US, Alonzo Church (1903–1995) developed the key concepts of computability and computing, such as lambda calculus. In the UK, Alan Turing (1912–1954) introduced many core concepts of computer science, including “Turing machine”, and “Turing test”. Grace Brewster Murray Hopper (1906–1992), an American computer scientist and US Navy rear admiral, was a pioneer of computer programming who invented one of the first compiler-related tools. The first, most famous computer, called Electronic Numerical Integrator and Computer (ENIAC), was built in the 1940s, and the first hard-disk drive, weighing a ton and storing five megabytes, was built in 1956.
L
Published in Phillip A. Laplante, Dictionary of Computer Science, Engineering, and Technology, 2017
Lambda Calculus a notation designed by Alonzo Church that uses a functional notation to bind values to names. This notation was an early version of a functional language. The language LISP is an implementation of the notation of the Lambda Calculus.
Teaching Programming in the 21st Century
Published in Journal of Computer Information Systems, 2023
We can trace the origins of functional programming to the lambda calculus developed by Alonzo Church,14 which is based on the successive application of functions. This feature, when properly used, allows to describe and implement parallel operations in the functional paradigm. On the other hand, recursive functions also allow repetition of tasks to be performed multiple times. But significant differences between both models can be considered for appropriate learning of data dependences and efficient parallel programming approaches. We will focus here on high-order functions and recursion, which play an essential role in the way we may help students to understand data dependencies and their influence on how we deploy parallel programming.