OpenLLM-France/wikimedia huggingface dataset:
# Programmation/Programmation orientée objet/Classes et objets

* Introduction
* Classes et objets
* Liste des langages orientés objet
* Agrégation
* Instanciation
* Encapsulation
* Héritage
* Polymorphisme
* Métaclasses
* Classes paramétrables
* Classes abstraites et interfaces
* Classes internes
* Packages
* Exceptions
* Mixins
* Délégation
* Injection de dépendances
Un objet rassemble ce que permet la programmation impérative en un objet. C'est à dire qu'un objet rassemble plusieurs variables (comme une structure) et les opérations qui leur sont applicables en une seule entité.
Un objet est assimilé à une variable, et une classe est assimilé à un type (un modèle d'objet).

## Classe

Une classe est la définition d'un nouveau type de variable particulier. Ce type est similaire à une structure ou enregistrement. Il rassemble plusieurs champs de données.
Exemple en Java :
* Une classe "Livre" rassemblant son titre, son auteur, son année de parution et son nombre de pages.
Ce type peut également définir des fonctions qui s'appliqueront à celui-ci. Les fonctions définies dans une classe sont appelées "méthodes".
Exemple (suite du précédent) :
* Une méthode "obtenirInformation" retourne une chaîne contenant la valeur des champs de l'objet courant.
En résumé, une classe rassemble les données et les opérations qui leur sont applicables en une seule définition de type.

## Objet

Un objet est une instance d'une classe. On peut assimiler une classe à un type, et un objet à une variable.
Créer un objet à partir d'une classe est une opération appelée "instanciation".
Exemple :
* En Java et en C#, une variable d'une classe donnée n'alloue aucun espace mémoire pour l'objet car il s'agit en fait d'une référence (similaire à un pointeur). Il faut donc explicitement allouer un objet :
# Wikilivres/Relire un wikilivre

La relecture est une étape importante de la réalisation d'un livre. En effet, lorsque l'on a écrit un livre, on ne peut pas le lire sans voir son jugement affecté, on a été trop impliqué dans un texte pour pouvoir le lire et le comprendre comme un simple lecteur. C'est là que le travail de relecture intervient.
Il s'agit de lire attentivement et dans son intégralité un livre qu'un ou plusieurs ont (quasiment) achevé. Il faudra relever, et éventuellement corriger les erreurs qui échappent encore aux auteurs.
Vous pourrez trouvez les wikilivres qui ont besoin d'une relecture dans la catégorie « relecture demandée ».

## Comment faire une relecture

Ce qu'il faut chercher :
* les fautes de français : elles doivent être corrigées tout de suite ;
* les travaux inédits : la recherche n'a pas sa place ici, il faut pouvoir sourcer chaque assertion ;
* la cohérence : il convient parfois de regarder l'historique, de demander conseil en page de discussion ;
* les erreurs dans le texte : en cas de doute ou de remise en question, poser une question en page de discussion. Si besoin et faisable, faire le test (ex. : recette de cuisine, résultat d'un programme informatique selon les versions…) et corriger en fonction des résultats ;
* regarder les pages de discussion des pages du livre. Il arrive souvent que des remarques pertinentes soient présentes. Mais surtout, des questions sont posées. Ce qui signifie que le livre ne répond pas à certains points. Il peut être important d'ajouter les réponses à ces questions dans le contenu du livre, ou/et ajouter un lien vers le chapitre où l'on trouve la réponse.

## Voir aussi

* Wikilivres:Patrouilleurs
# Wikilivres/Structure d'un livre

Cette page décrit la structure générale d'un livre.

## Pages composant un livre

Globalement, un livre (nommé "LIVRE") est divisé en différents chapitres (nommés "CHAPITRE1", "CHAPITRE2", etc. pour l'exemple). La convention présentée ci-dessous est celle adoptée pour les titres. Voir également le chapitre sur les titres pour plus de détails.

### LIVRE

    La page principale du livre présente une brève introduction du sujet, et la liste des chapitres. Cette liste de chapitre est générée par inclusion de la page LIVRE/Sommaire qui est utilisée par différents modèles et outils.
    Cette page peut aussi contenir un lien vers le premier chapitre pour inciter le lecteur à continuer :
       <noinclude>{{NavDébut|book={{PAGENAME}}|page=Introduction|pageText=Démarrer}}</noinclude>

### LIVRE/Sommaire

    Cette page est utilisée plusieurs fois : liste des chapitres sur la page d'accueil du livre, liste des chapitres dans chaque chapitre pour naviguer directement vers un autre chapitre, génération automatique de la version imprimable, ...
    Cette page est une liste (non numérotée en général) de liens vers les chapitres du livre utilisant la syntaxe wiki suivante pour chaque ligne :
       * [[LIVRE/CHAPITRE|CHAPITRE]]
    Les chapitres peuvent être regroupés selon un thème, un niveau de difficulté, etc. Dans ce cas, les chapitres sont présentés dans une sous-liste comme cet exemple :
       * [[LIVRE/Manipulations de base|Manipulations de base]]
       ** [[LIVRE/CHAPITRE1|CHAPITRE1]]
       ** [[LIVRE/CHAPITRE2|CHAPITRE2]]
       ** [[LIVRE/CHAPITRE3|CHAPITRE3]]
       * [[LIVRE/Manipulations avancées|Manipulations avancées]]
       ** [[LIVRE/CHAPITRE4|CHAPITRE4]]
       ** [[LIVRE/CHAPITRE5|CHAPITRE5]]
    Les sous-chapitres ne sont pas des sous-pages du chapitre principal (exemple : [[LIVRE/Manipulations avancées/CHAPITRE4|CHAPITRE4]]) car cela permet de déplacer un chapitre d'un groupe à l'autre sans avoir à renommer la ou les pages concernées, juste en modifiant la page de sommaire.
    La dernière ligne permet de catégoriser automatiquement le livre et ses chapitres :
       {{AutoCat}}
    Cette page de sommaire peut ensuite être utilisée par un modèle de navigation à inclure dans chacun des chapitres du livre.

### LIVRE/CHAPITRE

    Chaque page constituant un chapitre du livre commence par inclure le modèle de navigation du livre entre <noinclude> et </noinclude> pour éviter son inclusion dans la version imprimable du livre. Ensuite, la page définit le contenu du chapitre.

### Modèle:LIVRE

    Cette page est un modèle à inclure dans tous les chapitres du livre entre <noinclude> et </noinclude> ne contenant que la ligne suivante en remplaçant IMAGE par une image illustrant le livre.
       {{ModèleLivre|2=IMAGE}}<noinclude>[[Catégorie:Modèles non imprimables spécifiques à un livre|{{SUBPAGENAME}}]]</noinclude>

### LIVRE/Version imprimable

    Cette page contient simplement le texte ci-dessous incluant le modèle imprimable générant automatiquement la version imprimable à partir de la page de sommaire.
       {{imprimable}}
# Wikilivres/Procédure de suppression

Certaines pages n'ont pas leur place sur Wikilivres. Une procédure de suppression est alors envisageable.

## Faut-il supprimer une page ou un livre ?

La procédure de suppression d'une page ou d'un livre ne peut intervenir que s'il n'existe aucune version dans l'historique qui soit admissible sur Wikilivres :
* le contenu est un vandalisme (publicité, spam, insultes) ;
* le contenu ne répond pas aux critères d'admissibilité ;
* le contenu viole les droits d'auteur.

## Étapes de la suppression

* La première étape consiste à vérifier :
** s'il existe une version correcte dans l'historique. Si une telle version existe, il s'agit alors d'un vandalisme ou d'une contribution qui viole les règles précédentes, et dans ce cas il doit y avoir une annulation de ces contributions plutôt qu'une suppression de la page.
** si le contenu peut être transféré sur un autre projet. Dans ce cas, il faut d'abord effectuer une procédure de transfert en demandant l'import sur le projet en question. La demande de suppression ne se fera qu'une fois le transfert effectué.
* La deuxième étape consiste à proposer sa suppression (voir la page Wikilivres:Demandes de suppression). Cette étape n'est pas nécessaire si la suppression est évidente (insultes, spam).
* Au bout du délai de vote, si la suppression est décidée :
** pour la suppression d'un livre complet uniquement, il faut d'abord lister toutes les sous-pages de la page principale avec Spécial:Index/titre_de_la_page_principale/ pour pouvoir supprimer toutes les pages en répétant les points suivants :
** aller sur la page à supprimer,
** cliquer le lien « Pages liées » dans la « boîte à outils » située à gauche pour voir les pages qui l'utilisent (liens, inclusion modèle), dont notamment le système de classement CDU,
** supprimer tous les liens vers la page à supprimer ou les remplacer,
** revenir sur la page à supprimer et cliquer l'onglet « supprimer » en haut de la page, au dessus du titre,
** remplir les champs pour justifier la suppression (décision communautaire, ...).
# Wikilivres/Présentation des pages

Cette page explique comment présenter le texte des chapitres d'un livre, les citations, ... Les modèles permettent d'aider à présenter une page :
* voir Aide:Modèles pour la syntaxe permettant d'inclure un modèle,
* voir Wikilivres:Modèles pour la liste des modèles disponibles.

## Présentation sur deux ou trois colonnes

La présentation sur plus d'une colonne permet de combler le vide en juxtaposant plusieurs parties du texte l'une à côté de l'autre, ou bien de présenter une illustration pour le texte d'à côté. Cependant sur téléphone mobile, la largeur de l'écran ne permet pas une telle juxtaposition de manière lisible et pratique. Voir Version mobile.
Toutefois, voici deux moyens de faire une présentation adaptative : sur deux ou trois colonnes quand la largeur de l'écran le permet, ou sur une seule colonne (une partie sous l'autre) sur les écrans de petite largeur.

### Zones

Cette façon de faire utilise les balises <div> de la syntaxe HTML.
Pour deux colonnes, la syntaxe à utiliser est la suivante :
Pour trois colonnes :

### Tableau

L'autre façon de présenter sur deux ou trois colonnes utilise la syntaxe wiki des tableaux, en utilisant la classe CSS "flexible".
Sur 2 colonnes :
Sur 3 colonnes :

### Sans découpe prédéterminée

Les deux premières façons supposent que le contenu a des parties prédéterminées répartissable sur deux ou trois colonnes. Cette troisième façon de faire s'utilise quand le texte n'a pas de découpe prédéterminée entre les colonnes et utilise la fonctionnalité columns des feuilles de style. Comme illustré ci-dessous, quand la largeur d'affichage est en dessous du seuil paramétré (350 pixels dans l'exemple), le contenu s'affiche sur une colonne.
Sur 2 colonnes :
Sur 3 colonnes :

## Citations

Exemple :
Voir Modèles de citation pour d'autres modèles.
# Wikilivres/Pour aller plus loin

Ce livre est une bonne base de connaissance mais, pour être efficace, il vous faudra sûrement compléter cette lecture par d'autres. Vous apprendrez beaucoup par l'expérience, aussi bien par la vôtre que par celles des autres. Enfin, nous vous invitons à consulter d'autres ressources parmi lesquels des livres et des documents disponibles sur Internet.

## Profitez des expériences des autres participants

Nous présentons ici quelques textes relatant les expériences de différents participants au projet. N'oubliez pas que ces textes exposent les points de vue de leur auteur et non pas une généralité des pratiques de l'ensemble des contributeurs projet Wikilivres.

### En français

* Vous pouvez suivre le blog « Des nouvelles de Wikilivres ».
* Vous pouvez lire les essais sur Wikilivres

### En anglais

* Andrew Whitworth (Whiteknight) est un wikibookian productif, expérimenté et reconnu par la communauté. Il a écrit ce qui est à la fois le récit de son expérience et un recueil de conseils. Ce « New Book Guide » est disponible dans son espace personnel. Andrew s'exprime également sur son blog au sujet Wikibooks digne d'intérêt.

### En allemand

La version en allemand n'utilise pas les sous-pages et les catégories dans ses livres, ce qui la dépouille mais la rend plus complexe à parcourir.

## Bibliographie

* Rédaction technique
* Rédiger un didacticiel pour un logiciel (par Framasoft)

### En anglais sur wikibooks

* Using Wikibooks : l'équivalent anglophone du présent ouvrage.
* How To Build An Excellent Wikibook Teaching Any Language dont une traduction a été entamée par Utilisateur:Djiboun.
* MediaWiki Administrator's Handbook
* Editing Wikitext

## Posez vos questions

Si vous avez des questions concernant tout ce que vous venez de lire, n'hésitez pas à venir les poser sur le Bistro.
# Wikilivres/Pourquoi écrire sur Wikibooks ?

Wikibooks pourrait devenir une grande bibliothèque pédagogique, où le meilleur du savoir serait donné à tous et renouvelé en permanence. Les avantages pour les auteurs sont nombreux :
Lorsqu'on cite un wikilivre dans un article de Wikipédia, dans une rubrique de lectures complémentaires, les wikipédiens ne sont pas obligés d'accepter. Si la référence est inappropriée, elle doit bien sûr être supprimée. Mais même si elle est appropriée, un wikipédien peut pointer un conflit d'intérêts, si un auteur de Wikibooks veut placer sur Wikipédia un de ses livres, surtout s'il est signé. Il n'est donc pas toujours facile d'être cité sur Wikipédia, même pour les wikilivres.
# Wikilivres/Version mobile

Wikilivres est également accessible depuis les appareils mobiles (tablettes, téléphones portables...). L'habillage du site est différent (minerva).
Les pages des livres doivent donc suivre des règles pour pouvoir s'afficher correctement à la fois sur grands écrans (navigateurs sur ordinateurs, tablettes de grande taille) et sur petits écrans (notamment sur téléphone portable).
Suite à une modification de MediaWiki pensée pour Wikipédia seulement, mais imposée à tous les projets, le premier paragraphe de texte ayant suffisamment de mots est remonté tout en haut de la page dans les versions mobiles. Cela perturbe donc l'affichage de la plupart des livres sur mobile.
Bravo aux développeurs MediaWiki pour cette superbe faute qui ne sera jamais corrigée !

## Tester la version mobile

Pour afficher la version mobile, vous pouvez activer le gadget Gadget-MobileView dans l'onglet "gadgets" de vos préférences.
Pour utiliser ce gadget sur tous les projets de WikiMedia, vous pouvez également copier les 2 lignes suivantes dans votre javascript global :
Le gadget ajoute un lien en haut à droite intitulé "aperçu mobile" qui affiche une fenêtre de taille réduite sur la version mobile de la page wiki active. Vous pouvez agrandir la taille de la fenêtre en modifiant la configuration du gadget dans votre javascript local.

## Parties spécifiques

Certaines classes CSS sont définies pour exclure / inclure des parties de la page dans les sites mobiles et non mobiles :
* Par défaut, les éléments sont affichés sur les deux sites.
* La classe CSS "only_mobile" affiche l'élément pour le site mobile seulement. Il sera caché sur le site non mobile.
* La classe CSS "only_nonmobile" affiche l'élément pour le site non mobile seulement. Il sera caché sur le site mobile.
Exemple : Vous regarder la version pour appareil mobilepour desktop de cette page.

## Tables

Les tables posent un problème d'affichage sur les écrans de petite taille : le nombre de colonnes peut provoquer l'affichage de barres de défilement qui ne sont pas pratiques à utiliser sur les appareils mobiles, ou bien les colonnes sont affichées avec une largeur réduite et leur contenu est illisible.
Pour éviter les problèmes, il est recommandé d'utiliser la classe CSS "flexible" sur la table, qui permet aux tables de s'afficher verticalement quand la largeur disponible est réduite (inférieure à 720 pixels).

## Colonnes

L'affichage de plusieurs colonnes n'est pas possible sur les appareils mobiles à largeur limitée.
Pour les colonnes, utilisez la classe CSS "flex-content" pour le conteneur et selon le nombre de colonnes :
* pour 2 colonnes, utilisez la classe CSS "flex-content-half" pour chacune des colonnes ;
* pour 3 colonnes, utilisez la classe CSS "flex-content-third" pour chacune des colonnes.
Exemple :
Le contenu de la première colonne...
Le contenu de la deuxième colonne...
Le contenu de la première colonne...
Le contenu de la deuxième colonne...
Le contenu de la troisième colonne...
# Programmer en R/Importer un fichier TSV

* Introduction
** Faire ses premiers pas
** Installer R
** Choisir son environnement de travail
** Installer des librairies
** Se documenter
* Manipulation et mise en forme des données
** Manipuler les nombres
** Manipuler les vecteurs
** Manipuler les chaînes de caractères
** Manipuler les facteurs
** Manipuler les dates et les heures
** Manipuler un tableau de données
** Manipuler une liste
* Importation et exportation des données
** Importer un fichier CSV
** Résoudre les problèmes d'encodage des caractères
** Importer un fichier TSV
** Importer un fichier texte à largeur fixe
** Importer des données depuis un tableur
** Import un fichier JSON
** Extraire des données d'une page web
* Visualisation de données
** Comprendre la grammaire des graphiques
** Représenter une carte
** Visualiser une carte choroplèthe
* Modélisation statistique
** Estimer un modèle de régression linéaire
** Estimer un modèle de régression circulaire
* Communication
* Programmation avancée
** Programmer une boucle
** Programmer une fonction
* Outils mathématiques
** Optimiser une fonction
** Manipuler les matrices
** Les fonctions statistiques de base
** Les loi de probabilités, ajustement et test
* Introduction
** Faire ses premiers pas
** Installer R
** Choisir son environnement de travail
** Installer des librairies
** Se documenter
* Manipulation et mise en forme des données
** Manipuler les nombres
** Manipuler les vecteurs
** Manipuler les chaînes de caractères
** Manipuler les facteurs
** Manipuler les dates et les heures
** Manipuler un tableau de données
** Manipuler une liste
* Importation et exportation des données
** Importer un fichier CSV
** Résoudre les problèmes d'encodage des caractères
** Importer un fichier TSV
** Importer un fichier texte à largeur fixe
** Importer des données depuis un tableur
** Import un fichier JSON
** Extraire des données d'une page web
* Visualisation de données
** Comprendre la grammaire des graphiques
** Représenter une carte
** Visualiser une carte choroplèthe
* Modélisation statistique
** Estimer un modèle de régression linéaire
** Estimer un modèle de régression circulaire
* Communication
* Programmation avancée
** Programmer une boucle
** Programmer une fonction
* Outils mathématiques
** Optimiser une fonction
** Manipuler les matrices
** Les fonctions statistiques de base
** Les loi de probabilités, ajustement et test
[ Modifier le sommaire ]
* Wikipédia propose un article sur : « Tabulation-separated values ».
Comme les fichiers CSV, les fichiers TSV sont des fichiers textes dans lesquelles les valeurs sont séparées par des tabulations.
La fonction read_tsv dans la librairie readr permet de les importer de manière efficace.
Par exemple, la liste des départements publiées sur le site de l'Insee est disponible au format TSV. Après avoir converti le fichier en encodage UTF-8 (voir le chapitre Résoudre les problèmes d'encodage des caractères), on peut importer le fichier dans R avec la commande suivante :

## Notes et références

* ↑ http://www.insee.fr/fr/methodes/nomenclatures/cog/telechargement/2016/txt/depts2016.txt
# Programmer en R/Installer des librairies

* Introduction
** Faire ses premiers pas
** Installer R
** Choisir son environnement de travail
** Installer des librairies
** Se documenter
* Manipulation et mise en forme des données
** Manipuler les nombres
** Manipuler les vecteurs
** Manipuler les chaînes de caractères
** Manipuler les facteurs
** Manipuler les dates et les heures
** Manipuler un tableau de données
** Manipuler une liste
* Importation et exportation des données
** Importer un fichier CSV
** Résoudre les problèmes d'encodage des caractères
** Importer un fichier TSV
** Importer un fichier texte à largeur fixe
** Importer des données depuis un tableur
** Import un fichier JSON
** Extraire des données d'une page web
* Visualisation de données
** Comprendre la grammaire des graphiques
** Représenter une carte
** Visualiser une carte choroplèthe
* Modélisation statistique
** Estimer un modèle de régression linéaire
** Estimer un modèle de régression circulaire
* Communication
* Programmation avancée
** Programmer une boucle
** Programmer une fonction
* Outils mathématiques
** Optimiser une fonction
** Manipuler les matrices
** Les fonctions statistiques de base
** Les loi de probabilités, ajustement et test
* Introduction
** Faire ses premiers pas
** Installer R
** Choisir son environnement de travail
** Installer des librairies
** Se documenter
* Manipulation et mise en forme des données
** Manipuler les nombres
** Manipuler les vecteurs
** Manipuler les chaînes de caractères
** Manipuler les facteurs
** Manipuler les dates et les heures
** Manipuler un tableau de données
** Manipuler une liste
* Importation et exportation des données
** Importer un fichier CSV
** Résoudre les problèmes d'encodage des caractères
** Importer un fichier TSV
** Importer un fichier texte à largeur fixe
** Importer des données depuis un tableur
** Import un fichier JSON
** Extraire des données d'une page web
* Visualisation de données
** Comprendre la grammaire des graphiques
** Représenter une carte
** Visualiser une carte choroplèthe
* Modélisation statistique
** Estimer un modèle de régression linéaire
** Estimer un modèle de régression circulaire
* Communication
* Programmation avancée
** Programmer une boucle
** Programmer une fonction
* Outils mathématiques
** Optimiser une fonction
** Manipuler les matrices
** Les fonctions statistiques de base
** Les loi de probabilités, ajustement et test
[ Modifier le sommaire ]

## Installer une librairie depuis le CRAN

La fonction install.packages permet d'installer une librairie depuis le Comprehensive R Archive Network.

## Installer une librairie depuis Github

La fonction install_github dans la librairie devtools permet d'installer une librairie depuis Github.