From cc791501c9fb7c09cab156408095c988e95207b7 Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Wed, 15 Apr 2026 13:25:15 +0200 Subject: [PATCH] feat(bisaya-course): enhance lesson content for temporal grammar and exercises - Updated learning goals to emphasize distinguishing between past, present, and future in everyday sentences. - Revised core patterns to include specific examples for each tense, improving clarity and context for learners. - Expanded grammar focus sections to provide detailed explanations of time markers and their usage. - Introduced new exercises for practicing grammar focus, including multiple-choice questions and transformation tasks, enhancing student engagement with temporal aspects of the language. - Updated speaking prompts and practical tasks to reflect the new content structure, ensuring a comprehensive learning experience. --- .../scripts/apply-bisaya-course-refresh.js | 30 +++- .../scripts/create-bisaya-course-content.js | 141 +++++++++++++++--- backend/scripts/create-bisaya-course.js | 58 +++++-- 3 files changed, 186 insertions(+), 43 deletions(-) diff --git a/backend/scripts/apply-bisaya-course-refresh.js b/backend/scripts/apply-bisaya-course-refresh.js index 4038260..94e343e 100644 --- a/backend/scripts/apply-bisaya-course-refresh.js +++ b/backend/scripts/apply-bisaya-course-refresh.js @@ -300,18 +300,34 @@ const LESSON_DIDACTICS = { }, 'Zeitformen - Grundlagen': { learningGoals: [ - 'Ni- und Mo- als einfache Zeitmarker unterscheiden.', - 'Kurze Sätze in Vergangenheit und Zukunft bilden.', - 'Das Muster laut mit mehreren Verben wiederholen.' + 'Vergangenheit, laufende Handlung und Zukunft in einfachen Alltagssätzen unterscheiden.', + 'Zeitmarker (ni-, nag-/ga-, mo-) mit Zeitwörtern sinnvoll kombinieren.', + 'Zwischen denselben Verben in drei Zeitbezügen sicher wechseln.' + ], + corePatterns: [ + { target: 'Ni-kaon ko ganiha.', gloss: 'Ich habe vorhin gegessen.' }, + { target: 'Nagkaon ko karon.', gloss: 'Ich esse gerade jetzt.' }, + { target: 'Mo-kaon ko unya.', gloss: 'Ich werde später essen.' }, + { target: 'Ni-adto ko sa merkado ganiha.', gloss: 'Ich bin vorhin zum Markt gegangen.' }, + { target: 'Naa ko sa merkado karon.', gloss: 'Ich bin jetzt auf dem Markt.' }, + { target: 'Mo-adto ko sa merkado ugma.', gloss: 'Ich werde morgen zum Markt gehen.' }, + { target: 'Nipalit ko og isda ganiha.', gloss: 'Ich habe vorhin Fisch gekauft.' }, + { target: 'Mupalit ko og isda ugma.', gloss: 'Ich werde morgen Fisch kaufen.' } ], - corePatterns: ['Ni-kaon ko.', 'Mo-kaon ko.', 'Ni-adto ko.', 'Mo-adto ko.'], grammarFocus: [ - { title: 'Zeitpräfixe', text: 'Ni- verweist auf Vergangenes, Mo- auf Zukünftiges oder Bevorstehendes.', example: 'Ni-kaon ko. / Mo-kaon ko.' } + { title: 'Vergangenheit mit ni-', text: 'ni- markiert im Grundkurs häufig abgeschlossene Handlungen in der Vergangenheit.', example: 'Ni-kaon ko ganiha.' }, + { title: 'Laufende Handlung mit nag-/ga-', text: 'Für gerade laufende oder aktuelle Handlungen wird oft nag-/ga- genutzt, häufig zusammen mit karon.', example: 'Nagkaon ko karon.' }, + { title: 'Zukunft/Absicht mit mo-', text: 'mo- markiert im Kurs Zukünftiges oder Vorhaben und wird oft mit unya/ugma kombiniert.', example: 'Mo-adto ko ugma.' }, + { title: 'Zeitwörter als Klarsteller', text: 'Wörter wie ganiha, karon und ugma helfen, den Zeitbezug eindeutig zu machen.', example: 'ganiha (vorhin), karon (jetzt), ugma (morgen)' } ], speakingPrompts: [ - { title: 'Vorher und nachher', prompt: 'Sage einen Satz über etwas, das du getan hast, und einen Satz über etwas, das du tun wirst.', cue: 'Ni-kaon ko. Mo-adto ko.' } + { title: 'Dreierschritt Zeit', prompt: 'Formuliere denselben Inhalt nacheinander für Vergangenheit, Gegenwart und Zukunft.', cue: 'Ni-adto ko ganiha. Naa ko diri karon. Mo-adto ko ugma.' }, + { title: 'Tagesplanung mit Zeiten', prompt: 'Sage, was du vorhin getan hast, was du jetzt machst und was du später tun wirst.', cue: 'Nipalit ko ganiha. Nagluto ko karon. Mo-kaon ko unya.' } ], - practicalTasks: [{ title: 'Mustertraining', text: 'Nimm ein Verb und sprich es einmal mit Ni- und einmal mit Mo-.' }] + practicalTasks: [ + { title: 'Verb-Staffel', text: 'Nimm drei Verben (z. B. kaon, adto, palit) und bilde jeweils Vergangenheit, Gegenwart und Zukunft laut.' }, + { title: 'Zeitkarten', text: 'Ziehe zufällig ein Zeitwort (ganiha/karon/unya/ugma) und bilde sofort einen passenden Satz.' } + ] }, 'Alltagsgespräche - Teil 2': { learningGoals: [ diff --git a/backend/scripts/create-bisaya-course-content.js b/backend/scripts/create-bisaya-course-content.js index 7767831..b486ce3 100644 --- a/backend/scripts/create-bisaya-course-content.js +++ b/backend/scripts/create-bisaya-course-content.js @@ -598,6 +598,43 @@ function buildTaskSentenceExercise(lesson, didactics, pattern) { }; } +function buildGrammarFocusCheckExercise(lesson, didactics) { + const focus = Array.isArray(didactics?.grammarFocus) ? didactics.grammarFocus[0] : null; + const text = normalizeText(focus?.text || ''); + if (!text) return null; + const lower = text.toLowerCase(); + + let question = `Welcher Marker passt im Schwerpunkt "${lesson.title}" typischerweise für eine Zukunftsaussage?`; + let options = ['mo-', 'ni-', 'nag-/ga-', 'ka-']; + let correctAnswer = 0; + let explanation = 'Im Grundkurs wird mo- als Marker für Zukunft/Absicht verwendet.'; + + if (lower.includes('vergangen')) { + question = `Welcher Marker passt im Schwerpunkt "${lesson.title}" typischerweise für eine vergangene Handlung?`; + options = ['ni-', 'mo-', 'nag-/ga-', 'ka-']; + correctAnswer = 0; + explanation = 'Im Grundkurs steht ni- typischerweise für abgeschlossene Vergangenheit.'; + } else if (lower.includes('gegenwart') || lower.includes('laufende')) { + question = `Welcher Marker passt im Schwerpunkt "${lesson.title}" typischerweise für eine laufende Handlung?`; + options = ['nag-/ga-', 'ni-', 'mo-', 'ka-']; + correctAnswer = 0; + explanation = 'Nag-/ga- markiert im Kurs eine laufende Handlung in der Gegenwart.'; + } + + return { + exerciseTypeId: 2, + title: `${lesson.title}: Grammatikfokus prüfen`, + instruction: 'Wähle die passendste Antwort.', + questionData: { + type: 'multiple_choice', + question, + options + }, + answerData: { type: 'multiple_choice', correctAnswer }, + explanation + }; +} + function buildSpeakingExercise(lessonTitle, didactics, fallbackPattern) { const speakingPrompt = Array.isArray(didactics.speakingPrompts) ? didactics.speakingPrompts[0] : null; const expectedText = normalizeText(speakingPrompt?.cue || fallbackPattern); @@ -722,6 +759,7 @@ function generateExercisesFromDidactics(lesson) { buildChoiceExercise(lesson, didactics, patternB, lessonPool, 1), buildContextGapExercise(lesson, didactics, patternA), buildTaskSentenceExercise(lesson, didactics, patternB), + buildGrammarFocusCheckExercise(lesson, didactics), buildSpeakingExercise(lesson.title, didactics, patternA) ]; if (String(lesson.title || '').toLowerCase().includes('zeitformen')) { @@ -1826,6 +1864,23 @@ const BISAYA_EXERCISES = { }, explanation: 'Das Präfix "Ni-" zeigt die Vergangenheit an. "Ni-kaon ko" bedeutet "Ich habe gegessen".' }, + { + exerciseTypeId: 4, // transformation + title: 'Gegenwart verstehen', + instruction: 'Was bedeutet "Nagkaon ko karon"?', + questionData: { + type: 'transformation', + text: 'Nagkaon ko karon', + sourceLanguage: 'Bisaya', + targetLanguage: 'Deutsch' + }, + answerData: { + type: 'transformation', + correct: 'Ich esse gerade jetzt', + alternatives: ['Ich esse jetzt', 'Ich bin gerade am Essen'] + }, + explanation: 'nag- plus "karon" markiert hier eine laufende Handlung in der Gegenwart.' + }, { exerciseTypeId: 4, // transformation title: 'Zukunft verstehen', @@ -1849,54 +1904,98 @@ const BISAYA_EXERCISES = { instruction: 'Setze die richtigen Präfixe ein.', questionData: { type: 'gap_fill', - text: '{gap}-kaon ko (Vergangenheit) | {gap}-kaon ko (Zukunft)', - gaps: 2 + text: '{gap}-kaon ko ganiha (Vergangenheit) | {gap}kaon ko karon (Gegenwart) | {gap}-kaon ko ugma (Zukunft)', + gaps: 3 }, answerData: { type: 'gap_fill', - answers: ['Ni', 'Mo'] + answers: ['Ni', 'Nag', 'Mo'] }, - explanation: 'Ni- für Vergangenheit, Mo- für Zukunft.' + explanation: 'Ni- für Vergangenheit, nag- für laufende Gegenwart, mo- für Zukunft.' }, withTypeName('pattern_drill', { title: 'Zeitmuster anwenden', - instruction: 'Bilde mit demselben Muster einen Zukunftssatz.', + instruction: 'Bilde mit demselben Verb drei Zeitformen.', questionData: { type: 'pattern_drill', - question: 'Verwende das Muster für "gehen".', - pattern: 'Mo- + Verb + ko' + question: 'Verwende das Verb "adto" in Vergangenheit, Gegenwart und Zukunft.', + pattern: 'Ni- / Nag- / Mo- + adto + ko' }, answerData: { - modelAnswer: 'Mo-adto ko.', - correct: ['Mo-adto ko.', 'Moadto ko.'] + modelAnswer: 'Ni-adto ko. Nag-adto ko karon. Mo-adto ko.', + correct: ['Ni-adto ko. Nag-adto ko karon. Mo-adto ko.', 'Niadto ko. Nagadto ko karon. Moadto ko.'] }, - explanation: 'Mit "Mo-" kannst du ein einfaches Zukunftsmuster bilden.' + explanation: 'Das Drillmuster trainiert den direkten Wechsel derselben Handlung über drei Zeitbezüge.' }), { exerciseTypeId: 3, - title: 'Vergangenheit und Zukunft bauen', - instruction: 'Schreibe beide Formen nacheinander auf.', + title: 'Drei Zeiten nacheinander bauen', + instruction: 'Schreibe Vergangenheit, Gegenwart und Zukunft nacheinander auf.', questionData: { type: 'sentence_building', - question: 'Formuliere: "Ich habe gegessen. Ich werde essen."', - tokens: ['Ni-kaon', 'ko', 'Mo-kaon', 'ko'] + question: 'Formuliere: "Ich habe gegessen. Ich esse jetzt. Ich werde später essen."', + tokens: ['Ni-kaon', 'ko', 'Nagkaon', 'ko', 'karon', 'Mo-kaon', 'ko', 'unya'] }, answerData: { - correct: ['Ni-kaon ko. Mo-kaon ko.', 'Nikaon ko. Mokaon ko.'] + correct: [ + 'Ni-kaon ko. Nagkaon ko karon. Mo-kaon ko unya.', + 'Nikaon ko. Nagkaon ko karon. Mokaon ko unya.' + ] }, - explanation: 'Die Übung trainiert den direkten Wechsel zwischen den beiden Zeitmarkern.' + explanation: 'Die Übung trainiert den systematischen Wechsel zwischen Vergangenheit, Gegenwart und Zukunft.' }, { exerciseTypeId: 2, - title: 'Ni- oder Mo- wählen', - instruction: 'Wähle das Präfix für die Zukunft.', + title: 'Zeitmarker auswählen', + instruction: 'Wähle den passenden Marker für eine laufende Handlung.', questionData: { type: 'multiple_choice', - question: 'Welches Präfix steht typischerweise für die Zukunft?', - options: ['Mo-', 'Ni-', 'Ka-', 'Gi-'] + question: 'Welcher Marker passt typischerweise zu einer laufenden Handlung in der Gegenwart?', + options: ['Nag-/ga-', 'Ni-', 'Mo-', 'Gi-'] }, answerData: { type: 'multiple_choice', correctAnswer: 0 }, - explanation: '„Mo-" markiert Zukunft, „Ni-" markiert Vergangenheit.' + explanation: 'Nag-/ga- steht hier für laufende Gegenwart, ni- für Vergangenheit und mo- für Zukunft.' + }, + { + exerciseTypeId: 2, + title: 'Zeitwort zuordnen', + instruction: 'Wähle das passende Zeitwort zur Zukunft.', + questionData: { + type: 'multiple_choice', + question: 'Welches Zeitwort passt am besten zu einer Zukunftsaussage?', + options: ['ugma', 'ganiha', 'karon', 'didto'] + }, + answerData: { type: 'multiple_choice', correctAnswer: 0 }, + explanation: '„ugma" bedeutet morgen und unterstützt Zukunftsformen.' + }, + withTypeName('dialog_completion', { + title: 'Zeitwechsel im Mini-Dialog', + instruction: 'Ergänze eine passende Zukunftsantwort.', + questionData: { + type: 'dialog_completion', + question: 'A sagt, was vorhin war. B reagiert mit Zukunft.', + dialog: ['A: Ni-kaon ko ganiha.', 'B: ...'] + }, + answerData: { + modelAnswer: 'Mo-kaon ko unya.', + correct: ['Mo-kaon ko unya.', 'Mokaon ko unya.'] + }, + explanation: 'Der Dialog trainiert den Wechsel von Vergangenheit auf Zukunft.' + }), + { + exerciseTypeId: 8, + title: 'Zeitformen frei anwenden', + instruction: 'Sprich drei kurze Sätze: gestern/jetzt/morgen.', + questionData: { + type: 'speaking_from_memory', + question: 'Nutze ein Verb in Vergangenheit, Gegenwart und Zukunft.', + expectedText: 'Ni-..., nag-..., mo-...', + keywords: ['ni', 'nag', 'mo', 'ganiha', 'karon', 'ugma'] + }, + answerData: { + type: 'speaking_from_memory' + }, + explanation: 'Zum Abschluss nutzt du die Zeitmarker ohne Vorgabe frei im eigenen Mini-Output.' } ], diff --git a/backend/scripts/create-bisaya-course.js b/backend/scripts/create-bisaya-course.js index d71286b..920b474 100755 --- a/backend/scripts/create-bisaya-course.js +++ b/backend/scripts/create-bisaya-course.js @@ -468,34 +468,62 @@ const LESSON_DIDACTICS = { }, 'Zeitformen - Grundlagen': { learningGoals: [ - 'Ni- und Mo- als einfache Zeitmarker unterscheiden.', - 'Kurze Sätze in Vergangenheit und Zukunft bilden.', - 'Das Muster laut mit mehreren Verben wiederholen.' + 'Vergangenheit, laufende Handlung und Zukunft in einfachen Alltagssätzen unterscheiden.', + 'Zeitmarker (ni-, nag-/ga-, mo-) mit Zeitwörtern sinnvoll kombinieren.', + 'Zwischen denselben Verben in drei Zeitbezügen sicher wechseln.' ], corePatterns: [ - 'Ni-kaon ko.', - 'Mo-kaon ko.', - 'Ni-adto ko.', - 'Mo-adto ko.' + { target: 'Ni-kaon ko ganiha.', gloss: 'Ich habe vorhin gegessen.' }, + { target: 'Nagkaon ko karon.', gloss: 'Ich esse gerade jetzt.' }, + { target: 'Mo-kaon ko unya.', gloss: 'Ich werde später essen.' }, + { target: 'Ni-adto ko sa merkado ganiha.', gloss: 'Ich bin vorhin zum Markt gegangen.' }, + { target: 'Naa ko sa merkado karon.', gloss: 'Ich bin jetzt auf dem Markt.' }, + { target: 'Mo-adto ko sa merkado ugma.', gloss: 'Ich werde morgen zum Markt gehen.' }, + { target: 'Nipalit ko og isda ganiha.', gloss: 'Ich habe vorhin Fisch gekauft.' }, + { target: 'Mupalit ko og isda ugma.', gloss: 'Ich werde morgen Fisch kaufen.' } ], grammarFocus: [ { - title: 'Zeitpräfixe', - text: 'Ni- verweist auf Vergangenes, Mo- auf Zukünftiges oder Bevorstehendes.', - example: 'Ni-kaon ko. / Mo-kaon ko.' + title: 'Vergangenheit mit ni-', + text: 'ni- markiert im Grundkurs häufig abgeschlossene Handlungen in der Vergangenheit.', + example: 'Ni-kaon ko ganiha.' + }, + { + title: 'Laufende Handlung mit nag-/ga-', + text: 'Für gerade laufende oder aktuelle Handlungen wird oft nag-/ga- genutzt, häufig zusammen mit karon.', + example: 'Nagkaon ko karon.' + }, + { + title: 'Zukunft/Absicht mit mo-', + text: 'mo- markiert im Kurs Zukünftiges oder Vorhaben und wird oft mit unya/ugma kombiniert.', + example: 'Mo-adto ko ugma.' + }, + { + title: 'Zeitwörter als Klarsteller', + text: 'Wörter wie ganiha, karon und ugma helfen, den Zeitbezug eindeutig zu machen.', + example: 'ganiha (vorhin), karon (jetzt), ugma (morgen)' } ], speakingPrompts: [ { - title: 'Vorher und nachher', - prompt: 'Sage einen Satz über etwas, das du getan hast, und einen Satz über etwas, das du tun wirst.', - cue: 'Ni-kaon ko. Mo-adto ko.' + title: 'Dreierschritt Zeit', + prompt: 'Formuliere denselben Inhalt nacheinander für Vergangenheit, Gegenwart und Zukunft.', + cue: 'Ni-adto ko ganiha. Naa ko diri karon. Mo-adto ko ugma.' + }, + { + title: 'Tagesplanung mit Zeiten', + prompt: 'Sage, was du vorhin getan hast, was du jetzt machst und was du später tun wirst.', + cue: 'Nipalit ko ganiha. Nagluto ko karon. Mo-kaon ko unya.' } ], practicalTasks: [ { - title: 'Mustertraining', - text: 'Nimm ein Verb und sprich es einmal mit Ni- und einmal mit Mo-.' + title: 'Verb-Staffel', + text: 'Nimm drei Verben (z. B. kaon, adto, palit) und bilde jeweils Vergangenheit, Gegenwart und Zukunft laut.' + }, + { + title: 'Zeitkarten', + text: 'Ziehe zufällig ein Zeitwort (ganiha/karon/unya/ugma) und bilde sofort einen passenden Satz.' } ] },