From f8f50174369c584cf4d7fa7c26ef71332c9c71f0 Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Fri, 17 Apr 2026 11:08:12 +0200 Subject: [PATCH] feat(bisaya-course): enhance lesson structure and didactics integration - Added an auto-incrementing primary key to the UserHouse model for improved database management. - Integrated new didactics fragments from the Bisaya course plan, including relationship anchor didactics and lessons for enhanced curriculum depth. - Updated lesson retrieval logic to utilize planned lesson titles, improving the accuracy of didactics resolution. - Refactored course content generation scripts to incorporate new didactics, ensuring a comprehensive learning experience for users. --- backend/models/falukant/data/user_house.js | 5 + .../scripts/apply-bisaya-course-refresh.js | 31 +- backend/scripts/bisaya-course-plan-24-43.js | 540 ++++++++++++++++++ .../scripts/create-bisaya-course-content.js | 3 + backend/scripts/create-bisaya-course.js | 105 +--- backend/scripts/update-bisaya-didactics.js | 28 +- docs/BISAYA_LESSON_PLAN_24_153.md | 267 +++++++++ 7 files changed, 874 insertions(+), 105 deletions(-) create mode 100644 backend/scripts/bisaya-course-plan-24-43.js create mode 100644 docs/BISAYA_LESSON_PLAN_24_153.md diff --git a/backend/models/falukant/data/user_house.js b/backend/models/falukant/data/user_house.js index c33d027..1fee6bf 100644 --- a/backend/models/falukant/data/user_house.js +++ b/backend/models/falukant/data/user_house.js @@ -4,6 +4,11 @@ import { sequelize } from '../../../utils/sequelize.js'; class UserHouse extends Model { } UserHouse.init({ + id: { + type: DataTypes.INTEGER, + primaryKey: true, + autoIncrement: true + }, roofCondition: { type: DataTypes.INTEGER, allowNull: false, diff --git a/backend/scripts/apply-bisaya-course-refresh.js b/backend/scripts/apply-bisaya-course-refresh.js index 94e343e..c7049ab 100644 --- a/backend/scripts/apply-bisaya-course-refresh.js +++ b/backend/scripts/apply-bisaya-course-refresh.js @@ -13,6 +13,11 @@ import VocabCourseProgress from '../models/community/vocab_course_progress.js'; import VocabGrammarExerciseProgress from '../models/community/vocab_grammar_exercise_progress.js'; import { Op } from 'sequelize'; import { getBisayaLessonPedagogy } from './bisaya-course-phase2-pedagogy.js'; +import { + BISAYA_DIDACTICS_24_43, + BISAYA_LESSONS_24_43_BY_NUMBER, + BISAYA_RELATIONSHIP_ANCHOR_DIDACTICS +} from './bisaya-course-plan-24-43.js'; const LESSON_DIDACTICS = { 'Begrüßungen & Höflichkeit': { @@ -368,9 +373,19 @@ const LESSON_DIDACTICS = { 'Von einzelnen Wörtern zu kurzen Sätzen übergehen.' ], corePatterns: ['Kumusta', 'Salamat', 'Lami', 'Mingaw ko nimo'] - } + }, + ...BISAYA_RELATIONSHIP_ANCHOR_DIDACTICS, + ...BISAYA_DIDACTICS_24_43 }; +function resolveDidacticsForLesson(lesson) { + const direct = LESSON_DIDACTICS[lesson.title]; + if (direct) return direct; + const plannedTitle = BISAYA_LESSONS_24_43_BY_NUMBER[Number(lesson.lessonNumber)]?.title; + if (plannedTitle && LESSON_DIDACTICS[plannedTitle]) return LESSON_DIDACTICS[plannedTitle]; + return null; +} + async function resetBisayaProgress(courseIds) { if (courseIds.length === 0) return { lessonProgress: 0, exerciseProgress: 0 }; @@ -443,12 +458,24 @@ async function applyBisayaCourseRefresh() { }); for (const lesson of lessons) { - const didactics = LESSON_DIDACTICS[lesson.title]; + const didactics = resolveDidacticsForLesson(lesson); + const plannedLesson = BISAYA_LESSONS_24_43_BY_NUMBER[Number(lesson.lessonNumber)]; const pedagogy = getBisayaLessonPedagogy(lesson.lessonNumber); if (!didactics && !pedagogy) continue; const normalizedDidactics = didactics || {}; await lesson.update({ + ...(plannedLesson ? { + title: plannedLesson.title, + description: plannedLesson.desc, + weekNumber: plannedLesson.week, + dayNumber: plannedLesson.day, + lessonType: plannedLesson.type, + culturalNotes: plannedLesson.cultural, + targetMinutes: plannedLesson.targetMin, + targetScorePercent: plannedLesson.targetScore, + requiresReview: plannedLesson.review + } : {}), learningGoals: normalizedDidactics.learningGoals || [], corePatterns: normalizedDidactics.corePatterns || [], grammarFocus: normalizedDidactics.grammarFocus || [], diff --git a/backend/scripts/bisaya-course-plan-24-43.js b/backend/scripts/bisaya-course-plan-24-43.js new file mode 100644 index 0000000..965fbdf --- /dev/null +++ b/backend/scripts/bisaya-course-plan-24-43.js @@ -0,0 +1,540 @@ +export const BISAYA_LESSONS_24_43 = [ + { week: 3, day: 1, num: 24, type: 'conversation', title: 'Gefühle im Alltag', desc: 'Gefühle ausdrücken und im Gespräch passend darauf reagieren', targetMin: 18, targetScore: 80, review: false, cultural: 'Gefühle werden oft indirekt und mit Fürsorge beantwortet.' }, + { week: 3, day: 1, num: 25, type: 'vocab', title: 'Gefühlswortschatz & Reaktionen', desc: 'Freude, Sorge, Müdigkeit, Vermissen und Beruhigung sicher unterscheiden', targetMin: 20, targetScore: 85, review: true, cultural: null }, + { week: 3, day: 2, num: 26, type: 'conversation', title: 'Gesundheit & Wohlbefinden', desc: 'Einfache Beschwerden erfragen und fürsorglich reagieren', targetMin: 18, targetScore: 80, review: false, cultural: null }, + { week: 3, day: 2, num: 27, type: 'vocab', title: 'Körper & Symptome', desc: 'Körperstellen, Symptome und einfache Pflegewörter', targetMin: 20, targetScore: 85, review: true, cultural: null }, + { week: 3, day: 3, num: 28, type: 'grammar', title: 'Höflichkeitsformen praktisch', desc: 'Bitten, Entschuldigung und weiche Reaktionen im Alltag', targetMin: 22, targetScore: 78, review: true, cultural: 'Direkte Ablehnung klingt oft hart; weiche Formulierungen sind im Alltag hilfreicher.' }, + { week: 3, day: 3, num: 29, type: 'conversation', title: 'Bitten & Nachfragen', desc: 'Hilfe, Wiederholung, Bedeutung und langsames Sprechen erbitten', targetMin: 18, targetScore: 80, review: false, cultural: null }, + { week: 3, day: 4, num: 30, type: 'conversation', title: 'Kinder & Familie', desc: 'Mit Kindern kurz, klar und freundlich sprechen', targetMin: 18, targetScore: 80, review: false, cultural: 'Kurze klare Sätze funktionieren mit Kindern natürlicher als lange Erklärungen.' }, + { week: 3, day: 4, num: 31, type: 'vocab', title: 'Kinder, Spiel & Routine', desc: 'Kinderalltag mit Spielen, Fertigsein und Schlaf verbinden', targetMin: 20, targetScore: 85, review: true, cultural: null }, + { week: 3, day: 5, num: 32, type: 'review', title: 'Woche 3 - Intensivwiederholung', desc: 'Gefühle, Gesundheit, Kinder und Höflichkeit kontrastieren', targetMin: 30, targetScore: 82, review: false, cultural: null }, + { week: 3, day: 5, num: 33, type: 'vocab', title: 'Woche 3 - Checkpoint', desc: 'Aktiver Checkpoint zur ersten Alltagserweiterung', targetMin: 18, targetScore: 84, review: true, cultural: null }, + { week: 4, day: 1, num: 34, type: 'conversation', title: 'Alltagsszene: Zuhause morgens', desc: 'Morgens zuhause über Aufstehen, Essen, Schule und Aufgaben sprechen', targetMin: 22, targetScore: 78, review: false, cultural: 'Morgenszenen verbinden Fürsorge, Zeit und Familienorganisation.' }, + { week: 4, day: 1, num: 35, type: 'review', title: 'Spiralreview: Woche 1-2 im Alltag', desc: 'Grundlagen aus Begrüßung, Familie, Essen, Zeit und Zahlen in Alltagsszenen anwenden', targetMin: 28, targetScore: 84, review: false, cultural: null }, + { week: 4, day: 2, num: 36, type: 'conversation', title: 'Alltagsszene: Besuch am Nachmittag', desc: 'Besuch empfangen, hereinbitten und etwas anbieten', targetMin: 22, targetScore: 78, review: false, cultural: 'Gastfreundschaft ist oft praktischer als formelle Höflichkeit.' }, + { week: 4, day: 2, num: 37, type: 'review', title: 'Spiralreview: Gefühle & Gesundheit', desc: 'Gefühle, Müdigkeit, Schmerzen, Bitte und Hilfe gezielt reaktivieren', targetMin: 26, targetScore: 84, review: false, cultural: null }, + { week: 4, day: 3, num: 38, type: 'conversation', title: 'Längeres Gespräch: Planung und Familie', desc: 'Tagesplanung mit Reihenfolge und Familie in längeren Antworten verbinden', targetMin: 24, targetScore: 78, review: false, cultural: null }, + { week: 4, day: 3, num: 39, type: 'review', title: 'Gesamtwiederholung mit Fehlerclustern', desc: 'Zeit, Bitte, Frage und Beziehungssätze gezielt kontrastieren', targetMin: 30, targetScore: 82, review: false, cultural: null }, + { week: 4, day: 4, num: 40, type: 'conversation', title: 'Praktische Übung: Markt + Familie', desc: 'Auf dem Markt für die Familie einkaufen und den Grund erklären', targetMin: 24, targetScore: 78, review: false, cultural: 'Einkaufssprache wird nützlicher, wenn sie mit Familie und Fürsorge verbunden ist.' }, + { week: 4, day: 4, num: 41, type: 'vocab', title: 'Abschlusstest Wortschatz aktiv', desc: 'Kernwortschatz der Grundphase in beide Richtungen abrufen', targetMin: 20, targetScore: 84, review: true, cultural: null }, + { week: 4, day: 5, num: 42, type: 'review', title: 'Abschlussprüfung Grundphase', desc: 'Dialog, Wortschatz und freie Mini-Antworten der Grundphase prüfen', targetMin: 32, targetScore: 84, review: false, cultural: 'Die Prüfung misst Verständlichkeit und Handlungssicherheit, nicht perfekte Grammatik.' }, + { week: 4, day: 5, num: 43, type: 'culture', title: 'Kultur: Höflichkeit, Familie, Alltag', desc: 'Respekt, indirekte Bitte und Familiennähe sprachlich einordnen', targetMin: 16, targetScore: 0, review: false, cultural: 'Kulturelles Verständnis hilft, Sätze passend und nicht nur wörtlich zu verwenden.' } +]; + +export const BISAYA_LESSONS_24_43_BY_NUMBER = Object.fromEntries( + BISAYA_LESSONS_24_43.map((lesson) => [lesson.num, lesson]) +); + +export const BISAYA_RELATIONSHIP_ANCHOR_DIDACTICS = { + 'Gefühle & Zuneigung': { + learningGoals: [ + 'Wichtige Gefühle und Zuneigungsformeln sicher unterscheiden.', + 'Freundliche Nähe, Liebe und Vermissen sprachlich ausdrücken.', + 'Zwischen familiär-warmer und direkter romantischer Formulierung unterscheiden.', + 'Beziehungssätze als frühe Motivation nutzen und später grammatisch vertiefen.' + ], + corePatterns: [ + { target: 'Palangga taka.', gloss: 'Ich hab dich lieb. / Ich liebe dich.' }, + { target: 'Gihigugma tika.', gloss: 'Ich liebe dich.' }, + { target: 'Ganahan ko nimo.', gloss: 'Ich mag dich. / Ich habe dich gern.' }, + { target: 'Gimingaw ko nimo.', gloss: 'Ich vermisse dich.' }, + { target: 'Mingaw ko nimo.', gloss: 'Ich vermisse dich. (kurz/alltäglich)' }, + { target: 'Gusto ko nga naa ko nimo.', gloss: 'Ich möchte bei dir sein.' }, + { target: 'Gusto ko nga magkuyog ta.', gloss: 'Ich möchte, dass wir zusammen Zeit verbringen.' }, + { target: 'Kanunay ko naghunahuna nimo.', gloss: 'Ich denke oft an dich.' }, + { target: 'Amping kanunay.', gloss: 'Pass immer auf dich auf.' }, + { target: 'Nalipay ko nga nakita ka.', gloss: 'Ich freue mich, dich zu sehen.' } + ], + grammarFocus: [ + { + title: 'Palangga taka vs. Gihigugma tika', + text: 'Palangga taka ist in vielen Beziehungs- und Familienkontexten warm und natürlich. Gihigugma tika ist direkter und sollte bewusst eingesetzt werden.', + example: 'Palangga taka. / Gihigugma tika.' + }, + { + title: 'ko, nimo und tika/taka', + text: 'ko markiert mich/ich, nimo bezieht sich auf dich, und tika/taka bündelt ich + dich in Nähe- und Liebessätzen.', + example: 'Gimingaw ko nimo. Palangga taka.' + }, + { + title: 'Wünsche mit gusto ko nga', + text: 'Mit gusto ko nga formulierst du einen Wunsch, der danach als kleiner Satz weitergeht.', + example: 'Gusto ko nga naa ko nimo.' + } + ], + speakingPrompts: [ + { + title: 'Nähe ausdrücken', + prompt: 'Sage einer nahen Person, dass du sie liebst oder lieb hast und sie vermisst.', + cue: 'Palangga taka. Gimingaw ko nimo.' + }, + { + title: 'Beziehungswunsch', + prompt: 'Sage, dass du bei der Person sein möchtest und oft an sie denkst.', + cue: 'Gusto ko nga naa ko nimo. Kanunay ko naghunahuna nimo.' + } + ], + practicalTasks: [ + { + title: 'Beziehungsanker', + text: 'Wähle drei Sätze, die du real benutzen würdest, und sprich sie langsam, natürlich und ohne deutsche Zwischenhilfe.' + } + ] + } +}; + +export const BISAYA_DIDACTICS_24_43 = { + 'Gefühle im Alltag': { + learningGoals: [ + 'Eigene Gefühle mit kurzen, natürlichen Sätzen ausdrücken.', + 'Auf Gefühle einer nahen Person passend reagieren.', + 'Nähe und Alltag nicht isoliert, sondern im Gespräch verbinden.' + ], + corePatterns: [ + { target: 'Naguol ko gamay.', gloss: 'Ich bin ein bisschen besorgt.' }, + { target: 'Nalipay ko nga nakita ka.', gloss: 'Ich freue mich, dich zu sehen.' }, + { target: 'Okay ra ko.', gloss: 'Mir geht es okay.' }, + { target: 'Kapoy ko karon.', gloss: 'Ich bin jetzt müde.' }, + { target: 'Gimingaw ko nimo.', gloss: 'Ich vermisse dich.' }, + { target: 'Kanunay ko naghunahuna nimo.', gloss: 'Ich denke oft an dich.' } + ], + grammarFocus: [ + { title: 'Gefühl + ko', text: 'Viele Gefühlsaussagen nutzen das Muster Gefühl oder Zustand plus ko.', example: 'Nalipay ko. Naguol ko.' }, + { title: 'nimo für dich', text: 'Bei Nähe und Beziehung taucht nimo als Bezug auf die andere Person auf.', example: 'Gimingaw ko nimo.' } + ], + speakingPrompts: [ + { title: 'Zustand und Rückfrage', prompt: 'Sage, wie es dir geht, und frage dann nach der anderen Person.', cue: 'Kapoy ko karon. Kumusta ka?' }, + { title: 'Beziehungsanker', prompt: 'Sage, dass du jemanden vermisst und oft an ihn oder sie denkst.', cue: 'Gimingaw ko nimo. Kanunay ko naghunahuna nimo.' } + ], + practicalTasks: [ + { title: 'Gefühlsantwort', text: 'Wähle drei Gefühle und bilde zu jedem eine kurze Antwort, die du einer nahen Person sagen könntest.' } + ] + }, + 'Gefühlswortschatz & Reaktionen': { + learningGoals: [ + 'Zentrale Gefühlswörter und kurze Reaktionen sicher erkennen.', + 'Zwischen Sorge, Freude, Müdigkeit und Vermissen unterscheiden.', + 'Zu einfachen Situationen eine passende Reaktion auswählen.' + ], + corePatterns: [ + { target: 'lipay', gloss: 'froh / glücklich' }, + { target: 'guol', gloss: 'besorgt / traurig' }, + { target: 'kapoy', gloss: 'müde' }, + { target: 'mingaw', gloss: 'vermissend / einsam' }, + { target: 'Ayaw kabalaka.', gloss: 'Mach dir keine Sorgen.' }, + { target: 'Naa ra ko diri.', gloss: 'Ich bin hier.' }, + { target: 'Amping kanunay.', gloss: 'Pass immer auf dich auf.' }, + { target: 'Gusto ko nga magkuyog ta.', gloss: 'Ich möchte, dass wir zusammen Zeit verbringen.' } + ], + speakingPrompts: [ + { title: 'Passend reagieren', prompt: 'Reagiere auf Sorge, Müdigkeit und Vermissen mit je einem kurzen Satz.', cue: 'Ayaw kabalaka. Magpahuway sa. Gimingaw ko nimo.' } + ], + practicalTasks: [ + { title: 'Situationskarten', text: 'Ordne die Wörter lipay, guol, kapoy und mingaw vier Alltagssituationen zu und sprich eine passende Reaktion.' } + ] + }, + 'Gesundheit & Wohlbefinden': { + learningGoals: [ + 'Einfache Beschwerden erfragen und beantworten.', + 'Fürsorglich zu Ruhe, Wasser oder Medizin überleiten.', + 'Gesundheitssätze mit bereits bekannten Familienmustern verbinden.' + ], + corePatterns: [ + { target: 'Sakit akong ulo.', gloss: 'Mein Kopf tut weh.' }, + { target: 'Sakit imong tiyan?', gloss: 'Tut dein Bauch weh?' }, + { target: 'Mas maayo na ka?', gloss: 'Geht es dir schon besser?' }, + { target: 'Magpahuway sa.', gloss: 'Ruh dich erst einmal aus.' }, + { target: 'Uminom og tubig.', gloss: 'Trink Wasser.' }, + { target: 'Niinom ka og tambal?', gloss: 'Hast du Medizin genommen?' } + ], + grammarFocus: [ + { title: 'akong / imong', text: 'Mit akong und imong sagst du mein/dein vor einem Körperteil.', example: 'akong ulo, imong tiyan' } + ], + speakingPrompts: [ + { title: 'Pflege-Mini-Dialog', prompt: 'Frage nach einer Beschwerde und biete Ruhe oder Wasser an.', cue: 'Sakit imong ulo? Magpahuway sa. Uminom og tubig.' } + ], + practicalTasks: [ + { title: 'Gesundheitscheck', text: 'Sprich drei kurze Pflegefragen und drei passende Antworten laut.' } + ] + }, + 'Körper & Symptome': { + learningGoals: [ + 'Häufige Körperstellen und Symptome erkennen.', + 'Beschwerden mit Ort und Stärke verbinden.', + 'Pflegewortschatz in kurzen Sätzen verwenden.' + ], + corePatterns: [ + { target: 'ulo', gloss: 'Kopf' }, + { target: 'tiyan', gloss: 'Bauch' }, + { target: 'ngipon', gloss: 'Zahn' }, + { target: 'hilanat', gloss: 'Fieber' }, + { target: 'ubo', gloss: 'Husten' }, + { target: 'kasakit', gloss: 'Schmerz' }, + { target: 'tambal', gloss: 'Medizin' }, + { target: 'doktor', gloss: 'Arzt / Ärztin' } + ], + speakingPrompts: [ + { title: 'Beschwerde lokalisieren', prompt: 'Sage, wo es weh tut, und frage nach Medizin.', cue: 'Sakit akong tiyan. Asa ang tambal?' } + ], + practicalTasks: [ + { title: 'Körperrunde', text: 'Zeige auf Kopf, Bauch und Zahn und sage je einen kurzen Satz mit sakit.' } + ] + }, + 'Höflichkeitsformen praktisch': { + learningGoals: [ + 'Bitten, Entschuldigung und weiche Reaktionen unterscheiden.', + 'Direkte Aussagen höflicher formulieren.', + 'Höflichkeit in Konflikt- und Beziehungssituationen anwenden.' + ], + corePatterns: [ + { target: 'Palihug.', gloss: 'Bitte.' }, + { target: 'Pasayloa ko.', gloss: 'Entschuldige mich.' }, + { target: 'Pwede ko mangutana?', gloss: 'Darf ich fragen?' }, + { target: 'Sige lang.', gloss: 'Schon okay.' }, + { target: 'Dili lang sa karon.', gloss: 'Jetzt lieber nicht.' }, + { target: 'Salamat sa pagsabot.', gloss: 'Danke fürs Verstehen.' } + ], + grammarFocus: [ + { title: 'Weich ablehnen', text: 'Dili lang sa karon ist oft sozial weicher als ein direktes Nein.', example: 'Dili lang sa karon. Sunod na lang.' }, + { title: 'Bitte und Reparatur', text: 'Palihug und Pasayloa ko helfen, wenn du etwas brauchst oder einen Fehler korrigierst.', example: 'Pasayloa ko. Palihug ka mubalik?' } + ], + speakingPrompts: [ + { title: 'Höflich korrigieren', prompt: 'Entschuldige dich, bitte um Wiederholung und bedanke dich.', cue: 'Pasayloa ko. Palihug ka mubalik? Salamat.' } + ], + practicalTasks: [ + { title: 'Direkt zu höflich', text: 'Forme drei direkte deutsche Sätze in weiche Bisaya-Reaktionen um.' } + ] + }, + 'Bitten & Nachfragen': { + learningGoals: [ + 'Bei Verständnisproblemen sicher reagieren.', + 'Um Hilfe, Wiederholung und langsamere Sprache bitten.', + 'Nach Bedeutung und nächstem Schritt fragen.' + ], + corePatterns: [ + { target: 'Wala ko kasabot.', gloss: 'Ich verstehe nicht.' }, + { target: 'Palihug ka mubalik?', gloss: 'Kannst du das bitte wiederholen?' }, + { target: 'Hinay-hinay lang.', gloss: 'Bitte langsam.' }, + { target: 'Tabangi ko, palihug.', gloss: 'Hilf mir bitte.' }, + { target: 'Unsay pasabot ani?', gloss: 'Was bedeutet das?' }, + { target: 'Unsa ang sunod?', gloss: 'Was kommt als Nächstes?' } + ], + speakingPrompts: [ + { title: 'Reparaturdialog', prompt: 'Sage, dass du nicht verstehst, bitte um langsames Wiederholen und frage nach der Bedeutung.', cue: 'Wala ko kasabot. Hinay-hinay lang. Unsay pasabot ani?' } + ], + practicalTasks: [ + { title: 'Notfallanker', text: 'Übe die sechs Sätze in wechselnder Reihenfolge, bis du sie ohne Lesen sagen kannst.' } + ] + }, + 'Kinder & Familie': { + learningGoals: [ + 'Mit Kindern kurze und klare Alltagssätze sprechen.', + 'Essen, Schule und Fertigsein in einfachen Fragen verbinden.', + 'Freundliche Aufforderungen ohne harten Ton bilden.' + ], + corePatterns: [ + { target: 'Ali diri.', gloss: 'Komm her.' }, + { target: 'Andam na ka?', gloss: 'Bist du fertig?' }, + { target: 'Nikaon na ka?', gloss: 'Hast du schon gegessen?' }, + { target: 'Asa imong bag?', gloss: 'Wo ist deine Tasche?' }, + { target: 'Magtuon ta.', gloss: 'Lass uns lernen.' }, + { target: 'Matulog na ta.', gloss: 'Lass uns schlafen gehen.' } + ], + speakingPrompts: [ + { title: 'Kind ansprechen', prompt: 'Frage ein Kind nach Essen, Tasche und Fertigsein.', cue: 'Nikaon na ka? Asa imong bag? Andam na ka?' } + ], + practicalTasks: [ + { title: 'Kinder-Mini-Szene', text: 'Spiele eine Szene vor der Schule: Tasche suchen, Essen fragen, losgehen.' } + ] + }, + 'Kinder, Spiel & Routine': { + learningGoals: [ + 'Spiel, Lernen und Schlaf als Routine verbinden.', + 'Zwischen Aktivität und Abschluss unterscheiden.', + 'Eine kurze Abendroutine mit Kindersprache bilden.' + ], + corePatterns: [ + { target: 'Magdula ta.', gloss: 'Lass uns spielen.' }, + { target: 'Ganahan ka modula?', gloss: 'Möchtest du spielen?' }, + { target: 'Human na ka?', gloss: 'Bist du fertig?' }, + { target: 'Lingaw ka?', gloss: 'Hast du Spaß?' }, + { target: 'Magtuon ta gamay.', gloss: 'Lass uns ein bisschen lernen.' }, + { target: 'Katulog og maayo.', gloss: 'Schlaf gut.' } + ], + speakingPrompts: [ + { title: 'Abendroutine', prompt: 'Verbinde Spiel beenden, kurz lernen und schlafen gehen.', cue: 'Human na ka? Magtuon ta gamay. Katulog og maayo.' } + ], + practicalTasks: [ + { title: 'Routinekette', text: 'Sprich eine Kette aus Spielen, Fertigsein, Lernen und Schlafen.' } + ] + }, + 'Woche 3 - Intensivwiederholung': { + learningGoals: [ + 'Gefühle, Gesundheit, Kinder und Höflichkeit gemischt abrufen.', + 'Ähnliche Sätze in wechselnden Situationen unterscheiden.', + 'Schneller von Wiedererkennung zu eigener Antwort wechseln.' + ], + corePatterns: [ + 'Gimingaw ko nimo.', + 'Sakit imong ulo?', + 'Andam na ka?', + 'Pasayloa ko.', + 'Magpahuway sa.', + 'Hinay-hinay lang.' + ], + speakingPrompts: [ + { title: 'Schnelle Situationsantworten', prompt: 'Reagiere kurz auf: vermissen, Kopfschmerz, Kind ist nicht fertig, du verstehst nicht.', cue: 'Gimingaw ko nimo. Magpahuway sa. Andam na ka? Wala ko kasabot.' } + ], + practicalTasks: [ + { title: 'Mischkarten', text: 'Mische Karten aus Gefühl, Gesundheit, Kind und Bitte; antworte jeweils mit einem Satz.' } + ] + }, + 'Woche 3 - Checkpoint': { + learningGoals: [ + 'Die erste Alltagserweiterung diagnostisch prüfen.', + 'Kernmuster aus Woche 3 aktiv in beide Richtungen abrufen.', + 'Mindestens eine freie Antwort zu einer realen Szene bilden.' + ], + corePatterns: [ + 'Naguol ko gamay.', + 'Mas maayo na ka?', + 'Pwede ko mangutana?', + 'Ali diri.', + 'Magdula ta.', + 'Amping kanunay.' + ], + speakingPrompts: [ + { title: 'Freie Antwort', prompt: 'Eine nahe Person ist müde und traurig. Reagiere mit zwei fürsorglichen Sätzen.', cue: 'Magpahuway sa. Naa ra ko diri.' } + ], + practicalTasks: [ + { title: 'Selbstcheck', text: 'Markiere alle Sätze, die du ohne Lesen sagen kannst, und wiederhole die unsicheren sofort im SRS.' } + ] + }, + 'Alltagsszene: Zuhause morgens': { + learningGoals: [ + 'Eine konkrete Morgenszene in mehreren Schritten sprechen.', + 'Familie, Essen, Schule und Aufgaben verbinden.', + 'Alte Grundlagen in einem neuen Ablauf anwenden.' + ], + corePatterns: [ + { target: 'Maayong buntag.', gloss: 'Guten Morgen.' }, + { target: 'Bangon na.', gloss: 'Steh jetzt auf.' }, + { target: 'Nikaon na ka?', gloss: 'Hast du schon gegessen?' }, + { target: 'Andam na ka sa eskwela?', gloss: 'Bist du bereit für die Schule?' }, + { target: 'Naa koy buhaton karon.', gloss: 'Ich habe heute etwas zu tun.' }, + { target: 'Pagkahuman, mouli ta.', gloss: 'Danach gehen wir nach Hause.' } + ], + grammarFocus: [ + { title: 'Ablaufwörter', text: 'Mit karon, unya und pagkahuman strukturierst du kurze Alltagsabläufe.', example: 'Karon... Unya... Pagkahuman...' } + ], + speakingPrompts: [ + { title: 'Morgenablauf', prompt: 'Bilde einen Ablauf aus Aufstehen, Essen, Schule und Aufgabe.', cue: 'Maayong buntag. Bangon na. Nikaon na ka? Andam na ka sa eskwela?' } + ], + practicalTasks: [ + { title: '5-Satz-Morgen', text: 'Sprich eine Morgenszene mit fünf Sätzen ohne deutsche Zwischenhilfe.' } + ] + }, + 'Spiralreview: Woche 1-2 im Alltag': { + learningGoals: [ + 'Begrüßung, Familie, Essen, Zeit und Zahlen im Alltag neu kombinieren.', + 'Alte Muster nicht isoliert, sondern in einer Szene abrufen.', + 'Frühe Unsicherheiten vor der nächsten Phase sichtbar machen.' + ], + corePatterns: [ + 'Kumusta ka?', + 'Si Nanay.', + 'Nikaon na ka?', + 'Karon', + 'Ugma', + 'Baynte' + ], + speakingPrompts: [ + { title: 'Alte Muster neu', prompt: 'Begrüße jemanden, frage nach Essen und nenne einen Preis oder Zeitpunkt.', cue: 'Kumusta ka? Nikaon na ka? Baynte pesos.' } + ], + practicalTasks: [ + { title: 'Spiralrunde', text: 'Nimm je zwei Sätze aus Woche 1 und Woche 2 und baue daraus eine Alltagsszene.' } + ] + }, + 'Alltagsszene: Besuch am Nachmittag': { + learningGoals: [ + 'Einen Besuch freundlich eröffnen.', + 'Hereinbitten, Sitzplatz anbieten und Getränk/Essen anbieten.', + 'Nähe und Gastfreundschaft mit bekannten Höflichkeitsformen verbinden.' + ], + corePatterns: [ + { target: 'Maayong hapon.', gloss: 'Guten Nachmittag.' }, + { target: 'Sulod lang.', gloss: 'Komm ruhig herein.' }, + { target: 'Lingkod sa.', gloss: 'Setz dich erst einmal.' }, + { target: 'Gusto ka og tubig?', gloss: 'Möchtest du Wasser?' }, + { target: 'Gimingaw mi nimo.', gloss: 'Wir haben dich vermisst.' }, + { target: 'Salamat sa pag-anhi.', gloss: 'Danke fürs Kommen.' } + ], + speakingPrompts: [ + { title: 'Gast begrüßen', prompt: 'Begrüße einen Gast, bitte ihn herein und biete Wasser an.', cue: 'Maayong hapon. Sulod lang. Gusto ka og tubig?' } + ], + practicalTasks: [ + { title: 'Besuchsszene', text: 'Spiele Gastgeber und Gast abwechselnd mit mindestens vier Sätzen.' } + ] + }, + 'Spiralreview: Gefühle & Gesundheit': { + learningGoals: [ + 'Gefühle und Gesundheitsmuster blockübergreifend wiederholen.', + 'Müdigkeit, Schmerz, Bitte und Hilfe passend beantworten.', + 'Zuneigung und Fürsorge in kurzen Reaktionen verbinden.' + ], + corePatterns: [ + 'Kapoy ko.', + 'Sakit akong ulo.', + 'Tabangi ko, palihug.', + 'Ayaw kabalaka.', + 'Magpahuway sa.', + 'Palangga taka.' + ], + speakingPrompts: [ + { title: 'Fürsorgeantwort', prompt: 'Eine Person sagt, sie ist müde und hat Kopfschmerzen. Reagiere fürsorglich.', cue: 'Ayaw kabalaka. Magpahuway sa. Uminom og tubig.' } + ], + practicalTasks: [ + { title: 'Reaktionspaare', text: 'Bilde fünf Paare aus Problem und Antwort, z. B. kapoy -> magpahuway sa.' } + ] + }, + 'Längeres Gespräch: Planung und Familie': { + learningGoals: [ + 'Mehrere Alltagsschritte in Reihenfolge erzählen.', + 'Familie, Wege und Aufgaben in einem längeren Gespräch verbinden.', + 'Erste freie Antworten über vier bis sechs Sätze bilden.' + ], + corePatterns: [ + { target: 'Una, moadto ko sa merkado.', gloss: 'Zuerst gehe ich zum Markt.' }, + { target: 'Pagkahuman, kuhaon nako ang bata.', gloss: 'Danach hole ich das Kind ab.' }, + { target: 'Unya, mouli mi sa balay.', gloss: 'Später gehen wir nach Hause.' }, + { target: 'Aduna koy plano karon.', gloss: 'Ich habe heute einen Plan.' }, + { target: 'Gusto ko nga naa ko nimo.', gloss: 'Ich möchte bei dir sein.' }, + { target: 'Magkita ta ugma.', gloss: 'Wir sehen uns morgen.' } + ], + grammarFocus: [ + { title: 'Reihenfolge mit una/pagkahuman/unya', text: 'Diese Wörter machen aus Einzelsätzen einen Ablauf.', example: 'Una... Pagkahuman... Unya...' }, + { title: 'gusto ko nga', text: 'Mit gusto ko nga leitest du einen Wunsch mit einem Folgesatz ein.', example: 'Gusto ko nga naa ko nimo.' } + ], + speakingPrompts: [ + { title: 'Tagesplan erzählen', prompt: 'Erzähle einen Tagesplan mit drei Schritten und einem Wunsch.', cue: 'Una... Pagkahuman... Unya... Gusto ko nga...' } + ], + practicalTasks: [ + { title: '6-Satz-Plan', text: 'Sprich sechs Sätze über deinen heutigen oder morgigen Plan.' } + ] + }, + 'Gesamtwiederholung mit Fehlerclustern': { + learningGoals: [ + 'Typische Verwechslungen aus Zeit, Bitte, Frage und Nähe erkennen.', + 'Ähnliche Formen direkt gegeneinander trainieren.', + 'Vor der Grundphasenprüfung schwache Muster isolieren.' + ], + corePatterns: [ + 'Ni-adto ko ganiha.', + 'Mo-adto ko ugma.', + 'Palihug ka mubalik?', + 'Pwede ko mangutana?', + 'Gimingaw ko nimo.', + 'Gusto ko nga naa ko nimo.' + ], + grammarFocus: [ + { title: 'ni- vs. mo-', text: 'ni- blickt zurück, mo- nach vorn oder auf eine Absicht.', example: 'Ni-adto ko ganiha. Mo-adto ko ugma.' }, + { title: 'Bitte vs. Frage', text: 'Palihug ka mubalik? bittet um Wiederholung; Pwede ko mangutana? bittet um Erlaubnis zu fragen.', example: 'Palihug ka mubalik? / Pwede ko mangutana?' } + ], + speakingPrompts: [ + { title: 'Kontrastdrill', prompt: 'Sage je einen Satz für gestern, morgen, Bitte um Wiederholung und Beziehungswunsch.', cue: 'Ni-adto ko ganiha. Mo-adto ko ugma. Palihug ka mubalik? Gusto ko nga naa ko nimo.' } + ], + practicalTasks: [ + { title: 'Fehlerprotokoll', text: 'Notiere drei Verwechslungen und bilde jeweils zwei Kontrastsätze.' } + ] + }, + 'Praktische Übung: Markt + Familie': { + learningGoals: [ + 'Eine Marktszene mit Familienbedarf verbinden.', + 'Preis, Menge und Kaufgrund in kurzen Sätzen ausdrücken.', + 'Alltagssprache praktisch statt isoliert anwenden.' + ], + corePatterns: [ + { target: 'Tagpila ni?', gloss: 'Wie viel kostet das?' }, + { target: 'Pwede duha kabuok?', gloss: 'Gehen zwei Stück?' }, + { target: 'Mupalit ko para sa pamilya.', gloss: 'Ich kaufe für die Familie.' }, + { target: 'Kinahanglan nako og tubig.', gloss: 'Ich brauche Wasser.' }, + { target: 'Sige, kuhaon nako.', gloss: 'Okay, ich nehme es.' }, + { target: 'Salamat kaayo.', gloss: 'Vielen Dank.' } + ], + speakingPrompts: [ + { title: 'Marktdialog', prompt: 'Frage nach Preis und Menge und sage, dass du für die Familie kaufst.', cue: 'Tagpila ni? Pwede duha kabuok? Mupalit ko para sa pamilya.' } + ], + practicalTasks: [ + { title: 'Einkaufsliste', text: 'Wähle drei Dinge aus und sprich je einen Satz zu Preis, Menge oder Grund.' } + ] + }, + 'Abschlusstest Wortschatz aktiv': { + learningGoals: [ + 'Kernwortschatz der ersten vier Wochen aktiv abrufen.', + 'Wörter und kurze Sätze in beide Richtungen trainieren.', + 'SRS-relevante Schwächen für die Wiederholung markieren.' + ], + corePatterns: [ + 'Kumusta', + 'Palihug', + 'Pamilya', + 'Tubig', + 'Karon', + 'Ugma', + 'Tambal', + 'Gimingaw ko nimo' + ], + speakingPrompts: [ + { title: 'Aktiver Abruf', prompt: 'Bilde aus vier zufälligen Wörtern je einen kurzen Satz.', cue: 'Tubig -> Gusto ka og tubig?' } + ], + practicalTasks: [ + { title: 'Beide Richtungen', text: 'Übersetze zehn Kernwörter Deutsch -> Bisaya und Bisaya -> Deutsch.' } + ] + }, + 'Abschlussprüfung Grundphase': { + learningGoals: [ + 'Die Grundphase in Dialog, Wortschatz und freier Antwort prüfen.', + 'Alltag, Beziehung, Fürsorge und Reparatursprache kombinieren.', + 'Verständliche Antworten über mehrere Sätze produzieren.' + ], + corePatterns: [ + 'Kumusta ka?', + 'Nikaon na ka?', + 'Wala ko kasabot.', + 'Mas maayo na ka?', + 'Gusto ko nga naa ko nimo.', + 'Mupalit ko para sa pamilya.' + ], + speakingPrompts: [ + { title: 'Mini-Dialog 1', prompt: 'Begrüße, frage nach Essen und reagiere fürsorglich.', cue: 'Kumusta ka? Nikaon na ka? Magpahuway sa.' }, + { title: 'Mini-Dialog 2', prompt: 'Bitte um Wiederholung und sage danach einen Beziehungs- oder Familienwunsch.', cue: 'Palihug ka mubalik? Gusto ko nga naa ko nimo.' } + ], + practicalTasks: [ + { title: 'Prüfungsszene', text: 'Sprich zwei kurze Szenen: zuhause morgens und Markt für Familie.' } + ] + }, + 'Kultur: Höflichkeit, Familie, Alltag': { + learningGoals: [ + 'Höflichkeit und Familiennähe kulturell einordnen.', + 'Indirekte Bitte und weiche Ablehnung verstehen.', + 'Sprachliche Wärme passend statt wörtlich einsetzen.' + ], + corePatterns: [ + { target: 'respeto', gloss: 'Respekt' }, + { target: 'amping', gloss: 'Pass auf dich auf' }, + { target: 'palihug', gloss: 'bitte' }, + { target: 'pakikisama', gloss: 'soziale Harmonie / Miteinander' }, + { target: 'Dili lang sa karon.', gloss: 'Jetzt lieber nicht.' }, + { target: 'Palangga taka.', gloss: 'Ich hab dich lieb / Ich liebe dich.' } + ], + grammarFocus: [ + { title: 'Nicht nur wörtlich übersetzen', text: 'Ein Satz kann grammatisch richtig sein und trotzdem sozial unpassend klingen. Kontext entscheidet.', example: 'Palangga taka kann Beziehung und Familie warm ausdrücken.' } + ], + speakingPrompts: [ + { title: 'Kulturell passend reagieren', prompt: 'Wähle eine weiche Antwort auf eine Einladung, wenn du heute nicht kannst.', cue: 'Dili lang sa karon. Sunod na lang. Salamat.' } + ], + practicalTasks: [ + { title: 'Weiterlernplan', text: 'Notiere drei Situationen, in denen du Bisaya mit einer nahen Person wirklich verwenden willst.' } + ] + } +}; diff --git a/backend/scripts/create-bisaya-course-content.js b/backend/scripts/create-bisaya-course-content.js index 38863e6..a6284a3 100644 --- a/backend/scripts/create-bisaya-course-content.js +++ b/backend/scripts/create-bisaya-course-content.js @@ -13,6 +13,7 @@ import VocabCourseLesson from '../models/community/vocab_course_lesson.js'; import VocabGrammarExercise from '../models/community/vocab_grammar_exercise.js'; import VocabCourse from '../models/community/vocab_course.js'; import User from '../models/community/user.js'; +import { BISAYA_DIDACTICS_24_43, BISAYA_RELATIONSHIP_ANCHOR_DIDACTICS } from './bisaya-course-plan-24-43.js'; import { BISAYA_PHASE3_DIDACTICS } from './bisaya-course-phase3-extension.js'; import { BISAYA_PHASE4_DIDACTICS } from './bisaya-course-phase4-extension.js'; import { BISAYA_PHASE5_DIDACTICS } from './bisaya-course-phase5-extension.js'; @@ -25,6 +26,8 @@ function withTypeName(exerciseTypeName, exercise) { } const GENERATED_BISAYA_DIDACTICS = { + ...BISAYA_RELATIONSHIP_ANCHOR_DIDACTICS, + ...BISAYA_DIDACTICS_24_43, ...BISAYA_PHASE3_DIDACTICS, ...BISAYA_PHASE4_DIDACTICS, ...BISAYA_PHASE5_DIDACTICS diff --git a/backend/scripts/create-bisaya-course.js b/backend/scripts/create-bisaya-course.js index fa501f2..17bec27 100755 --- a/backend/scripts/create-bisaya-course.js +++ b/backend/scripts/create-bisaya-course.js @@ -12,6 +12,7 @@ import VocabCourseLesson from '../models/community/vocab_course_lesson.js'; import User from '../models/community/user.js'; import crypto from 'crypto'; import { getBisayaLessonPedagogy } from './bisaya-course-phase2-pedagogy.js'; +import { BISAYA_DIDACTICS_24_43, BISAYA_LESSONS_24_43, BISAYA_RELATIONSHIP_ANCHOR_DIDACTICS } from './bisaya-course-plan-24-43.js'; import { BISAYA_PHASE3_DIDACTICS, BISAYA_PHASE3_LESSONS } from './bisaya-course-phase3-extension.js'; import { BISAYA_PHASE4_DIDACTICS, BISAYA_PHASE4_LESSONS } from './bisaya-course-phase4-extension.js'; import { BISAYA_PHASE5_DIDACTICS, BISAYA_PHASE5_LESSONS } from './bisaya-course-phase5-extension.js'; @@ -846,6 +847,8 @@ const LESSON_DIDACTICS = { 'Mingaw ko nimo' ] }, + ...BISAYA_RELATIONSHIP_ANCHOR_DIDACTICS, + ...BISAYA_DIDACTICS_24_43, ...BISAYA_PHASE3_DIDACTICS, ...BISAYA_PHASE4_DIDACTICS, ...BISAYA_PHASE5_DIDACTICS @@ -969,107 +972,7 @@ const LESSONS = [ targetMin: 15, targetScore: 80, review: true, cultural: null }, - // WOCHE 3: Vertiefung - { week: 3, day: 1, num: 24, type: 'conversation', title: 'Gefühle & Emotionen', - desc: 'Nalipay, nasubo, nahadlok, naguol', - targetMin: 15, targetScore: 80, review: false, - cultural: 'Emotionen auszudrücken ist wichtig für echte Verbindung.' }, - - { week: 3, day: 1, num: 25, type: 'vocab', title: 'Gefühle & Emotionen', - desc: 'Wörter für verschiedene Gefühle', - targetMin: 20, targetScore: 85, review: true, - cultural: null }, - - { week: 3, day: 2, num: 26, type: 'conversation', title: 'Gesundheit & Wohlbefinden', - desc: 'Sakit, maayo, tambal, doktor', - targetMin: 15, targetScore: 80, review: false, - cultural: null }, - - { week: 3, day: 2, num: 27, type: 'vocab', title: 'Körper & Gesundheit', - desc: 'Wörter rund um den Körper und Gesundheit', - targetMin: 20, targetScore: 85, review: true, - cultural: null }, - - { week: 3, day: 3, num: 28, type: 'grammar', title: 'Höflichkeitsformen', - desc: 'Palihug, Pwede, Tabang', - targetMin: 20, targetScore: 75, review: true, - cultural: 'Höflichkeit ist extrem wichtig in der philippinischen Kultur.' }, - - { week: 3, day: 3, num: 29, type: 'conversation', title: 'Bitten & Fragen', - desc: 'Wie man höflich fragt und bittet', - targetMin: 15, targetScore: 80, review: false, - cultural: null }, - - { week: 3, day: 4, num: 30, type: 'conversation', title: 'Kinder & Familie', - desc: 'Gespräche mit und über Kinder', - targetMin: 15, targetScore: 80, review: false, - cultural: 'Kinder sind sehr wichtig in philippinischen Familien.' }, - - { week: 3, day: 4, num: 31, type: 'vocab', title: 'Kinder & Spiel', - desc: 'Wörter für Kinder und Spielsachen', - targetMin: 20, targetScore: 85, review: true, - cultural: null }, - - { week: 3, day: 5, num: 32, type: 'review', title: 'Woche 3 - Wiederholung', - desc: 'Wiederhole alle Inhalte der dritten Woche', - targetMin: 30, targetScore: 80, review: false, - cultural: null }, - - { week: 3, day: 5, num: 33, type: 'vocab', title: 'Woche 3 - Vokabeltest', - desc: 'Teste dein Wissen aus Woche 3', - targetMin: 15, targetScore: 80, review: true, - cultural: null }, - - // WOCHE 4: Freies Sprechen - { week: 4, day: 1, num: 34, type: 'conversation', title: 'Freies Gespräch - Thema 1', - desc: 'Übe freies Sprechen zu verschiedenen Themen', - targetMin: 20, targetScore: 75, review: false, - cultural: 'Fehler sind okay! Philippiner schätzen das Bemühen.' }, - - { week: 4, day: 1, num: 35, type: 'vocab', title: 'Wiederholung - Woche 1 & 2', - desc: 'Wiederhole wichtige Vokabeln aus den ersten beiden Wochen', - targetMin: 25, targetScore: 85, review: true, - cultural: null }, - - { week: 4, day: 2, num: 36, type: 'conversation', title: 'Freies Gespräch - Thema 2', - desc: 'Weitere Übung im freien Sprechen', - targetMin: 20, targetScore: 75, review: false, - cultural: null }, - - { week: 4, day: 2, num: 37, type: 'vocab', title: 'Wiederholung - Woche 3', - desc: 'Wiederhole wichtige Vokabeln aus Woche 3', - targetMin: 25, targetScore: 85, review: true, - cultural: null }, - - { week: 4, day: 3, num: 38, type: 'conversation', title: 'Komplexere Gespräche', - desc: 'Längere Gespräche zu verschiedenen Themen', - targetMin: 25, targetScore: 75, review: false, - cultural: 'Je mehr du sprichst, desto besser wirst du!' }, - - { week: 4, day: 3, num: 39, type: 'review', title: 'Gesamtwiederholung', - desc: 'Wiederhole alle wichtigen Inhalte des Kurses', - targetMin: 30, targetScore: 80, review: false, - cultural: null }, - - { week: 4, day: 4, num: 40, type: 'conversation', title: 'Praktische Übung', - desc: 'Simuliere echte Gesprächssituationen', - targetMin: 25, targetScore: 75, review: false, - cultural: null }, - - { week: 4, day: 4, num: 41, type: 'vocab', title: 'Abschlusstest - Vokabeln', - desc: 'Finaler Vokabeltest über den gesamten Kurs', - targetMin: 20, targetScore: 80, review: true, - cultural: null }, - - { week: 4, day: 5, num: 42, type: 'review', title: 'Abschlussprüfung', - desc: 'Finale Prüfung über alle Kursinhalte', - targetMin: 30, targetScore: 80, review: false, - cultural: 'Gratulation zum Abschluss des Kurses!' }, - - { week: 4, day: 5, num: 43, type: 'culture', title: 'Kulturelle Tipps & Tricks', - desc: 'Wichtige kulturelle Hinweise für den Alltag', - targetMin: 15, targetScore: 0, review: false, - cultural: 'Kulturelles Verständnis ist genauso wichtig wie die Sprache selbst.' }, + ...BISAYA_LESSONS_24_43, ...BISAYA_PHASE3_LESSONS, ...BISAYA_PHASE4_LESSONS, diff --git a/backend/scripts/update-bisaya-didactics.js b/backend/scripts/update-bisaya-didactics.js index 6d14062..8f26497 100644 --- a/backend/scripts/update-bisaya-didactics.js +++ b/backend/scripts/update-bisaya-didactics.js @@ -10,10 +10,30 @@ import { sequelize } from '../utils/sequelize.js'; import VocabCourseLesson from '../models/community/vocab_course_lesson.js'; import { getBisayaLessonPedagogy } from './bisaya-course-phase2-pedagogy.js'; import { BISAYA_DIDACTICS_FRAGMENTS } from './bisaya-course-phase1.js'; +import { + BISAYA_DIDACTICS_24_43, + BISAYA_LESSONS_24_43_BY_NUMBER, + BISAYA_RELATIONSHIP_ANCHOR_DIDACTICS +} from './bisaya-course-plan-24-43.js'; /** Alte Kurstitel → aktueller Schlüssel in LESSON_DIDACTICS (bestehende Datenbanken). */ export const LEGACY_DIDACTICS_TITLE_MAP = { - 'Zahlen & Preise': 'Zahlen 1–20' + 'Zahlen & Preise': 'Zahlen 1–20', + 'Gefühle & Emotionen': 'Gefühle im Alltag', + 'Höflichkeitsformen': 'Höflichkeitsformen praktisch', + 'Kinder & Spiel': 'Kinder, Spiel & Routine', + 'Woche 3 - Wiederholung': 'Woche 3 - Intensivwiederholung', + 'Woche 3 - Vokabeltest': 'Woche 3 - Checkpoint', + 'Freies Gespräch - Thema 1': 'Alltagsszene: Zuhause morgens', + 'Wiederholung - Woche 1 & 2': 'Spiralreview: Woche 1-2 im Alltag', + 'Freies Gespräch - Thema 2': 'Alltagsszene: Besuch am Nachmittag', + 'Wiederholung - Woche 3': 'Spiralreview: Gefühle & Gesundheit', + 'Komplexere Gespräche': 'Längeres Gespräch: Planung und Familie', + 'Gesamtwiederholung': 'Gesamtwiederholung mit Fehlerclustern', + 'Praktische Übung': 'Praktische Übung: Markt + Familie', + 'Abschlusstest - Vokabeln': 'Abschlusstest Wortschatz aktiv', + 'Abschlussprüfung': 'Abschlussprüfung Grundphase', + 'Kulturelle Tipps & Tricks': 'Kultur: Höflichkeit, Familie, Alltag' }; export const LESSON_DIDACTICS = { @@ -462,12 +482,16 @@ export const LESSON_DIDACTICS = { 'Von einzelnen Wörtern zu kurzen Sätzen übergehen.' ], corePatterns: ['Kumusta', 'Salamat', 'Lami', 'Mingaw ko nimo'] - } + }, + ...BISAYA_RELATIONSHIP_ANCHOR_DIDACTICS, + ...BISAYA_DIDACTICS_24_43 }; function resolveDidacticsForLesson(lesson) { const direct = LESSON_DIDACTICS[lesson.title]; if (direct) return direct; + const plannedTitle = BISAYA_LESSONS_24_43_BY_NUMBER[Number(lesson.lessonNumber)]?.title; + if (plannedTitle && LESSON_DIDACTICS[plannedTitle]) return LESSON_DIDACTICS[plannedTitle]; const mappedTitle = LEGACY_DIDACTICS_TITLE_MAP[lesson.title]; if (mappedTitle) return LESSON_DIDACTICS[mappedTitle]; return null; diff --git a/docs/BISAYA_LESSON_PLAN_24_153.md b/docs/BISAYA_LESSON_PLAN_24_153.md new file mode 100644 index 0000000..527c0d1 --- /dev/null +++ b/docs/BISAYA_LESSON_PLAN_24_153.md @@ -0,0 +1,267 @@ +# Bisaya-Kurs: Vollplan Lektionen 24 bis 153 + +## Ziel + +Die Lektionen `24` bis `153` sollen den bestehenden Schnellstart zu einem vollständigen, alltagstauglichen Bisaya-Lernpfad ausbauen. Nach Lektion `153` soll ein Lernender keine perfekte Sprachbeherrschung haben, aber in typischen Familien-, Alltags-, Besuchs-, Gesundheits-, Einkaufs-, Wege-, Behörden- und Sozialgesprächen verständlich reagieren, einfache Gespräche mittragen und eigene kurze Aussagen bilden können. + +Der Plan ersetzt ausdrücklich Platzhalterlogik wie `Freies Gespräch - Thema 1`, `Komplexere Gespräche` oder reine Vokabeltests ohne Anwendung. Jede Lektion braucht: + +- einen konkreten Kommunikationszweck, +- neue oder reaktivierte Kernmuster, +- eine produktive Aufgabe, +- SRS-/Spiralwiederholung aus früheren Blöcken, +- bei Review-Lektionen einen diagnostischen Schwerpunkt statt stumpfer Wiederholung. + +## Progressionsregeln + +- `24-43`: Alltagserweiterung nach dem Grundkurs, besonders Gefühle, Gesundheit, Kinder, Höflichkeit und erste freie Szenen. +- `44-63`: Besuch, Termine, Transport, Arbeit und Missverständnisse als Abschluss des Schnellstarts. +- `64-123`: dreimonatiger Alltagspfad mit Kindern, Schule, Arzt, Einkauf, Behörden, Nachbarschaft, Haushalt und integrierten Alltagserzählungen. +- `124-153`: Stabilisierung, Fehlertraining, freie Produktion und Abschlussfähigkeit. +- Pro Inhaltsblock sollen etwa `55-70 %` neue oder neu kombinierte Inhalte und `30-45 %` Wiederaufnahme alter Inhalte vorkommen. +- Ab Lektion `64` steigt der Anteil aktiver Produktion; ab `104` ist freie Antwort wichtiger als reine Wiedererkennung. +- Intensivlektionen trainieren nicht "mehr vom Gleichen", sondern Kontraste, Abruf unter Wechselbedingungen und schwache SRS-Felder. + +## Optionaler Beziehungsanker + +Viele Lernende beginnen Bisaya nicht abstrakt, sondern wegen einer Beziehung, Familie oder einer nahen Person. Das ist didaktisch wertvoll, weil diese Sätze stark motivieren und sofort echten Nutzen haben. Der Kurs soll deshalb früh einen kleinen, sicheren Beziehungsanker anbieten, ohne daraus einen isolierten Romantik-Kurs zu machen. + +Dieser Anker liegt quer über dem Kurs: + +- sehr früh: direkte Nähe ausdrücken, +- danach: Nähe mit Alltag und Fürsorge verbinden, +- später: Vermissen, Pläne, Konflikte und gemeinsames Leben sprachlich stabilisieren, +- am Ende: frei über Beziehung, Familie, Sorgen und Zukunft sprechen. + +Wichtige frühe Sätze: + +- `Palangga taka.` = Ich hab dich lieb. / Ich liebe dich. Je nach Beziehungskontext warm und natürlich. +- `Gihigugma tika.` = Ich liebe dich. Direkter/formeller als `Palangga taka`, sollte erklärt und nicht unkommentiert als einzige Standardform verkauft werden. +- `Ganahan ko nimo.` = Ich mag dich. / Ich habe dich gern. +- `Gimingaw ko nimo.` oder kürzer `Mingaw ko nimo.` = Ich vermisse dich. +- `Gusto ko nga naa ko nimo.` = Ich möchte bei dir sein. +- `Gusto ko nga magkuyog ta.` = Ich möchte, dass wir zusammen sind / Zeit zusammen verbringen. +- `Kanunay ko naghunahuna nimo.` = Ich denke oft an dich. +- `Amping kanunay.` = Pass immer auf dich auf. + +Didaktische Einordnung: + +- Diese Sätze sollen als `relationship_fast_lane` markiert werden können. +- Sie zählen nicht als Ersatz für Grammatik, sondern als motivierende Ankersätze. +- Ab Woche 3 werden sie grammatisch nutzbar gemacht: `ko`, `nimo`, `taka/tika`, `gusto ko nga...`, `naa ko nimo`, `magkuyog ta`. +- In Reviews werden sie mit Alltag kombiniert: vermissen + Termin, Liebe + Fürsorge, bei dir sein + Reise/Planung, Sorge + Gesundheit. + +| Kursstelle | Funktion | +| --- | --- | +| Lektion 5 | Erste Nähe: mögen, liebhaben, vermissen | +| Lektion 24-25 | Gefühle und Beziehungsreaktionen ausbauen | +| Lektion 34-38 | Nähe in Alltagsszenen einsetzen, nicht nur isoliert aufsagen | +| Lektion 49 | frühe Zuneigung wiederholen und mit Familie/Fürsorge koppeln | +| Lektion 58 | frei über Familie, Alltag und Vermissen sprechen | +| Lektion 96-101 | höflich reagieren, erklären, Konflikte und Gefühle verbinden | +| Lektion 124 | Planung mit naher Person: Alltag, Besuch, gemeinsame Zeit | +| Lektion 129 | Nähe und Fürsorge präzisieren | +| Lektion 140 | Familie, Sorgen, Beziehung und Zukunftspläne erzählen | +| Lektion 147 | freies Sprechen über Alltag und Beziehung ohne enge Stütze | +| Lektion 153 | persönlicher Weiterlernplan für Beziehung, Familie und Kultur | + +## Kompetenzziel nach Lektion 153 + +Der Lernende kann: + +- sich begrüßen, verabschieden und höflich reagieren, +- Familie, Kinder, Haushalt und Tagesablauf beschreiben, +- einfache Fragen stellen und Nachfragen bitten, +- Essen, Gesundheit, Schmerzen, Arzt und Apotheke besprechen, +- Preise, Mengen, Wege, Termine und einfache Erledigungen bewältigen, +- Hilfe anbieten, ablehnen, erklären und Missverständnisse entschärfen, +- kurze Alltagserzählungen in Vergangenheit, Gegenwart und Zukunft bilden, +- in vertrauten Situationen frei 4-8 Sätze produzieren, +- kulturelle Höflichkeit, indirekte Ablehnung und Familienrollen besser einordnen. + +## Lektionen 24-43: Woche 3-4 neu schärfen + +Diese Lektionen sind die wichtigste Bereinigung, weil die aktuelle Kursbasis hier teilweise generisch wirkt. Sie sollen als vollwertige Alltagserweiterung umgesetzt werden. + +| Nr. | Titel | Zweck | Kerninhalt | Output | +| --- | --- | --- | --- | --- | +| 24 | Gefühle im Alltag | Gefühle nicht nur benennen, sondern im Gespräch nutzen | `Naguol ko`, `Nalipay ko`, `Okay ra ko`, `Kapoy ko` | Zustand sagen und Rückfrage stellen | +| 25 | Gefühlswortschatz & Reaktionen | Wortschatz mit Reaktionen koppeln | Freude, Sorge, Müdigkeit, Vermissen, Beruhigung | passende Reaktion zu 6 Situationen | +| 26 | Gesundheit & Wohlbefinden | einfache Beschwerden und Fürsorge | `Sakit akong ulo`, `Mas maayo na ka?`, `Magpahuway sa` | Mini-Dialog Pflege | +| 27 | Körper & Symptome | Körperstellen und Symptome sicher erkennen | Kopf, Bauch, Fieber, Husten, Schmerz, Medizin | Beschwerde lokalisieren | +| 28 | Höflichkeitsformen praktisch | Bitten, Entschuldigung, weiche Reaktion | `Palihug`, `Pasayloa ko`, `Pwede...?`, `Sige lang` | höflich korrigieren und bitten | +| 29 | Bitten & Nachfragen | Hilfe, Wiederholung, Bedeutung, langsam sprechen | `Wala ko kasabot`, `Hinay-hinay lang`, `Unsay pasabot ani?` | Reparaturdialog führen | +| 30 | Kinder & Familie | mit Kindern kurz, klar und freundlich sprechen | `Ali diri`, `Andam na ka?`, `Nikaon na ka?` | Kind nach Essen/Schule fragen | +| 31 | Kinder, Spiel & Routine | Kinderalltag mit Spielen und Schlaf koppeln | `Magdula ta`, `Matulog na ta`, `Human na ka?` | Abendroutine sprechen | +| 32 | Woche 3 - Intensivwiederholung | Gefühle, Gesundheit, Kinder und Höflichkeit kontrastieren | alte und neue Muster gemischt | schnelle Situationsantworten | +| 33 | Woche 3 - Checkpoint | prüfen, ob die erste Alltagserweiterung aktiv abrufbar ist | Diagnose statt neues Material | 10 gemischte Aufgaben + freie Antwort | +| 34 | Alltagsszene: Zuhause morgens | Platzhalter ersetzen durch konkrete Morgenszene | Aufstehen, Essen, Schule, Aufgabe | 5-Satz-Morgenablauf | +| 35 | Spiralreview: Woche 1-2 im Alltag | alte Grundlagen in neuer Morgenszene anwenden | Begrüßung, Familie, Essen, Zeit, Zahlen | alte Muster neu kombinieren | +| 36 | Alltagsszene: Besuch am Nachmittag | konkrete Besuchsszene statt `Thema 2` | Ankommen, hereinbitten, Getränk anbieten | Gast begrüßen und versorgen | +| 37 | Spiralreview: Gefühle & Gesundheit | Woche 3 gezielt reaktivieren | Müdigkeit, Schmerz, Bitte, Hilfe | passende Fürsorgeantwort wählen | +| 38 | Längeres Gespräch: Planung und Familie | mehrzügige Gespräche einführen | `Una...`, `Pagkahuman...`, `Unya...` | Tagesplan in Reihenfolge erzählen | +| 39 | Gesamtwiederholung mit Fehlerclustern | Verwechslungen gezielt prüfen | `ni-/mo-`, `karon/ugma/ganiha`, Bitte vs. Frage | Fehlerdiagnose | +| 40 | Praktische Übung: Markt + Familie | praktische Szene statt generischem Abschluss | kaufen, Preis fragen, für Familie planen | Marktdialog mit Einkaufsgrund | +| 41 | Abschlusstest Wortschatz aktiv | nicht nur Multiple Choice, sondern beide Richtungen | Kernwortschatz 1-40 | SRS-relevanter Abruf | +| 42 | Abschlussprüfung Grundphase | gemischte Prüfung mit Dialog, Wortschatz, Produktion | alle Grundmuster | 2 freie Mini-Dialoge | +| 43 | Kultur: Höflichkeit, Familie, Alltag | Kulturlektion mit sprachlicher Anwendung | Respekt, indirekte Bitte, Familiennähe | kulturell passende Antwort erklären | + +## Lektionen 44-63: Schnellstart abschließen + +| Nr. | Titel | Zweck | Kerninhalt | Output | +| --- | --- | --- | --- | --- | +| 44 | Besuch & Gastfreundschaft | Besuch eröffnen | `Sulod lang`, `Lingkod sa`, Dank für Besuch | Gast empfangen | +| 45 | Besuch & Haushalt | Haus- und Besuchswörter | Besuch, Tisch, Stuhl, Hausbereiche | Dinge im Besuchskontext benennen | +| 46 | Fragen im Alltag vertiefen | Folgefragen bilden | Ziel, Vorhaben, Rückfrage, Wiederholung | 3-Fragen-Kette | +| 47 | Termine & Verabredungen | Treffen vereinbaren | morgen, Uhrzeit, Zusage | Termin absprechen | +| 48 | Woche 5 - Intensiv I | Besuch + Familie + Fürsorge mischen | alte und neue Dialogmuster | schnelle Rollenwechsel | +| 49 | Spiral: Familie & Fürsorge | frühe Familienmuster reaktivieren | Nanay/Tatay, Essen, Zuneigung | Familien-Mini-Dialog | +| 50 | Gesundheit im Alltag | Beschwerden erfragen | Kopfweh, Medizin, Ruhe | Pflegegespräch | +| 51 | Medikamente & Beschwerden | Gesundheitswortschatz | Medizin, Husten, Fieber, Schmerz | Symptom zu Hilfe zuordnen | +| 52 | Woche 5 - Intensiv II | Gesundheit, Besuch, Fragen mischen | Reparatur- und Fürsorgemuster | 8 Situationsantworten | +| 53 | Woche 5 - Checkpoint | Woche 5 diagnostisch sichern | Besuch, Termin, Gesundheit | freie Antwort + MC | +| 54 | Unterwegs & Transport | Fahrt und Ziel klären | Haltestelle, Stadt, aussteigen, Fahrpreis | Weg erfragen | +| 55 | Wege & Verkehr | Verkehrswörter verankern | Fahrzeug, Straße, Reise, Halt | Route beschreiben | +| 56 | Arbeit & Aufgaben | Pflichten und To-dos | Arbeit, Aufgabe, fertig, helfen | Tagesaufgabe erklären | +| 57 | Tätigkeiten & Organisation | Organisationswortschatz | Liste, Aufgabe, Arbeit, Hilfe | To-do-Liste sprechen | +| 58 | Freies Gespräch Familie & Alltag | erste freie Kombination | Familie, Zuhause, Befinden, Plan | 5 Sätze frei | +| 59 | Spiral Wochen 1-4 | alte Grundlagen blockübergreifend | Begrüßung, Essen, Zeit, Preis | Mischabruf | +| 60 | Konflikte & Missverständnisse | Gespräch reparieren | nicht verstanden, langsam, entschuldigen | Missverständnis entschärfen | +| 61 | Abschlusstest Schnellstart | aktiver Wortschatztest | Kernwörter 1-60 | beide Richtungen | +| 62 | Abschlussprüfung Schnellstart | Gesamtprüfung 6 Wochen | Abruf, Dialog, Anwendung | größere Alltagsszene | +| 63 | Kultur Familienalltag | Sprache und Familie einordnen | Respekt, Nähe, indirekte Kommunikation | kulturell passend reagieren | + +## Lektionen 64-83: Kinder, Schule, Gesundheit + +| Nr. | Titel | Zweck | Kerninhalt | Output | +| --- | --- | --- | --- | --- | +| 64 | Kinder im Alltag | Kinder freundlich begleiten | essen, Müdigkeit, Schule | Kind ansprechen | +| 65 | Schule & Betreuung | Schule benennen | Schule, Lehrkraft, Tasche, Lektion | Schulroutine erklären | +| 66 | Fragen an Kinder vereinfachen | kurze klare Fragen | `Unsa ni?`, `Asa imong bag?` | Kindgerechter Dialog | +| 67 | Hausaufgaben & Routine | Lernen und Tagesroutine | Hausaufgabe, lernen, fertig, schlafen | Abendroutine Schule | +| 68 | Woche 7 - Intensiv I | Kinder + Familie + Routine mischen | alte Fürsorge + Schule | Rollenkarten | +| 69 | Spiral: Familie, Kinder & Fürsorge | frühere Familienmuster in Kinderalltag | Familie, Kind, Essen, Schule | Familienroutine | +| 70 | Spielen & Freizeit | Spiel und Pause | spielen, Spaß, fertig, Buch | Spiel anbieten | +| 71 | Spielsachen & Aktivitäten | Freizeitwortschatz | Spiel, Ball, Buch, Lied | Aktivität wählen | +| 72 | Woche 7 - Intensiv II | Schule, Spiel, Routine sichern | Wechsel Schule/Freizeit | schnelle Antworten | +| 73 | Woche 7 - Checkpoint | Kinderwoche prüfen | Schule, Spiel, Familie | freie Szene | +| 74 | Arzt & Termin | Arzttermin vorbereiten | Arzt, Termin, Gefühl, warten | Arztbesuch planen | +| 75 | Apotheke & Medikamente | Apotheke und Medizin | Medikament, Rezept, Dosis | Apothekendialog | +| 76 | Beschwerden genauer beschreiben | Schmerzen abstufen | stark, leicht, seit vorhin | Symptom erklären | +| 77 | Notfälle & Hilfe | einfache Notlage | Hilfe rufen, Arzt rufen, Medizin finden | kurze Notfallreaktion | +| 78 | Woche 8 - Intensiv I | Arzt + Apotheke verdichten | Beschwerden und Hilfe | Notfallkarten | +| 79 | Spiral: Gesundheit | Fürsorge und Gesundheit verbinden | essen, ruhen, Medizin, Arzt | Pflegegespräch | +| 80 | Essen, Ruhe & Genesung | Genesung begleiten | Wasser trinken, ruhen, besser? | Genesungsdialog | +| 81 | Körper, Symptome & Pflege | Körperwortschatz erweitern | Kopf, Bauch, Fieber, Pflege | Beschwerde lokalisieren | +| 82 | Woche 8 - Intensiv II | Gesundheitsmuster automatisieren | Arzt, Apotheke, Pflege | Reaktionsdrill | +| 83 | Woche 8 - Checkpoint | Gesundheitswoche diagnostisch | Symptome, Hilfe, Termin | freie Arzt-Szene | + +## Lektionen 84-103: Einkauf, Behörden, Nachbarschaft, Sozialreaktionen + +| Nr. | Titel | Zweck | Kerninhalt | Output | +| --- | --- | --- | --- | --- | +| 84 | Einkaufen vertiefen | Mengen und Auswahl | Gesamtpreis, Stück, billiger | Kaufdialog | +| 85 | Markt & Mengen | Mengenwortschatz | Kilo, Stück, Markt, zu viel | Menge angeben | +| 86 | Wünsche, Bedarf und Bitte | Wunsch vs. Bedarf | `Gusto ko`, `Kinahanglan nako` | höflich auswählen | +| 87 | Behördengänge & Formulare | einfache Erledigungen | Formular, Schlange, Termin | Schalter fragen | +| 88 | Woche 9 - Intensiv I | Einkauf + Erledigung | Preis, Formular, Bitte | Szenenwechsel | +| 89 | Spiral: Preise & Erledigungen | alte Preise mit Behörde koppeln | Preis, Termin, Linie | gemischter Abruf | +| 90 | Bank, Geld & Bezahlen | bezahlen und Wechselgeld | zahlen, Münzen, Wechselgeld, ATM | Zahlung klären | +| 91 | Dokumente & Termine | Dokumentenwortschatz | ID, Papier, Termin, Quittung | Termin vorbereiten | +| 92 | Woche 9 - Intensiv II | Erledigungen stabilisieren | Geld, Dokument, Termin | Behördenszene | +| 93 | Woche 9 - Checkpoint | Einkauf/Behörde prüfen | Markt, ATM, Formular | freie Erledigung | +| 94 | Nachbarschaft & Besuche | Umfeldgespräche | Nachbar, Besuch, später kommen | Nachbarn begrüßen | +| 95 | Hilfe & Unterstützung | Hilfe bitten/anbieten | helfen, danke, brauche Hilfe | Hilfedialog | +| 96 | Höflich reagieren und ablehnen | weich ablehnen | jetzt nicht, später, danke aber nein | Einladung ablehnen | +| 97 | Feste & Einladungen | soziale Ereignisse | Fest, eingeladen, treffen | Einladung besprechen | +| 98 | Woche 10 - Intensiv I | soziale Reaktion trainieren | Hilfe, Besuch, Einladung | Situationsantworten | +| 99 | Spiral: soziale Situationen | Hilfe + Besuch + Fürsorge | helfen, Besuch, aufpassen | Mischdialog | +| 100 | Konflikte ruhig lösen | Konflikt sprachlich entschärfen | reden, entschuldigen, gemeint haben | Reparaturdialog | +| 101 | Gefühle im Gespräch vertiefen | Emotion sozial ausdrücken | Sorge, Freude, Verständnis | empathisch antworten | +| 102 | Woche 10 - Intensiv II | soziale und emotionale Muster | entschuldigen, helfen, ablehnen | schnelle Kontraste | +| 103 | Woche 10 - Checkpoint | Sozialwoche prüfen | Einladung, Hilfe, Emotion | freie soziale Szene | + +## Lektionen 104-123: Haushalt, Planung, integrierter Alltag + +| Nr. | Titel | Zweck | Kerninhalt | Output | +| --- | --- | --- | --- | --- | +| 104 | Zuhause organisieren | Haushalt planen | aufräumen, wohin stellen, fertig machen | Haushaltsplan | +| 105 | Haushalt & Reparaturen | Dinge im Haus | sauber, kaputt, reparieren, Schlüssel | Problem melden | +| 106 | Vergangenes und Pläne | Zeitformen im Alltag | vorhin, später, morgen, fertig | gestern-heute-morgen | +| 107 | Arbeit, Schule, Termine verbinden | Tagesbereiche verketten | zuerst, danach, Termin, Kind abholen | Ablauf erzählen | +| 108 | Woche 11 - Intensiv I | Haushalt + Planung | Ort, Termin, Aufgabe | Planungsdrill | +| 109 | Spiral: Alltagsmodule | Module 6-10 mischen | Kind, Arzt, ATM, Hilfe | gemischter Abruf | +| 110 | Unterwegs im Familienalltag | Wege mit Aufgaben koppeln | abholen, Stadt, aussteigen, bald da | Weg erklären | +| 111 | Nachbarschaft & Orte | Orte im Umfeld | Nachbar, Markt, Schule, Apotheke | Route beschreiben | +| 112 | Woche 11 - Intensiv II | Alltag vor Abschluss verdichten | Haushalt, Wege, Hilfe, Termin | schnelle Szenen | +| 113 | Woche 11 - Checkpoint | integrierten Alltag prüfen | vernetzter Alltag | freie Alltagserzählung | +| 114 | Freies Gespräch Alltag I | längere Antworten | Tag, Aufgaben, später gehen | 6-Satz-Antwort | +| 115 | Mischtraining Kernwortschatz | Kernwörter quer sichern | Bitte, Hilfe, Medizin, Quittung | bidirektionaler Abruf | +| 116 | Freies Gespräch Alltag II | Produktion unter Druck | müde aber okay, noch unterwegs | Gespräch fortsetzen | +| 117 | Wiederholung schwieriger Muster | Fehlerkontraste | `Niadto` vs. `Moadto`, Bitte/Wiederholung | Kontrastdrill | +| 118 | Großes Alltagsreview I | Gesamtalltag abrufen | Arzt, Markt, Hilfe, Schule | gemischte Szenen | +| 119 | Fehlerschwerpunkte Alltag | unsichere Cluster reduzieren | Danke, Bitte, Termin, besser | Fehlertraining | +| 120 | Rollenspiele echte Situationen | realistische Szenen verbinden | Hilfe, Transport, Arzt, Kind | Rollenspiel | +| 121 | Abschlusstest Alltagspfad | aktiver Wortschatztest | Orte, Dokumente, Haushalt | beide Richtungen | +| 122 | Abschlussprüfung Alltagsphase | Alltagspfad prüfen | Dialog, Abruf, freie Produktion | große Alltagsszene | +| 123 | Kultur, Höflichkeit & Familienleben | kulturelle Vertiefung | indirekte Ablehnung, Rollen, Respekt | passende Reaktion erklären | + +## Lektionen 124-153: Stabilisierung und Gesprächsfähigkeit + +| Nr. | Titel | Zweck | Kerninhalt | Output | +| --- | --- | --- | --- | --- | +| 124 | Dialogtag Familie & Planung | längere Familiendialoge | Plan, Kind abholen, essen, heimgehen | Mehrzugdialog | +| 125 | Mischtraining Familie/Gesundheit/Alltag | große Themen mischen | Familie, Arzt, Markt, Nachbarn | SRS-getriebener Abruf | +| 126 | Fehlertraining Verwechslungen I | Zeit und Reaktion kontrastieren | ging/gehe, bitte/entschuldigung | Fehleranalyse | +| 127 | Rollenspiel Schule, Arzt, Besuch | Rollen schnell wechseln | Schule, Arzt, Besuch | 3 Szenen in Folge | +| 128 | Stabilisierungsblock 1 - Intensiv I | Grundmuster schnell abrufen | Begrüßung, Essen, Weg, Hilfe | Antwort unter Zeitwechsel | +| 129 | Fehlerschwerpunkte Familie & Fürsorge | Nähe und Fürsorge präzisieren | liebhaben, vermissen, ruhen, fertig | passende Nuance wählen | +| 130 | Freies Erzählen Mein Alltag | Alltag zusammenhängend erzählen | morgens, danach, nachmittags, abends | 8-Satz-Erzählung | +| 131 | Mischtraining reale Situationen I | reale Situationen ungeordnet | Termin, Hilfe, Quittung, aufpassen | unvorbereitete Antwort | +| 132 | Stabilisierungsblock 1 - Intensiv II | schwache Cluster verdichten | ablehnen, zahlen, besser, später | Fehlerdrill | +| 133 | Stabilisierungsblock 1 - Checkpoint | erste Stabilisierung messen | Transfer und Langzeitabruf | Diagnose | +| 134 | Dialogtag Organisation & Wege | logistische Planung | zuerst, zurückkommen, aussteigen, nächster Schritt | Wegplanung | +| 135 | Mischtraining Gesundheit/Schule/Erledigung | drei Domänen mischen | Arzt, Schule, Quittung, Apotheke | Szenenwechsel | +| 136 | Fehlertraining Verwechslungen II | Wunsch, Bedarf, Verschieben | wollen, brauchen, später, nicht gemeint | Kontrastantwort | +| 137 | Rollenspiel Konflikt und Hilfe | Hilfe unter Spannung | reden, helfen, entschuldigen, verstehen | Konfliktgespräch | +| 138 | Stabilisierungsblock 2 - Intensiv I | schwierige Alltagsblöcke | brauchen, Arzt, Einladung, Haushalt | schnelle Anwendung | +| 139 | Fehlerschwerpunkte Termine/Zeit/Reaktion | Zeitmarker absichern | morgen, vorhin, später, nächstes Mal | Zeitdialog | +| 140 | Freies Erzählen Familie/Sorgen/Pläne | Emotion + Planung verbinden | Sorge, okay, Plan, Hilfe | zusammenhängende Antwort | +| 141 | Mischtraining reale Situationen II | zweite reale Mischrunde | Arzt, ATM, Spiel, Schlange | spontane Wahl | +| 142 | Stabilisierungsblock 2 - Intensiv II | letzte breite Verdichtung | Wiederholung bitten, später gehen, danke | Tempoabruf | +| 143 | Stabilisierungsblock 2 - Checkpoint | zweite Stabilisierung messen | Formulare, Wechselgeld, Entschuldigung | Diagnose | +| 144 | Großes Mischreview I | Gesamtpfad breit wiederholen | Kind, Arzt, Markt, Hilfe | Langzeitabruf | +| 145 | Großes Mischreview II | zweite breite Runde mit Druck | Termin, Quittung, Bitte, Nachbarn | schneller Kontextwechsel | +| 146 | Fehlertraining letzte Schwächen | Restfehler isolieren | ging/gehe, Ablehnung, besser | gezieltes Fehlerprotokoll | +| 147 | Freies Sprechen Alltag ohne Stütze | wenig Hilfen, mehr Eigenproduktion | ehrlich gesagt, meistens, manchmal, aber | freier Mini-Monolog | +| 148 | Langzeitreview Intensiv I | frühe Inhalte reaktivieren | Begrüßung, Danke, Essen, Preis | SRS-Stabilisierung | +| 149 | Langzeitreview Intensiv II | frühe und späte Inhalte koppeln | Arzt, Schule, Hilfe, Quittung | Transferabruf | +| 150 | Rollenspiele echte Situationen | Abschlussnahe Szenen | Transport, Arzt, Einkauf, Familie | 4 Rollenspiele | +| 151 | Abschlusstest Stabilisierung | finaler Wortschatz- und Mustercheck | Stabilisierungspfad | aktiver Test | +| 152 | Abschlussprüfung Gesamtpfad | Gesamtfähigkeit prüfen | Alltag, Dialog, Produktion, Kultur | Abschlussprüfung | +| 153 | Kultur, Familie & Sprache langfristig | Weiterlernen einordnen | Respekt, Zusammenhalt, Bitte, Fürsorge | persönlicher Weiterlernplan | + +## Umsetzungshinweise für Scripts + +1. `create-bisaya-course.js` und die Phase-Extensions sollen diesen Plan als fachliche Quelle respektieren. +2. Lektionen `34`, `36`, `38` und `40` müssen umbenannt und inhaltlich ersetzt werden; das sind derzeit die auffälligsten Alt-Platzhalter. +3. Review-Lektionen brauchen `didacticMode: intensive_review` oder `checkpoint`, aber zusätzlich konkrete `corePatterns`, `speakingPrompts` und `practicalTasks`. +4. Jede Lektion ab `24` soll mindestens `4` belastbare Kernmuster enthalten; Vokabellektionen eher `6-10`, aber abhängig von Schwierigkeit. +5. Jede fünfte bis sechste Lektion soll SRS-lastig sein, aber nicht nur Wiederholung: alte Muster werden in neuer Situation angewendet. +6. Abschlusslektionen `151-152` sollen produktive Aufgaben enthalten, nicht nur Multiple Choice. + +## Qualitätskriterien + +Eine Lektion gilt als vollwertig, wenn sie diese Mindestdaten hat: + +- `learningGoals`: mindestens 3 konkrete Ziele, +- `corePatterns`: mindestens 4 echte Zielmuster oder Vokabelpaare, +- `speakingPrompts`: mindestens 1 produktive Aufgabe bei Gesprächs-, Grammatik- und Review-Lektionen, +- `practicalTasks`: mindestens 1 Alltagstransfer, +- `grammarFocus`: nur wenn ein Muster tatsächlich erklärt werden muss, +- `reviewWeight`: passend zur Progression, nicht pauschal, +- keine generischen Titel wie `Thema 1`, `Praktische Übung`, `Komplexere Gespräche` ohne Szenario. + +## Nächster Umsetzungsschritt + +Als nächstes sollten die Lektionen `24-43` technisch bereinigt werden, weil sie die Brücke vom Schnellstart zur Alltagsphase bilden und aktuell die meisten Platzhalterrisiken tragen. Danach werden die späteren Lektionen gegen dieses Dokument auditiert und fehlende `speakingPrompts`/`practicalTasks` ergänzt.