Thoughts on choosing a programming language for school (and the situation with computer science in general)…
This article grew out of a response to comments on PascalABC.NET’s Basic Differences article, where there was a traditional debate about whether it makes sense in 2023 to learn Pascal. My answer is too long for comments, so I will write it in the form of such a spontaneous post.
As a former programmerpractitioner who currently teaches computer science in an ordinary rural school, I will express my opinion about Pascal in school, and in general, how things are now with the study of computer science.
I will clarify right away: we are talking, first of all, about the middle level of “average” schools, where computer science is studied strictly from FGOS – only from 79 grades, for 1 hour (4045 minute lesson) per week. If you want to study the “single ministerial” program, you can download it from the official website of the Ministry of Industry (yes, the official website of one of the departments of the Ministry of Industry is made on WordPress).
The programming itself takes about 30 hours. 1 hour per week, spread over the end of the 8th – beginning of the 9th grades (with a break of 3 months, yes). In principle, the teacher can slightly vary the program and change the places of individual sections. But such games will not change the general picture (verified).
During this time, the authors of FGOS offer to explain from scratch (!) to children (who have only superficially studied the structure of a computer and the principles of working with a mousekeyboard interface (and today’s children are really dumb from a mouse, because they are used to touchscreens from diapers!) ):

The concept of an algorithm as.

Ways of writing (mainly block diagrams, although in Soviet times they started with conventional algorithmic language).

Basic algorithmic constructions (linear algorithms, branching, loops with a counter, loops with a post/precondition, routines).

Concept of variables and data types.

Arrays (including sorting).
And this is only a formal FGZS. As a matter of fact, you still have to manage to solve purely ODESH tasks (and there, in addition to the usual programming languages, there is Kumyr, which should also be given at least an overview in the lessons, because children without pretensions more often choose it on the exam, rather than the classics) . . Not to mention learning from scratch the principles of working with the console (and the console is needed in almost any programming language, except for those already honed for the web, and that…).
To better understand the time problem, think back to how much time you spent learning the last programming language? This is real: from the first acquaintance to writing the simplest program with loops, branches, arrays. Did you fit in 20 astronomical hours? Now imagine that until you learn a new language, you have no idea what variables, functions, loops, and branching are. Will it be possible to fit everything into the same 20 hours? And if you have no idea how a computer works, type the text of the program with 1 finger (for learning the keyboard, FGOS gives, in fact, 1 lesson; if the child does not work with the keyboard at home, it is almost impossible to significantly improve his skills in the lessons; if just score on FGOS completely, and start 7th grade with keyboard simulators (which I partly do; but I didn’t tell you that)). And if you have problems with mathematics and basic logic (and the current school program is such that at least 2/3 of students have problems with these basic things up to the 7th8th grade)?
Let’s add to this the disgusting “only” textbook authored by Bosova and Bosova. who cares AS The Ministry of Internal Affairs and Communications offers to teach children computer science, download this textbook online, read it and try to see THIS through the eyes of children 78 grade, who had not previously studied theoretical computer science. I especially “love” the chapters on number systems and the basics of Boolean algebra – when I first read this textbook, I could not immediately understand some of the formulations (although at that time I had time to study at a technical university and a teacher training college, and everywhere I studied these topics within foundations of higher mathematics).
Outside the classroom, children with average motivation score a little more than completely on this matter (proven over the years), because the majority cannot break through these formulations. It is especially touching that Boolean algebra is studied at the beginning of the 8th grade, examples of tasks in the textbook are analyzed using Euler diagrams, but (!) until this moment, the students of the 8th grade have not yet studied these things in algebra (and have not studied sets at all), i.e. in addition to Boolean algebra, I also have to explain a bit of ordinary mathematics to them (and let’s not forget ODE, these tasks also have to be completed in time). In the classroom, we still manage to put some basics in our heads, but we don’t have time to fix them properly.
And now to the question of choosing a language. I did an experiment a few years ago. In one parallel, he offered the children to choose the language Pascal (ABC.NET) and Python. “Ready” chose fashionable Python. Divided into groups and the entire “basics of programming” section gave the theory in different languages. Based on the results, I personally made a completely unambiguous conclusion for myself: nothing better than Pascal for learning the basics of algorithms was invented at SCHOOL. Its basic syntax is easily “readable” by human language, ie. I can give an example of a new code (for example, when getting acquainted with branches or loops for the first time) and read it in Russian (if … then … otherwise; for i from 1 to N; etc.). That is, minimum time is spent on language syntax, and maximum time is spent on algorithms. I’ll remind you once again: the Ministry of Foreign Affairs and the FSOS give very little time, and you have to manage an unrealistic amount of time.
And in the 10th11th grades according to the new FGOS – another extreme. The level of tasks of the EDI compared to the ODE for the 9th grade simply increases many times. Compare: OGE and EDI. And in terms of education, the difference between these exams is 68 hours of study, spread over 2 academic years (if the school and head teachers are lucky, they will give the same amount in the form of extracurriculars; then the boys and teachers have a chance to work more or less normally, although b part of tasks). And here you can argue a little about the choice of language, because EDI tasks are clearly sharpened for Python. But there is a nuance: if you push students purely on the task, you still learn the possibilities of the language onesidedly. And basic algorithms are stupid to never work out. That’s how guys learn to use readymade libraries, without understanding how the banal “bubble method” works. Is there any point in learning Python like this? The question is rhetorical. And, once again, let’s add terrible textbooks here, which do not 100% cover even the topics of the EDI, not to mention the terrible mud in terms of theory (I gave links to the textbooks above, although they are not the most recent editions, but fundamentally not much has changed).
In general, when programmers with 10+ years of experience argue about the choice of language for teaching, the average teacher wants to either cry or smile hysterically. According to the current standards in education, this argument does not make sense, because we teach, in fact, only on horseback. And the course announced by the authorities to increase “technological sovereignty” looks at least ridiculous from our perspective: the computer science clock has been cut in half over the past 6 years, the quality of textbooks has fallen below the plinth (still the same Bosova textbook with chapters on programming was adapted to the new FGOS by changing numbers on the cover: “Grade 9” was replaced with “Grade 8” and the program was squeezed from 68 hours to 34; search this textbook for Grade 9 circa 2008 and Grade 8 2020 – and find the differences).
And if the approach to the study of informatics does not change radically, then in the first courses of technical universities teachers will soon have to study practically from scratch. And it’s not a fact that there will be anyone to teach at all – only a few go to the 10th grade (with an allowance for EDI and universities), most of the boys go to secondary school.
In conclusion, I would like to remind you once again that I am looking from the position of a teacher of an ordinary school, and not a specialized gymnasium/lyceum with a bias in physics and computer science. After all, the majority of children study in “regular” schools.