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