Zarządzanie celami edukacyjnymi

Użytkownicy mogą ustawiać cele edukacyjne dla zajęć i projektów w Google Classroom. Te same cele edukacyjne są też dostępne w interfejsie Classroom API. Możesz ustawiać, pobierać i modyfikować zestawy standardów nauczania w zasobach Course oraz cele edukacyjne w zasobach CourseWork i Rubric. Z tego przewodnika dowiesz się, jak uzyskiwać dostęp do celów edukacyjnych i zestawów standardów oraz jak je modyfikować za pomocą interfejsu Classroom API.

Jak to działa

Źródło danych

Cele edukacyjne w Classroom korzystają ze stabilnych, globalnie unikalnych identyfikatorów (GUID) udostępnianych przez Satchel Rosetta Exchange (wcześniej CASE Network). Standardy w Exchange są uporządkowane w drzewa węzłów, gdzie węzeł główny to kompleksowy zestaw standardów dla danego przedmiotu, a węzły podrzędne opisują coraz bardziej szczegółowe efekty uczenia się. Identyfikator dowolnego węzła z kodem standardu lub węzła liścia w sieci można ustawić jako cel edukacyjny w CourseWork, a dowolny węzeł niebędący liściem można ustawić jako zestaw standardów nauczania w Course.

  • Zestawy standardów nauczania dla zasobu Course reprezentują grupę standardów, które pojawiają się w interfejsie Classroom, gdy nauczyciele oznaczają cele edukacyjne.
  • Cele edukacyjne powiązane z zasobem CourseWork, CourseWorkMaterial lub Rubric reprezentują standard lub umiejętności powiązane z tym projektem, pytaniem, materiałem lub konkretnym kryterium oceny.

Google używa 5 informacji z Satchel Rosetta Exchange:

  • Identyfikator dokumentu: GUID węzła najwyższego poziomu. Ten identyfikator odpowiada kontenerowi standardów najwyższego poziomu i jest wspólny dla wszystkich węzłów podrzędnych.
  • Tytuł dokumentu: czytelna dla użytkownika nazwa całego dokumentu standardu.
  • Identyfikator produktu: GUID pojedynczego standardu (czyli węzła niebędącego węzłem głównym).
  • Tytuł standardu: czytelny dla użytkownika tekst opisujący pojedynczy standard.
  • Kod standardu: czytelny dla użytkownika skrót określonego standardu.

Znajdowanie wartości standardów i celów

Aby dowiedzieć się, gdzie znaleźć te wartości, rozważmy przykład standardu matematycznego ze stanu Nowy Jork. Zacznij od węzła głównego:

Widok węzła głównego po wybraniu go w Satchel Rosetta Exchange Rysunek 1: widok węzła głównego po wybraniu go w Satchel Rosetta Exchange. Widoczny jest tytuł dokumentu i identyfikator dokumentu, które są wspólne dla wszystkich węzłów na tej stronie.

Z widoku na rysunku 1 możesz wyodrębnić te wartości:

  • Identyfikator dokumentu: c649d172-d7cb-11e8-824f-0242ac160002
  • Tytuł dokumentu: New York State Next Generation Mathematics Learning Standards

Aby uzyskać wartości dla poszczególnych standardów, kliknij standard i rozwiń jego metadane:

Widok metadanych węzła innego niż węzeł główny po wybraniu go w Satchel Rosetta Exchange Rysunek 2: widok metadanych węzła niebędącego węzłem głównym po wybraniu go w Satchel Rosetta Exchange. Widoczny jest identyfikator produktu, kod standardu i tytuł standardu. Te wartości są specyficzne tylko dla tego standardu.

Z widoku na rysunku 2 możesz znaleźć te wartości:

  • Identyfikator produktu: 70d64c79-d7cc-11e8-824f-0242ac160002
  • Tytuł standardu: Understand that the digits of a three-digit number represent amounts of hundreds, tens, and ones.
  • Kod standardu: NY-2.NBT.4

Pamiętaj, że identyfikatory dokumentów i produktów można też wyodrębnić z adresu URL Satchel Rosetta Exchange każdego węzła. Te adresy URL mają postać https://rosetta.commongoodlt.com/{document_id}/{item_id}.

Maksymalna liczba powiązanych elementów

  • Każdy Course może mieć maksymalnie 5 zestawów standardów nauczania.
  • Każdy CourseWork może mieć maksymalnie 10 celów edukacyjnych.
  • Każde Criterion kryteria oceny mogą mieć 1 cel edukacyjny.

Zarządzanie zestawami standardów nauczania w zajęciach

Modyfikowanie zestawów standardów nauczania

Aby zmodyfikować Course zestawy standardów nauczania, wypełnij Course.learningStandardSettings pole obiektami standardSets. Każdy standardSet musi zawierać obiekt caseGuid, który obejmuje caseDocumentId i opcjonalnie caseItemId.

Zestawy standardów nauczania możesz dodawać za pomocą dowolnego Course żądania mutacji, np. courses.create() lub courses.patch() z maską aktualizacji learningStandardSettings.

Ten przykład ustawia 2 zestawy standardów w istniejących zajęciach.

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

Pobieranie zestawów standardów nauczania

Aby zobaczyć bieżące zestawy standardów nauczania zajęć, sprawdź pole Course.learningStandardSettings. To pole zawiera serię obiektów standardSets i może być puste, jeśli w zajęciach nie ma zestawów standardów nauczania.

Pamiętaj, że każdy standardSet w odpowiedzi zawiera opis standardu i tytuł jego dokumentu głównego. Te teksty są też widoczne dla nauczycieli i uczniów w interfejsie Classroom. Otrzymujesz też sourceDataAvailabilityStatus, który wskazuje, czy standard jest dostępny w 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"
    }]
  }
}

Zarządzanie celami edukacyjnymi w materiałach dydaktycznych i kryteriach oceny

Modyfikowanie celów edukacyjnych

Cele edukacyjne można dołączać do zasobów CourseWork, CourseWorkMaterial i Criterion kryteriów oceny w dowolnym żądaniu modyfikacji. Ustaw identyfikatory dokumentów i produktów w polach CourseWork.learningGoals lub Rubric.Criterion.learningGoal. Są to te same identyfikatory, które zostały opisane wcześniej.

Pamiętaj, że cele edukacyjne dołączone do kryteriów Rubric muszą być już dołączone do projektu, z którym jest powiązana Rubric.

Ten przykład tworzy projekt CourseWork z 2 dołączonymi celami edukacyjnymi.

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

Ten przykład tworzy Rubric z celem edukacyjnym dołączonym do każdego kryterium.

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

Pobieranie celów edukacyjnych

Aby zobaczyć bieżące cele edukacyjne w projekcie, pytaniu lub materiale, sprawdź pole CourseWork.learningGoals. Każdy obiekt celu edukacyjnego zawiera tytuł dokumentu głównego i kod standardu nauczania.

Pamiętaj, że nauczyciele mogą też dodawać tagi umiejętności do projektów i materiałów w interfejsie Classroom. Tagi umiejętności nie są dostępne w interfejsie 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)."
    }]
}

Podobne dane są zwracane w odpowiedziach Rubric, które zawierają 1 learningGoal na kryterium.