def METHOD_NAME(topic_id, instructor_name=None, fields=None):
    if fields is None:
        # Default fields (topline numbers on PCR)
        fields = [
            "course_quality",
            "difficulty",
            "instructor_quality",
        ]
    # We're using some of the aggregation tricks documented on Django's Aggregation Cheat Sheet:
    # https://docs.djangoproject.com/en/2.2/topics/db/aggregation/#cheat-sheet
    # Filter down a queryset to just include this course
    qs = Review.objects.filter(section__course__topic_id=topic_id, responses__gt=0)
    if (
        instructor_name is not None
    ):  # if an instructor is specified, filter down to just that instructor
        qs = qs.filter(instructor_name__contains=instructor_name)
    # pass each aggregation as its own argument to `aggregate` (using dictionary comprehensions)
    return qs.aggregate(
        **{
            # average the average of all the reviewbits of a certain field
            # (that's where the filter comes in)
            field: Avg("reviewbit__average", filter=Q(reviewbit__field=field))
            for field in fields
        }
    )