Courbe de notes
Amenez une classe à la moyenne de votre choix : si quatre notes brutes ont pour moyenne 65 et que votre cible est 80, chaque note est multipliée par 80 sur 65 et le classement ne bouge pas. La racine carrée, elle, avantage les notes basses. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Scores
- 50, 60, 70, 80
- Moyenne cible
- 80
- Quantité
- 4
- Moyenne brute
- 65
- Facteur d'échelle
- 1,2307692308
- Moyenne ajustée
- 80
Une courbe de notes est un ajustement publié qui prend chaque score brut d’un examen dans une section et soulève ou comprime l’ensemble pour que la moyenne de la classe coïncide avec la cible choisie par l’enseignant. On y recourt lorsque l’évaluation s’est révélée plus difficile que prévu, lorsque deux sections doivent partager une moyenne comparable, ou lorsqu’un département exige une moyenne déclarée sans réécrire les items. Ce calculateur accepte une liste de scores bruts non négatifs, une moyenne cible et une méthode d’échelle linéaire ou par racine carrée. L’échelle linéaire multiplie chaque marque brute par le rapport de la moyenne cible à la moyenne actuelle, de sorte que l’ordre relatif reste le même et que la nouvelle moyenne tombe exactement sur la cible. L’échelle par racine prend d’abord la racine de chaque marque — ce qui relève davantage les notes basses que les hautes — puis rééchelonne les valeurs transformées pour que l’ensemble atteigne encore la même moyenne cible.
Échelle linéaire contre échelle par racine carrée vers une moyenne cible
Une courbe de classe n’est pas une lettre sur une cloche et n’est pas le rééchelonnement d’une seule note vers un autre maximum. C’est une application de tout le relevé de marques brutes vers un nouveau relevé dont la moyenne égale un nombre que vous publiez dans le syllabus ou la note du département. L’échelle linéaire est le multiplicateur transparent : calculez la moyenne brute actuelle, divisez la moyenne cible par cette moyenne et multipliez chaque score d’étudiant par ce facteur unique.
L’ordre de rang ne change pas, les rapports entre étudiants ne changent pas, et la nouvelle moyenne de classe égale la cible (au rounding flottant près). Exemple : les quatre marques cinquante, soixante, soixante-dix et quatre-vingts ont pour moyenne soixante-cinq ; une moyenne cible de quatre-vingts applique le facteur quatre-vingts sur soixante-cinq, si bien que chaque note monte dans la même proportion et que la moyenne courbée vaut quatre-vingts. L’échelle par racine carrée est l’alternative concave lorsque l’examen a puni le bas de l’échelle.
Remplacez d’abord chaque marque brute x par la racine carrée de x, ce qui soulève un quarante davantage, en relatif, qu’un quatre-vingt-dix. Exemple : les trois marques trente-six, soixante-quatre et cent ont pour racines six, huit et dix, de moyenne huit ; une cible de quatre-vingts utilise un facteur de dix et renvoie soixante, quatre-vingts et cent. Les deux méthodes échouent de façon fermée si un score brut est négatif, car une pénalité signée n’est pas une note sur laquelle ces deux cartes publiées sont définies.
Elles échouent aussi lorsque tous les scores sont nuls et que la cible est positive : il n’existe pas de facteur fini qui transforme un relevé nul en moyenne positive. Lorsque le relevé est tout à zéro et que la cible l’est aussi, le calculateur renvoie des zéros avec un facteur de un.
Choisissez le linéaire lorsque vous voulez une hausse proportionnelle qu’un étudiant peut vérifier à la calculatrice ; choisissez la racine lorsque vous voulez un soulagement supplémentaire en bas de l’échelle tout en promettant une moyenne de classe déclarée.
Où un calculateur de courbe de notes justifie sa place
Enseignants et responsables de département ont besoin d’une carte documentée d’un relevé publié plus une moyenne cible annoncée vers une liste de notes ajustées, afin que le carnet, le portail des familles et l’explication en permanence ne se contredisent pas. Une courbe linéaire est la conversation que vous pouvez montrer au tableau : chaque étudiant est multiplié par le même facteur, et quiconque a une calculatrice vérifie la nouvelle marque du voisin.
Une courbe par racine est la conversation après un partiel brutal : les notes basses bougent davantage, le haut de l’échelle ne peut pas sauter au-delà d’une cible bien choisie, et la moyenne de classe est un nombre que vous avez déclaré à l’avance plutôt qu’une surprise après des bonus improvisés. Les greffons LMS et les scripts de scolarité peuvent appeler le même contrat au lieu que chaque enseignant conserve un tableur privé avec une formule différente.
Cet outil ne remplace pas l’attribution de lettres à partir d’un z-score normal (c’est une autre recherche et un autre calculateur) et ce n’est pas un convertisseur qui emmène une note d’un ancien maximum vers un nouveau. Une validation en échec ne consomme pas le solde.
Cas d’usage
Relever un examen difficile jusqu’à une moyenne de classe publiée
Collez les scores bruts de la section, fixez la moyenne cible du syllabus et appliquez l’échelle linéaire afin que chaque étudiant soit multiplié par le même facteur documenté.
Soulagement par racine carrée après un partiel brutal
Utilisez l’échelle par racine lorsque les notes basses ont besoin d’un coup de pouce, tout en faisant atterrir la moyenne de classe sur la moyenne cible demandée par le département.
Aligner deux sections sur la même moyenne
Courbez chaque relevé indépendamment vers la même moyenne cible afin que des sections parallèles déclarent des moyennes comparables sans réécrire l’examen.
Questions fréquentes
Comment fonctionne la courbe de notes linéaire ?
L’ordre et les rapports restent les mêmes, et la nouvelle moyenne de classe égale la cible.
Que se passe-t-il si un score brut est négatif ?
Un score brut négatif n’est pas une note sur laquelle ces deux cartes sont définies, et l’échec n’est pas facturé.
Est-ce la même chose qu’une lettre selon Gauss ?
Non. Une lettre selon Gauss attribue A–F à partir d’une note, d’une moyenne de classe et d’un écart-type. Ce calculateur renvoie un score numérique ajusté pour chaque étudiant du relevé.
Quand préférer la racine carrée à l'échelle linéaire ?
Quand l'examen a surtout pénalisé le bas de la classe. La racine carrée relève davantage une note basse qu'une note haute, puis l'ensemble est remis à l'échelle pour que la moyenne atteigne toujours votre cible.
Pourquoi ne peut-on pas ajuster une classe dont toutes les notes valent zéro ?
Parce qu'aucun multiplicateur ne transforme une moyenne nulle en cible positive. Si toutes les notes sont à zéro et que la moyenne visée est plus haute, aucun facteur fini n'existe et le calcul s'arrête au lieu d'inventer un résultat.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/edu/grade-curve \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"scores":[50,60,70,80],"target_mean":80}'const res = await fetch("https://api.kit.forhosting.com/edu/grade-curve", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"scores": [
50,
60,
70,
80
],
"target_mean": 80
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/edu/grade-curve",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"scores": [
50,
60,
70,
80
],
"target_mean": 80
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/edu/grade-curve", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"scores":[50,60,70,80],"target_mean":80}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"scores":[50,60,70,80],"target_mean":80}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/edu/grade-curve", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"scores": [
50,
60,
70,
80
],
"target_mean": 80
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "edu.grade_curve",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_n | 1000 |
max_abs | 1000000 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Les scores bruts négatifs sont rejetés en invalid_input plutôt que d’être coupés en silence. La même arithmétique pure alimente l’outil gratuit du navigateur et le chemin API : sans réseau, sans hasard et sans jetons de modèle.
Échelle linéaire contre échelle par racine carrée vers une moyenne cible
Appliquez ensuite un autre multiplicateur pour étirer la moyenne des valeurs transformées jusqu’à la moyenne cible : curved_i égale la racine de raw_i fois la moyenne cible divisée par la moyenne de toutes les racines.
Contrat d’entrée, champs de réponse et validation
Chaque score et la cible doivent être un décimal fini (signe facultatif et notation scientifique autorisés). Les champs facultatifs sont omis plutôt que null. Associez la liste courbée à votre propre table de lettres si vous attribuez encore de A à F après la courbe ; ce point d’accès n’invente pas de bandes de lettres, ne jette pas la note la plus basse et ne plafonne pas à cent, sauf si votre cible et votre relevé vivent déjà sur cette échelle. Envoyez par POST un corps JSON avec deux champs obligatoires et un method facultatif. scores est le relevé : un tableau non vide de nombres finis non négatifs, ou une chaîne de ces mêmes nombres séparés par des virgules ou des espaces lorsqu’un formulaire envoie du texte brut. Les alias sont raw_scores, raw, marks et grades. target_mean est la moyenne de classe souhaitée après la courbe, un nombre fini non négatif sur la même échelle que les scores ; les alias sont target, desired_mean, curve_mean et mean. method vaut linear ou square_root et vaut linear par défaut ; les alias sont curve, scaling et mode. Booléens, objets, jetons vides, Infinity et NaN échouent avec invalid_input afin qu’une mauvaise cellule ne devienne jamais un zéro silencieux. Une entrée négative dans scores échoue avec un message indiquant que les scores bruts ne peuvent pas être négatifs, en nommant l’indice ; un target_mean négatif échoue sur ce champ. Le moteur impose un maximum dur de mille marques au relevé et un plafond de magnitude par valeur, de sorte que mémoire et latence restent dans un budget prévisible sur le chemin gratuit du navigateur et sur le Worker. Si scores manque, si la liste est vide, si elle dépasse la longueur publiée ou si target_mean manque, la tâche échoue avec invalid_input et n’est pas facturée. En cas de succès le corps renvoie method, count comme longueur du relevé, raw_mean, target_mean, le scale_factor appliqué après toute transformée de racine, curved_mean (qui coïncide avec la cible pour toute moyenne de transformée non nulle valide), les raw_scores répétées, le tableau parallèle curved_scores dans le même ordre des étudiants, une chaîne formula courte et un message d’une ligne pour l’interface.
Où un calculateur de courbe de notes justifie sa place
Comme l’implémentation est parse de palier A, chaque appel réussi coûte le tarif de base publié $0.002 sans jetons de modèle et sans réseau sortant. Gardez les charges petites, figez curved_scores avec raw_mean et scale_factor dans les tests, et vous obtenez des courbes de classe reproductibles pour greffons de carnet, alignement entre sections et politiques de rattrapage publiées, sans dresser une pile statistique à vous.
Questions techniques
En quoi l’échelle par racine diffère-t-elle de l’échelle linéaire ?
L’échelle par racine remplace d’abord chaque marque brute x par √x, ce qui relève davantage les notes basses que les hautes, puis multiplie par target_mean / mean(√raw) afin que la moyenne courbée égale encore la cible.
Combien coûte le calculateur de courbe de notes ?
L’outil du navigateur est gratuit. Les requêtes API utilisent le solde prépayé KIT à $0.002 par appel réussi ; une entrée invalide n’est pas facturée.