Sign In

Communications of the ACM


Up with Data Science, and the First Programmer

BLOG@CACM logo June 8, 2022

Data science is a new interdisciplinary field of research that focuses on extracting value from data, integrating knowledge and methods from computer science, mathematics and statistics, and an application domain. Machine learning is the field at the intersection of computer science and statistics, with many applications in data science when the application domain is considered.

From a historical perspective, machine learning has been considered part of artificial intelligence. It was taught mainly in computer science departments to scientists and engineers and the focus was placed on the mathematical and algorithmic aspects of machine learning, regardless of application domain. Thus, although machine learning deals also with statistics, which focuses on data and considers the application domain, until recently most machine learning activities took place in the context of computer science, where it began, and focused traditionally on algorithms.

Two processes took place in parallel to the accelerated growth of data science in the last decade. First, machine learning, a sub-field of data science, flourished, and its implementation in a variety of disciplines began. As a result, researchers realized the application domain should be considered in any data science problem-solving situation. For example, it is essential to know the meaning of the data in the context of the application domain to prepare data for the training phase and to evaluate the algorithm's performance based on the meaning of results in the real world. Second, a variety of people began taking machine learning courses, people for whom, as experts in their disciplines, it is essential to consider the application domain in data science problem-solving processes.

Teaching machine learning while neglecting the application domain is misleading. Such an approach guides learners to ignore the application domain even when it is relevant for the modeling phase of data science. In other words, when students learn machine learning without considering the application domain, they may become accustomed to ignoring the application domain. This may influence future professional decision-making processes.

Consider a researcher in social work who took a machine learning course but was not educated to consider the application domain in the interpretation of data analysis. The researcher is asked to recommend an intervention program. Since the researcher was not educated to consider the application domain, they may ignore crucial factors and rely only on the recommendation of the machine learning algorithm.

Other examples are in education and transportation, fields everyone feels they understand. As a result of a machine learning education that does not consider the application domain, nonexperts in these fields may assume they know enough, but may not understand the crucial role professional knowledge plays in decision-making processes based on the examination of the output of machine learning algorithms. This phenomenon is highlighted when medical doctors or food engineers, for example, are not educated to criticize the results of machine learning algorithms based on their professional experience.

We therefore propose to stop teaching machine learning to those whose core discipline is neither computer science nor mathematics and statistics. Instead, these populations should learn machine learning only in the context of data science, which highlights the relevance of the application domain in each stage of the data science life-cycle, and specifically in the modeling phase, in which machine learning plays an important role.

If our suggestion is accepted, not only will the interdisciplinarity of data science be highlighted, but the realization the application domain cannot be neglected in data science problem-solving processes will be further illuminated.

Don't teach machine learning! Teach data science!

Back to Top

Herbert Bruderer: Was Ada Lovelace Actually the First Programmer? August 8, 2022

In his report on Charles Baggage's analytical engine in tabular form, Luigi Federico Menabrea published a program for solving linear equation systems. This was in response to Babbage's talk at a Turin conference (1840) (see Luigi Federico Menabrea: "Notions sur la machine analytique de M. Charles Babbage," in: Bibliothèque universelle de Genève, 1842, new series, volume 41, pp. 352–376).

Ada Lovelace translated Menabrea's article into English and added comments describing a program for calculating Bernouilli numbers (see Ada Lovelace: "Notes by the translator," for L. F. Menabrea, sketch of the analytical engine invented by Charles Babbage, esq., in: Scientific Memoirs, volume 3, Richard and John E. Taylor, London 1843, pp. 666–731).

A number of books were issued for Lovelace's 200th birthday (2015).

Back to Top

Ada Lovelace Was First

"The most elaborate program developed by Babbage and Lady Lovelace for this machine was a routine for calculating Bernoulli numbers" (see Donald E. Knuth; "Luis Trabb Pardo: The early development of programming languages," in: Donald E. Knuth (ed.): Selected Papers on Computer Languages, Center for the Study of Language and Information, Stanford, CA, 2003, p. 5).

"There is direct documentary evidence that Ada Lovelace created this table (writing it out in pencil)" (see Thomas J. Misa: "Charles Babbage, Ada Lovelace, and the Bernoulli Numbers," in: Robin Hammerman; Andrew L. Russell (Eds.): Ada's Legacy, ACM/Morgan & Claypool Publishers, San Rafael, CA 2016, p. 15).

"Even if Babbage provided Ada with the mathematical expressions for the Bernoulli numbers, and assisted with the derivation of a general formula, the transformation of the general formula into a step-by-step algorithm remains Ada's achievement, as the letters clearly indicate" (see Thomas J. Misa: "Charles Babbage, Ada Lovelace, and the Bernoulli Numbers," in: Robin Hammerman and Andrew L. Russell (eds.): Ada's Legacy, ACM/Morgan & Claypool Publishers, San Rafael, CA 2016, p. 26).

"For Note G on the Bernoulli numbers, the table-algorithm has ten data variables, three working variables, and four result variables. The computation has just 25 operations, but there are in addition two nested loops: an outer loop consisting of steps 13–23, and two inner loops consisting of steps 13–16 and 17–20 […]. Nothing like it appeared in Menabrea's original" (see Thomas J. Misa: "Charles Babbage, Ada Lovelace, and the Bernoulli Numbers," in: Robin Hammerman and Andrew L. Russell (Eds.): Ada's Legacy, ACM/Morgan & Claypool Publishers, San Rafael, CA 2016).

"At the least, we can grant her primary authorship of the first algorithm intended for a computing machine" (see Thomas J. Misa: "Charles Babbage, Ada Lovelace, and the Bernoulli Numbers," in: Robin Hammerman and Andrew L. Russell (Eds.): Ada's Legacy, ACM/Morgan & Claypool Publishers, San Rafael, CA 2016, pp. 29/30).

Back to Top

Ada Lovelace Was Not First

"Lovelace is widely celebrated for a variety of reasons. She is variously described as a mathematical genius, as having a critical influence on the invention of the Analytical Engine, of being the first programmer, and of being a prophet of the computer age. The first two of these are unsupported by evidence of any kind and are readily disproved by the simple chronology of events. The third claim to fame (that she was the first programmer) is understandable but wrong. But the tribute of being a visionary of the computer age justifies as fully deserved the tributes paid to her for otherwise mistaken reasons" (see Doron D. Swade: "Pre-electronic computing," in: Cliff B. Jones and John L. Lloyd (Eds.): Dependable and historic computing, Springer-Verlag, Heidelberg 2011, pp. 75–76).

"The notes contain examples of algorithmic stepwise sequences of operations executed by the notional Analytical Engine to find solutions, what we would now call 'programs,' though neither Babbage nor Ada used these terms. The most detailed work example was a 'program' to compute Bernoulli numbers. So the first published example of a 'program' appeared under Ada's name. While it is edifying to describe her as 'the first programmer' and therefore the originator of the practices and procedures of computational solution by machine, it is misleading to do so. Those familiar with the archival sources are clear that the techniques and examples in the paper were those devised by Babbage much earlier and suggested or supplied by him" (see Doron D. Swade: "Pioneer profile Ada Lovelace," in: Resurrection. The Bulletin of the Computer Conservation Society, Winter 2010/2011, no. 53, page 33).

Back to Top


In the dispute between engineers (English technology historian Doron Swade and Australian Allan Bromley) and American historian Thomas Misa, one can concur with the engineers: as archive documents show, programs to solve linear equation systems and calculate Bernoulli numbers are probably attributable to Babbage. It can therefore be assumed Ada Lovelace is celebrated unjustly as creator of the first program.

Back to Top


Bruderer, Herbert: Milestones in Analog and Digital Computing, Springer Nature Switzerland AG, Cham, 3rd edition 2020, 2 volumes, 2113 pages, 715 illustrations, 151 tables, translated from the German by John McMinn,

Back to Top


Orit Hazzan is a professor in the Technion's Department of Education in Science and Technology; her research focuses on computer science, software engineering, and data science education.

Koby Mike is a Ph.D. student at the Technion's Department of Education in Science and Technology; his research focuses on data science education.

Herbert Bruderer (; is a retired lecturer in the Department of Computer Science at ETH Zurich and a historian of technology.

©2022 ACM  0001-0782/22/11

Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and full citation on the first page. Copyright for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or fee. Request permission to publish from or fax (212) 869-0481.

The Digital Library is published by the Association for Computing Machinery. Copyright © 2022 ACM, Inc.


No entries found