管理學習目標

使用者可以在 Google Classroom 中為課程和作業設定學習目標。 Classroom API 也會顯示相同的學習目標。您可以設定、擷取及修改 Course 資源的學習標準組合,以及 CourseWorkRubric 資源的學習目標。本指南說明如何使用 Classroom API 存取及修改學習目標和標準集。

2026 年第 3 季稍晚,我們將推出 API,支援 CourseWorkRubric 資源的學習目標。

運作方式

資料來源

Classroom 中的學習目標依賴 Satchel Rosetta Exchange (前身為 CASE Network) 提供的穩定全域專屬 ID (GUID)。Exchange 中的標準會整理成節點樹狀結構,其中根節點是特定主題的綜合標準集,子節點則會逐步說明更具體的學習成效。網路中任何具有標準程式碼或葉節點的節點 ID,都可以設為 CourseWork 的學習目標,而任何非葉節點都可以設為 Course 的學習標準集。

  • Course 資源的學習標準組合代表標準群組,老師標記學習目標時,這些標準會顯示在 Classroom 使用者介面中。
  • 附加至 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

如要取得個別標準的值,請按一下標準並展開其 metadata:

在 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 也可以從每個節點的 Satchel Rosetta Exchange 網址中擷取。這些網址的模式為 https://rosetta.commongoodlt.com/{document_id}/{item_id}

連結項目數量上限

  • 每個Course最多可有 5 組學習標準。
  • 每個CourseWork最多可有 10 個學習目標。
  • 每個評量表 Criterion 最多可有 1 個學習目標。

管理課程學習標準組合

修改學習標準組合

如要修改 Course 學習標準組合,請使用 standardSets 物件填入 Course.learningStandardSettings 欄位。每個 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 都包含標準說明和根文件標題。老師和學生也會在 Classroom 使用者介面中看到這些文字。您也會收到 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"
    }]
  }
}

管理 CourseWork 和評分量表的學習目標

修改學習目標

您可以在任何變更要求中,將學習目標附加至 CourseWorkCourseWorkMaterial 和評分量表 Criterion 資源。在 CourseWork.learningGoalsRubric.Criterion.learningGoal 欄位中設定文件和項目 ID。這些 ID 與先前所述相同。

請注意,附加至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 欄位。每個學習目標物件都包含根層級的文件標題和學習標準代碼。

請注意,老師也可以在 Classroom 使用者介面中,為課堂作業和教材新增技能標記。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