# curriculum_israel.py - תוכנית הלימודים במתמטיקה לפי משרד החינוך # ==================================================================== # מותאם לכל כיתה ורמה (ז'-י"ב) לפי תוכנית הלימודים הישראלית # כל התוכן בעברית! """ מבנה מערכת החינוך בישראל - מתמטיקה: ====================================== חטיבת ביניים (ז'-ט'): רמה א' מצטיינים, רמה א' רגילה, רמה ב' חטיבה עליונה (י'-י"ב): 3 יח"ל, 4 יח"ל, 5 יח"ל """ # ============================================================================= # פרופילי כיתות - מה לומדים בכל כיתה # ============================================================================= GRADE_PROFILES = { # ═══════════════════════════════════════════════════════════════════════ # כיתה ז' # ═══════════════════════════════════════════════════════════════════════ "ז": { "name": "כיתה ז'", "age_range": "12-13", "levels": { "א_מצטיינים": { "name": "רמה א' מצטיינים", "topics": [ "מספרים שליליים וחיוביים", "חזקות ושורשים", "ביטויים אלגבריים", "משוואות ממעלה ראשונה", "יחס ופרופורציה", "אחוזים", "גאומטריה: זוויות, משולשים, מרובעים", "שטח והיקף", "נפח ושטח פנים", "סטטיסטיקה תיאורית", ], "expected_level": "מתקדם - שאלות מאתגרות, חשיבה מתמטית", "explanation_style": "הסברים מעמיקים עם הרחבות", }, "א_רגילה": { "name": "רמה א' רגילה", "topics": [ "מספרים שליליים וחיוביים", "חזקות בסיסיות", "ביטויים אלגבריים פשוטים", "משוואות ממעלה ראשונה", "יחס ופרופורציה", "אחוזים", "גאומטריה בסיסית", "שטח והיקף", ], "expected_level": "סטנדרטי - בניית בסיס חזק", "explanation_style": "הסברים ברורים עם דוגמאות רבות", }, "ב": { "name": "רמה ב'", "topics": [ "מספרים שלמים", "פעולות חשבון בסיסיות", "שברים ומספרים עשרוניים", "אחוזים פשוטים", "גאומטריה בסיסית", "מדידה", ], "expected_level": "בסיסי - חיזוק יסודות", "explanation_style": "הסברים פשוטים מאוד, צעד אחר צעד, עם הרבה עידוד", }, }, }, # ═══════════════════════════════════════════════════════════════════════ # כיתה ח' # ═══════════════════════════════════════════════════════════════════════ "ח": { "name": "כיתה ח'", "age_range": "13-14", "levels": { "א_מצטיינים": { "name": "רמה א' מצטיינים", "topics": [ "פונקציה לינארית", "מערכת משוואות", "אי-שוויונות", "משולשים: חפיפה ודמיון", "משפט פיתגורס", "מעגל", "הסתברות", "סטטיסטיקה", ], "expected_level": "מתקדם - הכנה לתיכון ברמה גבוהה", "explanation_style": "הסברים מעמיקים עם קישורים בין נושאים", }, "א_רגילה": { "name": "רמה א' רגילה", "topics": [ "פונקציה לינארית", "מערכת משוואות פשוטה", "אי-שוויונות פשוטים", "משולשים וחפיפה", "משפט פיתגורס", "הסתברות בסיסית", ], "expected_level": "סטנדרטי", "explanation_style": "הסברים ברורים ומסודרים", }, "ב": { "name": "רמה ב'", "topics": [ "משוואות פשוטות", "גרפים בסיסיים", "גאומטריה: משולשים ומרובעים", "מדידה ושטחים", "הסתברות פשוטה", ], "expected_level": "בסיסי", "explanation_style": "הסברים פשוטים עם דוגמאות מחיי היומיום", }, }, }, # ═══════════════════════════════════════════════════════════════════════ # כיתה ט' # ═══════════════════════════════════════════════════════════════════════ "ט": { "name": "כיתה ט'", "age_range": "14-15", "levels": { "א_מצטיינים": { "name": "רמה א' מצטיינים", "topics": [ "פונקציה ריבועית", "משוואה ריבועית ונוסחת השורשים", "אי-שוויון ריבועי", "דמיון משולשים מתקדם", "משפט תאלס", "טריגונומטריה במשולש ישר-זווית", "מעגל: זוויות היקפיות ומרכזיות", "הסתברות מתקדמת", ], "expected_level": "מתקדם - הכנה ל-5 יח\"ל", "explanation_style": "הסברים מעמיקים עם הוכחות", }, "א_רגילה": { "name": "רמה א' רגילה", "topics": [ "פונקציה ריבועית", "משוואה ריבועית", "דמיון משולשים", "טריגונומטריה בסיסית", "מעגל", ], "expected_level": "סטנדרטי - הכנה ל-4 יח\"ל", "explanation_style": "הסברים מסודרים עם תרגול", }, "ב": { "name": "רמה ב'", "topics": [ "פונקציה לינארית", "משוואות פשוטות", "גאומטריה בסיסית", "הסתברות פשוטה", ], "expected_level": "בסיסי - הכנה ל-3 יח\"ל", "explanation_style": "הסברים פשוטים ומעודדים", }, }, }, # ═══════════════════════════════════════════════════════════════════════ # כיתה י' - תחילת לימודי בגרות # ═══════════════════════════════════════════════════════════════════════ "י": { "name": "כיתה י'", "age_range": "15-16", "levels": { "3_יחידות": { "name": "3 יחידות לימוד", "topics": [ "אלגברה: משוואות ואי-שוויונות", "פונקציות: לינארית וריבועית", "גאומטריה אנליטית בסיסית", "טריגונומטריה במשולש", "סטטיסטיקה והסתברות", ], "bagrut_format": True, "expected_level": "בגרות 3 יח\"ל - דגש על יישומים", "explanation_style": "הסברים ברורים בפורמט בגרות, דגש על שאלות מילוליות", }, "4_יחידות": { "name": "4 יחידות לימוד", "topics": [ "אלגברה מתקדמת", "פונקציות: ריבועית, שורש, ערך מוחלט", "גאומטריה אנליטית", "טריגונומטריה: משפטי סינוסים וקוסינוסים", "סדרות חשבוניות והנדסיות", "הסתברות", ], "bagrut_format": True, "expected_level": "בגרות 4 יח\"ל - רמה בינונית-גבוהה", "explanation_style": "הסברים מפורטים בפורמט בגרות עם נימוקים", }, "5_יחידות": { "name": "5 יחידות לימוד", "topics": [ "אלגברה מתקדמת", "פונקציות מורכבות", "גאומטריה אנליטית מתקדמת", "טריגונומטריה מתקדמת", "סדרות והוכחות", "מבוא לחשבון דיפרנציאלי", ], "bagrut_format": True, "expected_level": "בגרות 5 יח\"ל - רמה גבוהה", "explanation_style": "הסברים מעמיקים עם הוכחות ונימוקים מלאים", }, }, }, # ═══════════════════════════════════════════════════════════════════════ # כיתה י"א # ═══════════════════════════════════════════════════════════════════════ "יא": { "name": "כיתה י\"א", "age_range": "16-17", "levels": { "3_יחידות": { "name": "3 יחידות לימוד", "topics": [ "חזרה והעמקה באלגברה", "פונקציות ויישומים", "סטטיסטיקה מתקדמת", "הסתברות", "גאומטריה במישור", ], "bagrut_format": True, "expected_level": "הכנה לבגרות 3 יח\"ל", "explanation_style": "תרגול בגרויות עם הסברים", }, "4_יחידות": { "name": "4 יחידות לימוד", "topics": [ "חדו\"א: נגזרות", "חקירת פונקציות פולינומיאליות", "גאומטריה אנליטית: ישר ומעגל", "טריגונומטריה מתקדמת", "סדרות", "הסתברות מותנית", ], "bagrut_format": True, "expected_level": "בגרות 4 יח\"ל", "explanation_style": "פורמט בגרות מלא עם כל הנימוקים", }, "5_יחידות": { "name": "5 יחידות לימוד", "topics": [ "חדו\"א: נגזרות ואינטגרלים", "חקירת פונקציות מורכבות", "גאומטריה אנליטית מתקדמת", "מספרים מרוכבים", "הסתברות מתקדמת", "אינדוקציה", ], "bagrut_format": True, "expected_level": "בגרות 5 יח\"ל - רמה גבוהה", "explanation_style": "הוכחות מלאות, נימוקים פורמליים", }, }, }, # ═══════════════════════════════════════════════════════════════════════ # כיתה י"ב # ═══════════════════════════════════════════════════════════════════════ "יב": { "name": "כיתה י\"ב", "age_range": "17-18", "levels": { "3_יחידות": { "name": "3 יחידות לימוד", "topics": [ "חזרה מקיפה לבגרות", "פתרון בגרויות קודמות", "כל נושאי 3 יח\"ל", ], "bagrut_format": True, "expected_level": "הכנה אינטנסיבית לבגרות", "explanation_style": "פתרון בגרויות עם טיפים למבחן", }, "4_יחידות": { "name": "4 יחידות לימוד", "topics": [ "חזרה מקיפה לבגרות", "חדו\"א: אינטגרלים ושטחים", "גאומטריה אנליטית מתקדמת", "פתרון בגרויות", ], "bagrut_format": True, "expected_level": "הכנה אינטנסיבית לבגרות 4 יח\"ל", "explanation_style": "פתרון מבחנים עם אסטרטגיות", }, "5_יחידות": { "name": "5 יחידות לימוד", "topics": [ "חדו\"א מתקדם", "אינטגרלים ויישומים", "משוואות דיפרנציאליות פשוטות", "גאומטריה אנליטית: אליפסה והיפרבולה", "מספרים מרוכבים מתקדם", "וקטורים", "הכנה לבגרות", ], "bagrut_format": True, "expected_level": "הכנה אינטנסיבית לבגרות 5 יח\"ל", "explanation_style": "פתרון מלא עם כל ההוכחות והנימוקים", }, }, }, } # ============================================================================= # כללי בגרות לפי נושא (מתוך מסמך משרד החינוך) # ============================================================================= BAGRUT_RULES = { "גאומטריה": { "חובה": [ "לנמק בהגדרות ומשפטים גאומטריים בלבד", "לציין את המשולש/מרובע שאליו מתייחסים", "להגדיר זווית ב-3 אותיות או אות אחת + שם המשולש", ], "לא_נדרש": [ "'כל גודל שווה לעצמו'", "'כלל החיבור'", "'כלל החיסור'", "לרשום שקטעים מקבילים אם כתבנו שישרים מקבילים", ], "נימוקים_נפוצים": [ "נתון", "זוויות מתחלפות בין ישרים מקבילים", "זוויות חד-צדדיות משלימות ל-180°", "זוויות קודקודיות שוות", "סכום זוויות במשולש = 180°", "משפט פיתגורס", "משפט תאלס", "חפיפת משולשים (צ.ז.צ / ז.צ.ז / צ.צ.צ)", "דמיון משולשים (ז.ז / צ.ז.צ / צ.צ.צ)", ], }, "חדוא": { "חובה": [ "תחום הגדרה: לכתוב אי-שוויון נכון (חזק ≠ חלש)", "באינטגרל: לכתוב פונקציה קדומה + הצבת גבולות", "לכתוב dx וסוגריים במקום הנכון", ], "לא_נדרש": [ "לפרט חישובי גבולות לאסימפטוטות", "לפרט הצבות בקביעת סוג קיצון", ], "טעויות_קריטיות": [ "תחום הגדרה עם כיוון אי-שוויון שגוי = 0 נקודות", "אינטגרל ללא פונקציה קדומה = 0 נקודות", ], }, "הסתברות": { "חובה": [ "להגדיר כל מאורע (A, B) במילים", "בהסתברות מותנית: לרשום P(B|A) ואז להציב בנוסחה", "להראות כל חישוב", ], }, "אלגברה": { "חובה": [ "להראות דרך פתרון מלאה", "תשובה סופית ללא דרך = לא נבדק", "במשוואה ריבועית: להראות נוסחה או פירוק", ], }, "אינדוקציה": { "חובה": [ "משפטי קישור: 'נבדוק עבור n=1', 'נניח עבור n=k', 'נוכיח עבור n=k+1'", "לרשום נכון מה צריך להוכיח", ], "טעויות_קריטיות": [ "'נניח לכל n טבעי' = הורדה של 20%", "רישום שגוי של מה שצריך להוכיח = לא בודקים המשך", ], }, "טריגונומטריה": { "4_יחידות": [ "לפשט sin(180°-x) וכדומה", ], "5_יחידות": [ "לעבוד ברדיאנים בלבד (מעלות = 0 נקודות)", ], }, "סדרות": { "חובה": [ "לרשום את סוג הסדרה (חשבונית/הנדסית) ואת הנוסחה הכללית", "בסכום חלקי: לרשום את הנוסחה ולהציב", "בהוכחת נוסחה: להשתמש באינדוקציה מלאה", ], }, "מספרים_מרוכבים": { "חובה": [ "לרשום z בצורה אלגברית (a+bi) וגם בצורה טריגונומטרית אם נדרש", "להראות חישוב מודולוס וארגומנט", "בשורשים: להשתמש בנוסחת דה-מואבר ולרשום את כל השורשים", ], }, "וקטורים": { "חובה": [ "לרשום וקטור כצמד מוסדר", "במכפלה סקלרית: להראות חישוב בשתי דרכים (קואורדינטות וזווית)", "להוכיח ניצבות דרך מכפלה סקלרית = 0", ], }, "סטטיסטיקה": { "חובה": [ "לרשום את נוסחת הממוצע/שונות/סטיית תקן", "בהתפלגות נורמלית: לציין Z-score ולהשתמש בטבלאות", "בהתפלגות בינומית: לרשום n, p, ולהציב בנוסחה", ], }, } # ============================================================================= # סגנונות הסבר לפי גיל # ============================================================================= EXPLANATION_STYLES = { "חטיבת_ביניים": { "שפה": "פשוטה ונגישה", "דוגמאות": "מחיי היומיום", "עידוד": "הרבה חיזוקים חיוביים", "קצב": "איטי ומפורט", "אימוג'ים": "כן, בכמות מתונה", }, "חטיבה_עליונה_3_יחידות": { "שפה": "ברורה עם מונחים מתמטיים בסיסיים", "דוגמאות": "יישומיות", "עידוד": "מתון", "קצב": "רגיל", "פורמט": "בגרות", }, "חטיבה_עליונה_4_יחידות": { "שפה": "מתמטית עם הסברים", "דוגמאות": "מתמטיות", "עידוד": "ממוקד", "קצב": "רגיל-מהיר", "פורמט": "בגרות מלא", }, "חטיבה_עליונה_5_יחידות": { "שפה": "מתמטית פורמלית", "דוגמאות": "הוכחות ונימוקים", "עידוד": "מינימלי", "קצב": "מהיר", "פורמט": "בגרות מלא עם הוכחות", }, } # ============================================================================= # פונקציות עזר # ============================================================================= def get_grade_profile(grade: str, level: str = None) -> dict: """מחזיר פרופיל כיתה ורמה""" # נרמול שם הכיתה grade_map = { "ז'": "ז", "ז": "ז", "7": "ז", "ח'": "ח", "ח": "ח", "8": "ח", "ט'": "ט", "ט": "ט", "9": "ט", "י'": "י", "י": "י", "10": "י", "י\"א": "יא", "יא": "יא", "11": "יא", "י\"ב": "יב", "יב": "יב", "12": "יב", } grade_key = grade_map.get(grade, "י") profile = GRADE_PROFILES.get(grade_key, GRADE_PROFILES["י"]) # נרמול רמה if level: level_map = { "3 יח\"ל": "3_יחידות", "3 יחידות": "3_יחידות", "3": "3_יחידות", "4 יח\"ל": "4_יחידות", "4 יחידות": "4_יחידות", "4": "4_יחידות", "5 יח\"ל": "5_יחידות", "5 יחידות": "5_יחידות", "5": "5_יחידות", "רמה א' מצטיינים": "א_מצטיינים", "מצטיינים": "א_מצטיינים", "רמה א' רגילה": "א_רגילה", "רגילה": "א_רגילה", "רמה ב'": "ב", "ב": "ב", } level_key = level_map.get(level, list(profile["levels"].keys())[0]) level_profile = profile["levels"].get(level_key, list(profile["levels"].values())[0]) else: level_profile = list(profile["levels"].values())[0] return { "grade": profile, "level": level_profile, } def get_explanation_style(grade: str, level: str = None) -> dict: """מחזיר סגנון הסבר מותאם""" profile = get_grade_profile(grade, level) # זיהוי אם חטיבת ביניים או עליונה if grade in ["ז", "ז'", "ח", "ח'", "ט", "ט'", "7", "8", "9"]: return EXPLANATION_STYLES["חטיבת_ביניים"] # חטיבה עליונה - לפי יחידות level_name = profile["level"].get("name", "") if "3 יחידות" in level_name: return EXPLANATION_STYLES["חטיבה_עליונה_3_יחידות"] elif "4 יחידות" in level_name: return EXPLANATION_STYLES["חטיבה_עליונה_4_יחידות"] else: return EXPLANATION_STYLES["חטיבה_עליונה_5_יחידות"] def get_bagrut_rules(topic: str) -> dict: """מחזיר כללי בגרות לנושא מסוים""" topic_map = { "גאומטריה": "גאומטריה", "geometry": "גאומטריה", "חדוא": "חדוא", "calculus": "חדוא", "חקירה": "חדוא", "נגזרת": "חדוא", "אינטגרל": "חדוא", "הסתברות": "הסתברות", "probability": "הסתברות", "אלגברה": "אלגברה", "algebra": "אלגברה", "משוואה": "אלגברה", "אינדוקציה": "אינדוקציה", "induction": "אינדוקציה", "טריגונומטריה": "טריגונומטריה", "trigonometry": "טריגונומטריה", "סדרה": "סדרות", "סדרות": "סדרות", "sequence": "סדרות", "מרוכב": "מספרים_מרוכבים", "complex": "מספרים_מרוכבים", "וקטור": "וקטורים", "vector": "וקטורים", "סטטיסטיקה": "סטטיסטיקה", "statistics": "סטטיסטיקה", "ממוצע": "סטטיסטיקה", "התפלגות": "סטטיסטיקה", } for key, value in topic_map.items(): if key in topic.lower(): return BAGRUT_RULES.get(value, {}) return {} def is_bagrut_level(grade: str, level: str = None) -> bool: """בודק אם זו רמת בגרות""" profile = get_grade_profile(grade, level) return profile["level"].get("bagrut_format", False)