600 likes | 875 Views
מחקר חינוכי בין-תחומי: המקרה של מחקר בחינוך מתמטי ומחקר בהוראת מדעי המחשב. אורית חזן המחלקה להוראת הטכנולוגיה והמדעים 21.10.2003. מחקר חינוכי בין-תחומי: המקרה של מחקר בחינוך מתמטי ומחקר בהוראת מדעי המחשב. יבוא של תיאוריות ממחקר בחינוך מתמטי למחקר בהוראת מדעי המחשב והנדסת תוכנה. 3 יישומים:
E N D
מחקר חינוכי בין-תחומי:המקרה של מחקר בחינוך מתמטי ומחקר בהוראת מדעי המחשב אורית חזן המחלקה להוראת הטכנולוגיה והמדעים 21.10.2003
מחקר חינוכי בין-תחומי:המקרה של מחקר בחינוך מתמטי ומחקר בהוראת מדעי המחשב • יבוא של תיאוריות ממחקר בחינוך מתמטי למחקר בהוראת מדעי המחשב והנדסת תוכנה. • 3 יישומים: • Debugging • Reducing abstraction • ניתוח קוגניטיבי של מתודולוגיות פיתוח תוכנה • 3 חלקים בלתי תלויים עם מסר אחד
תודות • פרופ' אורי לירון • ד"ר יחיאל קמחי • פרופ' אייל קושלביץ • סטודנטים מוסמכים
Take Home Lessons Take home lesson # 1: מחקר נוכחי יכול להועיל במחקרים עתידיים (גם אם בעת ביצוע המחקר לא ברור כיצד) Take home lesson # 2: יתרון הרב תחומיות של המחלקה
מחקר חינוכי בין-תחומי:המקרה של מחקר בחינוך מתמטי ומחקר בהוראת מדעי המחשב • מדעי המחשב והוראת מדעי המחשב:תחומים חדשים יחסית • מחקר בחינוך מתמטי הוא תחום בוגר יחסית • קיימים מאפיינים דומים למושגים משני התחומים • יבוא של תיאוריות ממחקר בחינוך מתמטי למחקר בהוראת מדעי המחשב והנדסת תוכנה
Debugging - Background • בשיתוף עם ד"ר יחיאל קמחי • שאלון לסטודנטים בסוף שנה ראשונה במדעי המחשב (סמסטר ב', תשס"ב) • רקע הסטודנטים • מטרה:כיצד סטודנטים תופסים מהו מדעי המחשב? • שאלון פתוח
השאלון שם (רצוי, לא חובה): ____________________ סמסטר בטכניון: ________ פקולטה: ________ מין: ז / נ באיזה סמסטר למדת "מבוא למדעי המחשב"? א' תשס"ב ב' תשס"א א' תשס"א לפני-כן
השאלון (המשך) בשאלות הבאות אתם מתבקשים לחוות את דעתכם האישית על סמך ניסיונכם עד היום במדעי המחשב. א. מה זה "מדעי המחשב" לדעתך? ב. מהם, לדעתך, 3 הנושאים החשובים ביותר במדעי המחשב? ג. מהם, לדעתך, 3 הפעילויות המרכזיות שמבצעים אנשים העוסקים במדעי המחשב? ד. מהם 3 ה"דברים" ממדעי המחשב האהובים עליך? ה. מהם 3 ה"דברים" ממדעי המחשב שאינם אהובים עליך?
השאלון (המשך) ו. מהם, לדעתך, שלושת העקרונות המרכזיים שיש להקפיד עליהם בתהליך פיתוח תוכנה? ז. האם ידוע לך על אסון שהתרחש בגלל כישלון של תוכנה? אם כן – מהו האסון ומה היה הגורם לכך? במידה ולא ידוע לך על אסון שנגרם כתוצאה מכישלון תוכנה, האם תוכל/י לחשוב על אסונות שיכולים להיגרם כתוצאה מכישלון תוכנה.
השאלון (המשך) ח. להלן מופיעים מספר מושגים. לגבי כל אחד מהם נא להחליט האם הוא חשוב או לא ("למה צריך אותו" או "למה לא צריך אותו") ולנמק מדוע. • אתחול משתנים • פוינטרים • Abstract data types • שמות משמעותיים (לפונקציות, לפרמטרים) • אי שכפול קוד • Top down design • רקורסיה
השאלון - ניתוח • Three perspectives: • Conceptualperspective: Students conceive of computer science to be more than just the computer • Affective perspective: Students are discouraged by the debugging process • Social perspective: Students are unfamiliar with software failure but are aware of software power
מהם 3 ה"דברים" ממדעי המחשב שאינם אהובים עליך? התשובה הנפוצה: debugging(21 מתוך 71 סטודנטים) התשובה במקום השני: מתמטיקה (9 סטודנטים) • Debugging: פעילות מרכזית בפיתוח מערכות תוכנה
2 characteristics of debugging • Debugging is a sporadic process • Francel and Rugaber (2001): “No ”best” method for debugging programs is known.” • After about 50 years of software development. • Debugging is disruptive activity • דיבגינג כפתרון בעיות • הסבר התופעה ע"י תיאוריות בחינוך מתמטי המתייחסות לפתרון בעיות
Why do students dislike debugging? • Debugging is a sporadic process: • Students are taught to solve problems systematically. • Problems they are asked to solve have an algorithm for solving them. • In mathematics education: "students [feel] very strongly that mathematics always gives a rule to follow to solve problems." (Carpenter, Lindquist, Matthews and Silver, 1983, p. 656-657).
Why do students dislike debugging? • Debugging is a sporadic process: • These mathematical habits are borrowed to computing: • There is no ONE process for debugging • There is a lot of uncertainty in the debugging process
Why do students dislike debugging? • Debugging is disruptive activity: • In contrast to code writing, the debugging process does not lead one to his/her target.
Why do students dislike debugging? • Debugging is disruptive activity: • Polya: 4 stages of problem solving. • “First, we have to understand the problem […]. Second, we have to see how the various items are connected, how the unknown is linked to the data, in order […] to make a plan. Third, we carry out our plan. Fourth, we look back at the completed solution, we review it and discuss it.” (pp. 5-6, italics in the original).
Why do students dislike debugging? • Debugging is disruptive activity: • Polya about “looking back”: • “[e]ven fairly good students, when they have obtained the solution of the problem and written down neatly the argument, shut their books and look for something else. Doing so, they miss an important and instructive phase of the work. By looking back at the completed solution, by reconsidering and reexamining the result of the path that led to it, they could consolidate their knowledge and develop their ability to solve problems.” (p. 14-15).
Why do students dislike debugging? • Debugging is disruptive activity: • Based on other questions: freshmen recognize the importance of Polya’s first three stages: • understanding the problem • planning the solution (design) • and carrying it out (coding)
Why do students dislike debugging? • Debugging is a sporadic process • Debugging is disruptive activity
Why do students dislike debugging? • Schoenfeld (Mathematical Problem Solving): • A theory of knowledge and behavior necessary for an adequate characterization of mathematical problem-solving performance. • The framework consists of four elements: • Resources • Heuristics • Control • Belief Systems
Why do students dislike debugging? • Schoenfeld (Mathematical Problem Solving): • ניתן ליישם את המסגרת של שינפלד במלואה לניתוח כיצד סטודנטים מתמודדים עם תהליך ה- debugging. • Belief system: Freshmen dislike debugging because …
סיכום – debugging • דיבגינג כפתרון בעיות • שימוש במסגרות מהמחקר בחינוך מתמטי המתייחסות לפתרון בעיות
הורדת רמת הפשטה Reducing Abstraction • אלגברה מודרנית • המחקר: אוכלוסייה, Grounded theory • Reducing abstraction (הורדת רמת הפשטה): • סטודנטים מורידים את רמת ההפשטה • לומדים מחפשים דרכים לתת משמעות למושגים מופשטים • המסגרת יושמה עד היום לניתוח הבנת מושגים ב: חישוביות, משוואות דיפרנציאליות, School Mathematics.
הורדת רמת הפשטה Reducing Abstraction • 3 דרכים להורדת רמת ההפשטה (באופן לא מודע): • Abstraction level as the quality of the relationships between the object of thought and the thinking person • Abstraction level as the degree of complexity of the concept of thought • Abstraction level as reflection of the process-object duality (will be illustrated)
הורדת רמת הפשטה Reducing Abstraction • Abstraction level as reflection of the process-object duality • Theories which mainly distinguish between a process conception and a object conception.(Breidenbach et al, 1992; Douady, 1985; Dubinsky, 1991; Dubinsky et al, 1994; Sfard, 1991, 1992) • Process conception of a mathematical entity reflects a lower abstraction level than its conception as an object.(Beth & Piaget, 66).
הורדת רמת הפשטה Reducing Abstraction • Abstraction level as reflection of the process-object duality • תפיסה תהליכית באה לידי ביטוי בנטיית הסטודנטים להשתמש בפרוצדורה קנונית: • מופעלת באופן "אוטומטי" בהינתן סוג מסוים של בעיות. • מורכבת מאוסף מסודר של פעולות. • הפרוצדורה הקנונית מאפשרת לפתור בעיות מבלי לנתח תכונות של מושגים (כעצמים), אלא להיות מונחים ע"י הפרוצדורה הקנונית. • תפיסת מושגים כעצמים מתבטאת למשל בניתוח תכונותיהם. • The level of abstraction is reduced
הורדת רמת הפשטה Reducing Abstraction • Abstraction level as reflection of the process-object duality • דוגמא מאלגברה מודרנית: נטייה של סטודנטים לעבוד עם פרוצדורות קנוניות גם כאשר המושגים והקשרים ביניהם מובנים.
הורדת רמת הפשטה Reducing Abstraction • גיא מציג ניתוח מדויק של מבנה הקוסטים בחבורה: "טוב, אז ידוע שמחלקות שקילות מחלקות את הקבוצה לקבוצות זרות. [...] ועכשיו: אם קוסט הוא מקביל למחלקות שקילות אז הקוסטים מחלקים את ה.... מחלקים את החבורה לקבוצות. אנו יודעים שבכל קוסט מספר האיברים שווה. זה בעצם נותן את משפט לגרנז'".
הורדת רמת הפשטה Reducing Abstraction אבל, כאשר גיא התבקש למצוא קוסטים של תת-חבורה בחבורה מסויימת, הוא שוכח את הידע התיאורטי שלו ועובד על-פי פרוצדורה קנונית. כאשר התבקש לחשב את הקוסטים של תת-החבורה {1, 2, 4}ב- Z7-{0} ביחס לכפל מודולו 7, גיא מחשב את הקוסט של כל אחד מששת איברי החבורה. רק כאשר הוא מגלה כי רק שני קוסטים שונים הוא פונה לחפש את הסיבה.
הורדת רמת הפשטה Reducing Abstraction • תפיסה המושג קוסט כתהליך:שימוש בפרוצדורה קנונית. • תפיסה המושג קוסט כעצם:בחינת תכונות. • גיא לא שקל את שתי האפשרויות והחליט על האלגוריתמית. הבחירה נעשית באופן לא מודע. • הורדת רמת ההפשטה.
הורדת רמת הפשטה Reducing Abstraction • Abstraction level as reflection of the process-object duality • דוגמא מתורת החישוביות • הקורס, אופי המושגים • המרצה: פרופ' אייל קושלביץ • הבחינה • ניתוח מלא עפ"י המסגרת התיאורטית של הורדת רמת הפשטה; כאן הדגמה של דרך אחת.
הורדת רמת הפשטה Reducing Abstraction • מבחן אמצע סמסטר, 4 שאלות, כל אחת מורכבת מ- 2 חלקים. לכל חלק 12.5 נקודות. • נתונות 4 שפות. עבור כל שפה יש להחליט האם: a) Is Li R? b) Is Li RE? ולהוכיח את הטענה.
Some Computability Theory • A recursive (decidable) language L is a language for which a Turing machine that accepts it and halts on all inputs, exists: If wL then the Turing machine halts in state qaccept; if wL then the Turing machine halts in state qreject. • A language L is a recursively enumerable (r.e.) language if a Turing machine that accepts it, exists: For all wL, the Turing machine halts in qaccept; for all w L the Turing machine either halts in state qreject or never halts.
Some Computability Theory (Cont.) • Using set terminology: • R = {L | L is decidable}; • RE = {L | A Turing machine that accepts L, exists}. • For determining whether a language belongs to R or to RE, one has to understand the nature of the language. • The better one understands the nature of a given language, the better one may determine to what category it belongs. Then, based on this analysis, one has to choose a method for proving one’s claim.
Show strong need for canonical procedures Three main methods for solving the exam: • Constructing a Turing machine that accepts L (to show that L RE) or a Turing machine that accepts L and halts on all inputs (to show that L R). • Using Rice theorem: Rice theorem provides criteria for concluding for a given language L of a certain form that L R , RE. • Defining a reduction between two languages L’ and L’’, for one of which it is known that it is or it is not in R or in RE. (a reduction from L’ to L’’ indicates that L’’ is at least as hard as L’.)
Show strong need for canonical procedures L3 = {<M>: M’, <M’> L(M) L(M’) } L3 RE \ R • For proving that L3 Rstudents could: • use Rice theorem or • define of a reduction from a language which is not in R • A comparison of the details involved in these solutions indicates that relying on Rice theorem should be a simpler and shorter process. • Similar to the case of Abstract Algebra.
Solving Question 3AStudents prefer building a reduction over using Rice theorem • No. of students who used Rice theorem:36. • No. of students who built a reduction:72. The students used different languages as the source language of the reduction. HP 45 students L()’ or (L)’ 12 (Note: The symbol ‘ represents set complement.) Ld 12 Lu 3
Show strong need for canonical procedures • הדומיננטיות של HP כמקור הרדוקציה: • הסבר מיידי:סטודנטים תרגלו בנייה זו בתרגולים. • הסבר נוסף: • קיימת פרוצדורה קנונית שניתן ליישמה כאשר בונים רדוקציה מ- HP. • ניתן לבנות את הרדוקציה בתהליך אוטומטי מבלי לנתח מושגים.
Show strong need for canonical procedures • עופר:"כשאני עושה רדוקציה מ- HP אני יודע מה לעשות בכל מקרה, כאשר היא עוצרת וכאשר היא לא עוצרת. [...] כשאני לומד למבחן ופותר שאלות משנים קודמות, במקום לסבך את הפתרון, ולהראות שתכונה היא תכונה לא טריוויאלית של שפות ב- RE [ואז להשתמש במשפט רייס), אני תמיד עושה רדוקציה מ- HP". • אינטרפרטציה:"ניתן לבנות רדוקציה מ- HP באופן אוטומטי מבלי להתייחס למושגים איתם עובדים." • הפעלת פרוצדורה קנונית במקום ניתוח תכונות:הורדת רמת הפשטה.
הורדת רמת הפשטה Reducing Abstraction סיכום: • יישום של מסגרת תיאורטית שפותחה במקור לניתוח הבנת מושגים מתמטיים (אלגברה מודרנית) לניתוח הבנת מושגים במדעי המחשב (תורת החישובית).
ניתוח קוגניטיבי של מתודולוגית פיתוח תוכנה
ניתוח קוגניטיבי של מתודולוגית פיתוח תוכנה • הנדסת תוכנה • פרוייקט פיתוח תוכנה: • תהליך מורכב הן מבחינה קוגניטיבית והן מבחינה חברתית.
פרוייקטי תוכנה: נתונים • 75% ממוצרי התוכנה הגדולים הנשלחים ללקוחות נחשביםככישלון: או שאינם בשימוש כלל או שאינם מתאימים לדרישות הלקוחות. Based on: Mullet, D. (July, 1999). The Software Crisis, Benchmarks Online - a monthly publication of Academic Computing Services 2(7). • עלותתיקונם של באגים בתוכנה בארה"ב נאמדת בכל שנה ב- 59.5ביליון $ The National Institute of Standards and Technology (NIST), New Release of June 28, 2002. • להשוואה:ב- Q2 של 2003 הושקעו בארה"ב בתוכנה 200 ביליון $
Why is software complex? • “[m]any of the things we make with software today are more complex than most buildings and, as in building design, software design embraces many aspects: function, safety, human interface, ergonomics, graphics, algorithms, data structure, program structure, protocol, and application interface, among others.” (Singer, 1994).
מתודולוגיות פיתוח תוכנה • Heavyweight Methodologies • Agile Software Development Methodologies: • SCRUM, Feature Driven Development, DSDM • http://agilemanifesto.org/: • Individuals and interactions over processes and tools • Working software over comprehensive documentation • Customer collaboration over contract negotiation • Responding to change over following a plan • eXtreme Programming: The most accepted agile SDMs
Why XP? • Survey: • 31 XP/Agile-methods early adopter projects • 14 firms • Findings: • Cost reduction: 5-7% on average • Time to market compression: 25-50% reduction
Why XP? • big companies using XP in at least some capacity • Ford Motor, Chrysler, IBM,HP • smaller software houses: • Mayford Technologies • RoleModel Software • tutorials: Industrial Logic, Object Mentor