เริ่มต้นใช้งานเกณฑ์การให้คะแนน

rubric เป็นเทมเพลตที่ครูใช้เมื่อให้คะแนนนักเรียนได้ ที่ส่ง Classroom API ช่วยให้คุณสามารถดำเนินการในนามของ สำหรับจัดการเกณฑ์การให้คะแนนเหล่านี้

มุมมองเกณฑ์การให้คะแนนใน UI ของ Classroom รูปที่ 1 ภาพตัวอย่างเกณฑ์การให้คะแนนงานใน Classroom

คู่มือนี้จะอธิบายแนวคิดและฟังก์ชันพื้นฐานของ Rubrics API โปรดดู บทความในศูนย์ช่วยเหลือเหล่านี้เพื่อเรียนรู้เกี่ยวกับ โครงสร้างของเกณฑ์การให้คะแนนและลักษณะเกณฑ์การให้คะแนน การให้คะแนนจะทำใน UI ของ Classroom

ข้อกำหนดเบื้องต้น

คู่มือนี้จะถือว่าคุณมีสิ่งต่อไปนี้

ให้สิทธิ์ข้อมูลเข้าสู่ระบบสำหรับแอปพลิเคชันเดสก์ท็อป

หากต้องการตรวจสอบสิทธิ์ในฐานะผู้ใช้ปลายทางและเข้าถึงข้อมูลผู้ใช้ในแอป คุณจะต้องดำเนินการต่อไปนี้ สร้างรหัสไคลเอ็นต์ OAuth 2.0 อย่างน้อย 1 รหัส รหัสไคลเอ็นต์ใช้เพื่อระบุ แอปเดียวไปยังเซิร์ฟเวอร์ OAuth ของ Google หากแอปทำงานบนหลายแพลตฟอร์ม คุณต้องสร้างรหัสไคลเอ็นต์แยกกันสำหรับแต่ละแพลตฟอร์ม

  1. ไปที่หน้าข้อมูลเข้าสู่ระบบของ Google Cloud ใน คอนโซล Google Cloud
  2. คลิกสร้างข้อมูลเข้าสู่ระบบ > รหัสไคลเอ็นต์ OAuth
  3. คลิกประเภทแอปพลิเคชัน > แอปบนเดสก์ท็อป
  4. ในช่องชื่อ ให้พิมพ์ชื่อของข้อมูลเข้าสู่ระบบ ชื่อนี้เป็นเพียง ที่แสดงในคอนโซล Google Cloud เช่น "ไคลเอ็นต์การแสดงตัวอย่างเกณฑ์การให้คะแนน"
  5. คลิกสร้าง หน้าจอที่สร้างไคลเอ็นต์ OAuth จะปรากฏขึ้น ซึ่งจะแสดง Client-ID และรหัสลับไคลเอ็นต์
  6. คลิกดาวน์โหลด JSON ตามด้วยตกลง ข้อมูลเข้าสู่ระบบที่สร้างขึ้นใหม่ จะปรากฏในรหัสไคลเอ็นต์ OAuth 2.0
  7. บันทึกไฟล์ JSON ที่ดาวน์โหลดเป็น credentials.json และย้ายไฟล์ไปที่ ไดเรกทอรีที่ใช้งานอยู่
  8. คลิกสร้างข้อมูลเข้าสู่ระบบ > คีย์ API และจดบันทึกคีย์ API

โปรดดูที่สร้างข้อมูลเข้าสู่ระบบเพื่อเรียนรู้เพิ่มเติม

กำหนดค่าขอบเขต OAuth

คุณอาจต้องกำหนดค่า ทั้งนี้ขึ้นอยู่กับขอบเขต OAuth ที่มีอยู่ของโปรเจ็กต์ ขอบเขตเพิ่มเติม

  1. ไปที่หน้าจอขอความยินยอม OAuth
  2. คลิกแก้ไขแอป > บันทึกและดำเนินการต่อเพื่อไปยังหน้าจอขอบเขต
  3. คลิกเพิ่มหรือนำขอบเขตออก
  4. เพิ่มขอบเขตต่อไปนี้หากยังไม่มี
    • https://www.googleapis.com/auth/classroom.coursework.students
    • https://www.googleapis.com/auth/classroom.courses
  5. จากนั้นคลิกอัปเดต > บันทึกและดำเนินการต่อ > บันทึกและดำเนินการต่อ > กลับไปที่แดชบอร์ด

โปรดดูกำหนดค่าหน้าจอคำยินยอม OAuth เพื่อเรียนรู้ และอีกมากมาย

ขอบเขต classroom.coursework.students ช่วยให้มีสิทธิ์อ่านและเขียนใน เกณฑ์การให้คะแนน (พร้อมสิทธิ์เข้าถึง CourseWork) และขอบเขต classroom.courses เพื่อสอนทักษะการอ่านและการเขียน

ขอบเขตที่จำเป็นสำหรับเมธอดหนึ่งๆ แสดงอยู่ในเอกสารอ้างอิง สำหรับเมธอด ดูcourses.courseWork.rubrics.createขอบเขตการให้สิทธิ์ คุณจะดูขอบเขตทั้งหมดของ Classroom ได้ในส่วนขอบเขต OAuth 2.0 สำหรับ Google API ในที่นี้จะไม่กล่าวถึงเกณฑ์การให้คะแนนเนื่องจาก API ยังอยู่ในช่วงแสดงตัวอย่าง

กำหนดค่าตัวอย่าง

ติดตั้งไลบรารีของไคลเอ็นต์ Google สำหรับ Python ในไดเรกทอรีที่ใช้งานอยู่ ดังนี้

pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib

สร้างไฟล์ชื่อ main.py ที่สร้างไลบรารีของไคลเอ็นต์และให้สิทธิ์ โดยใช้คีย์ API ของคุณแทน YOUR_API_KEY:

import json
import os.path

from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError

# If modifying these scopes, delete the file token.json.
SCOPES = ['https://www.googleapis.com/auth/classroom.courses',
          'https://www.googleapis.com/auth/classroom.coursework.students']

def build_authenticated_service(api_key):
    """Builds the Classroom service."""
    creds = None
    # The file token.json stores the user's access and refresh tokens, and is
    # created automatically when the authorization flow completes for the first
    # time.
    if os.path.exists('token.json'):
        creds = Credentials.from_authorized_user_file('token.json', SCOPES)
    # If there are no (valid) credentials available, let the user log in.
    if not creds or not creds.valid:
        if creds and creds.expired and creds.refresh_token:
            creds.refresh(Request())
        else:
            flow = InstalledAppFlow.from_client_secrets_file(
                'credentials.json', SCOPES)
            creds = flow.run_local_server(port=0)
        # Save the credentials for the next run.
        with open('token.json', 'w') as token:
            token.write(creds.to_json())

    try:
        # Build the Classroom service.
        service = build(
            serviceName="classroom",
            version="v1",
            credentials=creds,
            discoveryServiceUrl=f"https://classroom.googleapis.com/$discovery/rest?labels=DEVELOPER_PREVIEW&key={api_key}")

        return service

    except HttpError as error:
        print('An error occurred: %s' % error)

if __name__ == '__main__':
    service = build_authenticated_service(YOUR_API_KEY)

เรียกใช้สคริปต์โดยใช้ python main.py คุณควรได้รับแจ้งให้ลงชื่อเข้าใช้ ความยินยอมสำหรับขอบเขต OAuth

สร้างงาน

เกณฑ์การให้คะแนนจะเชื่อมโยงกับงาน หรือ CourseWork และ มีความหมายในบริบทของ CourseWork นั้น เกณฑ์การให้คะแนนจะทำได้โดย โปรเจ็กต์ Google Cloud ที่สร้างรายการ CourseWork ระดับบนสุด สำหรับวัตถุประสงค์ ของคู่มือนี้ ให้สร้างงาน CourseWork ใหม่ด้วยสคริปต์

เพิ่มข้อมูลต่อไปนี้ใน main.py:

def get_latest_course(service):
    """Retrieves the last created course."""
    try:
        response = service.courses().list(pageSize=1).execute()
        courses = response.get("courses", [])
        if not courses:
            print("No courses found. Did you remember to create one in the UI?")
            return
        course = courses[0]
        return course

    except HttpError as error:
        print(f"An error occurred: {error}")
        return error

def create_coursework(service, course_id):
    """Creates and returns a sample coursework."""
    try:
        coursework = {
            "title": "Romeo and Juliet analysis.",
            "description": """Write a paper arguing that Romeo and Juliet were
                                time travelers from the future.""",
            "workType": "ASSIGNMENT",
            "state": "PUBLISHED",
        }
        coursework = service.courses().courseWork().create(
            courseId=course_id, body=coursework).execute()
        return coursework

    except HttpError as error:
        print(f"An error occurred: {error}")
        return error

อัปเดต main.py เพื่อเรียกดู course_id ของชั้นเรียนการทดสอบที่คุณเพิ่งทำ สร้าง สร้างงานตัวอย่างใหม่ และเรียกข้อมูล coursework_id:

if __name__ == '__main__':
    service = build_authenticated_service(YOUR_API_KEY)

    course = get_latest_course(service)
    course_id = course.get("id")
    course_name = course.get("name")
    print(f"'{course_name}' course ID: {course_id}")

    coursework = create_coursework(service, course_id)
    coursework_id = coursework.get("id")
    print(f"Assignment created with ID {coursework_id}")

    #TODO(developer): Save the printed course and coursework IDs.

บันทึกcourse_idและcoursework_id รายการเหล่านี้จำเป็นสำหรับ CRUD ของเกณฑ์การให้คะแนนทั้งหมด การดำเนินงาน

ตอนนี้คุณควรมีตัวอย่าง CourseWork ใน Classroom แล้ว

มุมมองของงานใน UI ของ Classroom รูปที่ 2 มุมมองของงานตัวอย่างใน Classroom

สร้างเกณฑ์การให้คะแนน

ตอนนี้คุณพร้อมเริ่มจัดการเกณฑ์การให้คะแนนแล้ว

คุณสามารถสร้างเกณฑ์การให้คะแนนใน CourseWork ที่มีการเรียก Create ที่มีฟังก์ชัน ออบเจ็กต์เกณฑ์การให้คะแนนแบบเต็มที่ละเว้นพร็อพเพอร์ตี้รหัสสำหรับเกณฑ์และระดับ (สร้างขึ้นจากการสร้าง)

เพิ่มฟังก์ชันต่อไปนี้ใน main.py:

def create_rubric(service, course_id, coursework_id):
    """Creates an example rubric on a coursework."""
    try:
        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},
                    ]
                },
                {
                    "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},
                    ]
                },
                {
                    "title": "Grammar",
                    "description": "How grammatically correct your sentences are.",
                    "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},
                    ]
                },
            ]
        }

        rubric = service.courses().courseWork().rubrics().create(
            courseId=course_id, courseWorkId=coursework_id, body=body,
            # Specify the preview version. Rubrics CRUD capabilities are
            # supported in V1_20231110_PREVIEW and later.
            previewVersion="V1_20231110_PREVIEW"
            ).execute()
        print(f"Rubric created with ID {rubric.get('id')}")
        return rubric

    except HttpError as error:
        print(f"An error occurred: {error}")
        return error

จากนั้นอัปเดตและเรียกใช้ main.py เพื่อสร้างเกณฑ์การให้คะแนนตัวอย่างโดยใช้ Course และ CourseWork รหัสจากก่อนหน้านี้:

if __name__ == '__main__':
    service = build_authenticated_service(YOUR_API_KEY)

    rubric = create_rubric(service, YOUR_COURSE_ID, YOUR_COURSEWORK_ID)
    print(json.dumps(rubric, indent=4))

ประเด็นบางส่วนเกี่ยวกับการเขียนตามเกณฑ์การให้คะแนนมีดังนี้

  • เกณฑ์และลำดับระดับจะแสดงใน UI ของ Classroom
  • ระดับที่มีคะแนน (ระดับที่มีพร็อพเพอร์ตี้ points) ต้องจัดเรียงตามคะแนน โดยเรียงลำดับจากน้อยไปมากหรือมากไปน้อย (ไม่สามารถเรียงลำดับแบบสุ่มได้)
  • ครูสามารถจัดเรียงเกณฑ์และระดับคะแนนใหม่ (แต่ไม่มีคะแนน) หลายระดับ) ใน UI ซึ่งทำให้ลำดับใน UI เปลี่ยนไป

ดูข้อจำกัดสำหรับข้อควรระวังเพิ่มเติมเกี่ยวกับโครงสร้างเกณฑ์การให้คะแนน

เมื่อกลับไปที่ UI คุณจะเห็นเกณฑ์การให้คะแนนในงาน

มุมมองเกณฑ์การให้คะแนนใน UI ของ Classroom รูปที่ 3 ภาพตัวอย่างเกณฑ์การให้คะแนนงานใน Classroom

อ่านเกณฑ์การให้คะแนน

อ่านเกณฑ์การให้คะแนนได้ด้วยเมธอด List และ Get มาตรฐาน

งานหนึ่งมีเกณฑ์การให้คะแนนได้สูงสุด 1 รายการ ดังนั้น List จึงอาจดูเหมือน อาจใช้งานไม่ได้ แต่จะมีประโยชน์ในกรณีที่คุณยังไม่มีรหัสเกณฑ์การให้คะแนน หากมี ไม่มีเกณฑ์การให้คะแนนที่เชื่อมโยงกับ CourseWork คำตอบ List ว่างเปล่า

เพิ่มฟังก์ชันต่อไปนี้ใน main.py:

def get_rubric(service, course_id, coursework_id):
    """
    Get the rubric on a coursework. There can only be at most one.
    Returns null if there is no rubric.
    """
    try:
        response = service.courses().courseWork().rubrics().list(
            courseId=course_id, courseWorkId=coursework_id,
            # Specify the preview version. Rubrics CRUD capabilities are
            # supported in V1_20231110_PREVIEW and later.
            previewVersion="V1_20231110_PREVIEW"
            ).execute()

        rubrics = response.get("rubrics", [])
        if not rubrics:
            print("No rubric found for this assignment.")
            return
        rubric = rubrics[0]
        return rubric

    except HttpError as error:
        print(f"An error occurred: {error}")
        return error

อัปเดตและเรียกใช้ main.py เพื่อดึงข้อมูลเกณฑ์การให้คะแนนที่เพิ่มไว้

if __name__ == '__main__':
    service = build_authenticated_service(YOUR_API_KEY)

    rubric = get_rubric(service, YOUR_COURSE_ID, YOUR_COURSEWORK_ID)
    print(json.dumps(rubric, indent=4))

    #TODO(developer): Save the printed rubric ID.

จดพร็อพเพอร์ตี้ id ไว้ในเกณฑ์การให้คะแนนสำหรับขั้นตอนถัดไป

Get จะทำงานได้ดีเมื่อคุณมีรหัสเกณฑ์การให้คะแนน กำลังใช้ Get ในฟังก์ชัน ซึ่งอาจมีลักษณะดังนี้

def get_rubric(service, course_id, coursework_id, rubric_id):
    """
    Get the rubric on a coursework. There can only be at most one.
    Returns a 404 if there is no rubric.
    """
    try:
        rubric = service.courses().courseWork().rubrics().get(
            courseId=course_id,
            courseWorkId=coursework_id,
            id=rubric_id,
            # Specify the preview version. Rubrics CRUD capabilities are
            # supported in V1_20231110_PREVIEW and later.
            previewVersion="V1_20231110_PREVIEW"
        ).execute()

        return rubric

    except HttpError as error:
        print(f"An error occurred: {error}")
        return error

การติดตั้งใช้งานนี้จะแสดง 404 หากไม่มีเกณฑ์การให้คะแนน

อัปเดตเกณฑ์การให้คะแนน

อัปเดตเกณฑ์การให้คะแนนได้ Patch ครั้ง เนื่องจากโครงสร้างซับซ้อน ของเกณฑ์การให้คะแนน การอัปเดตจะต้องกระทำในรูปแบบ Read-modify-write โดยที่ แทนที่พร็อพเพอร์ตี้ criteria ทั้งหมด

กฎการอัปเดตมีดังนี้

  1. ระบบจะพิจารณาเกณฑ์หรือระดับที่เพิ่มโดยไม่มีรหัส การเพิ่มต่างๆ
  2. เกณฑ์หรือระดับที่ขาดหายไปจากก่อนหน้านี้จะได้รับการพิจารณา การลบ
  3. ระบบจะพิจารณาเกณฑ์หรือระดับที่มีรหัสอยู่แล้วแต่มีข้อมูลที่แก้ไขแล้ว การแก้ไข และปล่อยพร็อพเพอร์ตี้ที่ไม่มีการแก้ไขไว้ตามเดิม
  4. ระบบจะพิจารณาเกณฑ์หรือระดับที่มีรหัสใหม่หรือรหัสที่ไม่รู้จัก ข้อผิดพลาด
  5. ลำดับของเกณฑ์และระดับใหม่จะถือว่าเป็นลำดับ UI ใหม่ (ที่มีข้อจำกัดที่ได้กล่าวไปแล้ว)

เพิ่มฟังก์ชันสำหรับการอัปเดตเกณฑ์การให้คะแนน

def update_rubric(service, course_id, coursework_id, rubric_id, body):
    """
    Updates the rubric on a coursework.
    """
    try:
        rubric = service.courses().courseWork().rubrics().patch(
            courseId=course_id,
            courseWorkId=coursework_id,
            id=rubric_id,
            body=body,
            updateMask='criteria',
            # Specify the preview version. Rubrics CRUD capabilities are
            # supported in V1_20231110_PREVIEW and later.
            previewVersion="V1_20231110_PREVIEW"
        ).execute()

        return rubric

    except HttpError as error:
        print(f"An error occurred: {error}")
        return error

ในตัวอย่างนี้ มีการระบุช่อง criteria เพื่อแก้ไขด้วย updateMask

จากนั้นแก้ไข main.py เพื่อทำการเปลี่ยนแปลงสำหรับการอัปเดตแต่ละรายการที่กล่าวถึงข้างต้น กฎ:

if __name__ == '__main__':
    service = build_authenticated_service(YOUR_API_KEY)

    # Get the latest rubric.
    rubric = get_rubric(service, YOUR_COURSE_ID, YOUR_COURSEWORK_ID)
    criteria = rubric.get("criteria")
    """
    The "criteria" property should look like this:
    [
        {
            "id": "NkEyMdMyMzM2Nxkw",
            "title": "Argument",
            "description": "How well structured your argument is.",
            "levels": [
                {
                    "id": "NkEyMdMyMzM2Nxkx",
                    "title": "Convincing",
                    "description": "A compelling case is made.",
                    "points": 30
                },
                {
                    "id": "NkEyMdMyMzM2Nxky",
                    "title": "Passable",
                    "description": "Missing some evidence.",
                    "points": 20
                },
                {
                    "id": "NkEyMdMyMzM2Nxkz",
                    "title": "Needs Work",
                    "description": "Not enough strong evidence..",
                    "points": 0
                }
            ]
        },
        {
            "id": "NkEyMdMyMzM2Nxk0",
            "title": "Spelling",
            "description": "How well you spelled all the words.",
            "levels": [...]
        },
        {
            "id": "NkEyMdMyMzM2Nxk4",
            "title": "Grammar",
            "description": "How grammatically correct your sentences are.",
            "levels": [...]
        }
    ]
    """

    # Make edits. This example will make one of each type of change.

    # Add a new level to the first criteria. Levels must remain sorted by
    # points.
    new_level = {
        "title": "Profound",
        "description": "Truly unique insight.",
        "points": 50
    }
    criteria[0]["levels"].insert(0, new_level)

    # Remove the last criteria.
    del criteria[-1]

    # Update the criteria titles with numeric prefixes.
    for index, criterion in enumerate(criteria):
        criterion["title"] = f"{index}: {criterion['title']}"

    # Resort the levels from descending to ascending points.
    for criterion in criteria:
        criterion["levels"].sort(key=lambda level: level["points"])

    # Update the rubric with a patch call.
    new_rubric = update_rubric(
        service, YOUR_COURSE_ID, YOUR_COURSEWORK_ID, YOUR_RUBRIC_ID, rubric)

    print(json.dumps(new_rubric, indent=4))

การเปลี่ยนแปลงควรแสดงให้เห็นในครูใน Classroom ด้วย

มุมมองเกณฑ์การให้คะแนนที่อัปเดตใน UI ของ Classroom รูปที่ 4 มุมมองของเกณฑ์การให้คะแนนที่อัปเดตแล้ว

ดูงานที่ส่งซึ่งให้คะแนนด้วยเกณฑ์การให้คะแนน

สำหรับตอนนี้ งานที่นักเรียนส่งจะให้คะแนนด้วยเกณฑ์การให้คะแนนโดย API ไม่ได้ แต่คุณจะ สามารถอ่านคะแนนตามเกณฑ์การให้คะแนนสำหรับงานที่ส่งที่ได้รับการให้คะแนนด้วยเกณฑ์การให้คะแนนใน UI ของ Classroom

ในฐานะนักเรียนใน UI ของ Classroom ให้ทำและส่งงานตัวอย่าง จากนั้นในฐานะครู ให้ให้คะแนนงานโดยใช้เกณฑ์การให้คะแนนด้วยตนเอง

มุมมองเกรดตามเกณฑ์การให้คะแนนใน UI ของ Classroom รูปที่ 5 มุมมองของครูเกี่ยวกับเกณฑ์การให้คะแนนในระหว่างการให้คะแนน

งานที่นักเรียนส่งซึ่งให้คะแนนด้วยเกณฑ์การให้คะแนนจะมี 2 รายการใหม่ พร็อพเพอร์ตี้: draftRubricGrades และ assignedRubricGrades ซึ่งแสดง คะแนนและระดับที่ครูเลือกในระหว่างแบบร่างและการให้คะแนนที่มอบหมาย รัฐ ตามลำดับ

นอกจากนี้ งานที่นักเรียนส่งซึ่งมีเกณฑ์การให้คะแนนที่เกี่ยวข้องจะมี rubricId แม้ว่าจะยังไม่ได้ให้คะแนนก็ตาม ส่วนนี้แสดงเกณฑ์การให้คะแนนล่าสุดที่เชื่อมโยงกับ CourseWork และค่านี้อาจเปลี่ยนแปลงหากครูลบและสร้าง เกณฑ์การให้คะแนน

คุณสามารถใช้studentSubmissions.Getที่มีอยู่และ วิธีดูงานที่มีการให้คะแนนแล้ว studentSubmissions.List รายการ

เพิ่มฟังก์ชันต่อไปนี้ลงใน main.py เพื่อแสดงรายการงานที่นักเรียนส่ง

def get_latest_submission(service, course_id, coursework_id):
    """Retrieves the last submission for an assignment."""
    try:
        response = service.courses().courseWork().studentSubmissions().list(
            courseId = course_id,
            courseWorkId = coursework_id,
            pageSize=1,
            # Specify the preview version. Rubrics CRUD capabilities are
            # supported in V1_20231110_PREVIEW and later.
            previewVersion="V1_20231110_PREVIEW"
        ).execute()
        submissions = response.get("studentSubmissions", [])
        if not submissions:
            print(
                """No submissions found. Did you remember to turn in and grade
                   the assignment in the UI?""")
            return
        submission = submissions[0]
        return submission

    except HttpError as error:
        print(f"An error occurred: {error}")
        return error

จากนั้นอัปเดตและเรียกใช้ main.py เพื่อดูคะแนนการส่ง

if __name__ == '__main__':
    service = build_authenticated_service(YOUR_API_KEY)

    submission = get_latest_submission(
        service, YOUR_COURSE_ID, YOUR_COURSEWORK_ID)
    print(json.dumps(submission, indent=4))

draftRubricGrades และ assignedRubricGrades ประกอบด้วย:

  • criterionId ของเกณฑ์เกณฑ์การให้คะแนนที่เกี่ยวข้อง
  • points ที่ครูมอบหมายสำหรับเกณฑ์แต่ละรายการ ซึ่งอาจเกิดจาก ระดับที่เลือก แต่ครูอาจเขียนทับข้อความนี้ได้
  • levelId ของระดับที่เลือกสำหรับเกณฑ์แต่ละรายการ ถ้าครูไม่ กำหนดระดับได้ แต่ยังคงได้รับคะแนนสำหรับเกณฑ์ ฟิลด์นี้ ไม่มีอยู่

รายการเหล่านี้มีเฉพาะรายการสำหรับเกณฑ์ที่ครูอาจดำเนินการอย่างใดอย่างหนึ่ง เลือกระดับหรือกำหนดคะแนน เช่น หากครูเลือกที่จะให้เฉพาะ โต้ตอบกับเกณฑ์ 1 ข้อในระหว่างการให้คะแนน, draftRubricGrades และ assignedRubricGrades จะมีได้เพียง 1 รายการเท่านั้น แม้ว่าเกณฑ์การให้คะแนนจะมีหลายรายการ เกณฑ์

ลบเกณฑ์การให้คะแนน

คุณลบเกณฑ์การให้คะแนนได้ด้วยคำขอ Delete มาตรฐาน รหัสต่อไปนี้ จะแสดงตัวอย่างฟังก์ชันความสมบูรณ์ แต่เนื่องจากการให้คะแนน เริ่มต้น คุณจะลบเกณฑ์การให้คะแนนปัจจุบันไม่ได้

def delete_rubric(service, course_id, coursework_id, rubric_id):
    """Deletes the rubric on a coursework."""
    try:
        service.courses().courseWork().rubrics().delete(
            courseId=course_id,
            courseWorkId=coursework_id,
            id=rubric_id,
            # Specify the preview version. Rubrics CRUD capabilities are
            # supported in V1_20231110_PREVIEW and later.
            previewVersion="V1_20231110_PREVIEW"
        ).execute()

    except HttpError as error:
        print(f"An error occurred: {error}")
        return error

ส่งออกและนําเข้าเกณฑ์การให้คะแนน

คุณส่งออกเกณฑ์การให้คะแนนไปยัง Google ได้ด้วยตนเอง สเปรดชีตที่ครูสามารถนำมาใช้ซ้ำ

นอกจากการระบุเกณฑ์เกณฑ์การให้คะแนนในโค้ดแล้ว คุณยังสามารถสร้างและ อัปเดตเกณฑ์การให้คะแนนจากชีตที่ส่งออกเหล่านี้โดยระบุ sourceSpreadsheetId ในเนื้อหาเกณฑ์การให้คะแนนแทนที่จะเป็น criteria:

def create_rubric_from_sheet(service, course_id, coursework_id, sheet_id):
    """Creates an example rubric on a coursework."""
    try:
        body = {
            "sourceSpreadsheetId": sheet_id
        }

        rubric = service.courses().courseWork().rubrics().create(
            courseId=course_id, courseWorkId=coursework_id, body=body,
            # Specify the preview version. Rubrics CRUD capabilities are
            # supported in V1_20231110_PREVIEW and later.
            previewVersion="V1_20231110_PREVIEW"
            ).execute()

        print(f"Rubric created with ID {rubric.get('id')}")
        return rubric

    except HttpError as error:
        print(f"An error occurred: {error}")
        return error

ความคิดเห็น

หากพบปัญหาหรือมีความคิดเห็นใดๆ โปรดแชร์ความคิดเห็นของคุณ