--- title: Syllabus Sorbonne CFA des sciences Julien Noyer tags: syllabus, td, sorbonne robots: noindex, nofollow author: Julien Noyer --- # Principes et techniques de production de projets numériques *Syllabus Sorbonne CFA des sciences – 2023* ![](https://i.imgur.com/YCmsfd7.png) > &copy; [Julien Noyer](https://www.linkedin.com/in/julien-n-21219b28/) - All rights reserved for educational purposes only --- ## Avant-propos Depuis les années 1990 et l'avènement des Internets, **un grand nombres de stratégies** de développements ont été mis en place qui correspondent à la fois aux possibilités offertes par les différents **langages de programmation et à l'évolution des pratiques l'informatiques** d'une population qui se connecte toujours plus. Les dix dernières années ont permis de voir qu'**un langage de programmation se dégage** dans la mise en place d'outils disponibles sur les Internets, sans pour autant avoir pour objectif de remplacer les autres langages, le Javascript à démontrer sa valeur aussi bien pour développer des applications dites « **FrontEnd** » que des applications dites « **BackEnd** ». Au delà des notions strictement techniques, les Internet et plus précisément le Web ont permis à toutes les personnes qui les utilisent d’**augmenter leur connaissances sur le monde qui les entour et sur les outils qu'elles manipulent**. Si en 1990 la notion d'intelligence artificielle était réservé à la science fiction, elle se retrouve aujourd'hui au cœur des discussions, en politique comme dans nos relations de tous les jours. Dans le cadre de la production de projets numériques, **quasiment plus aucune ligne de code n'est écrite sans l'aide d'une ou plusieurs IA**, et l'évolution du matériel que nous utilisons nous permet de tirer avantage de certains algorithmes qui sont devenus accessibles selon différents protocoles. Les **enjeux** de production deviennent alors **multiples**, et ne peuvent plus uniquement être vues à travers le prisme **technique**, car les aspects **philosophiques** et **sociaulogiques** prédominent. <br> ## Présentation du cursus Nos **trois sessions de cours** sont organisées autour de la création d'un projet qui permet de mettre en avant les principales réflexions à avoir pour **produire un projet a destination du grand publique**. Les cours prendrons la forme d'un travail dirigé à faire par groupe de 3 ou 4 dont chaque membre devra rédiger un compte rendu du travail qu'il ou elle aura réalisé. L'objectif du cursus n'est pas de finir le projet à 100% mais de **présenter une réflexion générale suffisamment aboutie et argumenter** pour valider la faisabilité et la pertinence du projet présenter. Pour organiser au mieux votre travail durant nos 3 sessions de cours, chaque journée sera organisées de la façon suivante : * **début de matinée** : recherches, Q&R * **milieu de matinée** : définition de la problématique principale (JN) * **fin de matinée** : proposition de solution(s) technique(s) * **début d'après-midi** : définition des étapes de productions * **fin d'après-midi** : travail de groupe, fourniture de code de départ (JN) > *Cette organisation peut-être amenée à évoluer selon l'avènement des équipes* <br> --- <br><br> # Présentation du projet de groupe *Chatons, c'est mignon un chaton* ![](https://i.imgur.com/CdsRemF.png) ## Définition Vous avez à développer un projet d'apparence simple, très largement utilisé par les internautes et qui représente un des socles principaux des Internets : un **système de messagerie instantanée**. La définition de ce projet est volontairement simple pour vous laisser l'opportunité de **réfléchir aux problématiques relatives** à la mise en place d'un tel système, l'enjeu étant de vous permettre de définir des stratégies et de les confirmer. <br> ## Enjeux pédagogiques Ce travail de groupe nous permettra de **mettre en avant les notions théoriques** de la mise en **production de projets numériques**, c'est pourquoi nous vous amènerons à réfléchir sur les 3 axes principaux suivant : * définir une structure **serveur** * définir un **système d'informations** * **structurer** un projet (BackEnd / FronEnd) **Pour vous aider** à répondre à ces enjeux il vous sera apporté durant les sessions de recherches et de questions/réponses à la fois des **supports de cours** et des **retours d’expériences** qui vous seront présenté par Julien Noyer. <br> ## Cas utilisateur Vous avez, sans aucun doute, déjà utilisé un système de messagerie instantanée, ce qui vous permet d'avoir une **idée globale de ce à quoi un internaute peut s'attendre** lors de l'utilisation d'un tel système. Nous allons néanmoins définir quelques **cas utilisateur** pour vous aider à initier votre réflexion : 1. **aucune inscription** nécessaire 1. chaque **conversation** à une **URL unique** 1. chaque **conversation** à un **mot de passe** défini par son créateur 1. pour créer ou accéder à une **conversation** il faut définir son **pseudo** 1. il est possible de publier des **messages**, des **liens** et des **images** > *D'autres cas utilisateur peuvent être définis selon les problématiques soulevé lors des sessions.* <br> ## Enjeux technico-philosophiques La simplicité des cas utilisateur définies ci-dessus est faite pour vous amener à **une réflexion qui va au-delà de vos compétences techniques** pour vous permettre de définir vos propres **critères de faisabilité** d'un projet. S'il vous avait été demandé de développer une plateforme de « fishing » pour cette exercice, l'auriez-vous fait ? Sans aller jusqu'à vous autoriser à ne pas développer ce système de messagerie instantanée, **il vous est demandé d'exercer un regard critique sur les fonctionnalités** que vous allez définir selon les cas utilisateur. Vous pouvez considérer par exemple qu'une **inscription est nécessaire** pour accéder à un tel système, vous pouvez dans ce cas changer le principe défini ci-dessous pour y intégrer un tunnel d'inscription. En revanche vous aurez à **préciser les avantages** que vous avez identifier à changer de système **et les problématiques qui sont résolues** grâce à ce changement. Autre **piste de réflexion** relatif à la réglementation générale pour la protection de données personnelles, comment faire avec un tel système pour assurer la **non-divulgation d'informations sensibles** ainsi que leur **portabilité** malgré l'absence d'inscription préalable ? Enfin, et pour répondre à un problème majeur dans les échanges en ligne, comment éviter **insultes**, **intimidations** et **harcèlements** alors qu'aucune inscription n'est requise ? <br> --- <br><br> # Ressources ![](https://i.imgur.com/eAySYs0.png) La liste ci-dessous contient les liens utiles et des ressources qui pourrons vous permettre de définir les meilleures solutions pour la mise en production d'un projet web : ## Hébergement - IONOS https://www.ionos.fr - OVH https://www.ovhcloud.com/fr/ - DigitalOcean https://www.digitalocean.com - Always Data https://www.alwaysdata.com/fr/ ## Nom de domaine - Gandi https://www.gandi.net/fr - Let's Encrypt https://letsencrypt.org - Certbot https://certbot.eff.org - AFNIC https://www.afnic.fr/noms-de-domaine/tout-savoir/ ## Base de données - MariaDB https://mariadb.org - PostgreSQL https://www.postgresql.org - CouchDB https://couchdb.apache.org - MongoDB https://www.mongodb.com/fr-fr