Evolution of Software Development Education – Part I: Beginning of Computing and Computing Education

by  Sanjay Goel , http://in.linkedin.com/in/sgoel

Computing in the form of processing: understanding, creation, manipulation, communication, expression, and rendering of symbols has always been a very important natural activity of human mind. Though the use of the term computing is not limited to be used in the limited context of processing of formal mathematical symbols, computer software transcends such boundaries to support processing of diverse range of symbols. With the invention of computing machines, the field of computing has advanced beyond one’s imagination. Computing has transformed many aspects of everyday lives for a vast majority of mankind. The role of computing has been evolving from enhancing efficiencies through otherwise by-passable support systems to creating real-time mission critical systems. The initial application domains driving computing till 1960s were code breaking, engineering calculations, scientific simulation, as well as repetitive data processing in defense, space, government, insurance, banking, and some other large business organizations. Some attempts of language translation and information retrieval were also made even in 1950s. Outgrowing the initial goal of doing repetitive mathematical calculations, computers have already permeated almost all spheres of human activities even including arts and sports. The socio-cultural effect of computing and communication technology is much wider, deeper, and faster than the effect of other technologies. Computing has also been used to expand our understanding of mind and reasoning.

India’s decimal number system inspired ninth century Persian mathematician Mohammed ibn Musa al-Khowarizmi to write a book on calculating using this number system. Based on his name, Algorism slowly started referring to arithmetic operations in this number system. These algorisms were strictly mechanical procedures to manipulate symbols. They could be carried out by an ignorant person mechanically following simple rules, with no understanding of the theory of operation, requiring no cleverness and resulting in a correct answer. The word Algorithm was introduced by Markov in 1954. Before the 1920s, the word computer was used for human clerks that performed computations. In 1936, Turing and Zuse independently proposed their models of the computing machine that could perform any calculation that can be performed by humans. In the late 1940s, the use of electronic digital computing machinery based on stored program architecture became common.

Late 1950s saw the arrival of high level languages. The Association of computing Machinery (ACM) was founded by Berkeley in 1947. It started its first journal in 1954. Mathematical logic and electrical engineering provided the foundation for building modern computers. The personnel training responsibility was largely taken up by the manufacturers themselves. Most early programmers were math graduates, many of them were women. In the 1950s, a large numbers of private computer schools emerged to fill the burgeoning demand. The word software was coined by John Tukey, famous statistician, in 1958. The words computer science, information systems, information technology, system analysis, and system design were being used even before. Dunn of Boeing  defined Information Technology as a body of related disciplines which lead to methods, techniques, and equipment for establishing and operating information processing systems. He also provided a simple definition of information systems as a connective link between five basic management functions of defining objectives, planning, gathering resources, execution, and control. In 1968, the computer science study group of NATO Science Committee coined the word software engineering to imply the need to transform software design and development into an engineering-type discipline. ‘

Till 1970’s, computing was often regarded as a subfield of one or more of a mixture of disciplines of mathematics, operation research, electrical engineering, statistics, industrial engineering, and management. Many of existing undergraduate programs of these disciplines were modified to accommodate some of the naturally fitting aspects of computer science. Mathematics departments taught practice and science of programming and numerical analysis. The electrical engineering department emphasized on design and construction of electronic digital computer, and management schools paid more attention of design of information systems. Initially, masters and later undergraduate degree programs and departments of computer science were emerging as offshoots of the mathematics departments in colleges of science and arts. Stanford established its computer science department in 1962, and by the late 1960s many universities in United States had started computer science departments. Concurrently, the management schools and others interested in business data processing applications focused on information systems, and started developing these programs. The engineering schools offered computer technology and computer science programs, and also computer as an option in various existing programs.