Python
num_terms = 10
fibonacci = [0, 1]

while len(fibonacci) < num_terms:
  next_term = fibonacci[-1] + fibonacci[-2]
  fibonacci.append(next_term)
  
print(fibonacci)
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
import csv

class Student:
    def __init__(self, student_id, name):
        self.student_id = student_id
        self.name = name
        self.assessments = {}

    def add_grade(self, assessment_name, grade):
        self.assessments[assessment_name] = grade

    def calculate_average(self):
        if self.assessments:
            return sum(self.assessments.values()) / len(self.assessments)
        return 0

class Classroom:
    def __init__(self):
        self.students = {}

    def add_student(self, student_id, name):
        if student_id not in self.students:
            self.students[student_id] = Student(student_id, name)

    def add_assessment(self, student_id, assessment_name, grade):
        if student_id in self.students:
            self.students[student_id].add_grade(assessment_name, grade)

    def generate_report(self):
        with open('student_report.csv', mode='w', newline='') as file:
            writer = csv.writer(file)
            writer.writerow(["Student ID", "Name", "Assessment", "Grade", "Average"])
            for student_id, student in self.students.items():
                for assessment, grade in student.assessments.items():
                    writer.writerow([student_id, student.name, assessment, grade, student.calculate_average()])

# Example usage
classroom = Classroom()
classroom.add_student("1", "Alice")
classroom.add_student("2", "Bob")

classroom.add_assessment("1", "Math Test", 85)
classroom.add_assessment("1", "Science Test", 90)
classroom.add_assessment("2", "Math Test", 78)

classroom.generate_report()

Python
import csv

class Student:
    def __init__(self, student_id, name):
        self.student_id = student_id
        self.name = name
        self.assessments = {}

    def add_grade(self, assessment_name, grade):
        self.assessments[assessment_name] = grade

    def calculate_average(self):
        if self.assessments:
            return sum(self.assessments.values()) / len(self.assessments)
        return 0

class Classroom:
    def __init__(self):
        self.students = {}

    def add_student(self, student_id, name):
        if student_id not in self.students:
            self.students[student_id] = Student(student_id, name)

    def add_assessment(self, student_id, assessment_name, grade):
        if student_id in self.students:
            self.students[student_id].add_grade(assessment_name, grade)

    def generate_report(self):
        with open('student_report.csv', mode='w', newline='') as file:
            writer = csv.writer(file)
            writer.writerow(["Student ID", "Name", "Assessment", "Grade", "Average"])
            for student_id, student in self.students.items():
                for assessment, grade in student.assessments.items():
                    writer.writerow([student_id, student.name, assessment, grade, student.calculate_average()])

# Example usage
classroom = Classroom()
classroom.add_student("1", "Alice")
classroom.add_student("2", "Bob")

classroom.add_assessment("1", "Math Test", 85)
classroom.add_assessment("1", "Science Test", 90)
classroom.add_assessment("2", "Math Test", 78)

classroom.generate_report()