Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | /** * Average Learner Profile (Hill Function Model) * * A student with typical learning characteristics: * - Medium K value (reaches 50% mastery at 12 exposures) * - Standard hill coefficient (balanced curve) * - Most skills learned normally, but MISSED the five complements lesson * - Moderate help usage * * REALISTIC SCENARIO: Student wasn't paying attention during five complements. * They understand basics and can do ten complements, but five complements confuse them. * * With K=12, n=2.0: * - 36+ exposures → P ≈ 90%+ (strong skills - HIGH CONTRAST) * - 0 exposures → P = 0% (missed skills) * * KEY: Strong skills must be ~90%+ for BKT to distinguish from weak (0%) */ import type { StudentProfile } from '../types' /** * Average learner who missed five complements lesson. * Strong in basics and ten complements, weak in five complements. */ const initialExposures: Record<string, number> = { // Basic skills - well learned (40 exposures → ~92%) 'basic.directAddition': 40, 'basic.heavenBead': 38, 'basic.simpleCombinations': 36, 'basic.directSubtraction': 38, 'basic.heavenBeadSubtraction': 36, 'basic.simpleCombinationsSub': 35, // Five complements - MISSED THIS LESSON (0 exposures → 0%) 'fiveComplements.4=5-1': 0, 'fiveComplements.3=5-2': 0, 'fiveComplements.2=5-3': 0, 'fiveComplements.1=5-4': 0, // Ten complements - well learned (36 exposures → ~90%) 'tenComplements.9=10-1': 40, 'tenComplements.8=10-2': 38, 'tenComplements.7=10-3': 36, 'tenComplements.6=10-4': 36, 'tenComplements.5=10-5': 36, } /** Skills this student is weak at (for test validation) */ export const AVERAGE_LEARNER_WEAK_SKILLS = [ 'fiveComplements.4=5-1', 'fiveComplements.3=5-2', 'fiveComplements.2=5-3', 'fiveComplements.1=5-4', ] export const averageLearnerProfile: StudentProfile = { name: 'Average Learner (Missed Five Complements)', description: 'Strong in basics and tens, missed five complements lesson', // K = 12: Reaches 50% proficiency at 12 exposures (average) halfMaxExposure: 12, // n = 2.0: Standard curve with balanced onset hillCoefficient: 2.0, initialExposures, // Moderate help usage: 55% no help, 45% uses help helpUsageProbabilities: [0.55, 0.45], // Help bonus: 15% additive when help is used helpBonuses: [0, 0.15], // Average response time baseResponseTimeMs: 5500, // Moderate variance responseTimeVariance: 0.35, } |