This feature provides a tool to generate course syllabi based on input data provided in JSON format. The system allows users to specify various course-related details and outputs a structured syllabus.
Features
Input JSON: Define course details including subject, grade level, course description, objectives, materials, grading policy, and more.
Automated Syllabus Generation: Creates a detailed syllabus based on the provided data.
class CourseInformation(BaseModel):
course_title: str = Field(description="The course title")
grade_level: str = Field(description="The grade level")
description: str = Field(description="The course description")
class InstructorInformation(BaseModel):
name: str = Field(description="The instructor name")
title: str = Field(description="The instructor title")
description_title: str = Field(description="The description of the instructor title")
class CourseDescriptionObjectives(BaseModel):
objectives: List[str] = Field(description="The course objectives")
intended_learning_outcomes: List[str] = Field(description="The intended learning outcomes of the course")
class CourseContentItem(BaseModel):
unit_time: str = Field(description="The unit of time for the course content")
unit_time_value: int = Field(description="The unit of time value for the course content")
topic: str = Field(description="The topic per unit of time for the course content")
class PoliciesProcedures(BaseModel):
attendance_policy: str = Field(description="The attendance policy of the class")
late_submission_policy: str = Field(description="The late submission policy of the class")
academic_honesty: str = Field(description="The academic honesty policy of the class")
class AssessmentMethod(BaseModel):
type_assessment: str = Field(description="The type of assessment")
weight: int = Field(description="The weight of the assessment in the final grade")
class AssessmentGradingCriteria(BaseModel):
assessment_methods: List[AssessmentMethod] = Field(description="The assessment methods")
grading_scale: Dict[str, str] = Field(description="The grading scale")
class LearningResource(BaseModel):
title: str = Field(description="The title of the learning resource")
author: str = Field(description="The author of the learning resource")
year: int = Field(description="The year of creation of the learning resource")
class CourseScheduleItem(BaseModel):
unit_time: str = Field(description="The unit of time for the course schedule item")
unit_time_value: int = Field(description="The unit of time value for the course schedule item")
date: str = Field(description="The date for the course schedule item")
topic: str = Field(description="The topic for the course schedule item")
activity_desc: str = Field(description="The description of the activity for the course schedule item")
class SyllabusSchema(BaseModel):
course_information: CourseInformation = Field(description="The course information")
instructor_information: InstructorInformation = Field(description="The instructor information")
course_description_objectives: CourseDescriptionObjectives = Field(description="The objectives of the course")
course_content: List[CourseContentItem] = Field(description="The content of the course")
policies_procedures: PoliciesProcedures = Field(description="The policies and procedures of the course")
assessment_grading_criteria: AssessmentGradingCriteria = Field(description="The assessment and grading criteria of the course")
learning_resources: List[LearningResource] = Field(description="The learning resources of the course")
course_schedule: List[CourseScheduleItem] = Field(description="The course schedule")
Example
{
"data": {
"course_name": "Introduction to Algebra",
"grade_level": "High School",
"subject": "Mathematics",
"course_description": "An introductory course on algebra and geometry.",
"course_objectives": [
"To teach students the fundamentals of algebra."
],
"required_materials": [
"Textbook",
"Calculator",
"Notebook"
],
"grading_policy": {
"Exams": 0.5,
"Homework": 0.3,
"Participation": 0.2
},
"course_outline": [
{
"week": "1-2",
"topics": "Algebra basics"
},
{
"week": "3-4",
"topics": "Geometry"
}
],
"class_policies": [
"No late submissions",
"Attendance required"
],
"instructor": {
"name": "Dr. John Doe",
"title": "Professor",
"contact": "johndoe@example.com",
"instructor_contact": "johndo@example.com"
}
}
}
File Structure
core.py: Contains the core logic for processing the input and generating the syllabus.
tools.py: Contains helper functions and utilities for the project as well as the default input prompt to the LLM which the user can change.
metadata.json: Defines the input structure and metadata for the syllabus generation tool.
Syllabus Generator
This feature provides a tool to generate course syllabi based on input data provided in JSON format. The system allows users to specify various course-related details and outputs a structured syllabus.
Features
Request Interface
Schema
Example
To generate a syllabus, provide an input JSON file with the necessary course information. The expected JSON structure is as follows:
Response Interface
Schema
Example
File Structure