Summary of Courses
Status
ATER (Attaché Temporaire d'Enseignement et de Recherche): One-year research and teaching fellow
Vacataire: Hour-based teaching position
Type
CM (Cours Magistraux): Lectures
TD (Travaux Dirigés): Recitations
TP (Travaux Pratiques): Laboratory works
Level
L (Licence): Undergraduate
M (Master): Graduate
Institution
Kadir Has University, Istanbul, Turkey
ENSSAT (Ecole Nationale Supérieure des Sciences Appliquées et de Technologie), Lannion, France
Télécom Bretagne (Ecole Nationale Supérieure des Télécommunications de Bretagne), Brest, France
EFREI (Ecole d'ingénieur Informatique & technologies du numérique), Paris, France
University Paris Diderot - Paris 7, Paris, France
University Paris Dauphine - Paris 9, Paris, France
University Paris Sud - Paris 11, Paris, France
Advisor
Advisor of W. Ishaq, PhD student, working on "Federated data result optimization using collaborative clustering", at Kadir Has University, since 2015.
Advisor of Bachelor Dissertation at Kadir Has University:
Advisor of a M2 engineering student at ENSSAT, 2012-13.
Mentor a M1 engineering student for a two-month research internship at Télécom Bretagne, 06-08/2011.
Subject: Implementation of a multi-channel P2P live video streaming system for massively multi-player online games
Courses' Details
Content:
Première session
Manuel en ligne
Système de gestion de fichiers
Le Shell: interpréteur de commandes
Processus
Redirection des entrées/sorties
Content:
Algorithme et machine élémentaire
Types élémentaires
Actions primitives, affectation et entrées/sorties
Structures de contrôle
Les fonctions
Les pointeurs
Chaînes de caractères, types structurés, unions
Le traitement des fichiers
Content: Ce cours traite des fondements sur les réseaux de communication. Les principes généraux sont illustrés par l'étude de protocoles du domaine des réseaux locaux.
Description d'un réseau de communication
Concepts et caractéristiques d'une voie de communication
Le modèle OSI
Le niveau physique
Principes du contrôle d'erreur et de flux
Protocoles de communication de niveau liaison, HDLC, PPP
Architecture du réseau téléphonique commuté
Les réseaux à diffusion
principes, protocoles d'accès au médium
les réseaux locaux, la norme IEEE 802.3
les réseaux sans fils, IEEE 802.11 (Wi-Fi)
Le routage
L'interconnexion de réseaux
protocole IP, @IP
le routage dans un réseau IP
transport fiable: étude du protocole TCP
Les applications sur réseaux IP
DNS
courrier électronique
convergence: la voix sur un réseau IP
Content: Ce cours est destiné à des élèves-ingénieurs possédant une pratique de la programmation et des types de données. Il permet au public d'acquérir une culture de base en spécification et mise en oeuvre des structures de données et algorithmes et en complexité des algorithmes. Les principales structures de données (ensembles, suites, files de priorités) sont étudiées à travers leur spécification abstraite. Leurs possibles mises en oeuvre sont analysées et leur implémentation découle de cette analyse.
Introduction
Exemple de la recherche dichotomique
Complexité des algorithmes
Spécifications des structures de données
Mise en oeuvre des ensembles
Mises en oeuvre naïves
Mises en oeuvre avancées (ABR, AVL BTree)
Méthodes de hachage
Mises en oeuvre des files
Tas
Minimiers binaires
Représentation d'une suite par un minimier de position
Content: Ce cours constitue, d'une part, une initiation au langage Java et, d'autre part, un apprentissage des bases architecturales des interfaces graphiques développées en Java/Swing. Un projet permet de mettre en pratique les techniques étudiées en cours en utilisant un outil de génération d'interfaces.
Bases du langage Java
Développement d'interfaces
Composants
Composer des composants
Gestion d'événements
Architecture MVC, UI-delegate
Content: Acquisition des principales méthodologies de conception d'algorithmes.
Introduction
Les domaines de l'algorithmique, présentation du cours.
La Complexité des algorithmes
Introduction à la complexité, calcul pratique, complexité au pire, au mieux, en moyenne, ordres de grandeur, exemple de raffinement d'un algorithme.
Diviser pour régner
Principe, implantation récursive, schéma de complexité, calcul de la complexité, exemples.
Essais successifs
Principe et type de problèmes traités, représentation par parcours d'arbre, mise en oeuvre récursive, recherche de toutes les solutions, recherche d'une solution optimale.
Programmation dynamique
Principe, exemples. Le plus court chemin dans un graphe, un correcteur orthographique, le calcul optimal d'un produit chaîné de matrices rectangulaires.
Content: Ce module aborde la question de la conception de logiciels dans des systèmes répartis, c'est-à-dire des systèmes composés de plusieurs machines situées sur des sites différents et communicant par échanges de messages via un réseau. Concrètement, il traite principalement des aspects modélisation et programmation (en Java).
Introduction et définitions
Ordre, temps et état
Langage CSP
1 producteur / 1 consommateur
Threads, sockets et RMI en Java
Exclusion mutuelle
Problèmes classiques
Algèbres de processus: le cas du Pi-calcul.
Content: Ce cours vise à présenter les différentes familles d'appels du système d'exploitation Unix.
Processus
Signaux
Tubes
IPC System V
Threads
Sockets
Content: Ce cours vise à présenter, d'une part, l'approche orientée objets pour la modélisation et, d'autre part, un langage de programmation objet.
Les Concepts Objets: Présentation
La Programmation Objet en Java
Le Développement Objet en UML
La Programmation Mulithreading
La Programmation Réseau (Sockets, RMI)
Les interfaces Graphiques en Java
Content: Ce module vise à présenter les techniques de publication de données et plus généralement de services sur le web. L'étudiant pourra concevoir un site internet statique, y incorporer des pages dynamiques, gérer les accès à certaines de ses parties. Il pourra en outre faire évoluer ce site grâce à l'administration et la configuration de serveurs web (Apache) et applicatifs (Tomcat).
Programmation de page Web statiques:
le protocole HTTP et les serveurs Web
HTML, XHTML, introduction à l'ergonomie.
Programmation de pages Web dynamiques:
php
javascript
cgi.
Java et la Programmation Internet:
Applets
Servlets et JSP
Midlets
Configuration et Problèmes classiques:
Apache et Tomcat
L'autentification
La restriction
Content:
Théorie de graphes
Recherche des plus courts chemins
Les arbres couvrants
Flots et réseaux de transport
La planarité
La coloration
Les cycles hamiltoniens
Content:
Le modèle OSI simplifié
TCP/IP
La couche lien (SLIP, Ethernet)
La couche réseau (le protocole IP)
La couche transport
Le protocole UDP
Programmation UDP en Java et C
Le protocole TCP, Programmation TCP
Structure des applications réseau
Le protocole DNS
Content:
Algèbre relationnelle
Dépendances fonctionnelles
Modèle conceptuel de données en UML
Types de données en SQL
Data Definition Language (DDL)
PostgreSQL
Requêtes
Vues
JDBC
Gestion de droits d'accès
Transactions
Content:
Classes et objets
Héritage
Interfaces
Classes internes et locales
Exceptions
Swing
Généricité
Collections
Threads
Content:
Types
Variable
Operateurs
Structures de contrôle
Tableaux
Tri
Pointeurs
Fonctions
Content:
Stockage de l’information
Tests et Itérations
Tableaux
Pointeurs
Allocation dynamique
Fonctions
Structures
Listes chaînées
Récursivité
Content:
Programmation orientée objet
Classes
Surcharges de méthodes et d’opérateurs
Héritage
Polymorphisme & méthodes virtuelles
Templates
Exceptions
Content:
Arbres
Arbres binaires de recherche: parcours, recherche, insertion, suppression
Arbres équilibrés (AVL)
Arbres 2-3
Méthodes de tri
Les tas
Tri-tas
Tri-fusion
Tri-rapide
Content:
Les systèmes de gestion de bases de données (SGDB) relationnelles et semi-structurées (XML)
Indexation
Plans d’exécutions optimales
Transactions
Concurrences des SGBD relationnelles
Interrogation et transformation de données XML