L’édition 2022 de l’examen d’informatique pour élèves du secondaire désireux d’obtenir des crédits universitaires US porte sur 4 questions. Les postulants sont libres de formuler les réponses de la manière qui leur convient. Un internaute a proposé une compilation des réponses proposées par ChatGPT après avoir souligné que l’intelligence artificielle a pris 32 points sur les 36 possibles.
Code Java : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 | // 1a public int getScore() { int score = 0; // Check if this is a bonus game if (isBonus()) { // If it is, triple the final score score = 3; } // Iterate through each level for (int i = 1; i <= 3; i++) { // Check if the goal for the current level has been reached if (level[i].goalReached()) { // If it has, add the points for that level to the score score += level[i].getPoints(); } } // Return the final score return score; } // 1b public int playManyTimes(int num) { // Keep track of the highest score seen so far int highestScore = 0; // Iterate for the number of games specified in the num parameter for (int i = 0; i < num; i++) { // Create a new game Game game = new Game(); // Simulate the play of the game game.play(); // Compute the score for the game int score = game.getScore(); // If the score for this game is higher than the highest score seen so far, // update the highest score if (score > highestScore) { highestScore = score; } } // Return the highest score seen return highestScore; } // 2 public class Textbook extends Book { private int edition; /** * Creates a new Textbook with given title, price, and edition number. * * @param bookTitle the title of the textbook * @param bookPrice the price of the textbook * @param bookEdition the edition number of the textbook */ public Textbook(String bookTitle, double bookPrice, int bookEdition) { super(bookTitle, bookPrice); this.edition = bookEdition; } /** * Returns the edition number of the textbook. * * @return the edition number of the textbook */ public int getEdition() { return edition; } /** * Returns the title, price, and edition number of the Textbook as a string. * * @return the title, price, and edition number of the Textbook as a string */ @Override public String getBookInfo() { return super.getBookInfo() + "-" + edition; } /** * Returns true if this Textbook is a valid substitute for the Textbook referenced by the parameter * of the canSubstituteFor method. Returns false otherwise. * * @param other the Textbook to compare to this Textbook * @return true if this Textbook is a valid substitute for the Textbook referenced by the parameter * of the canSubstituteFor method, false otherwise */ public boolean canSubstituteFor(Textbook other) { return this.getTitle().equals(other.getTitle()) && this.getEdition() >= other.getEdition(); } } // 3a public double getAverageRating() { double totalRating = 0; int numReviews = allReviews.length; for (Review review : allReviews) { totalRating += review.getRating(); } return totalRating / numReviews; } // 3b public ArrayList<String> collectComments() { ArrayList<String> formattedComments = new ArrayList<>(); for (int i = 0; i < allReviews.length; i++) { String comment = allReviews[i].getComment(); if (comment.contains("!")) { formattedComments.add(i + "-" + comment); if (!(comment.endsWith(".") || comment.endsWith("!"))) { formattedComments.set(formattedComments.size() - 1, formattedComments.get(formattedComments.size() - 1) + "."); } } } return formattedComments; } // 4a public void repopulate() { Random rand = new Random(); for (int i = 0; i < grid.length; i++) { for (int j = 0; j < grid[i].length; j++) { int val = rand.nextInt(MAX - 1) + 1; while (val % 10 != 0 || val % 100 == 0) { val = rand.nextInt(MAX - 1) + 1; } grid[i][j] = val; } } } // 4b public int countIncreasingCols() { int count = 0; for (int i = 0; i < grid[0].length; i++) { boolean isIncreasing = true; for (int j = 1; j < grid.length; j++) { if (grid[j][i] < grid[j - 1][i]) { isIncreasing = false; break; } } if (isIncreasing) { count++; } } return count; } |
Amjad Masad, fondateur de startup de génie logiciels, pour sa part rapporte qu’il a demandé à ChatGPT de repérer les erreurs dans son code et de produire un rapport détaillé sur les ratés et sur la manière de le corriger. Ce dernier arrive à la conclusion que ChatGPT peut faire office de bon compagnon de débogage qui « ne se contente pas d’expliquer le bogue, mais le corrige et explique la correction. »
Le YouTubeur Liv Boeree pense que les enfants qui passent des heures à faire leurs devoirs feront partie du passé - ChatGPT fera le travail à leur place. Elle a réussi à faire écrire au robot un essai complet de quatre paragraphes et à résoudre une équation mathématique complexe.
L’intelligence artificielle de suggestion de blocs de code – GitHub Copilot – de Microsoft fait de même montre d’un niveau de performance qui inquiète les éducateurs. C’est ce qui ressort d’une publication d’un enseignant de la filière inquiet de voir Copilot rendre inutiles les traditionnels exercices de programmation auxquels sont soumis les étudiants de la filière.
« Grâce à Copilot, les étudiants peuvent générer de façon instantanée des solutions de code par autocomplétion à partir de l'énoncé du problème ou du nom de la fonction. Si vous n'avez pas encore utilisé Copilot, vous ne mesurez peut-être pas encore la gravité de la situation », indique-t-il.
« Imaginons que vous demandiez à vos étudiants de l'introduction au CS d'écrire un programme Python itératif qui donne la somme de tous les nombres de 1 à N. Vos étudiants devront alors s'asseoir et écrire du code, et peut-être même réfléchir un peu. Aucune de ces corvées pour nos étudiants armés de Copilot ! Il leur suffit de copier et de coller l'énoncé du problème dans leur IDE sous forme de commentaire, de taper la définition de la fonction "def output_sum(N) :", puis d'appuyer sur la touche Tab pour obtenir le reste (TOUT ce qui est en gras a été généré par Copilot) », ajoute-t-il.
« Tout le code en gras que vous voyez ci-dessous a été généré automatiquement. J'ai simplement tapé les noms de fonctions et les paramètres (parfois, je n'ai même pas été aussi loin !) », lance-t-il.
Lorsqu’on parle d’intelligence artificielle, deux grands courants de pensée s’affrontent : celui des tiers qui pensent qu’il s’agit d’un outil, ce, sans plus et celui des intervenants et observateurs qui sont d’avis que ce n’est qu’une question de temps avant qu’elle ne devienne une menace pour la race humaine. En effet, des équipes de recherche comme celle d’OpenAI (qui développe ChatGPT) sont lancées sur l’atteinte de l’objectif intelligence artificielle générale (AGI). Si l’on se réfère à des retours de scientifiques œuvrant dans le domaine, l’AGI pourrait nous tomber dessus dans 5 à 10 ans. Les machines seraient alors dotées de « bon sens. » Au stade d’intelligence artificielle générale, elles seraient capables de réflexion causale, c’est-à-dire de cette capacité à raisonner sur « le pourquoi les choses se produisent. » Cette situation pourrait alors sonner la disparition des développeurs informatique humains au profit des intelligences artificielles.
Sources : Sujet d'examen, openai
Et vous ?
Les développeurs ont-ils à craindre pour leurs postes en raison de la montée en puissance de l’intelligence artificielle ?
Intelligence artificielle : menace pour les développeurs ou outil ? De quel bord êtes-vous ?
Voir aussi :
80 % des technologies pourraient être créées par des professionnels extérieurs à l'informatique d'ici 2024, grâce aux outils low-code, selon Gartner
Forrester : l'utilisation des plateformes de développement low-code gagne du terrain dans les processus de transformation numérique des entreprises
Le marché mondial des technologies de développement low-code va augmenter de 23 % en 2021, selon les prévisions de Gartner
Microsoft lance Power Fx, un nouveau langage de programmation low-code open source basé sur Excel