Пользователи могут устанавливать учебные цели для курсов и заданий в Google Classroom. Те же учебные цели также доступны в API Classroom. Вы можете устанавливать, получать и изменять наборы учебных стандартов для ресурсов Course , а также учебные цели для ресурсов CourseWork , CourseWorkMaterial и Rubric . В этом руководстве описано, как получить доступ к учебным целям и наборам стандартов и изменить их с помощью API Classroom.
Как это работает
Источник данных
В Classroom учебные цели основаны на стабильных глобально уникальных идентификаторах (GUID), предоставляемых Satchel Rosetta Exchange (ранее CASE Network). Стандарты в Exchange организованы в виде деревьев узлов, где корнем является полный набор стандартов для конкретного предмета, а дочерние узлы описывают все более конкретные результаты обучения. Идентификатор любого узла со стандартным кодом или листового узла в сети может быть установлен в качестве учебной цели в CourseWork , а любой нелистовой узел может быть установлен в качестве набора стандартов обучения в Course .
- Наборы учебных стандартов для ресурса
Courseпредставляют собой группу стандартов, которые отображаются в пользовательском интерфейсе Classroom, когда преподаватели отмечают учебные цели. - Learning goals attached to a
CourseWork,CourseWorkMaterial, orRubricresource represent the standard or skills associated with that assignment, question, material, or specific rubric criterion.
Google использует пять элементов информации из базы данных Satchel Rosetta Exchange:
- Идентификатор документа : GUID корневого узла. Этот идентификатор соответствует контейнеру стандартов верхнего уровня и является общим для всех дочерних узлов.
- Название документа : Удобочитаемое название всего стандартного документа.
- Идентификатор элемента : GUID для отдельного стандарта (то есть, для узла, не являющегося корневым).
- Название стандарта : Удобочитаемый описательный текст отдельного стандарта.
- Стандартный код : удобочитаемое сокращение для конкретного стандарта.
Определите значения для стандартов и целей.
Чтобы понять, где найти эти значения, рассмотрим пример стандарта по математике из штата Нью-Йорк. Начните с корневого узла :
Рисунок 1 : Вид корневого узла при его выборе в Satchel Rosetta Exchange. Здесь отображаются заголовок документа и идентификатор документа, общие для всех узлов на этой странице.
Из изображения на рисунке 1 можно извлечь следующие значения:
- Идентификатор документа:
c649d172-d7cb-11e8-824f-0242ac160002 - Название документа:
New York State Next Generation Mathematics Learning Standards
Чтобы получить значения для отдельного стандарта, щелкните по стандарту и разверните его метаданные:
Figure 2 : View of a non-root node's metadata when selected in Satchel Rosetta Exchange. This shows the item ID, standard code, and standard title. These values are specific to only this standard.
На рисунке 2 можно увидеть следующие значения:
- Идентификатор товара:
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
Note that the document and item IDs can also be extracted from each node's Satchel Rosetta Exchange URL. These URLs follow the pattern https://rosetta.commongoodlt.com/{document_id}/{item_id} .
Максимальное количество связанных элементов
- Каждый
Courseможет содержать до 5 наборов учебных стандартов. - Каждая
CourseWorkможет содержать до 10 учебных целей. - Каждый
Criterionрубрики может соответствовать одной учебной цели.
Управление наборами стандартов обучения по курсам
Изменить наборы стандартов обучения
To modify Course learning standard sets, populate the Course.learningStandardSettings field with standardSets objects. Each standardSet must contain a caseGuid object, which includes a caseDocumentId and optionally a caseItemId .
Вы можете добавлять наборы учебных стандартов, используя любой запрос на изменение Course , например, courses.create() или courses.patch() с маской обновления learningStandardSettings .
В следующем примере представлены два стандартных набора параметров для существующего курса.
Python
service = build("classroom", "v1", credentials=creds)
course = {
"learningStandardSettings": {
# Each Course can have up to 5 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')}")
Получение наборов учебных стандартов
To see a course's current learning standard sets, inspect the Course.learningStandardSettings field. This field contains a series of standardSets objects, and can be empty if no learning standard sets are present on the course.
Note that each standardSet in the response contains the standard's description and its root document title. These texts also appear for teachers and students in the Classroom UI. You also receive the sourceDataAvailabilityStatus , which indicates whether the standard is available in the 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"
}
]
}
}
Управление учебными целями по курсам, учебным материалам и критериям оценки.
Изменить цели обучения
Learning goals can be attached to CourseWork , CourseWorkMaterial , and Rubric Criterion resources in any mutate request. Set document and item identifiers in the CourseWork.learningGoals or Rubric.Criterion.learningGoal fields. These are the same identifiers as described previously .
Обратите внимание, что учебные цели, указанные в критериях 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.
"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')}")
В приведенном ниже примере создается 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.
"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')}")
Извлечь цели обучения
To see the current learning goals on an assignment, question, or material, inspect the CourseWork.learningGoals field. Each learning goal object contains the root-level document title and the learning standard code.
Обратите внимание, что преподаватели также могут добавлять теги навыков к учебным заданиям и материалам в пользовательском интерфейсе Classroom. Теги навыков недоступны в 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."
}
]
}
Аналогичные данные возвращаются с ответами Rubric , содержащей одну learningGoal для каждого критерия.