管理学习目标

用户可以在 Google 课堂中为课程和作业设置学习目标。 这些学习目标也会在 Classroom API 中公开。您可以 对 Course 资源设置、检索和修改 学业标准集 ,并对 CourseWorkRubric 资源设置、检索和修改 学习目标 。本指南介绍了如何使用 Classroom API 访问和修改学习目标和标准集。

运作方式

数据源

课堂中的学习目标依赖于 Satchel Rosetta Exchange(以前称为 CASE Network)提供的稳定全球唯一标识符 (GUID) 。Exchange 中的标准按节点树的形式组织,其中根节点是特定学科的综合标准集,子节点则描述了越来越具体的学习成果。网络中任何具有标准代码或叶节点的节点的 标识符都可以 设置为 CourseWork 上的学习目标,而任何非叶节点都可以设置为 Course 上的学业标准集。

  • Course 资源的学业标准集表示教师在课堂界面中为学习目标添加标签时显示的 标准组。
  • 附加到 CourseWorkCourseWorkMaterialRubric 资源的学习目标 表示与该作业、问题、 资料或特定评分准则相关联的标准或技能。

Google 使用来自 Satchel Rosetta Exchange 的五条信息:

  • 文档 ID:根级节点的 GUID。此 ID 与顶级标准容器匹配,并且所有子节点通用。
  • 文档标题:整个标准文档的直观易懂的名称。
  • 商品 ID:单个标准(即非根节点)的 GUID。
  • 标准标题:单个 标准的直观易懂的描述性文本。
  • 标准代码:特定标准的直观易懂的缩写。

查找标准和目标的值

如需了解在何处查找这些值,请考虑纽约州的一个数学标准示例。从 根 节点 开始:

在 Satchel Rosetta Exchange 中选择根节点时的视图 图 1:在 Satchel Rosetta Exchange 中选择根节点时的视图。此视图显示了文档标题和文档 ID,它们是此页面上所有节点通用的。

从图 1 中的视图中,您可以提取以下值:

  • 文档 ID:c649d172-d7cb-11e8-824f-0242ac160002
  • 文档标题:New York State Next Generation Mathematics Learning Standards

如需获取单个标准的值,请点击某个标准并展开其元数据:

在 Satchel Rosetta Exchange 中选择非根节点时,该节点的元数据视图 图 2:在 Satchel Rosetta Exchange 中选择非根节点时的元数据视图。此视图显示了商品 ID、标准代码和标准标题。这些值仅适用于此标准。

从图 2 中的视图中,您可以找到以下值:

  • 商品 ID:70d64c79-d7cc-11e8-824f-0242ac160002
  • 标准标题:Understand that the digits of a three-digit number represent amounts of hundreds, tens, and ones.
  • 标准代码:NY-2.NBT.4

请注意,文档 ID 和商品 ID 也可以从每个节点的 Satchel Rosetta Exchange 网址中提取。这些网址遵循 https://rosetta.commongoodlt.com/{document_id}/{item_id} 模式。

关联的商品数量上限

  • 每个 Course 最多可以有 5 个学业标准集。
  • 每个 CourseWork 最多可以有 10 个学习目标。
  • 每个评分准则 Criterion 可以有 1 个学习目标。

管理课程学习标准集

修改学业标准集

如需修改 Course 学业标准集,请使用 Course.learningStandardSettings 字段填充 standardSets 对象。每个 standardSet 都必须包含一个 caseGuid 对象,该对象包含一个 caseDocumentId,并且可以选择性地包含一个 caseItemId

您可以使用任何 Course 变更请求(例如 courses.create()courses.patch(),并使用 learningStandardSettings 更新掩码)添加学业标准集。

以下示例在现有课程中设置了两个标准集。

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')}")

检索学业标准集

如需查看课程的当前学业标准集,请检查 Course.learningStandardSettings 字段。此字段包含一系列 standardSets 对象,如果课程中没有学业标准集,则可以为空。

请注意,响应中的每个 standardSet 都包含标准的说明及其根文档标题。这些文本也会在课堂界面中向教师和学生显示。您还会收到 sourceDataAvailabilityStatus,该状态表示标准是否在 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"
    }]
  }
}

管理课业和评分准则学习目标

修改学习目标

在任何变更请求中,学习目标都可以附加到 CourseWorkCourseWorkMaterial 和评分准则 Criterion 资源。在 CourseWork.learningGoalsRubric.Criterion.learningGoal 字段中设置文档和商品标识符。这些标识符与之前介绍的标识符相同。

请注意,附加到评分准则 Rubric 的学习目标必须已附加到与该 Rubric 关联的作业。

以下示例创建了一个 CourseWork 作业,其中附加了两个学习目标。

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')}")

以下示例创建了一个 Rubric,其中每个准则都附加了一个学习目标。

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')}")

检索学习目标

如需查看作业、问题或资料的当前学习目标,请检查 CourseWork.learningGoals 字段。每个学习目标对象都包含根级文档标题和学习标准代码。

请注意,教师还可以在课堂界面中为课程作业和资料添加技能标签。技能标签在 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)."
    }]
}

系统会返回与 Rubric 响应类似的数据,其中每个准则都包含一个 learningGoal