Programme des cours 2025-2026
INFO3006-1  
Programmation client-serveur
  • Programmation client-serveur - Théorie 1 (Programmation client-serveur - Théorie 1)
  • Programmation client-serveur - Laboratoire 1 (Programmation client-serveur - Laboratoire 1)
  • Programmation client-serveur - Théorie 2 (Programmation client-serveur - Théorie 2)
  • Programmation client-serveur - Laboratoire 2 (Programmation client-serveur - Laboratoire 2)
Durée :
Programmation client-serveur - Théorie 1 (Programmation client-serveur - Théorie 1) : 20h Th
Programmation client-serveur - Laboratoire 1 (Programmation client-serveur - Laboratoire 1) : 10h Pr
Programmation client-serveur - Théorie 2 (Programmation client-serveur - Théorie 2) : 40h Th
Programmation client-serveur - Laboratoire 2 (Programmation client-serveur - Laboratoire 2) : 20h Pr
Nombre de crédits :
Bachelier en informatique, orientation technologies de l'informatique9
Nom du professeur :
Programmation client-serveur - Théorie 1 (Programmation client-serveur - Théorie 1) : Nazmi ONGUN
Programmation client-serveur - Laboratoire 1 (Programmation client-serveur - Laboratoire 1) : Nazmi ONGUN
Programmation client-serveur - Théorie 2 (Programmation client-serveur - Théorie 2) : Anne COMHAIRE
Programmation client-serveur - Laboratoire 2 (Programmation client-serveur - Laboratoire 2) : Anne COMHAIRE
Coordinateur(s) :
Nazmi ONGUN
Langue(s) de l'unité d'enseignement :
Langue française
Organisation et évaluation :
Enseignement au premier quadrimestre, examen en janvier
Unités d'enseignement prérequises et corequises :
Les unités prérequises ou corequises sont présentées au sein de chaque programme
Contenus de l'unité d'enseignement :
Programmation client-serveur - Théorie 1 (Programmation client-serveur - Théorie 1)
Savoir

Compléments de php :

Notion de session
Notion de sécurisation d'une page web (parades aux injections SQL et attaques par XSS)
Connexion à un serveur de base de données
 - Gestion des requêtes préparées
 - Utilisation de procédures stockées
Notions de programmation Objet en php  - Objets PDO
Installation et déploiement d'un CMS basé sur php/mysql (Par exemple : Joomla, Drupal, Wordpress)
Implémentation du modèle MVC


Compléments de NodeJS :

Etude de Modules compléméntaires :
 - Petit Framework / Bibliothèque : Express.js
 - Temps réel : Socket.io
 - Template : EJS
Format JSON, fichier package.json
Création d'une application "temps réel"
Programmation client-serveur - Laboratoire 1 (Programmation client-serveur - Laboratoire 1)
Savoir

Mêmes connaissances que pour la partie théorique.

Savoir faire

Réalisation/implémentation d'applications basées sur des cahiers des charges donnés en séances de laboratoire

Chaque étudiant sera amené à présenter à ses condisciples un exposé oral basé sur un sujet donné 6 semaines à l'avance. L'étudiant sera tenu de produire un rapport circonstancié d'une dizaine de pages relatif au sujet abordé et qui sera distribué à ses condisciples en guise de mini tutoriel de base associé au sujet traité.

Savoir être

Etre ponctuel et respecter les consignes.

L'autonomie est le savoir-être central de cette activité d'apprentissage, les solutions étant construites par l'étudiant sous la direction de l'enseignant qui joue le rôle du demandeur et du conseiller technique en posant requêtes, critiques et conseils.
Programmation client-serveur - Théorie 2 (Programmation client-serveur - Théorie 2)
Les matières suivantes relatives à ASP.Net MVC seront abordées : le pattern MVC, les routes, les tests automatiques, le modèle, les contrôleurs, les vues, les migrations, Entity Framework, la Fluent API, les helpers, les outils de validation, le Scaffolding,...
D'autres matières seront abordées en fonction des travaux présentés par les étudiants, authentification, design pattern, débogage, noSQL, React/Angular/Blazor,...
30% pourra être consacré à une matière différente en fonction des opportunités et des choix des étudiants.
Programmation client-serveur - Laboratoire 2 (Programmation client-serveur - Laboratoire 2)
Plate-forme orientée Windows : ASP.NET MVC Mêmes connaissances que pour la partie théorique.
Acquis d'apprentissage (objectifs d'apprentissage) de l'unité d'enseignement :
Programmation client-serveur - Théorie 1 (Programmation client-serveur - Théorie 1)
Collaborer à la conception, à l'amélioration et au développement de projets techniques.

- Analyser une situation donnée sous ses aspects techniques et scientifiques.
- Elaborer une méthodologie de travail.
- Planifier des activités.
- Proposer des solutions qui tiennent compte des contraintes.
- Rechercher et utiliser les ressources adéquates.

Collaborer à l'analyse et à la mise en œuvre d'un système informatique.

- En choisissant une méthode d'analyse adaptée, exprimer une solution avec les formalismes appropriés.
- Sur base de spécifications issues d'une analyse : développer une solution logicielle | mettre en œuvre une architecture matérielle.

Communiquer et informer.

- Présenter des prototypes de solution et d'application techniques.
- Utiliser le vocabulaire adéquat.

Intégrer et faire communiquer différents composants software et hardware dans un environnement hétérogène.

- Analyser le schéma, installer et exploiter une base de données informatisée.
- Réaliser une application informatique à l'aide d'un langage de programmation procédural ou orienté objet, dans différents environnements de développement.

S'engager dans une démarche de développement professionnel.

- Développer une pensée critique.
- S'informer et s'inscrire dans une démarche de formation permanente.
- Travailler tant en autonomie qu'en équipe dans le respect de la structure de l'environnement professionnel.

S'inscrire dans une démarche de respect des réglementations

- Intégrer les différents aspects du développement durable.
Programmation client-serveur - Laboratoire 1 (Programmation client-serveur - Laboratoire 1)
Collaborer à la conception, à l'amélioration et au développement de projets techniques.

- Analyser une situation donnée sous ses aspects techniques et scientifiques.
- Elaborer une méthodologie de travail.
- Planifier des activités.
- Proposer des solutions qui tiennent compte des contraintes.
- Rechercher et utiliser les ressources adéquates.

Collaborer à l'analyse et à la mise en œuvre d'un système informatique.

- En choisissant une méthode d'analyse adaptée, exprimer une solution avec les formalismes appropriés.
- Sur base de spécifications issues d'une analyse : développer une solution logicielle | mettre en œuvre une architecture matérielle.

Communiquer et informer.

- Présenter des prototypes de solution et d'application techniques.
- Utiliser le vocabulaire adéquat.

Intégrer et faire communiquer différents composants software et hardware dans un environnement hétérogène.

- Analyser le schéma, installer et exploiter une base de données informatisée.
- Réaliser une application informatique à l'aide d'un langage de programmation procédural ou orienté objet, dans différents environnements de développement.

S'engager dans une démarche de développement professionnel.

- Développer une pensée critique.
- S'informer et s'inscrire dans une démarche de formation permanente.
- Travailler tant en autonomie qu'en équipe dans le respect de la structure de l'environnement professionnel.

S'inscrire dans une démarche de respect des réglementations

- Intégrer les différents aspects du développement durable.
Programmation client-serveur - Théorie 2 (Programmation client-serveur - Théorie 2)
Capacité à mettre en place les outils vus au cours
Capacité d'apprentissage en autodidacte sur des matières récentes et évolutives,
Capacité à choisir son propre chemin parmi le foisonnement des outils disponibles.
L'autonomie est le savoir être central de cette activité d'apprentissage, les solutions étant construites par l'étudiant sous la direction de l'enseignant qui joue le rôle du demandeur et du conseiller technique en posant requêtes, critiques et conseils.

[Ecirc]tre ponctuel et respecter les consignes. 

Capacité à montrer en classe, avec le professeur et les autres étudiants, une attitude proactive qui favorise l'apprentissage de tous les étudiants que ce soit lors des travaux individuels ou de groupe.
Programmation client-serveur - Laboratoire 2 (Programmation client-serveur - Laboratoire 2)
Réalisation d'une application web implémentant la gestion complète d'une base de données évoluée et ce sur base d'un cahier des charges à analyser.
Etre ponctuel et respecter les consignes.
L'autonomie est le savoir être central de cette activité d'apprentissage, les solutions étant construites par l'étudiant sous la direction de l'enseignant qui joue le rôle du demandeur et du conseiller technique en posant requêtes, critiques et conseils.

[Ecirc]tre ponctuel et respecter les consignes. 

Capacité à montrer en classe, avec le professeur et les autres étudiants, une attitude proactive qui favorise l'apprentissage de tous les étudiants que ce soit lors des travaux individuels ou de groupe.
Savoirs et compétences prérequis :
Programmation client-serveur - Théorie 2 (Programmation client-serveur - Théorie 2)
Le cours de programmation B2Q1
Programmation client-serveur - Laboratoire 2 (Programmation client-serveur - Laboratoire 2)
Le cours de programmation B2Q1
Activités d'apprentissage prévues et méthodes d'enseignement :
Programmation client-serveur - Théorie 1 (Programmation client-serveur - Théorie 1)
Le choix des méthodes et des outils les plus adéquats sera toujours abordé de manière préalable au développement.

Les bases seront exposées au cours. Les étudiants seront ensuite « lâchés » en autonomie. L'enseignant s'efforcera d'amener les étudiants à être capables de travailler tant seuls qu'en équipe, à l'autodidactisme pratiquement indispensable dans ces matières vastes, complexes et en permanente mutation. Bien entendu, l'enseignant restera attentif à l'avancement des travaux et instaurera une guidance appropriée à chaque étudiant.
Programmation client-serveur - Laboratoire 1 (Programmation client-serveur - Laboratoire 1)
Programmation client-serveur laboratoire 1 Chacun avance sur son propre chemin. L'enseignant sera là pour aiguiller et guider chaque étudiant.
Programmation client-serveur - Théorie 2 (Programmation client-serveur - Théorie 2)
Les bases seront exposées au cours.
Le choix des méthodes et des outils les plus adéquats sera toujours abordé de manière préalable au développement.
Les étudiants seront ensuite « lâchés » en autonomie. 
Le cours contient au moins 50% de travail en autonomie.
L'enseignant s'efforcera d'amener les étudiants à être capables de travailler tant seuls qu'en équipe, à l'autodidactisme pratiquement indispensable dans ces matières vastes, complexes et en permanente mutation.
Bien entendu, l'enseignant restera attentif à l'avancement des travaux et instaurera une guidance appropriée à chaque étudiant.
Il est possible que des exposés sur d'autres matières soient présentés aux étudiants, par le professeur, d'anciens étudiants ou des experts extérieurs.
Programmation client-serveur - Laboratoire 2 (Programmation client-serveur - Laboratoire 2)
Un thème sera abordé à chaque séance par le professeur.
Les étudiants seront amenés à le tester en autonomie, chacun avançant sur son propre chemin à la découverte de technologies proposées, des travaux seront demandés régulièrement.
L'enseignant sera là pour aiguiller et guider chaque étudiant. Le cours contient au moins 50% de travail en autonomie.
Mode d'enseignement (présentiel, à distance, hybride) :
Programmation client-serveur - Théorie 1 (Programmation client-serveur - Théorie 1)
Présentiel obligatoire comprenant :

  • Cours théoriques.
  • Travaux pratiques en laboratoire.
La participation active aux séances est indispensable pour la compréhension et la réussite.  
Programmation client-serveur - Laboratoire 1 (Programmation client-serveur - Laboratoire 1)
Présentiel obligatoire comprenant :

Cours théoriques.

Travaux pratiques en laboratoire.

La participation active aux séances est indispensable pour la compréhension et la réussite.
Programmation client-serveur - Théorie 2 (Programmation client-serveur - Théorie 2)
Par défaut en présentiel sauf cas exceptionnel où le cours peut être donné à distance.
Programmation client-serveur - Laboratoire 2 (Programmation client-serveur - Laboratoire 2)
Par défaut en présentiel sauf cas exceptionnel où le cours peut être donné à distance.

En fonction de l'avancement du cours.
Une séance pourra éventuellement se faire à distance (à mi-cours) (la direction sera avertie).

Coaching avec chaque étudiant/ou groupe d'étudiants (si le projet se fait à plusieurs) sur le projet final.
Ou en est le travail ? Quels sont les problèmes rencontrés ? Quels sont les moyens de les solutionner ? Quel planning va être mis en place pour y arriver ? Pendant ce temps, les autres étudiants avancent sur leur projet personnel.

L'objectif est aussi de pouvoir discuter à plusieurs à distance d'une situation par l'intermédiaire d'une application de travail à distance comme cela se fait dans les entreprises aujourd'hui.
Lectures recommandées ou obligatoires et notes de cours :
Programmation client-serveur - Théorie 1 (Programmation client-serveur - Théorie 1)
Les notes de cours ainsi que des tutoriels en ligne sont disponibles sur la plateforme Teams.    
Programmation client-serveur - Laboratoire 1 (Programmation client-serveur - Laboratoire 1)
Notes de cours et démos sont distribuées au cours. Les références complémentaires se trouvent sur internet.

mise à jour de l'ensemble des notes de cours et des exercices + des tutos pour les labos via Teams
Programmation client-serveur - Théorie 2 (Programmation client-serveur - Théorie 2)
Les notes de cours et leurs exemples et les exercices proposés au cours.
Programmation client-serveur - Laboratoire 2 (Programmation client-serveur - Laboratoire 2)
Les notes de cours et leurs exemples et les exercices proposés au cours.
Modalités d'évaluation et critères :
Programmation client serveur Théorie1: 30 points

Programmation client serveur Laboratoire1: 30 points

Programmation client serveur Théorie2: 60 points

Programmation client serveur Laboratoire2: 60 points

Total: 180 points
Programmation client-serveur - Théorie 1 (Programmation client-serveur - Théorie 1)
Pour les AA Programmation client-serveur théorie 1 et Programmation client-serveur laboratoire 1  : le jour de l'examen : épreuve intégrée en 2 volets, un volet par thème du cours théorique associé à une application de longue haleine à développer, à présenter et défendre devant PC .

L'évaluation de chaque application se fera selon les critères suivants :

  • l'exactitude du (des) programme(s) et/ou implémentations (fonctionnement correct et respect des spécifications),
  • la défense orale qui amènera l'étudiant à prouver, d'une part sa connaissance du/des langages et/ou de l'outil abordé, et d'autre part, qu'il maîtrise le(s) programme(s) et/ou application qu'il présente.
  • la justification des choix opérés pour les éléments techniques,
  • la qualité de l'architecture des applications
  • la précision des commentaires des listings,
  • la lisibilité générale de ceux-ci,
  • la créativité et le design des applications.
La thématique associée au CMS fera l'objet d'une interrogation orale devant PC en séance de laboratoire. La date de l'interrogation est fixée dès la rentrée du congé d'automne, donc début novembre.

L'exposé devant les condisciples fait également l'objet de l'évaluation.

NB : en cas d'ajournement, les points relatifs à la partie associée à l'exposé devant les condisciples seront figés et reportés tels quels dans les cotations éventuelles ultérieures.


Evaluation sur les différents volets dont la pondération est la suivante

  • Application php : 9 points
  • Application NodeJS : 9 points
  • CMS : 6 points
  • Exposé devant les condisciples : 6 points. (Rappel : en cas d'ajournement : report automatique des points obtenus le jour de l'exposé).
Une défense orale permet à l'étudiant de démontrer ses acquis théoriques en utilisant des justifications théoriques pour expliquer les choix et les développements mis en place lors l'évaluation des projets réalisés.
Programmation client-serveur - Laboratoire 1 (Programmation client-serveur - Laboratoire 1)
Programmation client-serveur laboratoire 1 Pour les AA Programmation client-serveur théorie 1 et Programmation client-serveur laboratoire 1  : le jour de l'examen : épreuve intégrée en 2 volets, un volet par thème du cours théorique associé à une application de longue haleine à développer, à présenter et défendre devant PC .

L'évaluation de chaque application se fera selon les critères suivants :

  • l'exactitude du (des) programme(s) et/ou implémentations (fonctionnement correct et respect des spécifications),
  • la défense orale qui amènera l'étudiant à prouver, d'une part sa connaissance du/des langages et/ou de l'outil abordé, et d'autre part, qu'il maîtrise le(s) programme(s) et/ou application qu'il présente.
  • la justification des choix opérés pour les éléments techniques,
  • la qualité de l'architecture des applications
  • la précision des commentaires des listings,
  • la lisibilité générale de ceux-ci,
  • la créativité et le design des applications.
La thématique associée au CMS fera l'objet d'une interrogation orale devant PC en séance de laboratoire. La date de l'interrogation est fixée dès la rentrée du congé d'automne, donc début novembre.

L'exposé devant les condisciples fait également l'objet de l'évaluation.

NB : en cas d'ajournement, les points relatifs à la partie associée à l'exposé devant les condisciples seront figés et reportés tels quels dans les cotations éventuelles ultérieures.

 

Programmation client-serveur laboratoire 1 Un examen oral est organisé à chacune des sessions et prend en compte:
 La réalisation du développement des projets suivants :
-    Application php : 9 points
-    Application NodeJS : 9 points
-    CMS : 6 points
-    Exposé devant les condisciples : 6 points. (Rappel : en cas d'ajournement : report automatique des points obtenus le jour de l'exposé).
Programmation client-serveur - Théorie 2 (Programmation client-serveur - Théorie 2)
Modalités
L'évaluation est continue et est basée sur les travaux effectués régulièrement dans le cadre du cours.
Un travail de groupe sera proposé aux étudiants sur une nouvelle technologie.
Un exposé oral sera demandé pour la présentation de l'application personnelle.

Détails
Dans le cadre de l'évaluation continue, les travaux devront être rendu aux dates demandées par l'enseignant. Environ une semaine après la séance de labo.

Pendant le cours, un travail de groupe sur une matière non vue au cours sera présentée aux autres étudiants et au professeur. Ce travail consistera en une présentation succincte et en une  petite application réalisée en direct avec tous et par tous qui permettra aux autres de découvrir cette technologie. L'objectif de cette démarche est clairement une veille technologique.
L'évaluation du projet se fera sur base des critères suivants :
- la justification des choix opérés pour l'architecture et les techniques sélectionnées,
- la justification des choix opérés lors de la rencontre de problèmes,
- la structure et la propreté du code,
- la précision des commentaires et la créativité ainsi que le design.
- Un rapport écrit succin sera demandé.
Un exposé oral pour la présentation du projet sera organisé en S1 (janvier) et en S3 (août).

Pondération
Evaluation continue définitive : 10 points.
Evaluation du travail de groupe : 15 points.
Projet (partie rapport): 15 points.
Programmation client-serveur - Laboratoire 2 (Programmation client-serveur - Laboratoire 2)
Modalités
Défense orale du projet sur base des critères suivants :
- la justification des choix opérés pour l'architecture et les techniques sélectionnées,
- la justification des choix opérés lors de la rencontre de problèmes,
- la structure et la propreté du code,
- la précision des commentaires et la créativité ainsi que le design.
Un rapport écrit succin sera demandé.


Un exposé oral pour la présentation du projet sera organisé de la même manière en S1 (janvier) et en S3 (août).

Pondération
Projet (partie code) : 20 points.
Stage(s) :
Remarques organisationnelles :
Programmation client-serveur - Théorie 1 (Programmation client-serveur - Théorie 1)
  • La présence aux cours théoriques et la participation aux séances de laboratoire sont obligatoires.
  • Les absences injustifiées peuvent avoir un impact sur la maîtrise des compétences et la réussite de l'UE.    
Programmation client-serveur - Laboratoire 1 (Programmation client-serveur - Laboratoire 1)
  • La présence aux cours théoriques et la participation aux séances de laboratoire sont obligatoires.
  • Les absences injustifiées peuvent avoir un impact sur la maîtrise des compétences et la réussite de l'UE.
Programmation client-serveur - Théorie 2 (Programmation client-serveur - Théorie 2)
Notes de cours et codes sources fournis ou élaborés lors des cours sont disponibles sur la plateforme Teams.
Programmation client-serveur - Laboratoire 2 (Programmation client-serveur - Laboratoire 2)
Notes de cours et codes sources fournis ou élaborés lors des cours sont disponibles sur la plateforme Teams.
Contacts :
Programmation client-serveur - Théorie 1 (Programmation client-serveur - Théorie 1)
  nazmi.ongun@hel.be
Programmation client-serveur - Laboratoire 1 (Programmation client-serveur - Laboratoire 1)
nazmi.ongun@hel.be
Programmation client-serveur - Théorie 2 (Programmation client-serveur - Théorie 2)
annelise.comhaire@hel.be
Programmation client-serveur - Laboratoire 2 (Programmation client-serveur - Laboratoire 2)
annelise.comhaire@hel.be