Let’s talk to computers

Juraj Hromkovic explains what language and programming have in common and what makes a good programming language for computer science education.

Juraj Hromkovic

Are you attracted by the beauty of essays and cannot relate to technology? Do you like to read books, but not lines of program codes? Despite of that you will see why programming can be interesting. What are we doing when we are writing a program? We are talking to a machine. To communicate with a machine, we must master the language of the machine. The goal of the communication with the machine is to explain the activity the machine should execute for us. If we instruct the computer to perform a job, we speak about automation. Automation frees us from repetitive tasks and opens the possibility to use that time for personal growth and success or simply for reading fascinating books.

Typewriter
Human language and machine language have more in common than seems to be the case at first glance. For example, both can involve creatively coming up with new terminology. (A_Pobedimsky/iStock)

Programs are texts

If programming is like talking, then programs are nothing other than grammatically correct texts in a programming language. The grammatical rules are even more exact than those of Latin. And we know that Latin positively influences the ability of exact formulations of thoughts as well as the understanding of the syntax and semantics of languages. Learning Latin therefore offers plenty of benefits – and computer science does too!

One of the most fascinating parts of a good computer science class is teaching a computer to understand new words. Even Pippi Longstocking relished creating new words, getting into any kind of mischief while searching for “spunk”. “Klingon” – a language invented for the Star Trek movie series – is now spoken by “Trekkies” worldwide. Developing your own language truly is a fascinating adventure! But jet, no other subject lets students create and use their own language at school.

Choosing the right language

So how do we select a suitable programming language for teaching programming that offers the opportunity to develop on your own? After all, just like the natural language varieties, there are many different programming languages, all with their own advantages and disadvantages. It would be bad advice to simply focus on what’s currently popular or has a big commercial use. Unlike established natural languages, programming languages can very quickly disappear or become outdated.  

“In practice, programmers spend a lot more time searching for errors in their programs than writing new programs.”Juraj Hromkovic

It’s also not worth spending time on the heated debate between block-based or text-based programming (the first refers to moving blocks of words to avoid typing errors, whereas the second is written as text). In my view, there are only three essential criteria when choosing a suitable programming language – particularly for novices and beginners:

  • How well does the programming language support to reach our objectives?
  • Is the programming environment simple enough that using it does not require additional cognitive effort?
  • How strong is the support to find grammatical and logical errors in programs?

Teaching, not troubleshooting

The third criteria is often underestimated. In practice, programmers spend a lot more time searching for errors in their programs than writing new programs. This can be tiring. In class, teachers typically are inundated with demands to help searching for errors to such an extent that they do not have time for anything else.

The only reasonable solution is a programming environment that supports students to correct programs on their own. For this reason, ETH Zurich’s Centre for Computer Science Education, has developed programming environments that fulfil the requirements listed above. These are made available for free (www.abz.inf.ethz.ch) and complement the ten-volume textbook “Einfach Informatik” (German for “Simply Informatics”). By the way, this textbook series starts with the development of the first written text some 5’400 years ago and train pupils in developing own writings for different purposes. This may motivate some lovers of fine literature to get to grips with the language of the future.

ETH at the Digital Day 2018

On 25 October, the second Digital Day will take place across Switzerland. This year, ETH is focusing on digitalisation in medicine, and will present two research projects on the subject in Zurich’s main station. In addition, ETH will offer short lectures, lab tours and presentations from the field of health, together with numerous other institutions. More than 600 school pupils from throughout German-speaking Switzerland will also learn the language of the future at a programming workshop. Further information: Digitaltag (in German).

JavaScript has been disabled in your browser