class Curriculum: def __init__(self, topic, chapters=None): self.topic = topic self.chapters = chapters if chapters else [] # List of Chapter objects def add_chapter(self, chapter): self.chapters.append(chapter) def print_curriculum(self): print(f"\nCurriculum for: {self.topic}\n" + "="*40) for i, chapter in enumerate(self.chapters, 1): print(f"\nChapter {i}: {chapter.name}") print("-" * (10 + len(chapter.name))) for j, module in enumerate(chapter.modules, 1): print(f" {i}.{j} {module.name}") if hasattr(module, 'learning_objective') and module.learning_objective: print(f" Learning Objective: {module.learning_objective}") def __repr__(self): return f"Curriculum(topic={self.topic}, chapters={self.chapters})" class Chapter: def __init__(self, name, modules=None): self.name = name self.modules = modules if modules else [] # List of Module objects def add_module(self, module): self.modules.append(module) def __repr__(self): return f"Chapter(name={self.name}, modules={self.modules})" class Module: def __init__(self, name, learning_objective=None, content=None): self.name = name self.learning_objective = learning_objective self.content = content def __repr__(self): return f"Module(name={self.name}, learning_objective={self.learning_objective})"