Introducing SudoTutor: A Customizable Tutoring Platform for Any Topic, Using AI.

Lem Canady
4 min readApr 20, 2023

--

Photo by Desola Lanre-Ologun on Unsplash

Education is rapidly evolving, and technology is increasingly important in shaping how we learn. One emerging trend is the development of custom tutoring platforms that cater to a wide range of subjects, from programming languages to history. In this article, we introduce you to SudoTutor, a versatile tutoring platform that can be customized to teach any topic. We will walk you through creating a tutoring session using SudoTutor’s unique language and discuss its components, including Students, Questions, Topics, and Lessons.

Getting Started with SudoTutor

SudoTutor uses a programming language called ‘sudolang’ to create interactive and engaging learning experiences with Large Language Models, or LLMs. The code is organized into students, Questions, Topics, Lessons, and Syllabus. Let’s look at these components and their role in the tutoring process.

Students

The Student component represents a learner in a tutoring session. It stores information such as their name and study topics. Additionally, it keeps track of the student’s correct answers throughout the session. Here’s an example of a Student component:

Student {
name;
studyTopics = [];
correct = 0;
}

Questions

The Question component creates and stores questions that will be asked during the tutoring session. Each question has a topic, an answer, and a follow-up question for when the student’s answer is incorrect. Below is an example of a Question component:

Question {
question;
answer;
correct;
followUp: Question;
topic;
}

Topics

The Topic component defines a subject area that the student wishes to learn. It contains a name, description, and a list of Lessons associated with that topic. Here’s an example of a Topic component:

Topic {
name;
description;
Why;
lessons = [];

for (i = 0; i < 5; i++) {
this.lessons.push( new Lesson(topic = this.name))
}
}

Lessons

The Lesson component represents a specific learning resource within a topic. Each lesson has a title and difficulty level. Here’s an example of a Lesson component:

Lesson {
topic;
title;
difficulty;
}

Syllabus

The Syllabus component is responsible for organizing the Topics that the student wishes to study. It is dynamically generated based on the student’s chosen study topics. Here’s an example of a Syllabus component:

Syllabus {
topics;

for (topic in student.studyTopics) {
this.topics.push( new Topic(name = topic));
}
}

Creating a Tutoring Session

With the components defined, we can now create a tutoring session using SudoTutor. To start, we initialize a few variables and define three functions: greetStudent, askQuestion, and startTest.

  1. greetStudent: This function is responsible for welcoming the student and gathering their name and desired topics for the tutoring session.
  2. askQuestion: This function takes a student and a question as input and asks the student the question, waiting for their response.
  3. startTest: This function coordinates the tutoring session by greeting students, asking questions, and providing feedback on their progress.

Here’s an example of a complete tutoring session:

step = 0;
questions = [];

function greetStudent(student) {
greet student;
student.name = input("What can I call you?");
topic = input("What would you like to learn today?");
student.studyTopics.push(topic);
}

function askQuestion(student, question) {
instruct(populate Question);
ask question;
answer = input("What is your answer?");
}

function startTest() {
greetStudent(student = new Student);

while(step < 5) {
encourage student;
askQuestion(student, questions[step]);
if(answer == correct) {
step += 1;
} else {
encourage student;
askQuestion(student, questions[step].followUp);
student.topics.push(questions[step].topic);
step += 1;
}
}

input = prompt("Type 'syllabus' to see your suggested study topics.");

if (input == "Syllabus") {
output(syllabus):format=markdown;
}
}

run(startTest())

Bringing It All Together

SudoTutor offers a flexible and customizable tutoring experience that can be adapted to any subject. By defining Students, Questions, Topics, Lessons, and a Syllabus, we can create a dynamic and engaging learning environment for students of all levels. The example provided in this article demonstrates how to create a simple tutoring session, but SudoTutor’s capabilities are only limited by your imagination.

As a next step, you can experiment with adding more complex question types, incorporating multimedia resources, or even integrating SudoTutor with other educational platforms. With SudoTutor, the possibilities for creating unique and engaging learning experiences are endless.

Conclusion

In this article, we introduced SudoTutor, a powerful and versatile tutoring platform that can be customized to teach any topic. We discussed the various components that make up a SudoTutor session, including Students, Questions, Topics, and Lessons, and provided a complete example of a tutoring session using SudoTutor’s unique language. This introduction to SudoTutor inspires you to explore the many possibilities for creating engaging and interactive learning experiences for students of all ages and interests. Happy teaching!

--

--

Lem Canady

Illustrator, Designer & Web 3 Developer — I’m a creative of many different hats. Currently residing in the absolutely beautiful Pacific Northwest.