Welcome

Programming Courses

My name is Serge Tahé. I am French and I live in France. My professional background is as follows:

  • 1974–1977: Engineer, Supélec (Paris);
  • 1977–1979: Ph.D. thesis in computer science at Rennes (IRISA);
  • 1979–1981: Assistant Professor at the Faculty of Sciences in Tunis;
  • 1981–2017: Associate Professor at the University of Angers, specifically at the Polytech Angers engineering school;

Most of the courses offered on the website https://stahe.github.io were taught at Polytech Angers. They were hosted for over 20 years on the website https://developpez.com. On this site, the process of converting a Word or ODT document is automated. However, for the document to go through the automation pipeline, it must be “prepared,” that is, modified. Ultimately, this means managing two documents: the original and the one intended for publication on the [developpez.com] site. Furthermore, to be published, the document must be reviewed by a review committee made up of volunteers. This review process can take a long time and may even never be completed.

To solve these problems, in September 2025, I began working with the AI systems Gemini 3 and ChatGPT 5.2 to build a Word or ODT-to-HTML converter. This converter was ready in January 2026. I then published all the courses in French on the website https://stahe.github.io. Then came the desire to make them available to readers in different languages. I then worked with the AI systems ChatGPT and Claude AI to add various options to the original converter. I used the website https://www.deepl.com to translate my courses from French to English. All you have to do is upload the Word document in French, and [deepl] returns the same document in English. Beyond the content, the key point is that this translation process strictly preserves the structure of the original document. I then published all my courses in English.

After a while, I realized this wasn’t the right approach. In fact, [deepl] translates the entire original Word document, including the programming code blocks. However, [deepl] isn’t reliable for this task. It may sometimes translate a variable in the code and then fail to translate it two lines later. This causes the code to become erroneous.

I then worked with ChatGPT on a converter argument called [--repair-code-from_source]. With this argument, the converter reads the French document and the English document in parallel. When it encounters a code block in the English document, it replaces it with the code block that is in the same position in the French document. This is possible because, as I mentioned, [deepl] preserves the structure of the French document, particularly its styles. So we can be sure that there are the same number of code blocks in both documents and that they are in the same positions.

With the [--repair-code-from_source] option, we now have an English document that contains the code from the French document. We may then want to translate the French code comments into English. With ChatGPT, we’ve worked on a new converter option called [--translate-missing-comments] that does this without touching the code. This time, we use the API provided by the [deepl] website.

These transformations on the initial document produce a final document that has the same structure as the initial document but may have a distorted layout, mainly due to the addition or removal of blank lines between paragraphs. This is irrelevant to the converter, which ignores blank lines and has its own formatting rules. However, it matters for generating the PDF from the final document. We then worked with ChatGPT and Claude AI on a Python script that would generate the PDF of the final document not from that document itself but from the generated HTML page. This allowed us to have both consistent websites and consistent PDFs.

You can send constructive suggestions to the site's email address:

Image

I probably won't reply, but I'll take a look at the suggestion.

Serge Tahé, May 2026

By the way: the two animals on the cover of my course materials are my dog Clovis and my cat Zorra.