Aller au contenu

Normes de code et extraits de code

9.1 Est-ce que je peux utiliser du code emprunté?

Au fur et à mesure que vous progresserez dans votre formation, de nombreux exemples et extraits de code vous seront présentés.

Dans les notes de cours, des extraits de code sont parfois présentés pour illustrer un propos. Il s'agit d'exemples qui pourraient convenir à vos besoins... ou pas!

D'autres fois, il s'agit d'un algorithme ou d'un squelette qui assure que le code soit robuste, sécuritaire, performant, convivial, fonctionnel et clair (en PHP, voir « les_qualites_d_un_bon_programme_php » ; en WordPress, voir « les_qualites_d_un_bon_programme_wordpress »).

Intéressant! Ce serait dommage de réinventer la roue.

Que ce soit un extrait de code, un algorithme ou un squelette, si vous l'utilisez dans votre programme, on parlera de code emprunté, terme tiré du document « Comment réutiliser correctement du code source dans un cours de programmation » par Christopher Fuhrman et Frédérick Henri de l'École de Technologie Supérieure (ÉTS) .

Le code emprunté peut provenir de différentes sources :

  • Notes de cours
  • Web
  • Anciens travaux formatifs ou sommatifs
  • Documentation officielle
  • Générateur de code ou IA
  • ou ailleurs

La question qui tue : est-ce que vous avez le droit d'utiliser dans vos programmes du code emprunté des notes de cours ou d'autres sources?

La réponse est « ça dépend ».

Présentation PowerPoint

Les concepts présentés sur cette fiche sont repris et complétés dans la présentation PowerPoint adoptée par le département d'informatique du cégep de Victoriaville, révision 2023.

Conditions à respecter

C'est l'enseignante ou l'enseignant qui décide s'il est permis d'utiliser dans vos programmes le code emprunté en

provenance de différentes sources. En cas de doute, demandez-lui.

Dans le cas où vous avez la permission d'utiliser du code emprunté, vous devez absolument respecter ces conditions :

Citer vos sources en précisant l'auteur et/ou l'URL où le code a été trouvé.

La technique est expliquée un peu plus bas.

Comprendre chacune des lignes de code.

Vous devez être prêt en tout temps à expliquer votre code à votre prof.

Au besoin, adapter le code emprunté à votre situation .

Sans une adaptation adéquate, le code risque de ne pas répondre à votre besoin.

Citer la source du code emprunté

Il y a plusieurs buts à la citation des sources :

D'abord, ceci permet de rendre à César ce qui est à César.

Ensuite, il sera plus facile de retrouver le code original et d'en comprendre le contexte (« Ah, oui! C'est de là que

m'était venue cette idée! »).

De plus, si vous omettez de citer vos sources ou si vous utilisez du code emprunté sans en avoir l'autorisation, vous

vous exposez à des accusations de plagiat.

Afin de mieux vous protéger contre d'éventuelles accusations de plagiat, dès que vous utilisez une structure de

code différente de ce qui a été enseigné, il faut citer vos sources, sauf bien sûr si vous avez développé l'algorithme vous-mêmes.

Fonction empruntée

Lorsqu'une fonction complète est empruntée, la source peut être citée dans le commentaire de documentation de la fonction.

Lorsque le code est utilisé tel quel :

Il faut ajouter la mention « Source » suivie de l'URL. Vous devez conserver le nom de l'auteur original.

Dans le cas de code généré par une IA, si votre prof vous permet d'utiliser ce type d'outil , il faut ajouter la

mention « Code généré par » suivie de la référence au format Auteur. (Année). Nom de l’intelligence artificielle (version) [Type de modèle]. URL

Ex : Code généré par OpenAI. (2023). ChatGPT (version 15 mars 2023) [Modèle massif de langage]. https://chat.openai.com/chat

ou encore : Code généré par Microsoft. (2024). Microsoft Copilot (version novembre 2024) [Modèle de langage basé sur l'IA]. https://www.microsoft.com/copilot

ou encore : Code généré par Google AI. (2023). Gemini (version 1.2.3, 15 octobre 2023) [Modèle de langage de grande taille]. https://gemini.google.com

Si vous avez adapté le code :

La mention sera « Inspiré de » suivie de l'URL. Vous pouvez à ce moment indiquer votre nom comme nom

d'auteur.

Dans le cas de l'IA, ce sera « Code partiellement généré par » suivie de la référence. Vous pouvez indiquer

votre nom comme nom d'auteur.

PHP
/**
 * Vérifie si l'usager est authentifié.
 *
 * Utilisation : if !authentifier('$usager, $passecrypte) { (affiche le formulaire...) }
 * Suppositions critiques : Le formulaire doit avoir un champ nommé usager et un champ nommé motdepasse.
 *                          Le mot de passe doit être crypté dans la BD à l'aide de password_hash ('...', PASSWORD_DEFAULT ).
 *                          La variable de session usager sera initialisée si l'authentification fonctionne.
 *
 * @param string $usager Code d'usager
 * @param string $motDePasse Mot de passe crypté avec password_hash ('...', PASSWORD_DEFAULT )
 *
 * @author Christiane Lagacé <christiane.lagace@hotmail.com>
 * Inspiré de https://...
 * @return Boolean true si code d'usager et mot de passe valides, false si non valides
 *
 */
function authentifier(string $usager, string $motDePasse) : bool {
    ...
}

Extrait de code emprunté

Si le code emprunté n'est pas une fonction complète, la citation peut être réalisée à l'aide d'un simple commentaire dans le code.

Dans leur document intitulé « Comment réutiliser correctement du code source dans un cours de programmation » , Christopher Fuhrman et Frédérick Henri de l'École de Technologie Supérieure (ÉTS) proposent une façon claire de citer les sources dans un programme.

Cette technique offre l'avantage d'identifier clairement quelle partie du code a été empruntée, ce qui est essentiel dans le cas où le code emprunté n'est pas une fonction complète.

Ici encore, la citation parlera de « Source » ou « Code généré par » lorsque le code est utilisé tel quel et de « Inspiré de » ou « Code partiellement généré par » lorsque le code a été modifié.

PHP
// gestion des erreurs
// Code emprunté. Source : https://apical.xyz/fiches/reutiliser_des_parties_de_code/fichier_configuration_inc
if (DEVEL === true) {
    // journalise et affiche tous les niveaux d'erreurs en mode développement
    error_reporting(E_ALL);
    ini_set('display_errors', '1');   // mettre à 0 si on ne veut pas voir les message à l'écran
}
else {
    // en mode production, ne journalise pas certains niveaux pour des raisons de performance
    error_reporting(E_ALL & ~E_STRICT & ~E_DEPRECATED);
    // aucun message ne sera affiché pour des raisons de sécurité
    ini_set('display_errors', '0');
}
// Fin du code emprunté

Votre propre code tiré de travaux des sessions passées

Saviez-vous qu'il est possible de s'auto-plagier?

Selon l'UQAM , l'autoplagiat :

C'est lorsqu’une étudiante ou un étudiant remet un travail, ou une partie de travail, qui a déjà été soumis à un enseignant pour évaluation. Autrement dit, c'est refiler le même travail dans deux cours

différents.

La PIEA du Cégep de Victoriaville est claire à ce sujet :

Est considéré comme du plagiat, de la tricherie ou de la fraude (liste non exhaustive), peu importe le type d’évaluation : [...] Le fait de s’autoplagier, c’est-à-dire de remettre une évaluation ou une

partie d’évaluation déjà réalisée dans un cours, et ce, sans avoir obtenu au préalable l’autorisation explicite de l’enseignante ou de l’enseignant du ou des cours concernés ;

Afin d'éviter l'autoplagiat, vous devez obtenir la permission de l'enseignante ou de l'enseignant avant de réutiliser une partie du code que vous avez vous-même écrit ou co-écrit et qui a déjà été évalué de façon formative ou sommative.

De plus, vous devez vous citer.

Source :

1. Christopher Fuhrman et Frédérick Henri, « Comment réutiliser correctement du code source dans un cours de programmation ». École de Technologie Supérieure.

https://www.etsmtl.ca/docs/etudes/citer-pas-plagier/documents/programmation-plagiat-ets

2. * « Tricherie et intégrité académique - Qu'est-ce que l'autoplagiat? » - UQAM

Pour plus d'information

« Programmation et plagiat ». École de Technologie Supérieure. https://cours.etsmtl.ca/log725/private/notes/plagiat.pdf

* « How open source licenses work and how to add them to your projects » - freeCodeCamp

and-how-to-add-them-to-your-projects-34310c3cf94/ 10. Pour vous aider dans ce cours