PrairieLearn empowers instructors to build content that helps their students achieve mastery.
DocumentationGet in touchPrairieLearn questions are defined as code, which is what makes them so powerful. The familiar HTML syntax and Mustache templates make it easy to get started writing questions. A broad variety of building blocks like number inputs and multiple choice responses come built-in, so you can hit the ground running.
<pl-question-panel><p>Suppose a ball is thrown from a level surface at a{{params.angle}}° angle with a velocity of{{params.velocity}}m/s. How far will the ball travel?</p></pl-question-panel><pl-integer-input answers-name="distance" suffix="m"><pl-integer-input>
Once you've defined an HTML template, generate parameters for your question with the power of Python and popular libraries like numpy and matplotlib. And questions grade themselves, from simple multiple-choice questions to free-body diagrams to code, so instructors can focus on the important things.
import math, randomdef generate(data):velocity = random.randint(100, 800) / 100angle = random.randint(2000, 8000) / 100distance = (math.sin(2 * math.radians(angle)) * velocity**2) / 9.8data["params"]["velocity"] = velocitydata["params"]["angle"] = angledata["answers"]["distance"] = distance
Once a question has been defined in code, it can be reused in any future assessment. And students can keep trying new variants of difficult problems until they've mastered the topic—no need for you to manually write new questions.
Suppose a ball is thrown from a level surface at a 54° angle with a velocity of 3.2 m/s. How far will the ball travel?
mFrom code autograding and in-browser IDEs to collaborative assignments and custom elements, PrairieLearn provides a powerful foundation for your assignments and assessments.
Instructors at top universities in the United States and Canada have been using PrairieLearn to teach the next generation of engineers, scientists, and businesspeople.
PrairieLearn began life as open-source software, and we're committed to making sure it stays that way. With an active developer community of professors, course staff, and students, PrairieLearn gets better all the time.
New to PrairieLearn? Check out the question gallery to see what's possible with PrairieLearn, or head over to the documentation to learn how to set up PrairieLearn on your computer and start creating content.
Looking for managed hosting, instructional workshops, and direct support? Want a personalized demo of all PrairieLearn has to offer? Reach out to us, and we'll get back to you with more details.
Get in touch