September 06, 2019

Is Programming an academic discipline anymore?


Modern programming languages are working much better than their counterparts from the past. A state of the art python3 interpreter runs well under all major operating systems (Linux, Windows, MacOS), supports object oriented programming, and is described in the documentation very well so that newbies can start programming after a short time. Sometimes it was mentioned, that Python is a slow programming language, but this is only a minor problem. Because with the help of cython the speed can increased upto the performance of a c program and who doesn't like the concept of Python at all he can switch to the C# language which is also well documented and allows to program complex applications.
The problem with Python3 is located somewhere else and is the result of the success of the framework. A modern python interpreter works mostly great, is well documented and allows to create software very efficient. Python3 is doing the job much better than previous attempts in programming like the Turbo pascal environment which was popular in the 1980s or the Fortran compiler which was used in the time before. The most interesting fact is, that the average user is not able to explore the limits of Python. He won't find a serious issue which has no answer yet. The Python interpreter, and most modern programming languages in general are working like a well designed pencil in the hand of an artist. The limits are not located within the programming language itself, but in the libraries which are available and the imagination which kind of programs are making sense and which not.
The python language can be recommended as a here to stay technology, and at the same time it's a disappointed experience to take a look into the language. All the books and tutorials which are explaining Python doing a great job, but they are not located within academia. Learning Python is nothing which is teached at the university, but it's some kind of leisure activity similar to learn how to listen to music. This was not always the case. In the past, programming was a serious subject for computer scientists. They have discussed the problems of programming a computer on an academic level. In Google Scholar there are many papers available in the 1980s, in which compiler design and programming was explained. Later, the academic papers have adapted their focus a bit. Instead of explaining how to write hello world programs, the new topic in academia was, which kind of programming idea can be teached at the university. That means, the published papers in the 1990s were not about how to write a hello world program in C++ or Perl, but a typical had the title “how to teach object oriented programming in a computer course”.
THe shift in the topic is equal to lowering the quality. Because teaching computer programming has nothing to do with computer science in it's core sense. It is located within academia, but in the domain of Pedagogy. Some years later, in the year 2000 and later, the next step was visible. Because the topic of programming in general was no longer discussed in the literature. Or at least, not in academic literature. It was delegated to schools and companies who have made a business of it. The current textbooks about programming are published in school publishing companies, next to math education books. This kind of books is interesting to read, but is located outside of academic disciplines.
Programming is over
The development makes sense, because programming has become a mainstream issue. With the advent of modern frameworks like Python and C#, the art of programming has become easier than ever. And there is no need to cover the subject in a university class. Creating a hello world program in Python which prints out a line to the screen and draws a rectangle to the screen is to simple to teach the topic in a computer science class. The problem is, that by defintion in a computer science class the average student is 20 years old, has learned in his education career lots of interesting things already and likes to learn something new and which is more complicated. That means, it's not possible to teach the student how to program in Python.
This kind of shift in the curriculum is an interesting development, because in the past, it was common to do so. A computer course in the 1980s has teached how to program a hello world program with C or Fortran. Because in that time, programming was an esoteric discipline which was covered only at the university but nowhere else. It seems, that in the last 40 years something has changed. The topics which are teached at a computer science course at the university are different than in the past. The students are different and their demand for knowledge is higher.
Perhaps it make sense to ask the student what they want to learn in a university. Does the average student has a demand to learn how to write a hello world program with Python or C? Or are the needs different and are going beyond this kind of knowledge?`