Christoph Kirsch: Most people don’t understand technology. That is frightening

He fell for computer science before it was cool, chasing it across Europe and Silicon Valley. In 2020, he joined the Faculty of Information Technology at the CTU in Prague. Meet professor Christoph Kirsch, who is keen to teach programming the right way.

Did you always know you wanted to be a programmer?

I started programming when I was 14. My dad bought me my first computer — it was a ZX81 Sinclair with 1 kb of memory. You had to store your programs on tapes. It was awesome. I remember being surprised that it is a completely unforgiving experience when you give instructions to a computer. You need to explain every single detail you want it to do. You are essentially interacting with a mindless machine. It forces you to think about the problem in an unusual way. As Steve Jobs said, it is good to learn how to program even when you have no plans of becoming a programmer. It helps you think differently.

So, you started programming before it was mainstream?

Yeah, it was in 1982. Then I went to a university and got a degree in computer science, which roughly translates to a master’s degree. I did a PhD at Max Planck Institute, where I also met my future boss. I was looking for a post-doc position in the US, so I asked this visiting academic. He said he would talk to people, but the next day he offered me a job himself.

You came to Silicon Valley in the early 1990s, which was an exciting time.

I remember it was like a small club. Thanks to my boss, we were using Google when it was just one service among many other services. But it was clear this one would take off.

Were you ever considering quitting academia and join a startup yourself?

Never. I always wanted to work at the university, even though I could, of course, make more money elsewhere. But I don’t care about that.

How did you start teaching? During your PhD?

The privilege of having a PhD position at Max Planck Institute, you didn’t have to teach. But when I moved to Berkeley, I had to gain some teaching experience. Till then, I was only a teaching assistant. But suddenly I was teaching my first class. 

In the beginning, it was not much fun for me. As a scientist, you should publish your research. Our team was remarkably productive, and teaching felt more like a distraction to me. I mean, you don’t get any recognition for teaching. But 15 years later, as a senior professor, I enjoy teaching very much, and I’m much better at it. But it takes 20 years of experience to be able to teach well. The more basic the subject of the class is, the more experience you need to teach it properly. At Berkeley, only the most senior professors teach introductory courses. It’s the hardest thing to do, to talk to two hundred people who have no clue about the subject at hand. You can make no mistakes.

“Computer science is not just about computers or programming. It’s about the nature of information.”

Do you have any tricks up your sleeve when it comes to teaching crucial concepts?

The key is you must completely understand the material. You need to feel the material, and you must reflect on it for years. Then you can go out there and teach a great class.

Just understanding is not enough, though. You need to be able to present it. You need to be a good speaker, which I was not for a long time. I was terrified to give talks in front of people. But I developed a passion for it. 

I also started working on my own first textbook, which I plan to finish within the next few years. It will include everything I know about computer science. There are many good books for programmers, but it’s as if they are written only for people who already know how to program. And computer science is not just about computers or programming. It’s about the nature of information. There are computer scientists who don’t even do any programming and focus instead on very abstract concepts. 

You have been programming for thirty years. How do you remember machine learning rising to its prominence?

There was the first AI wave in the 1960s, Marvin Minsky and his colleagues from MIT. When I was a PhD student, we were in something I would call a second AI wave. It was mostly about mathematical logic. People were trying to create reasoning engines using logic and statistics. That was also my PhD topic. But this wave also ended, and when I moved to Berkeley, it had already collapsed. 

Why do you think the second wave was unsuccessful?

Maybe the computers were not fast enough back then. There is now a new life to it, but more on a simple, mathematical level. The ‘reasoning engine'” we see today are based on much simpler rules, and this more straightforward logic allows them to be highly successful in solving complex and specific problems, like checking the correctness of hardware processor.

And what about the current AI wave, the neural networks?

Neural networks were in their infancy in the 1990s, and people were kind of laughing at them. But now they are the latest AI wave. It is an entirely different paradigm, not based on mathematically proving that something is correct. It is using statistical methods, which means they are good as long as you have good data. It is pretty simple: if you have bad data, it will not work.

What misconceptions about AI do you notice most often?

People underestimate the difficulty of the task — and they underestimate it by a long shot. Creating something intelligent is so unbelievably hard. It is improbable that we are going to see a general AI in our lifetime. The complexity is just mind-blowing.

“Weak AI will encounter the same problems as any other non-intelligent technology. Putting a sticker on a stop sign can cause an autonomous car to ignore the sign completely. How can you show that this kind of technology is reliable?” – Christoph Kirsch

But there are many narrow deep learning algorithms that can solve problems without pretending to be intelligent.

Yes, but we will encounter the same problems as any other non-intelligent technology: security problems and reliability problems. People will hack these AI systems and make them come to ridiculous conclusions. Putting a little sticker on a stop sign can cause an autonomous car to ignore this sign completely, even though anyone can clearly see it is a stop sign. Making these systems reliable and secure will be extremely difficult. How can you show that this kind of technology is reliable?

Maybe the proof can be in people using them? Translation systems are using deep neural networks and show promising results. They make fewer mistakes. 

People often say that you don’t have to make the AI system 100 per cent reliable — you only need to make it more reliable than a human. That is easier said than done. Take driving a car: it is very difficult to create a car that’s driving itself better than an average human driver would drive it. There are multi-billion dollar companies working on it, and they are all failing.

It is easy to assume that if we went this far in five years, imagine where we could be in another five years.

If you lived in Silicon Valley, you’d understand how these hypes come up. There is so much energy. There is not a single city in Europe that comes even close. But the problem with that is, of course, that the hype will end. However, Silicon Valley is quite used to this — there will always be ‘the next thing.’ I think the buzz around AI will saturate and blow over. AI will be able to do exciting things, and that’s it. And people will move on.

I feel that the hyped mindset of Silicon Valley helps them test a lot of different things quickly and enthusiastically.

Yes. That’s what’s going on. But Europeans often take Americans too seriously. They don’t actually mean it like that.

So, in this context, what can Czechia offer to computer science researchers? How can it compete with Silicon Valley?

The asset of a city like Prague has is that it has a rich, beautiful history. Silicon Valley doesn’t have that. If you lived south of San Francisco, the lifestyle there is so different. In Silicon Valley, you are just a worker bee. You work like crazy, and the competition is absolutely brutal. You make a mistake, and you’re out.

San Francisco is a great city — but Silicon Valley is not San Francisco. It’s a place of work, hard work. Some people choose to live in San Francisco to escape from that atmosphere, but then they have to commute every day in unbelievable traffic and with poor public transportation that people in Europe could hardly imagine. Prague and many other large cities in Europe offer a completely different atmosphere that could be leveraged to attract talent. 

What can Prague make of this? I would like to have people in Prague that create an institution where people can collaborate on interesting topics and enjoy the city at the same time. But for it to work, you need to bring great people. It’s always about people. So you’re stuck with the ‘chicken-and-egg problem.’ Great scientists will ask, “Who’s already there?” You need money, and you need famous people who represent the effort and can create trust. Then more great people will come.

“Prague offers a completely different atmosphere than Silicon Valley. It could be leveraged to attract talent.”

When I was growing up, computers went from curiosity to a working tool to ubiquitous. What should people realise about this new computerised environment? What should parent teach their children to prepare them for this new world?

When it comes to kids and computers, I am comparing this to what kids learn at school about math. Kids learn basic arithmetic not just to be able to do advanced math but to get a basic intuition about what numbers are. That is an incredibly helpful ingredient that helps you function in modern society. We should do something similar with computer science. 

All the school kids should know some basics about computers. They are natural concepts, but in most countries, they are not taught in schools. It’s crazy. Sometimes they have a class on how to use Microsoft Word or something silly like that. It is mind-blowing. Countries are incredibly careful not to give any single entity control over the curriculum. And then they allow corporations access to children like that and get them used to their software. 

Many phenomena that you see today in society, everything you see on the internet, on social media, all that is related to the fact that people don’t understand technology. It’s like when people used to be afraid of cars. Society is not able to handle the technology properly. Lots of people have misconceptions about what a computer really is. The computer itself has no mind, it’s just an engine. 

People project feelings into their technology. As we speak to our computers, this will happen more often. People don’t understand how everything they see on the screen has been influenced. It is an illusion. People are not questioning what they see on their screens. It is amazing, and frankly, it is frightening. Education is crucial for a sustainable society.

Is there one thing parents should teach their kids about computers? 

It’s difficult as technology is evolving fast. There are excellent resources on the internet, but they are not widely used. In my opinion, people need to talk to politicians. They need to vote for the politicians who take the issue I described seriously.

Why is programming so hard to understand for some people?

I have a metaphor for this. Imagine a dictionary that explains a Czech language using a Czech language. That’s kind of weird, right? How do children learn the language using the language? 

In computer science, we call that self-referentiality. When you write a program, you are using a programming language. You can write a compiler in that language that takes your program and translates it into machine code. Compiler de facto creates the meaning of the language. You are creating the meaning of the language using the language itself. The meaning ultimately comes from the physical machine that runs the code. It first looks like a paradox, but it is a source of beautiful things you can do. And to make it all work is highly non-trivial.

When was the last time that a computer surprised you?

Computers don’t really surprise me. They are fast and can do many things, but I’m shocked by how stupid computers still are. And I understand — companies just don’t have the money to do it right. Still, computers are unbelievably stupid, and any number of things go wrong at any time. For example, I was driving an expensive rental BMW and could not connect my phone to play my music. The only way I made it work was to stop the car, open the door, turn off the phone, turn it on again, and close the door. Well…

I don’t want to frame it negatively, it’s just amusing how silly those things are. There is still a long way to go until things really work like magic, as Steve Jobs used to say.

Christoph Kirsch

FIT CTU

• Professor at the Department of Computer Sciences of the University of Salzburg, Austria

• Received his Dr. Ing. degree from Saarland University in 1999, worked at the University of California, Berkeley

• Since 2020 co-leads an EU Research Project at the Faculty of Information Technology of the Czech Technical University in Prague

• His research interests are in concurrent programming, memory management, virtualization, and formal verification

• Co-invented embedded programming languages and systems such as Giotto, HTL, and the Embedded Machine

• Co-designed high-performance, multicore-scalable concurrent data structures