Environmental desiderata - Lispl-Wicht/c-logo-s GitHub Wiki

Integrating Logo Activity and Educational Research (June 2026)

The Normalized Syntactic Form (NSF) may serve as learners' activity data. These data can be anonymised and analysed within the environment, based on Lisp-Stat -- a domain specific language (DSL) of Common Lisp for statistical analysis and machine learning.


The crucial observation

NSF + subsequent passes form a semantic trace, not just a compiler pipeline.

Each stage may potentially answer a different pedagogical question:

Stage What it reveals about the learner
tokenization surface syntax familiarity
whitespace & line handling mental model of Logo’s line semantics
infix normalization arithmetic expectations
explicit grouping awareness of structure
implicit grouping understanding of arity
infix resolution operator precedence reasoning
error emission misconception classification

This is process data, not just outcome data.


NSF may be the key enabler

Because NSF is:

  • lossless
  • reversible
  • faithful to the learner’s intent
  • temporally ordered

it can serve as a canonical event representation:

"The learner’s thought, normalised just enough to be machine-tractable."

We could log:

  • how expressions were formed
  • where grouping failed
  • which arity assumptions were violated
  • when infix was misunderstood

What activity data could look like

Structural deltas

Compare:

  • NSF → chunk-pass-2 output
  • before / after error recovery

This provides:

  • grouping depth
  • spine shape
  • unused expressions
  • arity mismatches

Error classification

Logo's messages ("You don’t say what to do with 11") are diagnostic.

Each one maps to a misconception:

  • surplus expression
  • missing consumer
  • wrong arity
  • misplaced infix

Temporal sequences

Capturing

  • edits
  • REPL submissions
  • corrections

might record learning trajectories.

Anonymisation

It is possible to

  • strip identifiers (:a, variable names)
  • hash or bucket numeric literals

keep only:

  • proc identity
  • arity
  • grouping shape
  • error category

What remains is essentially:

An abstract syntax learning trace.

Which may become:

  • GDPR-friendly
  • ethically safer
  • scientifically more robust

Architectural sketch (no commitment)

NSF
 ↓
Semantic passes
 ↓
Evaluation / Errors
 ↓
Event extractor
 ↓
Anonymiser
 ↓
Analytics store
 ↓
lisp-stat / notebooks / visualisation

Crucially:

  • the language runtime stays pure
  • analytics is an observer, not a driver

So contaminating semantics can be avoided.


Rationale

Logo is about:

  • thinking in procedures
  • understanding flow
  • composing actions

The system can reveal:

  • when learners think "functionally"
  • when they think "imperatively"
  • when they confuse sequencing with nesting