ossu / computer-science

Université de la société du logiciel libre (OSSU)

Université de la société du logiciel libre

Parcours à une éducation autodidacte gratuite en informatique !

AwesomeUniversité de la société du logiciel libre -. Informatique

  • Sommaire
  • Communauté
  • Curriculum
  • Code de conduite
  • Équipe

Sommaire

Le curriculum de l’OSSU est un enseignement complet en informatique utilisant des matériaux en ligne.Ce n’est pas seulement pour la formation de carrière ou le développement professionnel.C’est pour ceux qui veulent une base correcte et bien équilibrée dans les concepts fondamentaux de toutes les disciplines informatiques,et pour ceux qui ont la discipline, la volonté et (surtout !) de bonnes habitudes pour obtenir cette éducation en grande partie par eux-mêmes,mais avec le soutien d’une communauté mondiale de collègues apprenants.

Il est conçu en fonction des exigences de diplôme des majors de premier cycle en informatique, moins les exigences d’éducation générale (non-CS),car on suppose que la plupart des personnes qui suivent ce programme d’études sont déjà instruites en dehors du domaine de la CS.Les cours eux-mêmes sont parmi les tout meilleurs au monde, provenant souvent de Harvard, Princeton, MIT, etc,mais spécifiquement choisis pour répondre aux critères suivants.

Les cours doivent :

  • être ouverts à l’inscription
  • être dispensés régulièrement (idéalement en format autogéré, sinon plusieurs fois par an)
  • être de qualité généralement élevée en termes de matériel d’enseignement et de principes pédagogiques
  • correspondre aux normes curriculaires du CS 2013 : Curriculum Guidelines for Undergraduate Degree Programs in Computer Science

Lorsqu’aucun cours ne répond aux critères ci-dessus, le cours est complété par un livre.Lorsqu’il y a des cours ou des livres qui ne s’intègrent pas dans le curriculum mais qui sont par ailleurs de haute qualité, ils appartiennent aux extras/cours ou extras/lectures.

Organisation. Le programme d’études est conçu comme suit :

  • Intro CS : pour que les étudiants s’essaient à la CS et voient si elle leur convient
  • Core CS : correspond à peu près aux trois premières années d’un programme d’études en informatique, en prenant des cours que tous les majors seraient tenus de prendre
  • Centre avancé CS : correspond à peu près à la dernière année d’un cursus en informatique, en prenant des cours à option en fonction des intérêts de l’étudiant
  • Projet final : un projet permettant aux étudiants de valider, consolider et afficher leurs connaissances, qui seront évaluées par leurs pairs dans le monde entier

Durée. Il est possible de terminer en 2 ans environ si vous planifiez soigneusement et consacrez environ 20 heures/semaine à vos études. Les apprenants peuvent utiliser cette feuille de calcul pour estimer leur date de fin. Si vous faites une copie personnelle, vous pouvez entrer vos dates réelles de fin de cours dans la feuille Curriculum Data et obtenir des estimations de fin de cours actualisées.

Coût. Tout ou presque tout le matériel de cours est disponible gratuitement. Cependant, certains cours peuvent demander de l’argent pour que les devoirs/tests/projets soient notés.Notez que Coursera et edX proposent tous deux des aides financières.

Décidez du montant à dépenser en fonction de votre propre temps et de votre budget ;rappelez-vous simplement que vous ne pouvez pas acheter le succès !

Processus. Les étudiants peuvent travailler à travers le programme d’études seul ou en groupe, dans l’ordre ou hors de l’ordre.

  • Nous recommandons de faire tous les cours de Core CS, seulement sauter un cours lorsque vous êtes certain que vous avez déjà appris le matériel précédemment.
  • Pour la simplicité, nous recommandons de travailler à travers les cours (en particulier Core CS) dans l’ordre de haut en bas, car ils ont déjà été topologiquement triés par leurs prérequis.
  • Les cours de Advanced CS sont des cours facultatifs. Choisissez un sujet (par exemple, la programmation avancée) dans lequel vous voulez devenir un expert et suivez tous les cours de cette rubrique. Vous pouvez également créer votre propre sujet personnalisé, mais nous vous recommandons d’obtenir la validation de la communauté sur le sujet que vous choisissez.

Politique de contenu. Si vous prévoyez de montrer certains de vos travaux de cours publiquement, vous ne devez partager que les fichiers que vous êtes autorisé à partager.Ne manquez PAS au code de conduite que vous avez signé au début de chaque cours !

Comment contribuer

Obtenir de l’aide (Détails sur notre FAQ et notre chatroom)

Communauté

  • Nous avons un serveur discord ! Discord Ce devrait être votre premier arrêt pour parler avec d’autres étudiants de l’OSSU. Pourquoi ne pas te présenter dès maintenant ? Rejoignez le Discord de l’OSSU
  • Vous pouvez également interagir par le biais des problèmes GitHub. S’il y a un problème avec un cours, ou si un changement doit être apporté au programme d’études, c’est l’endroit où commencer la conversation. En savoir plus ici.
  • S’abonner à notre newsletter.
  • Ajouter l’Université Open Source Society à votre profil Linkedin!
  • Note : Il y a une application firebase non maintenue et dépréciée que vous pourriez trouver en cherchant OSSU. Vous pouvez l’ignorer en toute sécurité. Lisez-en plus dans la FAQ.

Curriculum

Version du curriculum : 8.0.0 (voir CHANGELOG)

  • Prérequis
  • Intro CS
    • Introduction à la programmation
    • Introduction à l’informatique. informatique
  • Core CS
    • Core programming
    • Core math
    • CS Tools
    • Core systems
    • Core theory
    • Core applications
    • Core applications
    • Sécurité de base
  • Sécurité avancée
    • Programmation avancée
    • Systèmes avancés
    • Théorie avancée
    • Applications avancées
    • Avancées
    • . applications

  • Projet final
  • Prérequis

    • La CS de base suppose que l’étudiant a déjà pris des mathématiques de niveau secondaire, y compris l’algèbre, la géométrie et le pré-calcul.
    • La CS avancée suppose que l’étudiant a déjà suivi l’intégralité de la CS de base et qu’il a maintenant suffisamment de connaissances pour décider des cours optionnels à prendre.
    • Notez que les systèmes avancés supposent que l’étudiant a suivi un cours de physique de base (par ex.g. AP Physics au lycée).

    Intro CS

    Introduction à la programmation

    Si vous n’avez jamais écrit une boucle for, ou ne savez pas ce qu’est une chaîne de caractères en programmation, commencez ici. Ce cours est autogéré, ce qui vous permet d’ajuster le nombre d’heures que vous consacrez par semaine en fonction de vos besoins.

    Thèmes abordés :simple programssimple data structures

    .

    .

    Cours Durée Effort Prérequis Discussion
    Python pour tout le monde 10 semaines 10 heures/semaine none chat

    Introduction à l’informatique

    Ce cours vous fera découvrir le monde de l’informatique. Les étudiants qui ont été initiés à la programmation, soit à partir des cours ci-dessus ou par l’étude ailleurs, devrait prendre ce cours pour une saveur de la matière à venir. Si vous terminez le cours en voulant plus, l’informatique est probablement pour vous !

    Thèmes abordés :computationimperative programmingbasic data structures and algorithmsand more

    Cours Durée Effort Prérequis Discussion
    Introduction à l’informatique et à la programmation à l’aide de Python (alt) 9 semaines 15 heures/semaine alphabétisme de niveau secondaire . school algebra chat

    Core CS

    Tous les cours sous Core CS sont obligatoires, sauf indication contraire.

    Programmation de base

    Thèmes couverts :functional programmingdesign for testingprogram requirementscommon design patternsunit testingobject-oriented designstatic typingdynamic typingML-family languages (via Standard ML)Lisp-family languages (via Racket)Rubyand more

    Les cours How to Code sont basés sur le manuel How to Design Programs. La première édition est disponible gratuitement en ligne et comprend des ensembles de problèmes et des solutions. Les étudiants sont encouragés à faire ces travaux.

    .

    Cours Durée Effort Prérequis Discussion
    Comment coder -… Données simples 7 semaines 8-10 heures/semaine aucune chat
    Comment coder – Données complexes 6 semaines 8-10 heures/semaine Comment coder : Données simples chat
    Langues de programmation, partie A 5 semaines 4-8 heures/semaine Comment coder (entendre l’instructeur) chat Langues de programmation, Partie B 3 semaines 4-8 heures/semaine Langues de programmation, Partie A chat Langues de programmation, Partie C 3 semaines 4-8 heures/semaine Langues de programmation, Partie B chat

    Maths au choix

    Les étudiants doivent choisir un des sujets suivants : calcul, algèbre linéaire, logique ou probabilité.

    Calcul

    .

    Cours Durée Effort Prérequis Discussion
    Calcul 1A : Différenciation 13 semaines 6-10 heures/semaine mathématiques du secondaire chat
    Calcul 1B : Intégration 13 semaines 5-10 heures/semaine Calcul 1A chat Calcul 1C : Systèmes de coordonnées & Série infinie 6 semaines 5-…10 heures/semaine Calcul 1B chat

    Algèbre linéaire

    .

    .

    Cours Durée Effort Prérequis Discussion
    Essence de l’algèbre linéaire -… maths du secondaire chat
    Algèbre linéaire 14 semaines 12 heures/semaine Essence d’algèbre linéaire chat

    Logique

    .

    Cours Durée Effort Prérequis Discussion
    Introduction à la logique 10 semaines 4-….8 heures/semaine Théorie des ensembles chat

    Probabilité

    Cours Durée Effort Prérequis Discussion
    Probabilité 24 semaines 12 heures/semaine Différence et Intégration chat

    Maths de base

    En plus de leur option mathématique, les étudiants doivent suivre le cours suivant sur les mathématiques discrètes.

    Thèmes abordés :discrete mathematicsmathematical proofsbasic statisticsO-notationdiscrete probabilityand more

    .

    . pour l’informatique (alt)

    Cours Durée Effort Notes Prérequis Discussion
    Mathématiques pour l’informatique (alt) 13 semaines 5 heures/semaine Une autre version avec les solutions aux ensembles de problèmes est ici. Les étudiants qui ont des difficultés peuvent d’abord envisager la spécialisation en mathématiques discrètes. Elle est plus interactive mais moins complète, et coûte de l’argent pour débloquer l’interactivité complète. Calcul 1C chat

    Les outils CS

    Comprendre la théorie est important, mais vous devrez également créer des programmes. Il existe un certain nombre d’outils largement utilisés pour faciliter ce processus. Apprenez-les maintenant pour faciliter votre futur travail d’écriture de programmes.

    Thèmes abordés :terminals and shell scriptingvimcommand line environmentsversion control

    .and more

    .

    Cours Durée Effort Prérequis Discussion
    Le semestre manquant de votre éducation CS 2 semaines 12 heures/semaine -. chat

    Systèmes fondamentaux

    Thèmes abordés :procedural programmingmanual memory managementboolean algebragate logicmemorycomputer architectureassemblymachine languagevirtual machineshigh-level languagescompilersoperating systemsnetwork protocolsand more

    Cours Durée Effort Texte supplémentaire /. Devoirs Prérequis Discussion
    Construire un ordinateur moderne à partir des premiers principes : De Nand à Tetris (alt) 6 semaines 7-13 heures/semaine Langage de programmation de type C chat
    Construire un ordinateur moderne à partir des premiers principes : De Nand à Tetris partie II 6 semaines 12-18 heures/semaine un de ces langages de programmation, De Nand à Tetris partie I chat
    Systèmes d’exploitation : Trois pièces faciles 10-12 semaines 6 heures/semaine algorithmes, familiarité avec le C est utile chat
    Introduction aux réseaux informatiques 8 semaines 4-12 heures/semaine Travail 1
    Travail 2
    Travail 3
    Travail 4
    Problèmes interactifs
    algébre, probabilité, CS de base chat

    Théorie de base

    Thèmes couverts :divide and conquersorting and searchingrandomized algorithmsgraph searchshortest pathsdata structuresgreedy algorithmsminimum spanning treesdynamic programmingNP-completenessand more

    .

    Cours Durée Effort Prérequis Discussion
    Diviser et vaincre, Tri et recherche, et Algorithmes aléatoires 4 semaines 4 à 8 heures/semaine tout langage de programmation, Mathématiques pour l’informatique chat
    Recherche graphique, chemins les plus courts, et structures de données 4 semaines 4-8 heures/semaine Diviser et Conquérir, Tri et recherche, et algorithmes aléatoires chat
    Algorithmes grégaires, arbres à portée minimale et programmation dynamique 4 semaines 4-8 heures/semaine Recherche graphique, Chemins les plus courts, et structures de données chat
    Chemins les plus courts revisités, problèmes NP-complets et ce qu’il faut faire à leur sujet 4 semaines 4-8 heures/semaine Algorithmes de gréviculture, les arbres à portée minimale, et programmation dynamique chat

    Cœur de la sécurité

    Thèmes abordésConfidentiality, Integrity, AvailabilitySecure DesignDefensive ProgrammingThreats and AttacksNetwork SecurityCryptographyand more

    Note : Ces cours sont provisoirement recommandés. Il existe une demande de commentaires ouverte sur la sélection des cours de sécurité. Les contributeurs sont encouragés à comparer les différents cours dans le RFC et à offrir des commentaires.

    .

    Cours Durée Effort Prérequis Discussion
    Sécurité de l’information : Contexte et introduction 5 semaines 3 heures/semaine chat
    Principes du codage sécurisé 4 semaines 4 heures/semaine -. chat
    Identification des vulnérabilités de sécurité 4 semaines 4 heures/semaine -. chat

    Choisissez l’une des options suivantes :

    Cours Durée Effort Prérequis Discussion
    Identifier les vulnérabilités de sécurité dans la programmation C/C++ 4 semaines 5 heures/semaine -. chat
    Exploitation et sécurisation des vulnérabilités dans les applications Java 4 semaines 5 heures/semaine -. chat

    Applications de base

    Thèmes abordés :Agile methodologyRESTsoftware specificationsrefactoringrelational databasestransaction processingdata modelingneural networkssupervised learningunsupervised learningOpenGLraytracingand more

    .

    Ministère du logiciel : Introduction


    Cours Durée Effort Prérequis Discussion
    Bases de données : Modélisation et théorie 2 semaines 10 heures/semaine programmation de base chat
    Bases de données : Bases de données relationnelles et SQL 2 semaines 10 heures/semaine programmation de base chat Bases de données : Données semi-structurées 2 semaines 10 heures/semaine programmationcore chat Apprentissage automatique 11 semaines 4-.6 heures/semaine algébre linéaire chat Informatique 6 semaines 12 heures/semaine C++ ou Java, algèbre linéaire Chat 6 semaines 8-10 heures/semaine Programmation de base, et un projet de taille chat
    Projet de synthèse de développement logiciel 6-7 semaines 8-10 heures/semaine Génie logiciel : Introduction chat

    CS avancée

    Après avoir suivi tous les cours obligatoires de la CS de base, les étudiants devraient choisir un sous-ensemble de cours de la CS avancée en fonction de leurs intérêts.Il n’est pas nécessaire de suivre tous les cours d’une sous-catégorie.Mais les étudiants devraient suivre tous les cours qui sont pertinents pour le domaine dans lequel ils ont l’intention de s’engager.

    L’étude de la CS avancée devrait ensuite se terminer par l’une des spécialisations sous les applications avancées.Le Capstone d’une spécialisation, s’il est pris, peut faire office de projet final, si le code d’honneur du cours le permet.Sinon, ou si un étudiant choisit de ne pas prendre le Capstone, alors un projet final séparé devra être fait pour compléter ce cursus.

    Programmation avancée

    Thèmes abordés :debugging theory and practicegoal-oriented programmingparallel computingobject-oriented analysis and designUMLlarge-scale software architecture and designand more

    Traduction de logiciels


    Cours Durée Effort Prérequis
    Parallel Programming 4 semaines 6-8 heures/semaine Programmation Scala
    Compilateurs 9 semaines 6-8 heures/semaine aucun
    Introduction à Haskell 14 semaines
    Apprendre Prolog maintenant ! (alt)* 12 semaines
    Débogage de logiciels 8 semaines 6 heures/semaine Python, programmation orientée objet
    4 semaines 6 heures/semaine Python, expérience en programmation
    Architecture logicielle & Conception 8 semaines 6 heures/semaine ingénierie logicielle en Java

    (*) livre de Blackburn, Bos, Striegnitz (compilé à partir des sources, redistribué sous licence CC)

    Systèmes avancés

    Thèmes abordés :digital signalingcombinational logicCMOS technologiessequential logicfinite state machinesprocessor instruction setscachespipeliningvirtualizationparallel processingvirtual memorysynchronization primitivessystem call interfaceand more

    .

    Cours Durée Effort Prérequis
    Structures informatiques 1 : Circuits numériques 10 semaines 6 heures/semaine Nand2Tetris II
    Structures informatiques 2 : Architecture des ordinateurs 10 semaines 6 heures/semaine Structures informatiques 1 Structures informatiques 3 : Organisation des ordinateurs 10 semaines 6 heures/semaine Structures informatiques 2

    Théorie avancée

    Thèmes abordés :formal languagesTuring machinescomputabilityevent-driven concurrencyautomatadistributed shared memoryconsensus algorithmsstate machine replicationcomputational geometry theorypropositional logicrelational logicHerbrand logicgame treesand more

    Cours Durée Effort Prérequis
    Théorie de l’informatique (cours magistraux) 8 semaines 10 heures/semaine Mathématiques discrètes, logique, algorithmes
    Géométrie computationnelle 16 semaines 8 heures/semaine algorithmes, C++ Théorie des jeux 8 semaines 3 heures/semaine Réflexion mathématique, probabilité, calcul

    Applications avancées

    Ces spécialisations de Coursera se terminent toutes par un projet Capstone.Selon le cours, vous pouvez être en mesure d’utiliser le Capstone comme projet final pour ce programme d’études en informatique.Notez que faire une spécialisation avec le Capstone à la fin coûte toujours de l’argent.Donc si vous ne souhaitez pas dépenser de l’argent ou utiliser le Capstone comme votre Final, il peut être possible de prendre les cours de la spécialisation gratuitement en les recherchant manuellement, mais tous ne permettent pas cela.

    .

    Cours Durée Effort Prérequis
    Robotique moderne (spécialisation) 26 semaines 2-…5 heures/semaine Physique de niveau débutant, algèbre linéaire, calcul, équations différentielles ordinaires linéaires
    Data Mining (Spécialisation) 30 semaines 2-5 heures/semaine machine learning Big Data (Spécialisation) 30 semaines 3-5 heures/semaine aucune
    Internet des objets (Spécialisation) 30 semaines 1-5 heures/semaine forte programmation
    Cloud Computing (Spécialisation) 30 semaines/td> 2-6 heures/semaine programmation C++
    Fullstack Open 12 semaines 6 heures/semaine programmation
    Science des données (spécialisation) 43 semaines 1-…6 heures/semaine none
    Programmation fonctionnelle en Scala (Spécialisation) 29 semaines 4-5 heures/semaine Une année d’expérience en programmation
    Conception et développement de jeux avec Unity 2020 (spécialisation) 6 mois 5 heures/semaine programmation, conception interactive

    Projet final

    L’UniversitéOSS est axée sur les projets.Vous êtes encouragé à faire les devoirs et les examens de chaque cours, mais ce qui compte vraiment, c’est de savoir si vous pouvez utiliser vos connaissances pour résoudre un problème du monde réel.

    Après avoir parcouru tout le CS de base et les parties du CS avancé qui vous concernent, vous devriez réfléchir à un problème que vous pouvez résoudre en utilisant les connaissances que vous avez acquises.Non seulement le travail sur un projet réel a fière allure sur un CV, mais le projet validera et consolidera également vos connaissances.Vous pouvez créer quelque chose d’entièrement nouveau, ou vous pouvez trouver un projet existant qui a besoin d’aide via des sites Web commeCodeTriageouFirst Timers Only.

    Une autre option est d’utiliser le projet Capstone de prendre l’une des spécialisations dans les applications avancées;si oui ou non cela a du sens dépend du cours, le projet, et si oui ou non le code d’honneur du cours vous permet d’afficher votre travail publiquement.Dans certains cas, cela peut ne pas être autorisé;ne violez pas le code d’honneur de votre cours!

    Mettez le badge OSSU-CS dans le README de votre dépôt!Open Source Society University - Computer Science

    • Markdown : (https://img.shields.io/badge/OSSU-computer--science-blue.svg)](https://github.com/ossu/computer-science)
    • HTML : <a href="https://github.com/ossu/computer-science"><img alt="Open Source Society University - Computer Science" src="https://img.shields.io/badge/OSSU-computer--science-blue.svg"></a>

    Évaluation

    Après avoir terminé votre projet final, soumettez les informations de votre projet à PROJETSvia une demande de pull et utilisez nos canaux communautaires pour l’annoncer à vos collègues étudiants.

    Vos pairs et mentors de l’OSSU évalueront ensuite votre projet de manière informelle.Vous ne serez pas « noté » au sens traditionnel – chacun a ses propres mesures pour ce qu’il considère comme un succès.Le but de l’évaluation est d’agir comme votre première annonce au monde que vous êtes un informaticienet d’acquérir de l’expérience en écoutant les commentaires – tant positifs que négatifs – et en les prenant à bras le corps.

    L’évaluation finale du projet a un deuxième but : évaluer si l’OSSU,par le biais de sa communauté et de son programme d’études, réussit sa mission de guider les apprenants indépendants dans l’obtention d’une éducation informatique de classe mondiale.

    Travail coopératif

    Vous pouvez créer ce projet seul ou avec d’autres étudiants ! Nous aimons le travail coopératif ! Utilisez nos canaux pour communiquer avec d’autres boursiers pour combiner et créer de nouveaux projets !

    Quels langages de programmation dois-je utiliser ?

    Mon ami, voici la meilleure partie de la liberté !Vous pouvez utiliser n’importe quel langage que vous voulez pour compléter le projet final.

    L’important est d’intérioriser les concepts de base et d’être capable de les utiliser avec l’outil (langage de programmation) que vous souhaitez.

    Félicitations

    Après avoir rempli les exigences du programme d’études ci-dessus, vous aurez obtenu l’équivalent d’une licence complète en informatique. Félicitations!

    Qu’est-ce qui vous attend ensuite ? Les possibilités sont illimitées et se chevauchent :

    • Rechercher un emploi de développeur !
    • Vérifier les lectures pour les livres classiques que vous pouvez lire et qui aiguiseront vos compétences et élargiront vos connaissances.
    • Se joindre à un meetup local de développeurs (par exemple via meetup.com).
    • Prêtez attention aux technologies émergentes dans le monde du développement logiciel :
    • Explorez le modèle d’acteur à travers Elixir, un nouveau langage de programmation fonctionnel pour le web basé sur la machine virtuelle Erlang qui a fait ses preuves !
    • Explorez les emprunts et les durées de vie à travers Rust, un langage système qui atteint la sécurité de la mémoire et des threads sans garbage collector !
    • Explorez les systèmes de types dépendants à travers Idris, un nouveau langage inspiré de Haskell avec un support sans précédent pour le développement piloté par les types.

    maintenez votre apprentissage

    Code de conduite

    Code de conduite de l’OSSU.

    Comment montrer vos progrès

    1. Créer un compte dans Trello.
    2. Copier ce tableau sur votre compte personnel.Voir comment copier un tableau ici.

    Maintenant que vous avez une copie de notre tableau officiel, il vous suffit de passer les cartes à la colonne Doing ou Done au fur et à mesure que vous progressez dans votre étude.

    Nous avons également des étiquettes pour vous aider à avoir plus de contrôle tout au long du processus.La signification de chacun de ces labels est la suivante :

    • Main Curriculum : les cartes portant ce label représentent des cours qui sont répertoriés dans notre cursus.
    • Extra Resources : les cartes avec cette étiquette représentent des cours qui ont été ajoutés par l’étudiant.
    • Doing : les cartes avec cette étiquette représentent des cours que l’étudiant est en train de faire.
    • Done : les cartes avec cette étiquette représentent les cours terminés par l’étudiant.Ces cartes devraient également avoir le lien pour au moins un projet/article construit avec les connaissances acquises dans tel cours.
    • Section : les cartes avec cette étiquette représentent la section que nous avons dans notre curriculum.Ces cartes avec l’étiquette Section ne servent qu’à aider l’organisation de la colonne Fait.Vous devez mettre les cartes du cours sous la carte de sa section respective.

    L’intention de ce tableau est de fournir à nos étudiants un moyen de suivre leurs progrès, et aussi la possibilité de montrer leurs progrès à travers une page publique pour les amis, la famille, les employeurs, etc.Vous pouvez modifier le statut de votre tableau pour qu’il soit public ou privé.

    Équipe

    • Eric Douglas : fondateur de l’OSSU
    • hanjiexi : mainteneur technique principal
    • waciumawanjohi : mainteneur académique principal
    • Contributeurs

    .

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *