The computer expert said programmers need more math, adding that schools should rethink how they teach computer science


Leslie Lamport, an American computer scientist whose work now allows modern computers to interact effectively with each other, recently said that programmers should give more than just math. In a recent interview, Leslie Lamport mentioned the importance of programming rather than coding, how she developed distributed systems, as well as how she makes programming mathematics a major discipline. If you really want to do it right, you have to write your algorithm in mathematical terms, he said.

Leslie Lamport, 81, is an American computer science researcher. He was awarded the 2013 Turing Prize (considered the Nobel Prize in computing, for his work on distributed systems) and the designer of free LaTeX document composition software. His name isn’t known to everyone, but his peers agree that Lamport’s work has become possible with Google and Amazon’s cloud infrastructure. He also paid attention to some problems, giving them unique names such as “bakery algorithm” and “problem of Byzantine generals”.

His work in the field of computer science was in mathematics, in the field of algorithms and proofs, which was quite different from programming, which had little to do with “cut code” in any language. For him, these are separate worlds, which he summarizes in one sentence: people confuse programming and coding. In fact, slicing code is programming what you are typing to learn how to write a novel. Lamport is unusually attentive to how people use and think of software.

Leslie Lamport changed the way computers communicate with each other. He is now working on how engineers talk about their machines. In an interview this week, Lamport discussed some of his work, such as the TLA+ specification language (developed by Lamport over the past few decades, the TLA+ specification language [Temporal Logic of Actions] allows engineers to describe the objectives of a program in an accurate and mathematical way), and also mentioned some of the reasons why it gives mathematics a prominent place in programming.

Speaking about math, Lamport said he thinks programmers spend more time writing code than they think about it. The importance of thinking and writing before coding should be taught in undergraduate computer science courses and not. And the reason is there is no communication between those who teach programming and those who teach program validation. From what I have seen, sin is on both sides of this space. People who teach programming don’t know the validation they need to know, he said.

People who teach verification do not understand how it should be applied and used in practice. Until this space is closed, TLA+will not be able to find a large number of users. Hopefully I can at least make people who teach concurrent programming understand that they need it. So maybe there is hope, he added. Lamport said he is not happy with the way computer science is taught these days. According to him, teaching programs do not give enough emphasis to mathematical thinking. A situation that American researchers regret.

If you really want to do it right, you have to write your algorithm in mathematical terms, Lamport said. So how do you structure an undergraduate program? Lamport’s answer: I’m not an educator, so I don’t know how to teach them. But I know what people should have learned. They should not be afraid of math. It’s simple math that they probably took a course, but they didn’t know how to use it. They don’t know what for. They learn enough to pass the exam, then they forget about it.

Referring to the popular mentality that “there is beauty in mathematics”, Lamport was asked if he also sees beauty in algorithms. In this regard, the computer scientist replied: I don’t think in terms of aesthetics. I probably feel the same kind of feelings as everyone else, but I just use different words to express them. I would not say that an algorithm is good. But simplicity is something I really appreciate. Lamport was not the first to establish a close relationship between programming and mathematics.

In the university system, computer science is classified into “difficult” sciences, as opposed to the social sciences and humanities. Consequently, the teaching of mathematics and the difficulty it causes seems to be important in the computer science sector. Math is the tool [incontournable] for special problem solving, ”Facebook engineer Walter Schulze wrote in 2019. He described these sentences in a list of at least three fields that would not be reached by third parties without a major degree in mathematics : the programming of video games, artificial intelligence and the classification of Web pages.

In fact, graphical programming in games and movies requires knowledge of physics, but because exact physics can be too expensive to simulate properly, we generally use numerical methods from mathematics. For example, combining using Verlet’s method to imitate rag dolls, ”he explained. In a blog post at the time, Walter Schulze simply said he regretted neglecting math at university. However, many people who work in the computer industry say they don’t need math in their work.

As a reminder, due to the lack of IT talent, some people have left non-IT-related jobs (restaurant owner, taxi driver, elementary school teacher, etc.) to become developers in recent years. . In addition, a study published in June 2020 reported that brain scans revealed that coding uses the same regions as those associated with natural language processing.

The study suggests that programming requires more language skills than mathematics. Thus it seems that programming is divided into two categories of jobs: one (AI, distributed systems, video games, etc.) that requires a strong knowledge of mathematics, while the other (developers of simple solution) does not require only partial knowledge.

And you?

What is your opinion on the subject?
What do you think of Lamport’s statements in mathematics?
What do you think is the importance and role of mathematics in programming?
Do you think it takes a strong knowledge of math to be a good programmer?
Do you think programming has some tasks that require a strong knowledge of math and others that don’t?

See also

More gender equality means fewer women in STEM (science, technology, engineering and math), according to the study

Programming applies mathematical concepts, says a Facebook engineer who regrets neglecting math in college

Brain scans show that coding uses the same regions as natural language processing, suggesting that programming requires more language skills than mathematics.

Do you need to be good at math to be a good developer? What place does math have in your career?

Leave a Comment