דלג על הניווט

טיפ למורה הפרטי - הכנת שיעור פרטי בתכנות

מורה פרטית לתכנותמקצועות התכנות הולכים ונהיים מבוקשים יותר מיום ליום ואיתם הדרישה למורה פרטי איכותי למדעי המחשב.
איך נוכל להיתפס כמורים פרטיים איכותיים למקצוע זה?

במאמר זה אסקור מספר דגשים להעברת שיעור פרטי במדעי המחשב בדגש על הייחודיות של מקצוע זה מול שאר מקצועות הלימוד.  

במה ייחודיים מקצועות התכנות?

רקע קודם – הרקע בתחום התכנות של התלמידים שלומדים מדעי המחשב הינו גדול ומגוון. יש תלמידים שעוסקים במקצוע זה כתחביב או כעיסוק משני. יש תלמידים שלקחו קורסי תכנות בעבר, ויש תלמידים שמעולם לא כתבו ולו שורת קוד אחת.

שילוב של תכנים תאורטיים ומעשיים – העבודות במהלך הקורס בדר"כ יבוצעו בצורה מעשית בצורה של כתיבת תוכנית מחשב וברבים מן המקרים בחנים במהלך הקורס והמבחן המסכם יהיו באמצעות דף ועט.

הקשר למקצועות אחרים – הרבה מהתוכנות ומהתרגילים במהלך הקורס משלבים נוסחאות מתמטיות ולוגיקה. הרבה מהתוכנות באות לפתור בעיות בתחומים שונים כגון ביולוגיה, חשמל וכדומה. בהרבה מהמקרים נדרש להבין לעומק את הבעיה שאינה מתחום מדעי המחשב.

התואר שבו הקורס נלמד – כשמדובר באוניברסיטה או מכללה, רבים התארים שקורס התכנות נלמד כחלק מהסילבוס שלהם. חלק מהתארים אינם קשורים באופן ישיר למדעי המחשב. לדוגמא: הנדסת חשמל.

מה זה דורש מאיתנו בתור מורים פרטיים?

אנו, כמורים פרטיים, צריכים להתייחס לנקודות אלו בתכנון והעברת השיעור.

הרקע של התלמיד – במידה והתלמיד מגיע ללא רקע בכלל, כדאי להסביר יותר על התמונה הכוללת, כגון תפקיד מערכת ההפעלה, סביבת הריצה ולהתעכב יותר על הסברים כלליים ורקע כדי ליצור אצלו תמונה יותר מקיפה על המתרחש. אם התלמיד מגיע עם רקע, ניתן כחלק מההסבר לתת במקרה הצורך אנלוגיות לתחומים אותם הוא מכיר כדי לחזק את ההבנה שלו.

שילוב של תכנים תאורטיים ומעשיים – צריך לחלק את הזמן בצורה נכונה בין עבודות התכנות שאותן מקבל התלמיד לבין פתרון תאורטי של בעיות הנוגעות לתחום הלימוד. צריך להשקיע בשני המישורים מאחר ולא בהכרח שהאחד מכסה את השני. בעבודות תכנות מעשיות הדגש הרבה פעמים יהיה על תחביר השפה, טעויות קומפילציה ותיקון באגים בעוד שבתרגילים תאורטיים הדגש בדר"כ יהיה על האלגוריתם והרעיון (חשוב לזכור שגם אם הפתרון התאורטי לא מתקמפל עקב טעויות קטנות של נקודה פסיק או חוסר בסוגריים, במבחן ירדו רק נקודות בודדות).
דבר נוסף – צריך לשים לב שהשיעור לא הופך להיות במתכונת שבה אנו עושים את עבודות התכנות במקום התלמיד ומסבירים לו מה אנחנו עושים בכל שלב. זוהי לא הצורה ללמוד תכנות!
כדאי לכוון את התלמיד לפתרון ולתת לו לבצע בעצמו. אם יש לנו לחץ של זמן אפשר לכתוב שיטה אחת או קטע קוד מסויים ולתת לתלמיד להשלים את השאר לאחר השיעור. התלמיד חייב לנסות בעצמו, לטעות ולתקן אפילו אם זה מתסכל אותו וגוזל ממנו הרבה זמן. תדגישו לו את חשיבות ההתנסות והלמידה העצמית להצלחה שלו בתחום זה.
חשוב ללמד את התלמיד כיצד להשתמש בכלי ה-debug כדי שיוכל לעקוב אחר שלבי ביצוע התוכנית ולמצוא בעיות בעצמו.

תכנון התוכנית והקשר למקצועות אחרים – בחלק מהמקרים נצטרך לפתור תרגיל  המשלב בעיה מתחום אחר. בהרבה מקרים נצטרך לבצע תכנון מוקדם ולהבין את העקרון או הנוסחה לפיהם תעבוד התוכנית.
אני ממליץ לתלמידים שלי לבצע את השלבים הבאים לפני שכתבו אפילו שורת קוד אחת:
כתיבת התוכנית בראשי פרקים – מיהם הגורמים המעורבים, מה התוכנית צריכה לבצע.
חלוקת הבעיה – תכנון ראשוני של חלקי התוכנית לשיטות ומחלקות.
עבור כל שיטה ומחלקה – קלט ופלט.
עבור כל שיטה – לכתוב על דף מה השיטה צריכה לעשות. במקרה שצריך להגיע לנוסחה מתמטית כלשהי, ניתן לנסות מספר דוגמאות עד שנגיע להכללה של הפתרון לבעיה ואז ננסח את האלגוריתם לפתרון בצורה כללית.

כעת נוכל לכתוב קוד (אם במחשב או על דף נייר). חשוב שלאחר כתיבת התוכנית, נעבור עם התלמיד על דרכים לבדיקתה, כלומר איזה ערכים חשוב לבדוק עבור התוכנית – עבור איזה ערכים יש יותר סיכוי למצוא טעויות בתוכנית.

התואר הנלמד – דרך הכנת והעברת השיעור תשתנה במקצת אם מדובר בתלמיד של מדעי המחשב מול תלמידים שלומדים קורסי תכנות כחלק מתואר אחר (הנדסת חשמל,הנדסה ביו-רפואית וכדומה). לתלמידים הלומדים מדעי המחשב, בנוסף לשאר הדברים, נשים דגש על עבודה נכונה בכתיבת התוכנית.

תכנון מבנה התוכנית- מתי כדאי לחלק לחלקים, איך חלקי התוכנית יראו, מהי חלוקת העבודה הנכונה בין חלקי התוכנית השונים.
כתיבה נכונה ויעילה של קוד- איך לשפר את יעילות התוכנית ע"י צמצום חישובים. איך לבצע חישובים בצורה יותר מתוחכמת.
קוד תוכנית קריא עם הערות רלוונטיות – חלוקה למקטעים, הערות לפני כל מקטע וליד חישובים מסובכים או תנאים מורכבים כדי שנוכל להבין בשלב מאוחר יותר.

חשוב להדגיש כי גם עבור תלמידים שלומדים תארים אחרים, נציין את הנושאים הללו אך לא באותה רמת פירוט ומשקל.

דברים נוספים שכדאי להעביר לתלמידים:

שימוש באינטרנט בכלל ובGoogle- בפרט - רבות מהשאלות שעולות לנו תוך כדי תכנות בנוגע לאיך לבצע דברים, פתרון טעויות קומפילציה וכו' הינן שאלות שמתכנתים רבים נתקלו בהן בעבר ומופיעות בפורומים באינטרנט עם תיאור מדויק של הבעיה ודרכים לפתרון. הדגימו לתלמידים כיצד ניתן לחפש נושאים אלו במנועי החיפוש ולהגיע לפורומים הרלוונטיים ומשם לקחת את הפתרון לבעיה או את קטע הקוד הרלוונטי לתוכנית שלנו.

לא להיבהל כשדברים לא עובדים – במיוחד בהתחלה, לתלמידים יש נטיה להילחץ כאשר מופיעות הרבה טעויות קומפילציה. הדגישו להם שלפעמים תיקון של בעיה אחת יגרום להרבה מטעויות הקומפילציה להיעלם.

בדיקות – חשוב מאוד לעבוד באופן מובנה ולבדוק כל חלק של התוכנה לאחר סיום כתיבתו. בצורה זו נוכל להיות בטוחים שחלקים מסויימים של התוכנה עובדים ונצמצם את המקומות בהם נבדוק טעויות במידה ותהיינה. נסיון לכתוב את כל הקוד ואחר מכן לבדוק את כל החלקים ביחד יצור מצב של קושי באבחנת מיקום התקלה בקוד התוכנית ובסופו של דבר יגרום להרבה יותר זמן של debugging.

אז זהו להפעם, אציין שוב שהדגשים שעברנו עליהם הינם עבור מורים פרטיים למדעי המחשב.
דגשים להכנה והעברת שיעור פרטי באופן כללי ניתן למצוא במאמר מורה נבוכים למורה הפרטי אשר נותן טיפים ודגשים למורה הפרטי באופן כללי.

 

אשמח לקבל תגובות למאמר – ניתן לבצע זאת ב-Wall התגובות.

 

שיהיה לכם לימוד נעים ובהצלחה!

צוות האתר.