During my PhD preparation, I had the opportunity to teach for three years (around 200 hours) at the departement of Computer Science of the IUT of Orsay, attached to the University of Paris-Sud.

[Copied from its Wikipedia page]

The Instituts Universitaires de Technologie or IUT (translated as "University Institutes of Technology") are part of the university system in France. The IUT were created in 1966. As of 2008, there are 116 IUTs which are attached to 80 universities including the ones in the French Overseas Territories and Departments.

The IUTs allow the preparation of a two-year undergraduate technical diploma called a Diplôme Universitaire de Technologie or DUT. After finishing their DUT, students have the option to work, do a one-year professional degree called "Licence Professionnelle" (a course also offered by IUTs), or further their studies in a university or "école".

Supervised Courses

  • Distributed Database & Knowledge Representation
    (course administrator)

    As indicated in its title, this course is divided into two main parts:
    1. A distributed database is a database in which its different parts are stored in multiple computers, located in the same physical location; or may be dispersed over a network of interconnected computers. Distributing the database allows to limit the transfer of information over the network, divide the charges, and increase the fiability by duplicating important information.
    2. In the knowledge representation part of this course, I introduce students firstly to the Extensible Markup Language (XML), as a way to encode information in a human-readable and machine-readable format. Then I introduce students to standard Semantic Web technologies, such as RDF, OWL, and SPARQL as a way to represent, infer and query knowledge in a machine-readable format.

  • Web Programming
    In this course, I introduce students on how to build (beautiful) dynamic websites. In its first part, the course covers client-side technologies (HTML5 and CSS) for introducing students on how to build well-designed and responsive user interfaces. In the second part of this course, we focus on the server side, and mainly the PHP programming language. This allows students to build dynamic websites that can process the user's requests, such as loading and saving information to a database.

  • Object-Oriented Programming
    Object-oriented programming (OOP) is about thinking in terms of classes and objects, and organizing your code by following the best practices. In this course, I teach students how to abstract a problem in an object oriented style, using the JAVA programming language. This course helps students to write a better code, that is easier to change and support, whilst introducing them to several new concepts (e.g. inheritance, encapsulation, and polymorphism).

  • Advanced Databases
    In this course, I expand upon what students have learned about SQL and basic database management systems by introducing various other advanced topics, such as query optimization, stored procedures, triggers, concurrency and object-oriented extensions.