def METHOD_NAME(self, request: Request, course_id: str):
    """
    Update a course's advanced settings.
    **Example Request**
        PATCH /api/contentstore/v0/advanced_settings/{course_id} {
            "{setting_name}": {
                "value": {setting_value}
            }
        }
    **PATCH Parameters**
    The data sent for a patch request should follow a similar format as
    is returned by a ``GET`` request. Multiple settings can be updated in
    a single request, however only the ``value`` field can be updated
    any other fields, if included, will be ignored.
    Here is an example request that updates the ``advanced_modules``
    available for the course, and enables the calculator tool:
    ```json
    {
        "advanced_modules": {
            "value": [
                "poll",
                "survey",
                "drag-and-drop-v2",
                "lti_consumer"
            ]
        },
        "show_calculator": {
            "value": true
        }
    }
    ```
    **Response Values**
    If the request is successful, an HTTP 200 "OK" response is returned,
    along with all the course's settings similar to a ``GET`` request.
    """
    course_key = CourseKey.from_string(course_id)
    if not has_studio_write_access(request.user, course_key):
        self.permission_denied(request)
    course_block = modulestore().get_course(course_key)
    updated_data = update_course_advanced_settings(course_block, request.data, request.user)
    return Response(updated_data)