Пользователи могут устанавливать учебные цели для курсов и заданий в Google Classroom. Те же учебные цели также доступны в API Classroom. Вы можете устанавливать, получать и изменять наборы учебных стандартов для ресурсов Course , а также учебные цели для ресурсов CourseWork и Rubric . В этом руководстве описано, как получить доступ к учебным целям и наборам стандартов и изменить их с помощью API Classroom.
Как это работает
Источник данных
В Classroom учебные цели основаны на стабильных глобально уникальных идентификаторах (GUID), предоставляемых Satchel Rosetta Exchange (ранее CASE Network). Стандарты в Exchange организованы в виде деревьев узлов, где корнем является полный набор стандартов для конкретного предмета, а дочерние узлы описывают все более конкретные результаты обучения. Идентификатор любого узла со стандартным кодом или листового узла в сети может быть установлен в качестве учебной цели в CourseWork , а любой нелистовой узел может быть установлен в качестве набора стандартов обучения в Course .
- Наборы учебных стандартов для ресурса
Courseпредставляют собой группу стандартов, которые отображаются в пользовательском интерфейсе Classroom, когда преподаватели отмечают учебные цели. - Учебные цели, указанные в
CourseWork,CourseWorkMaterialили критерияхRubricотражают стандарты или навыки, связанные с данным заданием, вопросом, материалом или конкретным критерием оценки.
Google использует пять элементов информации из базы данных Satchel Rosetta Exchange:
- Идентификатор документа : GUID корневого узла. Этот идентификатор соответствует контейнеру стандартов верхнего уровня и является общим для всех дочерних узлов.
- Название документа : Удобочитаемое название всего стандартного документа.
- Идентификатор элемента : GUID для отдельного стандарта (то есть, для узла, не являющегося корневым).
- Название стандарта : Удобочитаемый описательный текст отдельного стандарта.
- Стандартный код : удобочитаемое сокращение для конкретного стандарта.
Определите значения для стандартов и целей.
Чтобы понять, где найти эти значения, рассмотрим пример стандарта по математике из штата Нью-Йорк. Начните с корневого узла :
Рисунок 1 : Вид корневого узла при его выборе в Satchel Rosetta Exchange. Здесь отображаются заголовок документа и идентификатор документа, общие для всех узлов на этой странице.
Из изображения на рисунке 1 можно извлечь следующие значения:
- Идентификатор документа:
c649d172-d7cb-11e8-824f-0242ac160002 - Название документа:
New York State Next Generation Mathematics Learning Standards
Чтобы получить значения для отдельного стандарта, щелкните по стандарту и разверните его метаданные:
Рисунок 2 : Отображение метаданных некорневого узла при его выборе в Satchel Rosetta Exchange. Здесь показаны идентификатор элемента, код стандарта и название стандарта. Эти значения относятся только к данному стандарту.
На рисунке 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
Обратите внимание, что идентификаторы документов и элементов также можно извлечь из URL-адреса Satchel Rosetta Exchange каждого узла. Эти URL-адреса имеют следующий формат: https://rosetta.commongoodlt.com/{document_id}/{item_id} .
Максимальное количество связанных элементов
- Каждый
Courseможет содержать до 5 наборов учебных стандартов. - Каждая
CourseWorkможет содержать до 10 учебных целей. - Каждый
Criterionрубрики может соответствовать одной учебной цели.
Управление наборами стандартов обучения по курсам
Изменить наборы стандартов обучения
Чтобы изменить наборы стандартов обучения 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 в ответе содержит описание стандарта и заголовок его корневого документа. Эти тексты также отображаются для преподавателей и студентов в пользовательском интерфейсе 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 , CourseWorkMaterial и Rubric Criterion в любом запросе на изменение. Задайте идентификаторы документа и элемента в полях CourseWork.learningGoals или Rubric.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 . Каждый объект учебной цели содержит заголовок документа корневого уровня и код учебного стандарта.
Обратите внимание, что преподаватели также могут добавлять теги навыков к учебным заданиям и материалам в пользовательском интерфейсе 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 для каждого критерия.