Gérer les objectifs d'apprentissage

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 référentiels d'apprentissage sur les ressources Course et des objectifs d'apprentissage sur les ressources CourseWork et Rubric. Ce guide explique comment accéder aux objectifs d'apprentissage et aux référentiels, et comment les modifier à l'aide de l'API Classroom.

Fonctionnement

Source de données

Les objectifs d'apprentissage dans Classroom s'appuient sur des identifiants uniques globaux (GUID) stables fournis par Satchel Rosetta Exchange (anciennement CASE Network). Les normes de l'Exchange sont organisées en arborescences de nœuds, où la racine est un référentiel complet pour un sujet particulier 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 un CourseWork, tandis que n'importe quel nœud non feuille peut être défini comme référentiel d'apprentissage sur un Course.

  • Les référentiels d'apprentissage pour une ressource Course représentent le groupe de normes qui s'affichent dans l'interface utilisateur de Classroom lorsque les enseignants ajoutent des objectifs d'apprentissage.
  • Les objectifs d'apprentissage associés à une ressource CourseWork, CourseWorkMaterial ou Rubric repré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 de Satchel Rosetta Exchange :

  • ID du document : GUID pour 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 de normes.
  • ID d'élément : GUID pour une seule norme (c'est-à-dire un nœud non racine).
  • Titre de la norme : texte descriptif lisible d'une seule norme.
  • Code de la norme : abréviation lisible d'une norme spécifique.

Rechercher 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 :

Vue d'un nœud racine lorsqu'il est sélectionné dans Satchel Rosetta
Exchange Figure 1: Vue d'un nœud racine lorsqu'il est sélectionné dans Satchel Rosetta Exchange. Elle affiche le titre et l'ID du document, qui sont communs à tous les nœuds de cette page.

À 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 :

Affichage des métadonnées d'un nœud non racine lorsqu'il est sélectionné dans Satchel Rosetta Exchange Figure 2 : Vue des métadonnées d'un nœud non racine lorsqu'il est sélectionné dans Satchel Rosetta Exchange. Elle affiche l'ID de l'article, le code de la norme et le titre de la norme. Ces valeurs sont spécifiques à cette norme uniquement.

À partir de la vue de la figure 2, vous pouvez trouver les valeurs suivantes :

  • ID de l'article : 70d64c79-d7cc-11e8-824f-0242ac160002
  • Titre de la norme : Understand that the digits of a three-digit number represent amounts of hundreds, tens, and ones.
  • Code de la norme : NY-2.NBT.4

Notez que les ID de document et d'élément 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 Course peut comporter jusqu'à cinq référentiels d'apprentissage.
  • Chaque CourseWork peut comporter jusqu'à 10 objectifs d'apprentissage.
  • Chaque Criterion de grille d'évaluation peut comporter un objectif d'apprentissage.

Gérer les référentiels d'apprentissage des cours

Modifier les référentiels d'apprentissage

Pour modifier les référentiels d'apprentissage Course, renseignez le Course.learningStandardSettings champ 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 d'apprentissage à l'aide de n'importe quelle requête de mutation Course, telle que courses.create() ou courses.patch() avec le masque de mise à jour learningStandardSettings.

L'exemple suivant définit deux référentiels sur un cours existant.

Python

service = build("classroom", "v1", credentials=creds)
course = {
    "learning_standard_settings": {
        # Each Course can have up to 5 learning standard sets.
        "standard_sets": [
            # 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.
            {
                "case_guid": {
                    "case_document_id": "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.
            {
                "case_guid": {
                    "case_document_id": "bfc264b3-b4d1-4780-84ff-26b12e6945a6",
                    "case_item_id": "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 les référentiels d'apprentissage

Pour afficher les référentiels 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 référentiel 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 le sourceDataAvailabilityStatus, qui indique si la norme est disponible dans Satchel Rosetta Exchange.

{
  "id": "123456789",
  "name": "LSS test class",
  "learning_standard_settings": {
    "standard_sets": [{
      "case_guid": {
        "case_document_id": "c649d172-d7cb-11e8-824f-0242ac160002"
      },
      "document_title": "New York State Next Generation Mathematics Learning Standards",
      "source_data_availability_status": "LEARNING_STANDARD_AVAILABLE"
    },
    {
      "case_guid": {
        "case_document_id": "bfc264b3-b4d1-4780-84ff-26b12e6945a6",
        "case_item_id": "d52217c0-1c5b-4d92-9664-d0792944f3fe"
      },
      "document_title": "AAS English Language Arts (2021)",
      "standard_title": "With prompting and support, actively listen and speak.",
      "source_data_availability_status": "LEARNING_STANDARD_AVAILABLE"
    }]
  }
}

Gérer les objectifs d'apprentissage des devoirs et des grilles d'évaluation

Modifier les objectifs d'apprentissage

Les objectifs d'apprentissage peuvent être associés aux ressources CourseWork, CourseWorkMaterial et Criterion de grille d'évaluation 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 la Rubric est liée.

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.
    "learning_goals": [
        {
            "learning_standard_info": {
                # 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.
                "case_guid": {
                    "case_document_id": "bfc264b3-b4d1-4780-84ff-26b12e6945a6",
                    "case_item_id": "6d922f1f-b580-42a1-b6d2-5ee5b39c561d",
                }
            }
        },
        {
            "learning_standard_info": {
                # 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.
                "case_guid": {
                    "case_document_id": "bfc264b3-b4d1-4780-84ff-26b12e6945a6",
                    "case_item_id": "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 une 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.
            "learning_goal": {
                "learning_standard_info": {
                    # 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.
                    "case_guid": {
                        "case_document_id": "bfc264b3-b4d1-4780-84ff-26b12e6945a6",
                        "case_item_id": "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.
            "learning_goal": {
                "learning_standard_info": {
                    # 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.
                    "case_guid": {
                        "case_document_id": "bfc264b3-b4d1-4780-84ff-26b12e6945a6",
                        "case_item_id": "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 les objectifs d'apprentissage

Pour afficher les objectifs d'apprentissage actuels d'un devoir, d'une question ou d'un support, inspectez le champ CourseWork.learningGoals. Chaque objet d'objectif d'apprentissage contient le titre du document de niveau racine et le code de la norme d'apprentissage.

Notez que les enseignants peuvent également ajouter des tags de compétences aux documents de travail et aux supports de cours dans l'interface utilisateur de Classroom. Les tags de compétences ne sont pas accessibles dans l'API.

{
  "course_id": "123456789",
  "id": "987654321",
  "title": "Test ELA Assignment",
  "state": "PUBLISHED",
  "learning_goals": [
    {
      "learning_standard_info": {
        "standard_code": "ELA21.AAS.11.11c",
        "document_title": "AAS English Language Arts (2021)",
        "case_guid": {
          "case_document_id": "bfc264b3-b4d1-4780-84ff-26b12e6945a6",
          "case_item_id": "6d922f1f-b580-42a1-b6d2-5ee5b39c561d",
        },
        "source_data_availability_status": "LEARNING_STANDARD_AVAILABLE"
      },
      "title": "Compose argumentative texts by stating a topic, providing reasons that support the argument, and providing an appropriate conclusion related to the topic."
    },
    {
      "learning_standard_info": {
        "standard_code": "ELA21.AAS.11.22a",
        "document_title": "AAS English Language Arts (2021)",
        "case_guid": {
          "case_document_id": "bfc264b3-b4d1-4780-84ff-26b12e6945a6",
          "case_item_id": "a684609a-c3ec-42da-8b7f-7a325b31ea4a",
        },
        "source_data_availability_status": "LEARNING_STANDARD_AVAILABLE"
      },
      "title": "Identify a sentence that uses correct capitalization (i.e., beginning of sentence, names, cities, states, countries, towns, titles, days, months)."
    }]
}

Des données similaires sont renvoyées avec les réponses Rubric, contenant un learningGoal par critère.