Smart Learning Content Protocol

19 views
Skip to first unread message

Brad Miller

unread,
Mar 25, 2023, 12:01:09 PM3/25/23
to PreTeXt development
While Rob and I were at SIGCSE I was approached by a long time CS Author (Cay Horstman) to join a group in defining a standard mechanism for interactive elements in an iframe to communicate and retrieve scores from a system like Runestone.   I was happy to join in the conversation and talked a little about what Alex and I cooked up for WebWork.  Today I saw the first draft of the protocol and was happy that it was not too far from what we had done.  

This effort would generalize a bit and provide a standard javascript library with apis to  make it easier for implementors of things like WebWork to use the protocol.

The API would consist of two calls reportScores and getScores but takes a fairly generic message object that would support everything we have done for WebWork.

Are there other PreTeXt interactives that might benefit from this? The more examples we can look at the better.

Brad

Bradley Miller, PhD
Professor Emeritus Computer Science
Luther College
Founder, Runestone Academy LTD
Blog: A Reputable Journal

Rob Beezer

unread,
Mar 25, 2023, 12:21:07 PM3/25/23
to prete...@googlegroups.com
That sounds real good - thanks for pursuing this, Brad.

Brian Walton's work on fill-in problems will be new, and have results to
communicate. But that will go through Runestone Javascript anyway, if I
understand right.

Since we've never assumed a server (and logins) were present, I can't think of
anything other than WeBWorK.

But maybe someone else will remind me of something...

Rob



On 3/25/23 09:00, Brad Miller wrote:
> While Rob and I were at SIGCSE I was approached by a long time CS Author (Cay
> Horstman) to join a group in defining a standard mechanism for interactive
> elements in an iframe to communicate and retrieve scores from a system like
> Runestone.   I was happy to join in the conversation and talked a little about
> what Alex and I cooked up for WebWork.  Today I saw the first draft of the
> protocol and was happy that it was not too far from what we had done.
>
> This effort would generalize a bit and provide a standard javascript library
> with apis to  make it easier for implementors of things like WebWork to use the
> protocol.
>
> The API would consist of two calls reportScores and getScores but takes a fairly
> generic message object that would support everything we have done for WebWork.
>
> Are there other PreTeXt interactives that might benefit from this? The more
> examples we can look at the better.
>
> Brad
>
> *Bradley Miller, PhD*
> Professor Emeritus Computer Science
> Luther College
> Founder, Runestone Academy LTD <https://runestone.academy>
> Blog: A Reputable Journal <https://www.reputablejournal.com>
>
> --
> You received this message because you are subscribed to the Google Groups
> "PreTeXt development" group.
> To unsubscribe from this group and stop receiving emails from it, send an email
> to pretext-dev...@googlegroups.com
> <mailto:pretext-dev...@googlegroups.com>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/pretext-dev/6ff43da5-a268-4564-9bb6-71e575ab36dd%40Spark <https://groups.google.com/d/msgid/pretext-dev/6ff43da5-a268-4564-9bb6-71e575ab36dd%40Spark?utm_medium=email&utm_source=footer>.

--
Note new professional address: bee...@pugetsound.edu
[bee...@ups.edu was totally disabled on 2023-01-04]

Brad Miller

unread,
Mar 25, 2023, 12:29:08 PM3/25/23
to prete...@googlegroups.com
The nice thing about this approach is that anything in an iframe that might want to use Runestone to save or restore state could use it.  It works by creating an event in the parent window so if Runestone (or similiar) is not present the event is "cheerfully ignored" 

Brad

Bradley Miller, PhD

Professor Emeritus Computer Science
Luther College
Founder, Runestone Academy LTD
To unsubscribe from this group and stop receiving emails from it, send an email to pretext-dev...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pretext-dev/MTAwMDAyNi5iZWV6ZXI.1679761265%40quikprotect.

Rob Beezer

unread,
Mar 25, 2023, 1:49:15 PM3/25/23
to prete...@googlegroups.com
As part of an UTMOST study (where students had signed off), we once collected
clicks on the Sage "Evaluate" button as a sign of activity. And perhaps the
opening of knowls. I do not believe either uses an iFrame.

Conceivably, Desmos, GeoGebra, calcPlot3D, and maybe Jessie, could generate a
simple "there was interaction" event. And others.

Rob

On 3/25/23 09:28, Brad Miller wrote:
> The nice thing about this approach is that anything in an iframe that might want
> to use Runestone to save or restore state could use it.  It works by creating an
> event in the parent window so if Runestone (or similiar) is not present the
> event is "cheerfully ignored"
>
> Brad
>
> https://groups.google.com/d/msgid/pretext-dev/3660be12-2672-4580-b05d-af087a39a12c%40Spark <https://groups.google.com/d/msgid/pretext-dev/3660be12-2672-4580-b05d-af087a39a12c%40Spark?utm_medium=email&utm_source=footer>.

Andrew Scholer

unread,
Mar 25, 2023, 9:13:15 PM3/25/23
to prete...@googlegroups.com
I'll add that communicating with components in iframes is just one of the challenges they present. They can also create real problems for presentation. They aren't too bad if the content of the iframe has a completely fixed and predictable size. They rapidly become a major PITA if the size is unpredictable and the layout of the embedded page isn't super flexible.

Anywhere there is potential to collaborate closely enough to generate embeddable components that don't require iframes, that would seem like a good goal. But as Rob points out, a common event API sounds useful even for embedded interactables regardless of if they are in an iframe.

Andrew Scholer (he/him/his)
Computer Science Instructor/Program Chair
Chemeketa Community College


Alex Jordan

unread,
Mar 26, 2023, 1:58:50 AM3/26/23
to prete...@googlegroups.com
> Are there other PreTeXt interactives that might benefit from this? The more examples we can look at the better.

MyOpenMath?
> --
> You received this message because you are subscribed to the Google Groups "PreTeXt development" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to pretext-dev...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/pretext-dev/6ff43da5-a268-4564-9bb6-71e575ab36dd%40Spark.

Rob Beezer

unread,
Mar 26, 2023, 7:21:29 PM3/26/23
to prete...@googlegroups.com
On 3/25/23 22:58, Alex Jordan wrote:
> MyOpenMath?

Right! I knew I was forgetting something. Thanks.

Rob Beezer

unread,
Mar 26, 2023, 7:23:33 PM3/26/23
to prete...@googlegroups.com
On 3/25/23 18:12, Andrew Scholer wrote:
> They can also create real problems for presentation.
> They aren't too bad if the content of the iframe has a completely fixed and
> predictable size. They rapidly become a major PITA

I'll second that! For me it begins with the necessity of giving their size in
pixels rather than a percentage of available width, like we can do with images.

Rob

Mitch Keller

unread,
Mar 27, 2023, 10:12:41 AM3/27/23
to prete...@googlegroups.com
Nick Long and I were just talking last week about how it would be nice if interactive SageMath graphics could report back “there was interaction” to Runestone. This would be useful both for instructors to see the level of student engagement and for authors to see if interactive features they have put effort into are being used.

kcri...@gmail.com

unread,
Mar 27, 2023, 1:20:03 PM3/27/23
to PreTeXt development

Nick Long and I were just talking last week about how it would be nice if interactive SageMath graphics could report back “there was interaction” to Runestone. This would be useful both for instructors to see the level of student engagement and for authors to see if interactive features they have put effort into are being used.

I think if you asked Andrey N. at https://groups.google.com/g/sage-cell about this, he may be able to tell you exactly what JSON is sent back and forth when that happens (it's also presumably documented, but this probably would be quicker in terms of what is best to look for).   I imagine that is something that could be sniffed for and reported fairly easily.
Reply all
Reply to author
Forward
0 new messages