Why to teach computer science (informatics) as a mandatory subject in schools? Why is it not sufficient to limit computer science education to specialists developing the information technology? The short answers are:
- The computer scientist way of thinking is a natural part of human way of thinking, and it has been and is essentially contributing to the development of human society.
- Without understanding basic concepts of computer science, one cannot understand the world around and so is not sufficiently educated.
- Teaching computer science in a proper way can essentially enrich the didactic approaches in general.
A more detailed answer is offered in this article. Moreover, we argue for an independent subject for computer science (“Informatik”) in Swiss schools.
Computer Science contributions to the development of human civilization
The aim here is not to discuss the current unmeasurable, huge influence of information technology and computer science on life in the human society. We claim here that this was the case for at least the last 5400 years. For this purpose, we consider three roots of computer science – information and data representation, automation and algorithms, and finally information technology.
Information and data
Writing was developed in many cultures and the oldest known script in Mesopotamia is 5400 years old. What was the main motivation for that? Not writing the teachings of religious leaders, legends, or poems! Mesopotamia at that time had grown to about 1 Million inhabitants and of course required administrative processes like registration of properties or tax payments. But how to do this, when the only place to store information (e.g. how much to pay, who already paid, who has still to pay) is the mind of state officials? It was for sure a great base for mistakes and corruption. Keeping in mind that big data does not mean a fixed size or a huge amount of data, but an amount of data that cannot be sufficiently processed with the technology that is available, Mesopotamia had the first big data crisis in the history of humans. Mastering administration was the very central problem of all societies that became large. The solution was the invention of writing (script). With writing humans had built for the first time in their history the opportunity to store information “externally”, i.e. not in their heads. It does not matter which media (stones, leather, papyrus, etc.) they used, the point is that since the discovery of script, one is able to “store” information for arbitrarily long period of time, one can “transport” information and one can even sell it. If we like to speak about digitalisation in these past years, one has to remember that digital data representation is nothing but representing information as a sequence of discrete symbols. And this is exactly what happened 5400 years ago in Mesopotamia and then again and again in many different cultures. One has also to take into account that the first script has been used for 2000 years primarily for creating an administrative database of Mesopotamia until approximately 3500 years ago the humans reached the state of the development of the written language, so that almost everything spoken was possible to be transformed into a written form.
We are not very far from the truth if we say that computer scientists are specialists in developing writings. Cryptography with its 4000 years of history is about secret writings. Compression and self-verifying or / and self-correcting codes are crucial topics with roots in the development of computer science fundamentals. And the most important at the end: On a daily basis, we try to find digital representations of objects in such a way that one can work with these representations efficiently. The development of the representation of numbers with optimizing understandability, representation length and foremost efficient execution of basic arithmetic operations is a typical computer science story.
Algorithms and automation
The history of automation is so old that we even cannot fix when it started. In its origination, one did not use machines, but humans. Humans acquired knowledge mainly in order to develop procedures (algorithms) for reaching some specific goals. The crucial point was that people executing these procedures have been able to do it and reach the goals without understanding why these procedures work. In this way, for instance, the theorem of Pythagoras became a crucial part of building technology in ancient times.
But if somebody does not like this idea of automation, think about algorithms in the sense of an exact description of processes in which each step is unambiguously determined. One can find algorithms on Babylonian plates (4000 years old), in the book “Elements” (2300 years old) of Euklid and the book of Al-Kwarizmi (about 850 years old) that is nothing but 400 pages of algorithms. Developing algorithms was a crucial part of human culture since ever.
The history of developing mechanical devices (machines) for calculations is more than 300 years old (e.g. Leibnitz) and the first “universal” computer of Babbage that could be programmed is about 150 years old. But this is nothing compared with the base of interconnection technologies. The idea to code information as a sequence of signals is a few thousand years old and we even cannot date its discovery. All these concepts are still basics of our current technology.
We conclude that computer science core topics have been an integral part of human culture since ever, and that the computer science way of thinking contributed to the development of human society over thousands of years. Even the development of the key school subjects as languages and mathematics have been in a profound intersection with concepts that we nowadays consider to be key concepts of computer science. If one questions it because computer science as an independent discipline that has been established only 60 years ago, then our answer is as follows. A scientific discipline is not established when it has produced its first results and contributions. A scientific discipline is recognized and accepted when society needs a huge number of persons having the corresponding expertise. For computer science, this was when technology was able to automize everything that we mastered completely, i.e. were able to describe the corresponding processes in a rigorous mathematical way.
Why computer science must be a mandatory subject in schools
In the initial part we argued that computer science has been since ever an integral part of human culture with essential contributions enabling true breakthroughs in the development of human society. Already this is enough to consider teaching computer science in interaction with other mandatory subjects in schools. There are some more crucial reasons to consider to teach computer science as an independent subject.
- One of the main goals of schools is to support pupils to get some understanding of the world around. Without computer science pupils cannot understand the technological world created by humans and this world became more and more crucial in the life in human society. Without sufficient knowledge about data processing and automation one became to high extent dependent on people deciding about the development of digital technologies.
- Schools have to prepare the children for their place in the working world. We however live in a time where job definitions and even professions change so quickly, that we do not know how the jobs will look like in 20 years. But what we do know is that activities we mastered to understand properly will be automated. Therefore, going forward, one will not be able to be successful in one’s own field of work without proper understanding of automation processes related to that field of work.
There is no way around. The innovation today and still more in the future is essentially related to computer science concepts. The speed of introducing proper computer science into education will strongly influence the innovation potential of our society.
With this in mind, the motto must be:
“Educate the inventors, creators and the developers of digital technologies, not their consumers.”
Improving didactics by teaching computer science properly
Teaching computer science has a potential to improve the way of learning. Constructivism of Jean Piaget is the very natural way for teaching computer science. This concept was deepened by the constructionism of Seymour Papert, who developed it by teaching programming. His idea can be expressed by the following short, but great sentence:
“Learning by getting things to work.”
Papert’s constructionistic method is problem-based learning. One starts with a problem setting, acquires knowledge and continues to construct a solution. After that learners verify the properties or the functionality of their solutions, reflect on them and discuss the possibility to improve the product of their own work. This leads them to a new problem setting and so the process can iteratively continue. This is the natural way how people use to work, and societies evolve since ever. Program as a product of a constructive work is predicated tor testing its functionality. The learners run their programs, observe and investigate their functionality and get ideas what could be improved and how it could be done. This approach is however not restricted to programming. Simply teaching products of computer scientists and explaining how to use them, is the wrong approach because the children cannot build their own abilities but only observe others. Instead, we suggest to follow our interpretation of the principle of “critical thinking”.
‘Do not teach the final products of science, technology and humanities, and do not consider it the highest goal to train to successfully apply them. For the latest knowledge may be found outdated with time.
Teach the process of discovering new knowledge, teach the need to search for new solutions, teach the ways of collecting experience and formulating hypothesis, teach the ways of verifying hypothesis, teach how other can be convinced about the truth discovered, teach the constructive way of thinking in order to create new products and finally new technology, and teach the processes of testing and improving the products of our work.’
For instance, teaching cryptography should not be done by learning one example of one known cryptosystem after another. One should rather explain the concepts of building cryptosystems and ask the pupils to design new original ones (that the world has not yet seen). Then, one asks the pupils to test them by letting their comrades breaking the newly invented cryptosystems. Which leads naturally to the desire to improve the products of their own work. For instance, pupils in classes 5 to 7 can be true experts in designing and breaking the ancient secret writings and offer products better than those produced that time. Following the history of the development of fundamental concepts of computer science in harmony with the age and available knowledge of the learners, one can see a pattern for improving education of other subjects as well.
ETH Zurich with its center for computer science education (www.abz.inf.ethz.ch) started 2005 to develop textbooks, learning platforms and courses for teacher training following this approach. Constructionism combined with critical thinking is also the base for the textbook series “einfach INFORMATIK” presenting computer science in a spiral curriculum from kindergarten to “Matura”. Out of the 21 textbooks, 13 are already available www.klett.ch/lehrwerke (select Medien und Informatik: Informatik). All books are accompanied with new free online programming platforms and learning environments (www.abz.inf.ethz.ch) that are adjusted to the corresponding age groups. The series of textbooks is indeed a detailed implementation of the ideas presented above.
Introduction of computer science to Swiss schools
Switzerland is one of the most innovative countries in the world. Unfortunately, Switzerland is having a hard time introducing “informatics” to schools. First, in 1995 the council of cantonal ministers of education decided to reduce teaching information technology to skills related to using computers and concrete software systems and stopped the already ongoing process of introducing programming at least to high schools. It took more than 10 years to recognize the mistake and several further years of discussions and compromises resulting in fixing mandatory computer science subjects in “Lehrplan 21” for compulsory schools and later also for high schools. However, there is no independent subject computer science in compulsory schools, but the subject “Media and Informatics”, a compromise that combines two topics from different areas, humanities and STEM.
Unfortunately, the implementation for compulsory schools does not work. This is related to the approaches taken by most of the pedagogical colleges (pädagogische Hochschule) who typically do not have true experts in computer science and computer science didactics. The consequence is that most of the pedagogical colleges entrusted the media experts from humanities with computer science education. The result is that textbooks are produced that touch computer science only on the surface. In addition, teacher training is very poor with respect to computer science. It is as if professors of humanities would get responsibility for educating teachers for STEM subjects. Swiss educational system urgently needs correction. The risk to lose several years in the process of introducing computer science to schools is high and the world keeps developing quickly. The emergency call of today is: “Split subject “Media and Informatics” into two independent subjects and give full responsibility for teacher training in informatics to computer scientists.”
Juraj Hromkovic, Regula Lacher
Department of Computer Science, ETH Zurich
ETH Zentrum, Universitätstrasse 6
8092 Zürich, Switzerland
Juraj Hromkovic is computer science professor at ETH Zurich. His research interest is in automata and formal languages, algorithms and complexity, interconnection networks, and computer science education. He is a member of Academia Europea and Slovak Academic Society and holder of two state awards of the Slovak Republic – Pribina Cross (Knight) of the first class and “Goodwill Envoy”. In 2005, he founded the Center of Computer Science Education (ABZ ETH) of ETH Zurich.
Regula Lacher is the chair of the Center for Computer Science Education. She is co-author of several computer science textbooks for pupils and is active in teacher training for primary schools. She is a co-author of the series of popular “Informatik-Biber”-cards for teaching computer science concepts to pupils. She also contributes to the competition “Beaver” that annually conveys informatics to almost 3 Million children. In this context, she co-authored tasks that have been selected by the international beaver community as the best task of the year in 2018 and 2019, and in 2020 the second best task.