feat(bisaya-course): enhance phase 4 didactics with new learning goals and speaking prompts
All checks were successful
Deploy to production / deploy (push) Successful in 1m31s

- Expanded the BISAYA_PHASE4_DIDACTICS by adding new learning goals, core patterns, speaking prompts, and practical tasks to improve language acquisition.
- Updated the course content generation scripts to incorporate the new lesson structures and ensure alignment with the latest didactic updates.
- Enhanced the logic for generating exercises based on lesson types, introducing additional situational and speaking exercises for advanced lessons.
This commit is contained in:
Torsten Schulz (local)
2026-04-17 15:12:21 +02:00
parent 4df8f97a41
commit 4205639de3
10 changed files with 599 additions and 69 deletions

View File

@@ -285,13 +285,24 @@ function generateExercisesFromDidactics(lesson) {
const pool = getLessonPatternPool(didactics);
if (lesson.lessonType === 'conversation') {
return [
const exercises = [
buildChoiceExercise(lesson, didactics, patternA, pool, 0),
buildGapExercise(lesson.title, patternA),
buildSentenceExercise(lesson.title, patternB),
buildSituationalExercise(lesson.title, didactics, patternA),
buildSpeakingExercise(lesson.title, didactics, patternB)
].filter(Boolean);
// Ab Alltag/Stabilisierung konsequent mehr produktive Leistung verlangen.
if (Number(lesson.lessonNumber) >= 91) {
const extraSituational = buildSituationalExercise(lesson.title, didactics, patternB);
if (extraSituational) exercises.push(extraSituational);
}
if (Number(lesson.lessonNumber) >= 121) {
const extraSpeaking = buildSpeakingExercise(lesson.title, didactics, patternA);
if (extraSpeaking) exercises.push(extraSpeaking);
}
return exercises;
}
if (lesson.lessonType === 'grammar') {
@@ -305,7 +316,7 @@ function generateExercisesFromDidactics(lesson) {
}
if (lesson.lessonType === 'review' || lesson.didacticMode === 'intensive_review') {
return [
const exercises = [
buildChoiceExercise(lesson, didactics, patternA, pool, 0),
buildChoiceExercise(lesson, didactics, patternB, pool, 1),
buildGapExercise(lesson.title, patternA),
@@ -313,6 +324,16 @@ function generateExercisesFromDidactics(lesson) {
buildSituationalExercise(lesson.title, didactics, patternA),
buildSpeakingExercise(lesson.title, didactics, patternB)
].filter(Boolean);
if (Number(lesson.lessonNumber) >= 91) {
const extraSpeaking = buildSpeakingExercise(lesson.title, didactics, patternA);
if (extraSpeaking) exercises.push(extraSpeaking);
}
if (String(lesson.title || '').toLowerCase().includes('checkpoint')) {
const extraSituational = buildSituationalExercise(lesson.title, didactics, patternB);
if (extraSituational) exercises.push(extraSituational);
}
return exercises;
}
if (lesson.lessonType === 'culture') {