Se connecter

Liste des cours

1. [Python] Introduction à la programmation avec Python

La partie théorique du cours s’appuie sur le livre open-source How To Think Like a Computer Scientist --- Learning with Python 3 écrit par Peter Wentworth, Jeffrey Elkner, Allen B. Downey, et Chris Meyers. Ce livre a été adapté par les enseignants du cours de Python et est disponible en ligne. Le livre est complété par des dizaines d’exercices INGInious qui permettent aux étudiants d’apprendre la programmation en Python avec un feedback régulier. Tous ces exercices sont rassemblés dans un syllabus interactif disponible librement.

Besoin d'aide ? Rejoignez notre Slack

2. [Java] Introduction à la programmation avec Java

Ce site contient les exercices INGInious du cours de programmation en Java. Celui-ci s'appuie sur les ressources suivantes:

Besoin d'aide ? Rejoignez notre Slack

3. [C] Introduction à la programmation en C

Ce cours est un complément au syllabus d'apprentissage de la programmation en langage C sous Unix disponible via:

https://sites.uclouvain.be/SyllabusC

et utilisé en 2e bloc de bachelier en sciences informatiques à l'UCLouvain.

Besoin d'aide ? Rejoignez notre Slack

4. [Git] Introduction à l'utilisation de Git

Ce cours est un complément au syllabus d'apprentissage de git disponible via :

https://sites.uclouvain.be/SystInfo/notes/Outils/html/git.html

Besoin d'aide ? Rejoignez notre Slack

5. Portes ouvertes UCLouvain

Découvre les études d'informatique à l'UCLouvain avec quelques exercices de programmation élémentaires.

/course/portes_ouvertes/$common/portes_ouvertes.png
CNP3 Hackathon

This INGINIOUS cours will be used during the SIGCOMM'21 Hackathon

Here are some suggestions for new exercises.

Open questions

Building a network

Computing forwarding tables
Virtual circuit organization
Routing in virtual circuit networks

See https://inginious.org/course/cnp3-hackathon/virtual-circuit

Transport layer

The connection-oriented service
The message-mode and the stream-mode

Done! See https://inginious.org/course/cnp3-hackathon/message-stream-modes

Connection establishment
Data transfer
Guessing sequence numbers of data packets

See https://inginious.org/course/cnp3-hackathon/guessing-sequence-number

Sharing resources

Sharing bandwidth
Max-min fair allocation

Consider the following network. Let's make a network with three different kinds of links (bw), and three different pairs of hosts. A Tikz figure should be ok. We assume that a flow generates the same throughput in both directions and links have symmetric bandwidth. Link X has 30 Mbps, link Y has 40 Mbps and link Z has 15 Mbps.

  • What is the max-min fair allocation of A1-A2?
  • What is the max-min fair allocation of B1-B2?
  • What is the max-min fair allocation of C1-C2?
Network congestion
Load obtained with a round-robin scheduler

Consider a router running a round-robin scheduler that can handle up to 7 different flows. All the flows send packets of the same size.

  • If there are 7 concurrent flows continuously pushing data, what is the share obtained by the 1st flow?
  • If there are 7 concurrent flows continuously pushing data, what is the share obtained by the 5th flow?
  • If there are 5 concurrent flows continuously pushing data, what is the share obtained by the 5th flow?
Congestion control with a window-based transport protocol
Running the AIMD congestion control scheme

Consider a sender running an additive-increase multiplicative-decrease congestion control scheme. The algorithm increases the congestion window by 2 every round-trip-time and uses a multiplicative factor of 0.75 when detecting congestion. The initial congestion window is 15 packets.

  • The sender always has data to send. What is its congestion window after 4 round-trip-times?
  • Just after 4 round-trip-times, the sender detects congestion. What is the value of the congestion window after this event?

Network security

Cryptographic primitives
Different messages, same checksum

In the course, we mentionned that checksums are not suitable to authenticate messages. To illustrate this, consider the following checksum function.

def checksum(msg):
    """ msg is a string """
    sum = 0
    for c in msg:
        sum = (sum + ord(c)) % 256
    return sum
  • Can you find a message, different from "hello", that provides the same checksum?
Key exchange
Diffie-Hellman example

Consider a Diffie-Hellman exchange where the modulus is 42 and the base is 7. Alice chooses 21 as her secret integer, and Bob chooses 12 as his secret integer.

  • What is the value sent by Alice to Bob?
  • What is the value sent by Bob to Alice?
  • What is the computed key?

Packet traces questions

The TFTP protocol

There is short question that asks students to read RFC1350 to understand the basics of the TFTP protocol. It would be interesting to complement this exercise with a few packet traces collected from a real TFTP protocol that demonstrate how this protocol supports uploads and downloads and how it handles retransmissions.

The DNS protocol

We already have ten exercises that cover the DNS. New packet traces exercises could be developed in two directions:

  • packet traces showing DNS over HTTPS or DNS over TLS
  • packet traces showing DNS extensions that have not yet been discussed in the ebook

HTTP versions 1 and 2

There are a few HTTP traces that are present in this section. The main difficulty with HTTP is that web browsers typically produce huge packet traces that are difficult to analyze only. Still, it could be interesting to provide packet traces collected on real servers so that students can understand the differences in configuration with different popular servers. We could focus on only the index.html file from popular servers and see:

  • the version of HTTP that it uses
  • the cookies that it sets
  • the HTTP extensions that it uses
  • ...

It would also be interesting to have small packet traces that demonstrate the utilization of HTTP extensions

QUIC and HTTP/3

QUIC is not yet included in the ebook, but this is an extension that is very likely for next year. Small packet traces showing the main features of QUIC and perhaps HTTP/3 would be useful to prepare this new chapter.

TCP extensions

We already have several exercises that cover the basics of TCP. It would be useful to have exercises showing TCP extensions like:

  • TCP Fast Open
  • Multipath TCP

IPv4

As the ebook does not explain IPv4 and only focuses on IPv6. Still, many students will be exposed to IPv4 and it would be useful to have packet traces showing:

  • IPv4 packets going through a router so that students can see that Ethernet addresses are changed and TTL is decremented
  • ARP
  • IPv4 fragmentations
  • IPv4 ping
  • IPv4 traceroute

Routing protocols

The open questions on routing protocols currently focus on the basics of the protocols. It could be possible to collect packet traces in ipmininet exercises and ask some questions to the students so that they learn how to analyze RIP, OSPF and BGP packets.

Ethernet

We could provide some packet traces showing the utilization of Ethernet extensions such as:

  • jumboframes
  • VLANs
  • quality of service
  • Ethernet flow control

Spanning tree

It could be useful to collect 802.1d packet traces, e.g. from ipmininet exercises, so that students can observe how the protocol works in reality.

Wi-Fi

The ebook is a bit weak in this description of the Wi-Fi protocols. It would be interesting to collect packet traces showing all the Wi-Fi details using the monitor mode. This could also require extending the ebook to provide more details about the protocol.

Check-up maths : auto-évaluation en mathématiques de rhéto -- EPL, semaine 1

Bonjour !

Ceci est une test d'auto-évaluation portant sur les matières mathématiques habituellement vues en rhéto. Il est divisé en quatre thèmes : nombres complexes, exponentielle et logarithme, primitives et intégration, et logique et démonstrations.

[ cette version du test, sur inginious.org, est destinée à ceux qui ne disposent pas encore de leur login UCLouvain. Si vous disposez d'un tel login rendez-vous plutôt sur https://inginious.info.ucl.ac.be/course/rentree_fsa ]

Ce test est conçu pour être effectué en 2 heures (30 minutes par thème). Il n'est cependant pas chronométré : dès que les questionnaires sont accessibles vous pouvez y accéder, et ce jusqu'à l'heure de fin prévue le lundi 13 septembre à 18h45 (nouvelle heure de fin). Gardez en tête cependant que la durée prévue est de 2 heures.

(pour plus de détails sur le dispositif : https://sites.google.com/view/checkupmaths)

Ce test comporte 9 pages séparées (une ou plusieurs par thème). Après avoir répondu à l'ensemble des exercices sur une page, cliquez sur le bouton "soumettre" situé tout en bas de la page. Les réponses correctes et incorrectes sur la page seront alors identifiées (dans certains cas un conseil spécifique suite à une certaine réponse incorrecte est affiché). Sur chaque page, vous pouvez tenter de soumettre les réponses un maximum de 3 fois.

Certains exercices comportent un conseil (bouton Hint). Certains exercices admettent plusieurs solutions, il faut alors encoder chaque solution dans son cadre et cliquer Add answer pour ajouter des solutions supplémentaires.

Nous n'allons pas examiner vos résultats à ce test. Par contre, nous vous demandons, sur base de ces résultats, de décider de votre participation ou pas aux séances de remise à niveau prévues, une par thème :

mercredi 10h45 : nombres complexes

jeudi 10h45 : raisonnement et démonstrations

jeudi 16h15 : primitives et intégrales

vendredi 8h30 : exponentielles et logarithmes

Pour vous inscrire à ces séances (et aussi quelques conseils pour vous aider à décider) il faut compléter le formulaire suivant : https://forms.office.com/Pages/ResponsePage.aspx?id=1JCwei76z068fEEntNWC7H7ckHoTNI9Cvn-V_GN38dxUOUMyRldWWURYOUo5WEg4RE1RV0RJSEcxOC4u (nous disposons d'environ 200 places par séance ; il est conseillé de ne pas s'inscrire à plus de deux séances)

Competitive Programming

The goal of this course is to teach you algorithms for competitive programming. Even though it is designed for competitive programming, we believe that it will be interesting for any computer scientist wishing to improve his algorithmic and data structure design skills.

Cours Blockly

Ceci est un cours Blockly basé sur le système de section d'INGInious.

Ce cours est sous licence AGPL 3 mais une partie du travail est inspirée ou partiellement issue de Code.org. Tous les programmes et didacticiels développés par Code.org sont concédés pour une utilisation sous licence Creative Commons Attribution-NonCommercial-ShareAlike 4.0 Unported. Pour plus d'informations sur cette licence, consultez: http://creativecommons.org/licenses/by-nc-sa/4.0/.

Ligne de commande Unix/Linux

Apprentissage de la ligne de commande Unix/Linux via des exercices simples.

PrepaMD

Exercices de préparation à l'examen d'entrée en médecine - partie mathématiques.

Consultez https://uclouvain.be/exomath en cas de problème ou si vous voulez d'autres exercices.

Problèmes mathématiques

Ce cours inginious comprend de nombreux exercices et problèmes variés proposés par Philippe Delsarte. Ils couvrent de nombreuses notions vues dans les cours de mathématiques du secondaire et peuvent intéresser les étudiants et étudiantes qui se destinent à des études supérieures où les mathématiques jouent un rôle important.

Un syllabus reprenant de nombreuses explications théoriques est accessible depuis https://uclouvain.be/exomath

Ces exercices sont commentés le groupe facebook exomath @UCLouvain.

En cas de problème technique, contactez-nous par email via exomath@listes.uclouvain.be

[Introduction IA] Les réseaux de neurones

Présentation du concept d'intelligence artificielle des "réseaux neuronaux". Nous verrons à travers des activités Blockly ce dont il s'agit et comment l'utiliser pour reconnaitre des formes particulières tel que des lignes ou des chiffres.

[Mini-CP] Introduction to Mini-CP

Mini-CP is an CP solver made for education.

These exercices are part of a course, available on http://minicp.org.

exomath

Problèmes et exercices mathématiques correspondants à la matière vue durant le secondaire afin de faciliter la préparation des étudiants qui débutent des études supérieures.

Pour plus d'informations sur ces exercices, consultez https://uclouvain.be/exomath

Ces exercices sont commentés durant le mois d'août 2020 sur le groupe facebook exomath @UCLouvain. Inscrivez-vous pour discuter de nouveaux exercices chaque jour.

En cas de problème technique, contactez-nous`par email via exomath@listes.uclouvain.be

exomath2 (Banque d'exercices de préparation à l'examen d'entrée en médecine)

Banque de problèmes et exercices mathématiques correspondants à la matière vue durant le secondaire afin de faciliter la préparation des étudiants qui débutent des études supérieures.

Un syllabus reprenant de nombreuses explications théoriques est accessible depuis https://uclouvain.be/exomath

Ces exercices sont commentés le groupe facebook exomath @UCLouvain.

En cas de problème technique, contactez-nous`par email via exomath@listes.uclouvain.be