Annuncio di CourseGraph, un nuovo strumento nella versione Maple

13 gennaio 2022 | Di

Con l'imminente rilascio di Open edX, Maple, il team edX è lieto di condividere un pezzo di tecnologia che utilizza internamente da un po' di tempo. Questo strumento si chiama CourseGraph ed è ora disponibile come parte non supportata di devstack e Maple. CourseGraph ti consente di rispondere a domande che potresti avere sul contenuto di tutti i corsi della tua istanza in modo aggregato, come conteggi e posizioni di XBlock specifici, domande relative alla struttura dei tuoi corsi, domande sugli esami, e anche di più!

In edX, l'uso di CourseGraph è limitato ai team di assistenza clienti e ingegneria. Questi team trovano utile essere in grado di rispondere a domande con risposta da statistiche aggregate; il loro team di assistenza per i partner in particolare è spesso in grado di aiutare a eseguire il debug dei problemi dell'istruttore in Studio con una query XBlock. Il team di ingegneri ottiene informazioni dettagliate su tutti i tipi di potenziali problemi, come capire dove si trovano i "blocchi orfani" (blocchi che non sono raggiungibili dalla radice del corso tramite i bambini).

Cos'è CourseGraph?

CourseGraph è una rappresentazione grafica del contenuto del corso dell'istanza in neo4j, un popolare database di grafi; CourseGraph è non è un un'API di runtime. Il vantaggio di rappresentare i dati del corso in forma di grafico è che consente di scrivere query di ampia portata sia sul contenuto che sulla struttura del corso. L'uso di CourseGraph presuppone che tu abbia una familiarità di base con il modello di dati del corso, che i corsi siano grafici, di solito alberi, in cui ogni nodo è un XBlock.

Così che cosa?

Hai mai avuto domande come:

  • I team del corso (e altri!) potrebbero chiedersi...
    • Dove sono tutti i componenti video nel mio corso? Quali sono tutti i loro titoli e ID?
    • Quali unità ORA (valutazione della risposta aperta) hanno date configurate in modo errato? (le date configurate in modo errato potrebbero impedire agli studenti di accedere al compito)
    • Quali sono i tipi di blocchi (come problemi o ORA) che utilizzo nel mio corso e con quale frequenza li utilizzo?
  • Gli sviluppatori/operatori del sito/team di supporto potrebbero chiedersi...
    • Quanti corsi attualmente in corso utilizzano un tipo specifico di blocco?
    • Dove sono tutti i video di un'organizzazione e da quale sorgente video/URL vengono serviti?
    • Quali corsi utilizzano componenti LTI e quali sono classificati?

In questo momento, è davvero difficile rispondere a queste domande, dato il modo in cui i dati del corso sono archiviati in Mongo. Split Mongo, che è il back-end di quasi tutti i tuoi corsi in corso, è ottimizzato per caricare un singolo corso alla volta, non per query generiche su più strutture di corsi. Ricostruire la struttura simile a un grafico di ogni corso richiederebbe una buona dose di elaborazione al di fuori di una pura query Mongo. L'altro vantaggio dell'utilizzo di neo4j è che viene fornito con un visualizzatore dei risultati della query integrato, in modo da poter vedere le strutture dei grafici di parti dei corsi. 

La seguente query conta il numero di problemi jsinput nell'istanza Open edX:

PARTITA 

(corso)-[:GENITORE_DI*]->(p:problema) 

DOVE 

p.dati 

CONTIENE 

'jsinput'

RITORNO

    contare(p) come numero

e restituisce il seguente risultato (31026):

Puoi anche vedere i dati visivamente, quando il risultato della query sono nodi. Questa query è identica alla precedente tranne che RETURN * e limitiamo il risultato a 50 elementi. I nodi e le loro relazioni PARENT OF sono mostrati nel grafico. Passando il mouse su un nodo vengono visualizzati, nella barra in basso, gli attributi impostati su quel nodo.

Qual è la struttura dei dati?

Neo4j è un database di grafi e quindi, come un grafo, ha due tipi di dati fondamentali: nodi e archi. Nel caso di CourseGraph, i nodi sono XBlock: blocchi di corso, problemi, verticali, html, ecc. Gli attributi su quel nodo corrispondono ai campi sull'XBlock. Inoltre, ogni nodo ha gli attributi course_key, org, course, run, edited_on e location impostati su di essi.

Gli spigoli rappresentano il modo in cui i nodi sono correlati. Esistono due tipi di relazioni tra i blocchi: “PARENT_OF”, che collega un blocco a suo figlio, e “PRECEDES”, che collega un blocco a suo fratello. Quindi una verticale può essere un PARENT_OF un blocco video; in una sequenza di due verticali, la prima verticale “PRECEDE” la seconda.

Come faccio a scrivere query contro di esso?

Neo4j utilizza il proprio linguaggio di query, cifra. È simile a SQL, quindi non ci vorrà troppo tempo per imparare. Guardare questa pratica scheda di riferimento per consigli utili! In edX, abbiamo continuamente preso nota di domande utili; guarda cosa abbiamo creato e aggiungi il tuo! - sul Pagina di raccolta query CourseGraph.

Ecco una query più complicata, che passa attraverso un corso sulla tua istanza (qui, il corso "DemoX" di edx.org) e restituisce tutti gli XBlock visibili allo studente di tipo "problema" nel corso, annotati con il suo nome visualizzato, il nome della verticale che lo contiene e quando è stato modificato l'ultima volta:

PARTITA

    (c:corso) -[:GENITORE_DI*]-> (v:verticale) -[:GENITORE_DI*]-> (n:elemento)

DOVE

    c.course_key = 'corso-v1:edX+DemoX.1+2T2019'

    and

    n.block_type = 'problema'

    and

    n.visible_to_staff_only = falso

RITORNO  

    n.tipo_blocco,

    n.nome_visualizzato,

    v.display_name come unit_location,

    n.modificato_on

ORDINATO DA

  n.modificato_su;

Ecco i primi 16 risultati, dei 17 indicati nella riga finale:

Come faccio a distribuire e utilizzare CourseGraph?

La versione Nutmeg (prevista per giugno 2022) includerà a Plugin CourseGraph per Tutor! Dai un'occhiata al README del plug-in per scoprire come gli operatori Nutmeg saranno in grado di installare, configurare ed eseguire facilmente CourseGraph come parte della loro distribuzione Open edX gestita da tutor. (Per le istanze Open edX che eseguono una versione precedente a Nutmeg, non esiste un metodo consigliato ufficialmente per la distribuzione di CourseGraph.)

A partire da Nutmeg, il plug-in è in stato "Beta" e i suoi manutentori sono attivamente alla ricerca di utenti disposti a provarlo in un ambiente di produzione e a fornire feedback. Per porre domande, segnalare bug o condividere le tue esperienze con CourseGraph, apri un problema su GitHub nel repository tutor-contrib-coursegraph.

Speriamo che questo strumento ti sia utile!

Caricamento in corso

Inizia la discussione su discutere.openedx.org

Tempo per altro? Dai un'occhiata agli articoli qui sotto.

Risolvere i problemi insieme: sviluppo di piattaforme guidate dalla comunità
Competenze e sviluppo del futuro alla conferenza Open edX
Workshop per sviluppatori della conferenza Open edX
Riconquistare il nostro futuro digitale: perché mi sono unito all'Open Renaissance Group
Partecipa alla conferenza Open edX 2026!

La conferenza Open edX del 2026 presenterà casi d'uso innovativi per uno dei migliori sistemi di gestione dell'apprendimento online open source al mondo, la piattaforma Open edX, e scoprirà gli ultimi progressi nella progettazione didattica, nella costellazione dei corsi e nei metodi per utilizzare ed estendere la piattaforma Open edX , comprese tecnologie rivoluzionarie, come l'intelligenza artificiale generativa.