Initiation to data structures, algorithmics and algorithm analysis (lecture hall).
Advanced programming in Java (tutorial groups).
It is also an opportunity to perfect Java skills. The tutorials explore in depth some of the material presented in the lecture hall.
Evaluation: Continuous assessment (pale machine or homework), an in-class exam (3h).
CSC_41012_EP-2026 CSC_41012_EP - Fondement de l'Informatique : logique, modèles, calculs (2026-2027)
This course introduces the fundamentals of IT as science. The idea of using machines to make calculations is an old one, it was in the 1930s that the work of Alan Turing, Alonzo Church, Kurt Goedel and others laid the foundations for what would become the computer science we know today.
Their work revealed that reasoning and calculation are closely linked, and these foundations must therefore be understood in the older tradition, in logic and in the foundations of mathematics, from Peano to Zermelo passing by Hilbert and many others. We can note that these foundations are still relevant today, despite spectacular technological advances.
While other courses show how to program, here we clarify the framework of what is doable, in terms of
- calculability: some problems cannot be solved by a machine;
- complexity: some problems cannot be solved in a reasonable time.
It is on these points, for example, that cryptographic technologies and the famous "P=NP" problem to $1,000,000 are based.
There are no prerequisites. However, this course is a prerequisite for "Algorithms and Optimization" and "Languages, Proofs, Calculus" in the 3rd-year PA Info.
Evaluation: written exam
Algorithms are the heart of all computation. This course, which relies on the algorithmic foundations laid in the first computer science courses (INF371 or INF361+INF411), equipping the student with a solid background in modern algorithmics.
After following this course, the student will have an in-depth knowledge of most central algorithms, both understanding how and why they work and being able to solve a wide range of computational problems with these building blocks.
This is material that everyone aiming to work in a computer science or computing-related context needs to know, let it be in a research or industrial environment.
In addition to this, we will also give a brief introduction to several more recent topics like randomized algorithms, evolutionary algorithms, online algorithms, or algorithmic game theory, which had a significant impact on how we understand computing today.
The course is taught in English (lectures, poly). Exercise classes are offered in English and French. The exam is offered in both languages.
CSC_43044_EP-2026 CSC_43044_EP - Systèmes Informatiques et Programmation à l’ère de l’IA (2026-2027)
One of the flagship applications of AI is code generation, to such an extent that some are questioning the future of developers and the share prices of major software companies are falling. Code generated by LLM and Reinforcement Learning (with ‘Execution Feedback’) is one of the central topics of the course. The enormous amount of available code, the formal structure of formal languages and the existence of clear semantics, which underpin its deterministic execution, make learning particularly effective.
The course’s perspective is that the work of developing computer systems, in the broadest sense, is becoming a higher-level activity, leaving more basic programming tasks to AI assistants. How can we formally specify the desired code, and how can we verify this code in order to integrate it into an existing system, or one developed by humans?