Les utilisateurs peuvent définir des objectifs d'apprentissage pour les cours et les devoirs dans Google Classroom.
Les mêmes objectifs d'apprentissage sont également exposés dans l'API Classroom. Vous pouvez définir, récupérer et modifier des ensembles de normes d'apprentissage sur les ressources Course et des objectifs d'apprentissage sur les ressources CourseWork, CourseWorkMaterial et Rubric.
Ce guide explique comment accéder aux objectifs d'apprentissage et aux ensembles de normes, et comment les modifier à l'aide de l'API Classroom.
Fonctionnement
Source de données
Les objectifs d'apprentissage dans Classroom reposent sur des identifiants uniques stables (GUID) fournis par Satchel Rosetta Exchange (anciennement CASE Network). Dans l'Exchange, les normes sont organisées en arborescences de nœuds, où la racine est un ensemble de normes complet pour un sujet donné et les nœuds enfants décrivent des résultats d'apprentissage de plus en plus spécifiques. L'identifiant de n'importe quel nœud avec un code standard ou un nœud feuille du réseau peut être défini comme objectif d'apprentissage sur une CourseWork, tandis que n'importe quel nœud non feuille peut être défini comme norme d'apprentissage sur une Course.
- Les ensembles de normes d'apprentissage pour une ressource
Coursereprésentent le groupe de normes qui s'affiche dans l'interface utilisateur de Classroom lorsque les enseignants ajoutent des objectifs d'apprentissage. - Les objectifs d'apprentissage associés à une ressource
CourseWork,CourseWorkMaterialouRubricreprésentent la norme ou les compétences associées à ce devoir, cette question, ce support ou ce critère de grille d'évaluation spécifique.
Google utilise cinq informations provenant de Satchel Rosetta Exchange :
- ID du document : GUID d'un nœud de niveau racine. Cet ID correspond à un conteneur de normes de premier niveau et est commun à tous les nœuds enfants.
- Titre du document : nom lisible de l'ensemble du document standard.
- ID de l'élément : GUID pour une norme unique (c'est-à-dire un nœud non racine).
- Titre standard : texte descriptif lisible d'une seule norme.
- Code standard : abréviation lisible d'une norme spécifique.
Trouver des valeurs pour les normes et les objectifs
Pour comprendre où trouver ces valeurs, prenons l'exemple d'une norme mathématique de l'État de New York. Commencez par le nœud racine :
Figure 1 : Vue d'un nœud racine lorsqu'il est sélectionné dans Satchel Rosetta Exchange. Le titre et l'ID du document, qui sont communs à tous les nœuds de cette page, s'affichent.
À partir de la vue de la figure 1, vous pouvez extraire les valeurs suivantes :
- ID du document :
c649d172-d7cb-11e8-824f-0242ac160002 - Titre du document :
New York State Next Generation Mathematics Learning Standards
Pour obtenir les valeurs d'une norme individuelle, cliquez sur une norme et développez ses métadonnées :
Figure 2 : Vue des métadonnées d'un nœud non racine lorsqu'il est sélectionné dans Satchel Rosetta Exchange. Il indique l'ID de l'article, le code standard et le titre standard. Ces valeurs sont spécifiques à cette norme uniquement.
Dans la vue de la figure 2, vous pouvez trouver les valeurs suivantes :
- ID d'article :
70d64c79-d7cc-11e8-824f-0242ac160002 - Titre standard :
Understand that the digits of a three-digit number represent amounts of hundreds, tens, and ones. - Code standard :
NY-2.NBT.4
Notez que les ID de document et d'article peuvent également être extraits de l'URL Satchel Rosetta Exchange de chaque nœud. Ces URL suivent le modèle https://rosetta.commongoodlt.com/{document_id}/{item_id}.
Nombre maximal d'éléments associés
- Chaque
Coursepeut comporter jusqu'à 20 ensembles de normes d'apprentissage. - Chaque
CourseWorkpeut comporter jusqu'à 10 objectifs d'apprentissage. - Chaque grille d'évaluation
Criterionpeut comporter un objectif d'apprentissage.
Gérer les référentiels d'apprentissage d'un cours
Modifier les référentiels d'apprentissage
Pour modifier les ensembles de normes d'apprentissage Course, renseignez le champ Course.learningStandardSettings avec des objets standardSets. Chaque standardSet doit contenir un objet caseGuid, qui inclut un caseDocumentId et éventuellement un caseItemId.
Vous pouvez ajouter des référentiels de normes d'apprentissage à l'aide de n'importe quelle requête de modification Course, comme courses.create() ou courses.patch() avec le masque de mise à jour learningStandardSettings.
L'exemple suivant définit deux ensembles de normes sur un cours existant.
Python
service = build("classroom", "v1", credentials=creds)
course = {
"learningStandardSettings": {
# Each Course can have up to 20 learning standard sets.
"standardSets": [
# Construct a GUID for the NYS Next Gen Math Standards top-level node.
# This is a top-level non-leaf node, so it only has a Document ID.
{
"caseGuid": {
"caseDocumentId": "c649d172-d7cb-11e8-824f-0242ac160002"
}
},
# Construct a GUID for the AAS ELA21.AAS.K Standard node.
# This is a mid-level non-leaf node, so it has both Document and Item IDs.
{
"caseGuid": {
"caseDocumentId": "bfc264b3-b4d1-4780-84ff-26b12e6945a6",
"caseItemId": "ada2cc30-7d6d-494e-8c6b-c998bae98f0b",
}
},
]
}
}
course = (
service.courses()
.patch(
id=course_id,
updateMask="learningStandardSettings",
body=course,
# Specify the preview version while the feature is in Developer Preview.
# Learning standards and goals are supported in V1_20260316_PREVIEW and
# later.
previewVersion="V1_20260316_PREVIEW")
.execute()
)
print(f"Course updated: {course.get('name')}")
Récupérer des référentiels d'apprentissage
Pour afficher les ensembles de normes d'apprentissage actuels d'un cours, inspectez le champ Course.learningStandardSettings. Ce champ contient une série d'objets standardSets et peut être vide si aucun ensemble de normes d'apprentissage n'est présent dans le cours.
Notez que chaque standardSet de la réponse contient la description de la norme et le titre de son document racine. Ces textes s'affichent également pour les enseignants et les élèves dans l'interface utilisateur de Classroom. Vous recevez également sourceDataAvailabilityStatus, qui indique si la norme est disponible dans Satchel Rosetta Exchange.
{
"id": "123456789",
"name": "LSS test class",
"learningStandardSettings": {
"standardSets": [
{
"caseGuid": {
"caseDocumentId": "c649d172-d7cb-11e8-824f-0242ac160002"
},
"documentTitle": "New York State Next Generation Mathematics Learning Standards",
"sourceDataAvailabilityStatus": "LEARNING_STANDARD_AVAILABLE"
},
{
"caseGuid": {
"caseDocumentId": "bfc264b3-b4d1-4780-84ff-26b12e6945a6",
"caseItemId": "ada2cc30-7d6d-494e-8c6b-c998bae98f0b"
},
"documentTitle": "AAS English Language Arts (2021)",
"standardTitle": "Kindergarten",
"sourceDataAvailabilityStatus": "LEARNING_STANDARD_AVAILABLE"
}
]
}
}
Gérer les objectifs d'apprentissage des devoirs, des supports de cours et des grilles d'évaluation
Modifier les objectifs d'apprentissage
Les objectifs d'apprentissage peuvent être associés aux ressources CourseWork, CourseWorkMaterial et Rubrique Criterion dans n'importe quelle requête de mutation. Définissez les identifiants de document et d'élément dans les champs CourseWork.learningGoals ou Rubric.Criterion.learningGoal. Il s'agit des mêmes identifiants que ceux décrits précédemment.
Notez que les objectifs d'apprentissage associés aux critères Rubric doivent déjà avoir été associés au devoir auquel Rubric est lié.
L'exemple suivant crée un devoir CourseWork avec deux objectifs d'apprentissage associés.
Python
# Create a CourseWork assignment with two attached learning goals.
service = build("classroom", "v1", credentials=creds)
coursework = {
"title": "Ant colonies",
"description": "Read the article about ant colonies and complete the quiz.",
"materials": [
{"link": {"url": "http://example.com/ant-colonies"}},
{"link": {"url": "http://example.com/ant-quiz"}},
],
"workType": "ASSIGNMENT",
"state": "PUBLISHED",
# Each CourseWork can have up to 10 learning goals.
"learningGoals": [
{
"learningStandardInfo": {
# Construct a GUID for the ELA21.AAS.11.11c Standard node.
# This is a non-root node, so it has both Document and Item IDs.
"caseGuid": {
"caseDocumentId": "bfc264b3-b4d1-4780-84ff-26b12e6945a6",
"caseItemId": "6d922f1f-b580-42a1-b6d2-5ee5b39c561d",
}
}
},
{
"learningStandardInfo": {
# Construct a GUID for the ELA21.AAS.11.22a Standard node.
# This is a non-root node, so it has both Document and Item IDs.
"caseGuid": {
"caseDocumentId": "bfc264b3-b4d1-4780-84ff-26b12e6945a6",
"caseItemId": "a684609a-c3ec-42da-8b7f-7a325b31ea4a",
}
}
},
],
}
coursework = (
service.courses()
.courseWork()
.create(
courseId=course_id,
body=coursework,
# Specify the preview version while the feature is in Developer Preview.
# Learning standards and goals are supported in V1_20260316_PREVIEW and
# later.
previewVersion="V1_20260316_PREVIEW")
.execute()
)
print(f"Assignment created with ID {coursework.get('id')}")
L'exemple suivant crée un Rubric avec un objectif d'apprentissage associé à chaque critère.
Python
# Create a new Rubric with a learning goal attached to each criterion.
service = build("classroom", "v1", credentials=creds)
body = {
"criteria": [
{
"title": "Argument",
"description": "How well structured your argument is.",
"levels": [
{
"title": "Convincing",
"description": "A compelling case is made.",
"points": 30,
},
{
"title": "Passable",
"description": "Missing some evidence.",
"points": 20,
},
{
"title": "Needs Work",
"description": "Not enough strong evidence.",
"points": 0,
},
],
# Each Criterion can have one learning goal.
"learningGoal": {
"learningStandardInfo": {
# Construct a GUID for the ELA21.AAS.11.11c Standard node.
# This is a non-root node, so it has both Document and Item IDs.
"caseGuid": {
"caseDocumentId": "bfc264b3-b4d1-4780-84ff-26b12e6945a6",
"caseItemId": "6d922f1f-b580-42a1-b6d2-5ee5b39c561d",
}
}
},
},
{
"title": "Spelling",
"description": "How well you spelled all the words.",
"levels": [
{"title": "Perfect", "description": "No mistakes.", "points": 20},
{"title": "Great", "description": "A mistake or two.", "points": 15},
{"title": "Needs Work", "description": "Many mistakes.", "points": 5},
],
# Each Criterion can have one learning goal.
"learningGoal": {
"learningStandardInfo": {
# Construct a GUID for the ELA21.AAS.11.22a Standard node.
# This is a non-root node, so it has both Document and Item IDs.
"caseGuid": {
"caseDocumentId": "bfc264b3-b4d1-4780-84ff-26b12e6945a6",
"caseItemId": "a684609a-c3ec-42da-8b7f-7a325b31ea4a",
}
}
},
},
]
}
rubric = (
service.courses()
.courseWork()
.rubrics()
.create(
courseId=course_id,
courseWorkId=coursework_id,
body=body,
# Specify the preview version while the feature is in Developer Preview.
# Learning standards and goals are supported in V1_20260316_PREVIEW and
# later.
previewVersion="V1_20260316_PREVIEW")
.execute()
)
print(f"Rubric created with ID {rubric.get('id')}")
Récupérer des objectifs d'apprentissage
Pour afficher les objectifs d'apprentissage actuels d'un devoir, d'une question ou d'un support de cours, inspectez le champ CourseWork.learningGoals. Chaque objet d'objectif d'apprentissage contient le titre du document racine et le code de la norme d'apprentissage.
Notez que les enseignants peuvent également ajouter des tags de compétence aux documents de travail et aux supports de cours dans l'UI Classroom. Les tags de compétences ne sont pas accessibles dans l'API.
{
"course_id": "123456789",
"id": "987654321",
"title": "Test ELA Assignment",
"state": "PUBLISHED",
"learningGoals": [
{
"id": "871768554412",
"courseId": "123456789",
"learningStandardInfo": {
"standardCode": "ELA21.AAS.11.22a",
"caseGuid": {
"caseDocumentId": "bfc264b3-b4d1-4780-84ff-26b12e6945a6",
"caseItemId": "a684609a-c3ec-42da-8b7f-7a325b31ea4a"
}
},
"title": "Identify a sentence that uses correct capitalization (i.e., beginning of sentence, names, cities, states, countries, towns, titles, days, months)."
},
{
"id": "871768554411",
"courseId": "123456789",
"learningStandardInfo": {
"standardCode": "ELA21.AAS.11.11c",
"caseGuid": {
"caseDocumentId": "bfc264b3-b4d1-4780-84ff-26b12e6945a6",
"caseItemId": "6d922f1f-b580-42a1-b6d2-5ee5b39c561d"
}
},
"title": "Compose argumentative texts by stating a topic, providing reasons that support the argument, and providing an appropriate conclusion related to the topic."
}
]
}
Des données similaires sont renvoyées avec les réponses Rubric, qui contiennent un learningGoal par critère.