Fall Semester Updates

The fall semester is well underway, and I hope your classes are off to a great start! Back in August I said we were going to slow down and focus on polish and squashing bugs. We did a lot of that, and somehow we also managed to ship a few new things. About a dozen contributors have made more than 250 commits since the end of the summer. Here is a tour of the highlights.

For Instructors

The gradebook and grader got a lot of attention. The gradebook is now part of the same React app as the grader, so moving between them feels seamless. Students with late work are highlighted in the grader, so you can find them without hunting. The manual grading view does a better job of displaying questions, and it has a new filter and toolbar so you can get to the work that still needs a grade. You can also see a student’s work on a selectquestion, the grader remembers your page and how many rows per page you like, and the gradebook CSV export has the username column back. Rows are now labeled “Last, First” so the sort order makes sense.

Grading got more trustworthy. A few of these were bugs that could really bite you:

  • The autograder will no longer overwrite a grade you entered by hand.
  • Autograded scores are capped at the points the question is worth in the assignment. Before, a score earned somewhere the question was worth more could carry over. Grades you enter by hand are left alone, so extra credit still works.
  • Deadline exceptions you give for “all assignments” now apply when you grade a single assignment.
  • The accommodation form no longer loses extra days or time limits.
  • Readings can now be scored when you regrade.

LMS integration (LTI) now pushes grades to your LMS when you release an assignment. If your LMS somehow gets out of sync you can now force a repush of grades even when they haven’t changed. Grades you have not released yet stay private while you recompute.

Assignments have bulk edit actions on the assignment list, so you can change a bunch of assignments at once. The assignment builder shows chapter and subchapter numbers, and sorts exercises more sensibly when you add them while browsing the book. Assignment links will also no longer open in the wrong course if you teach more than one.

Peer instruction had a round of fixes, especially for async peer instruction. Visible/hidden dates are honored, the first vote stays visible after students vote a second time, and the chat no longer gets stuck trying to reconnect after a session expires.

A new question editor. You can now edit questions through a structured editing view, and the rendered question stays in sync as you make changes.

Visualizations (new!) We are starting a new set of instructor reports under /dash/. The first two show, for each question on a page of the book, how many students got it right on the first try, got it right after retrying, never got it right, or never tried it, along with an assignment progress view. This is the start of what I talked about in the spring: helping you see where your students are struggling. I would love to hear what you think, and what you would like to see next.

For Students

Accessibility was the biggest area of work this fall. We worked toward the WCAG AA standard on all of our pages, fixing color contrast, focus indicators, and page structure. Then we went through the interactive components one by one: drag and drop, matching, multiple choice, Parsons problems (both kinds), clickable areas, fill in the blank, short answer, and activecode. Each one works better with a keyboard and a screen reader now. Math is read aloud properly, feedback is announced, and keyboard hints show up where you need them. Our VPAT has been updated to reflect all of this work.

Some smaller student-facing changes:

  • Students get a friendly warning if they are in the book before the term starts, and the progress box at the bottom of each page has been rewritten.
  • Your course name appears in the user menu, so it’s easy to tell which course you are in.
  • If a student types a course name when registering, that wins over a book they also picked, so they land in the right course.
  • Icons that were showing up as words (like “menu”) are fixed.
  • CodeTailor’s personalized Parsons problems handle indentation, comparison operators, and cloned courses correctly.

Under the Hood

Speed. Early in the semester we had some slowdowns when lots of people were using Runestone at once. We fixed how the servers share database connections, and we sped up the assignment pages, the assessment results, and instructor pages. Things should feel snappier, especially at the start of class when everyone logs in at once.

Security. We did a security review of our servers and fixed several issues. We also strengthened password requirements.

Problem reports now include your email, and if you have a GitHub account you can file the report as yourself. Please keep sending them! The information they collect from your browser makes bugs much easier to track down.

Thank You

Thanks again to everyone who contributed code, reported bugs, and tested new features this fall. A special thanks to the folks who worked on accessibility. That work makes Runestone better for every student. As always, if something isn’t working, use the Problem Report option in the user menu and let us know.

A Big Summer of Changes

Its been a huge summer of changes, probably our biggest in many years, maybe even ever! Some stats for you: With 21 contributors we have added 118,654 lines of code, and delted 83,551. That is not counting about 300,000 lines of code related to removing web2py, jquery, and bootstrap from the code base. We have added Nine new text books!

Some Highlights

  • New registration and login flow
  • New grading page to complement the assignment builder
  • New grade book page
  • A new Assignment summary report
  • Student assignment pages flow with the book better
  • Real Time grading improvements for LTI 1.1 and 1.3
  • Accessibility improvements throughout the site
  • Integration with Study Clues - a smart tutor available 24x7 (available for a limited number of courses)

New Textbooks

  • Active Prelude to Calculus
  • Introduction to AI and Robotics
  • Calculus and Analytic Geometry IV
  • Active Calculus with Doenet
  • Applied Precalculus
  • Introduction to Engineering
  • Game Programming with GDScript
  • AI for All
  • Python Programming: Interactivity and Ethics
  • Java for Python programmers has been significantly revised
  • Python for Everyone has been significantly revised and ported to PreTeXt

What we Left Behind

  • The old web2py server
  • The Practice Feature
  • The old student progress dashboard

Thanks to the entire community for all the work!

Done with the big Changes for a while

The school year int he northern hemisphere will be starting again before we know it! So its a good time to celebrate our summer wins, and slow down the changes and focus on polish and squashing bugs!

I’m happy to say that after 15 years of working on Runestone we are now independent of our original web framework called web2py! The web2py codebase has served us well, but it was also a bit of an anchor around our ankle. From an instructors perspective everything is new. Everything is hopefully a bit faster, and it is certainly easier to maintain the code we have now. We have learned a lot about web development in this time!

The gradebook has been improved. You can now click on a score and get the student details. The assignment builder and grading interface have all had another great update.

Authentication should be better than ever, since we don’t have the web2py server around anymore we have a single authentication system and token.

Students will see some really nice improvments as well. The course home page and the assignment pages now look like they are part of the textbook. Input for Python programs got a lot better, and a long standing bug for mixing input and output was squashed! We have made a bunch of accessibility updates to the interactive widgets so we are better than ever in the a11y department.

We left a few things behind

With progress sometimes you realize that there are things that you have added that are not used very much, or are out of date. For us those things are:

  • The practice feature. Although quite effective at improving grades people still didn’t use it. (MOST people) I know there will be a few of you that are dissappointed. We are looking at new opportunities to replace this.

  • The student progress dashboard with the donut charts is gone. There is a new assignment summary report that replaces this along with the chapter progress reports. We will look for new ways to help instructors understand where their students are struggling.

  • Books built with the old restructuredText authoring system are deprecated. Most of our popular books have been moved to PreTeXt! Please please use the new PreTeXt books. Here’s a quick guide for a few of the most widely used books. You can see others in the library.

    • csawesome -> csawesome2
    • thinkcspy -> httlacs
    • py4e-int -> py4eint
    • pythonds -> pswadsup
    • fopp -> foppff

We’ll be removing access to the old books probably over winter break.

We need your help

Now, with all of these changes, we need your help to make sure everything is tip top so we can make a good impression on all the new students. Please test and experiment with the new features. If you find that something is broken please report the bug. If you have a github account it would be great to use that. But if you don’t Please use the Problem Report menu option from the user menu. Most of the bugs in Runestone need information from the browser and this new problem report form, includes all of that information, so even if you do have a github account it would be great if you selected that menu and then copied and pasted the info into the issue.

First Time Contributors Accelerate Progress

I hope your summer is off to a good start! June has been a busy month with changes big and small. I’m thrilled so say that we have five first time contributors to the project this month. Not to mention significant contributions from returning contributors as well. I’ve been taking advantage of the quieter days to do a lot of behind-the-scenes work – some of it the kind of cleanup that has been on my list for a very long time. Most of it falls into three buckets: tightening up security, modernizing the plumbing that runs both runestone.academy and the self-hosted installations, and continuing to retire the old code. I could not have done it without the help of the community and my trusty sidekick Claude. Here are the highlights from the last couple of weeks:

  • Security fixes across the book, assignment, and admin servers
  • More progress retiring the original 2011 web framework – the old Peer Instruction pages and most of the old instructor admin pages are gone
  • A switch to uv for all of our Python services, which makes installs and builds much faster
  • Caddy as an option for serving Runestone with automatic HTTPS
  • A new user menu and a consistent set of icons across the interface
  • A/B testing and a new reflection step for Peer Instruction
  • A lighter-weight translation system for the interactive components

A word about security

We completed a focused security pass across the servers and fixed a handful of issues – among them a server-side request forgery hole in the image proxy, a peer-chat channel that did not require an authenticated user, and several instructor actions that did not check that you actually owned the course you were acting on. None of these require anything from you other than running a current release, but I wanted to be transparent that the work happened. If you self-host, updating to the latest version picks all of it up.

Retiring more of the old code

Longtime readers know I have been chipping away at retiring the code based on the web framework the project was built on back in 2011. This stretch took several more bites out of it. The old Peer Instruction controller and views are gone, fully replaced by the new versions. I also retired the bulk of the old instructor admin pages – course and student management, the old assignment builder, exam resets, and the logs – all of which now live in the new services. A few pages (grading, Manage Practice, and the editorial page) are staying on the old stack a little longer until their replacements have had more time to soak. The student progress report and a couple of small activecode endpoints moved over as well. We are getting close to the clean slate I have been hoping to reach by the end of the summer.

Faster installs and easier HTTPS

A couple of the changes are mostly for those of you who run your own Runestone server or like to dig into the code. We moved the whole project from Poetry to uv for managing dependencies and building. In practice this means installs and builds are dramatically faster, and I think it makes the project a little friendlier to contribute to. We also added Caddy as an alternative to nginx for the front door. The big draw there is automatic HTTPS – Caddy can obtain and renew certificates for you with almost no configuration – which makes standing up a secure instance much easier. You can keep using nginx if you prefer; Caddy is simply there as an option now.

A more consistent interface

On the interface side, PreTeXt books get a new user menu, and I replaced the old icons with a single consistent set throughout the site. This is part of the larger effort I have mentioned before to make the experience feel like one cohesive system rather than a collection of separate ones. The navigation bar is now shared between the book pages and the login and account pages. I would love feedback on how it looks and feels.

New tools for Peer Instruction

For those of you using Peer Instruction, there are two additions worth trying. You can now run a small A/B test comparing different discussion modes, with each student’s group remembered across sessions, and we fixed a bug where the instructor’s own vote was sneaking into the chart. Asynchronous Peer Instruction can also include an optional Likert-scale reflection step that you can turn on per course. If you use peer instruction in your classes, I would really like to hear whether these are useful. Much of this work is done as part of a PhD research project! Its important example of how pedagogy drives progress!

Lighter, more flexible interactives

Finally, a quieter but satisfying piece of work in the interactive components: we replaced the old jQuery-based translation library with a small, dependency-free one of our own and moved ActiveCode, fill-in-the-blank, multiple choice, Parsons, and drag-and-drop over to it. Drag-and-drop questions can now also be authored in JSON and XML, which is part of a longer effort to make question authoring more uniform across component types. The Cardsort question behavior was also modified based on feedback from teachers, students and researchers at the PROTEUS (Pretext Runestone Open Textbooks for Engaging Undergraduates in STEM) workshop held in Ann Arbor the week of June 14th. Its great to have this kind of community involvement and feedback!

Thanks, as always

This is a community effort, and I am grateful for everyone who reports issues, sends pull requests, and is patient with a project that does not have a full-time support staff. Version 8.8.1 is out, so self-hosters can pick up everything above by updating. If you run into trouble, please open an issue on GitHub with as much detail as you can, and if you just want to share feedback or ask a question, the public forums are the best place. Thanks, and happy summer!

Grader and Login Updates

Welcome to summer, at least for many of you! This week we have a couple of updates that we would love feedback on. First, we have rewritten the grader, similar to the way we rewrote the assignment builder. We still need to add support for regrading an assignment for multiple students at once. Our focus has been on manually grading and reviewing individual questions. You can get to the new grader from the assignment builder by clicking on the “Grade” button for an assignment. You can also use this URL directly:.

Secondly we have also started work on a new login/registration system. The new login system is backward compatible with the old system, but we are hoping to get feedback on the new look and flow. You can try it out at logging in here. Or substitute register for login in the URL to see the new registration page. A new change course page is also available at My Courses. This will give us a single login and registration system instead of the current mix of old and new pages. It should also eliminate issues where you appear logged in on one page but not another.

Thirdly we have ongoing work on the peer instruction. It is already live on Runestone I have an open PR that I am looking at this week that fixes some bugs and adds the async peer interface.

Finally, we have been working on a major refactoring of the code base. The goal is to make it easier to add new features and maintain the system going forward. We are nearly at the point where we can retire the code based on the initial web framework the project was built on in 2011. Not every feature is going to make the transition. But with all of the new services being based on a modern web framework, and having factored out the database access code into its own API, we are in a much better position to add new features and maintain the system going forward. Hopefully this will also make it easier for others to contribute to the project. We are nearly at the point where we can retire the code based on the initial web framework the project was built on in 2011. Not every feature is going to make the transition. But with all of the new services being based on a modern web framework, and having factored out the database access code into its own API, we are in a much better position to add new features and maintain the system going forward. Hopefully this will also make it easier for others to contribute to the project.

We will continue to work on these and make updates to the gradebook as well. Once all of these features are done and well tested, we will begin to make them the default, and eventually remove the old code. We will be sure to give plenty of notice before we do that, but we would love to get feedback on the new features as soon as possible. The goal is to have the old code removed by the end of the summer so we can start the school year with a clean slate.

We are also looking at improving the overall consistency of the user interface, as the system currently contains at least three distinct page styles. For student-facing pages, we want the experience to feel cohesive rather than like a collection of separate systems. We are also reviewing the instructor-facing pages with the same goal in mind, and we would welcome feedback there as well.

Some of the features we are considering eliminating, or replacing include:

  • The practice feature, based on spaced repetition, which is not widely used (although very effective) and is not well integrated with the rest of the system. We are considering replacing it with a new feature that would use AI models to generate personalized practice questions for students based on their performance in the course. This is still in the early stages of development, but we would love to get feedback on this idea.
  • The current student progress feedback page is another feature we are evaluating. Usage appears to be low, and some of the functionality added to the new grading page may ultimately replace it. Longer term, we would like to provide instructors with better insight into student learning: which concepts students are struggling with, which concepts they have mastered, and where intervention may help most. We are exploring ways to present this information more effectively than simple assignment or quiz scores, and we would love feedback on what would be most useful to you.

Runestone Guiding Principles

Runestone exists to improve how students learn by making learning active, observable, and improvable. We believe students learn best when they engage directly—writing code, solving problems, answering questions, making mistakes, and receiving immediate feedback. Passive reading is not enough. Runestone is built to support that cycle at scale.

Active Learning First

Runestone is designed around interaction, feedback, and engagement. Every feature must support students doing—not just consuming.

Students Are the Primary Beneficiary

Instructors adopt Runestone and institutions support it, but students are who we build for. When priorities conflict, we ask: does this help students learn?

Open by Default

Runestone is free and open source. Anyone can run it, modify it, and extend it. Our hosted platform, Runestone Academy, exists to make adoption easy for instructors who cannot or do not want to run their own server.

Student Privacy is Non-Negotiable

We collect only the data necessary to support learning. Personally identifiable student data is never sold, shared, or used for purposes unrelated to education.

Accessibility is a Requirement

All students must be able to use Runestone. Accessibility is not an enhancement—it is a baseline requirement. If something is not accessible, it is not finished.

Data Serves Learning

Runestone collects fine-grained interaction data to improve learning outcomes. We are not in the business of surveillance. Every piece of data we collect must have a clear pedagogical purpose.

Insight Over Data

Raw data is not the goal. Runestone provides instructors with actionable insights—tools that help them understand student progress and intervene effectively.

Interoperability Over Lock-In

Runestone integrates with other systems using open standards whenever possible. We avoid proprietary approaches that trap users or create unnecessary complexity.

Pedagogy Drives Technology

New capabilities should have a clear rationale in learning science. Runestone is a platform for pedagogical research, and that research tradition should inform what we build and why. New features must be justified by their impact on teaching and learning, not by technical novelty.

Empower Instructors

Runestone amplifies the effectiveness of instructors. It does not attempt to replace them, automate them away, or reduce teaching to a dashboard.

Simplicity Enables Sustainability

Every feature carries a long-term cost. We favor simple, maintainable solutions and resist unnecessary complexity—even when it is tempting.

Focus is a Feature

We deliberately choose what not to build. Protecting the core mission matters more than expanding scope.

Built for Research

Runestone supports pedagogical research through transparency, reproducibility, and ethically collected data.

Community Over Institution

Runestone’s long-term sustainability depends on a broad community of contributors, adopters, and advocates — not on any single maintainer, organization, or funder. We make decisions that strengthen collective ownership.


What Runestone Is Not ====================

Not a Learning Management System ——————————- Runestone complements LMS platforms; it does not attempt to replace them.

Not a Content Authoring System

Content is authored using external tools such as PreTeXt. Runestone focuses on delivery, interaction, and insight.

Not a High-Stakes Assessment Platform

Runestone is built for learning, practice, and formative assessment—not secure, high-stakes exams.

Not a Data Brokerage

Runestone does not monetize student data—period.

A Farewell to RST

The end of the semester is approaching, and with it comes the beginning of Summer development time!

In a few days I will release Runestone 7.13.6, this marks the last release of Runestone that will support RST as an authoring language. That is probably not true, the 7.13 line will continue for key bug fixes, but it will be the last release that will include new features for RST.

What does this mean for Runestone? Well, just over six years ago we formed a partnership with the PreTeXt project to use their XML-based authoring language as the basis for Runestone. We have been very happy with that decision, and it has allowed us to add a lot of features to Runestone where I can focus on the interactive features and not worry about the authoring language. PreTeXt is a very powerful author language, and it is being used by a growing number of projects. It has a great focus on accessibility and is designed to be easily converted to a variety of output formats. When two open source projects can work together to create a better product, that is a win for everyone.

If you are an author and have not converted your book to PreTeXt, I encourage you to do so. The conversion process is not difficult, and there are a number of resources available to help you. The PreTeXt project has a number of people willing to help with the conversion process, and there are a number of tools availble to help with the conversion, not to mention LLM-based tools like Copilot Claude Code and ChatGPT. If you have questions about the conversion process, please reach out to me or the PreTeXt community for help.

We will continue to develop and support the interactive elements of Runestone like activecode, parsons problems, and the various interactive widgets that we have developed over the years. Future updates to the componenents will be released in the 8.x line, although I don’t see a reason to push them to pypi, the runestone build command will not build anything in the 8.x line.

If you absolutely must have a new feature in RST, you are welcome to add it to the legacy_support branch of the Runestone repository, but I will only support critical bug fixes on that branch, so if you want a feature merged you will need to provide the ongoing support for it.

I’ll have more to say about our summer development goals in the next few weeks, but I wanted to get this news out as soon as possible so that authors have plenty of time to make the transition to PreTeXt, current users of RST will not be surprised by this transition. Nobody should be surprised as I’ve been talking about it for years.

Easy Install

I know that running your own server is not for everyone, but we want to make it was easy as possible for Runestone to support the students who need us. But sometimes Government regulations or institutional policies make it difficult to use a third party hosting service. For those of you who want to run your own server, we have created an easy install script that will set up a Runestone server on your machine. This script will install all the necessary dependencies and configure the server for you.

To use the easy install script, copy and paste the following command into your terminal:

bash <(curl -fsSL https://raw.githubusercontent.com/RunestoneInteractive/rs/main/init_runestone.sh)

This will download and run the easy install script. The script will ask you a few questions about your setup, It will then install all the necessary dependencies and configure the server for you. You will need to have Docker installed on your machine for this to work. If you do not have Docker installed, there are some great tutorials online that can help you get started such as Docker for Beginners.

Why Run your own Server?

There are a few reasons why you might want to run your own server:

  • You may have legal or institutional requirements that we as a small non-profit, open-source organization cannot meet. We are committed to the National Data Privacy Agreement But we understand that some institutions may have additional requirements that we cannot meet. If this is the case, running your own server may be the best option for you.
  • You want to have more control over your data and how it is stored.
  • You want to be able to customize the server to fit your specific needs.
  • You want to be able to run the server on your own hardware.
  • You want to be able to run the server in an environment that does not allow third party hosting services.

All of these are valid reasons, and we understand that running your own server is not for everyone. We are here to support you regardless of how you choose to use our software. If you have any questions about running your own server, please feel free to reach out to us on our public forums or GitHub. We are happy to help you get set up and answer any questions you may have. We also welcome contributions to the easy install script, if you have any improvements or suggestions please let us know!

I would also like to acknowledge Tyler Conzet for his work on the easy install script. Tyler was a former student of mine and has been a great contributor to the Runestone project. He has done a lot of work on the easy install script and has made it much easier for people to run their own servers. Thank you Tyler!

Keeping up to date

If you choose to run your own server, it is important to keep it up to date. We are constantly making improvements and adding new features to the software, and it is important to keep your server up to date in order to take advantage of these improvements. We recommend that you check for updates regularly and apply them as soon as possible. You can check for updates by running the following command in your terminal:

cd /wherever/you/installed/runestone
docker compose pull
docker compose stop && docker compose up -d

Occasionally it may be necessary to run a database migration when we make changes to the database schema. If this is the case, we will provide instructions on how to run the migration. We will also provide instructions on how to roll back the migration if something goes wrong. We recommend that you back up your database before applying any updates, just in case something goes wrong. Most updates should be seamless, but occasionally we add more data to the database in the form of new columns or new tables. These migrations will not result in the loss of any data, but it is always a good idea to have a backup just in case something goes wrong.

Feedback

As this is a new feature, we would love to hear your feedback on the easy install script. If you have any suggestions for improvements or if you encounter any issues, please let us know on our public forums or GitHub. Your feedback is invaluable to us and helps us improve the software for everyone. We are committed to making the easy install script as user-friendly and reliable as possible, and we appreciate any feedback you can provide.

Join our Community —————–

As always, our mission is to provide free and open educational resources to everyone! We are committed to supporting our students and instructors regardless of how they choose to use our software. If you have any questions or need help with anything, please don’t hesitate to reach out to us on our public forums or hang out with us on zoom! Our weekly zoom schedule is available here. And you can always drop in on our zoom during one of the scheduled times here. We are always happy to help and we welcome your feedback and suggestions and just being a part of our community. It is amazing what can happen when people come together face to face and share their ideas and experiences. We are grateful for everyone who has contributed to the project and we look forward to continuing to work together to make education more accessible and engaging for everyone. Thank you for being a part of our community!

Brad

Mid-term Updates

It has been a relatively calm Fall 2025 semester! Thanks to everyone for your patience and issue reports. I had a wonderful September exploring six of our amazing national parks! I am back to work and have been able to address a number of issues and feature requests. Here are some highlights:

  • New course creation page
  • Grading Updates – Se note on timezones below
  • LTI 1.3 bug fixes
  • Improved user interface for creating assignments
  • Bug fixes and performance improvements
  • We are making good progress toward removing the legacy instructor interface and hope to have this completed in summer 2026.
  • Improvements to student accommodations

One specific change that I would like to highlight is:

  • We will now accept late submissions for assignments as long as you have the accept late submissions option enabled. Whether you have checked the released grades option or not. This was a highly requested feature and I am glad to be able to deliver it.
  • To support this change we have added a new attribute for every course, which is the home timezone for the course. You should go to the course settings page and set this to your local timezone. This will ensure that all assignment due dates are interpreted correctly. If you do not set this, it will default to UTC which may cause confusion. This also prevents students from changing their timezone to get around due dates. If you have any questions about this, please let me know.

I am also considering adding an accommodation that would allow instructors to email students a link to an assignment that is not yet visible. This would allow students with accommodations to access assignments early or late. Please let me know if this would be useful. This is different than the current “visible” option in that the assignment would not be visible to students unless they had the link.

This is a community effort, and I am grateful for everyone’s contributions. Thank you! For those of you who are new, welcome to the community! Please remember that this is a volunteer effort, we don’t have full time staff of support people to answer your questions. qn Please be patient and respectful of others’ time and efforts, please use our public forums to ask questions or discuss problems. If you find that something is not working, please take some time to investigate and report the issue on GitHub. The more information you can provide, the better! Do not presume that because you are having a problem, that everyone else is. Please help us help you! You may use the software differently from others. We welcome constructive feedback and suggestions.

For those of you that use our accommodations feature I would love to hear your feedback. I am considering adding the option to allow students to access an assignment if they have a direct link to a non-visible assignment and have an accommodation that allows them to do so. Please let me know if this would be useful.

GenAI in CS Consortium

GenAI Consortium Logo

Exciting news! Runestone Academy received funding from the GenAI in CS Consortium to support educators in strategically integrating genAI into their teaching methods and curricula. The consortium is a destination for academics seeking example courses and overall guidance. Check it out at TeachCSwithAI.org

Our first project will be to integrate Runestone books with Learning Clues to provide secure 24x7 tutoring for your students. Students will be able to ask questions, and have a conversation with AI with all of the responses grounded in the content provided on Runestone Academy.