Thursday, 19 January 2017

شعار متعددة

MultiLogo: دراسة الأطفال والبرمجة المتزامنة المستخلص خلال العقد الماضي، طور علماء الكمبيوتر عشرات languagues المتزامنة (أو موازية) البرمجة. هذه اللغات تبشر من فتح تطبيقات جديدة ومثيرة لأجهزة الكمبيوتر. ولكن هذا لن يحدث إلا إذا كان الناس يمكن أن تتعلم بشكل فعال، واستخدام، وفهم هذه اللغات الجديدة. لاستكشاف هذه القضايا، وأنا وضعت تمديد المتزامن لشعار (وتسمى MultiLogo)، وأجريت دراسة تجريبية مع مجموعة من طلاب المدارس الابتدائية. استخدام الطلاب MultiLogo للسيطرة على أجهزة روبوتية بسيطة مبنية من الطوب ليغو. في تحليل للاطفال يعمل، أطور ثلاث فئات رئيسية من البق البرمجة MultiLogo: البق مشكلة التحلل، والبق التزامن، والبق وجوه المنحى. واستنادا إلى النتائج، واقتراح سبل لتحسين تصميم وتدريس لغات البرمجة المتزامنة لغير الخبراء. 1. مقدمة في العديد من تطبيقات الحاسب الآلي، والناس بحاجة للسيطرة على كائنات متعددة في نفس الوقت. على سبيل المثال، شخص ما قد ترغب في البرنامج مجموعة من الكائنات الرسومية إلى التحرك عبر شاشة الكمبيوتر في رقصة منسقة. شخص آخر قد ترغب في برمجة العديد من الأجهزة الروبوتية على السير عبر الكلمة في نفس الوقت - ربما في التزامن مع صورة الفيديو على شاشة الكمبيوتر. هذه الأنشطة المنسقة وبسيطة على الرغم من أنها قد تبدو، من الصعب جدا (إن لم يكن مستحيلا) لبرمجة باستخدام لغات البرمجة التقليدية مثل باسكال أو شعار. والمشكلة هي أن اللغات التقليدية تقوم على عملية واحدة الذي ينفذ تعليمات في وقت واحد. هذا النموذج متتابعة لا يتطابق مع الطريقة التي يعمل بها العالم الحقيقي: الناس والحيوانات تتصرف بشكل متواز، والأشياء التي تتفاعل بشكل متواز. ونتيجة لذلك، العديد من الأنشطة في العالم الحقيقي لا يمكن أن تكون على غرار بطريقة طبيعية مع البرمجة متتابعة. الحل الأمثل هو استخدام لغة البرمجة المتزامنة أو متوازية - العشرات وهذا هو، وهي اللغة التي تسمح للمبرمجين للسيطرة متعددة، والتفاعل processes.1 خلال العقد الماضي، والباحثين في علوم الكمبيوتر قد وضعت لغات المتزامنة (لمحة عامة، رؤية Gelertner (1986)). ولكن كان هناك القليل من البحوث التجريبية على كيفية تعلم الناس واستخدام وفهم لغات البرمجة المتزامنة. هذا البحث هو أمر حاسم لتحسين تصميم وتدريس اللغات المتزامنة. وهناك قائمة طويلة من الأسئلة البحثية التي لم يرد عليها. على سبيل المثال: ما هي الطرق التي يمكن لهذه اللغات الجديدة تبسط مهمة برمجة ماذا تفعل في طرق أنها تجعل المهمة أكثر صعوبة ما هي العوامل التي تؤثر على التعلم من البرمجة المتزامنة ما تؤثر النماذج العقلية الموجودة الشعوب فهم البرمجة المتزامنة بعض الباحثين يتوقعون أن الناس سوف يكون صعوبة تعلم البرمجة مع لغات المتزامنة. وقد أظهرت الدراسات التجريبية أن المبرمجين المبتدئين، وذلك باستخدام لغات تسلسلية التقليدية، يواجهون صعوبات كبيرة. في تعلم اللغات المتزامنة، يجب المبتدئين التعامل مع العديد من هذه الصعوبات نفسها بالإضافة إلى مجموعة أخرى جديدة، أبرزها القضايا المتعلقة تزامن عمليات متعددة. والواقع أن بعض الباحثين يشعرون بالقلق من ان تعقيد (المتزامنة) البرمجة - كل تلك العمليات النشطة في آن واحد، كل هذه البتات zinging حولها في كل اتجاه - هو ببساطة كبيرة جدا لمتوسط ​​مبرمج لتحمل (Gelertner، 1986). من ناحية أخرى، يبدو أن بعض الأبحاث السابقة تشير إلى أن اللغات المتزامنة يمكن أن يسهل مهمة البرمجة (على الأقل في بعض الحالات). العديد من الباحثين (البازلاء وآخرون (1987)، وبونار وسولواي (1985)) لاحظ أن المبرمجين المبتدئين (باستخدام لغات تسلسلية التقليدية) في كثير من الأحيان تحمل التوازي حيث لا يوجد. فإن هذه المبتدئين تجد البرمجة المتوازية أكثر طبيعية وبديهية لاستكشاف هذه القضايا، وأنا وضعت تمديد المتزامنة إلى شعار، ودعا MultiLogo. يوفر MultiLogo الاستعارات جديدة ويبني للسيطرة على عمليات متعددة في آن واحد. الهدف الأساسي منه هو إعطاء الناس (خصوصا المبرمجين غير الخبراء) نموذج بسيط لكنها قوية للتفكير وبرمجة العمليات المتزامنة. أجريت دراسة تجريبية مع مجموعة صغيرة من الطلاب الابتدائية المدرسة. استخدام الطلاب MultiLogo للسيطرة على الإجراءات المتزامنة من آلات روبوتية. في هذه الورقة، وتحليل يعمل الطلاب مع MultiLogo، مع التركيز بشكل خاص على الخلل في برامج الطلاب. بعض من هذه الأخطاء، ولا شك، تعكس الضعف في تصميم MultiLogo. آخرين، ومع ذلك، من المرجح أن تنشأ في جميع أنواع البرمجة المتزامنة. أنا تقسيم هذه الأخطاء العامة إلى ثلاث فئات رئيسية، الذي أسميه البق مشكلة التحلل، والبق التزامن، والبق وجوه المنحى. لكل فئة، ومناقشة الأمثلة والأسباب المحتملة من البق. ويوفر هذا التحليل إطارا لفهم طرق لتحسين التدريس وتصميم لغات البرمجة المتزامنة. 2. الدافع كان الدافع وراء عملي على MultiLogo، في جزء كبير، من خلال مشاركتي في تطوير نظام البناء القائم على الحاسوب ودعا ليغو / شعار (ريسنيك وآخرون 1988). كما يعمل الطلاب على المشاريع ليغو / الشعار، فإنهم غالبا ما يريدون السيطرة على عدة آلات روبوتية في نفس الوقت. بعد بناء متنزه ليغو، على سبيل المثال، قد طفل يريد كل من ركوب الخيل لتشغيل في وقت واحد. للقيام بذلك، هناك حاجة إلى شكل من أشكال البرمجة المتزامنة. كما لغة البرمجة، يستخدم ليغو / الشعار نسخة موسعة من الشعار. يمكن للطلاب استخدام أي من الأوليات شعار التقليدية وهياكل المراقبة (إذا كرر. الخ)، بالإضافة إلى أي من 20 البدائيون جديدة تضاف خصيصا للبيئة ليغو (مثل جرا. خارجها. واستشعار). لتشغيل محرك ليغو، مبرمج أول بإعلام جهاز الكمبيوتر أي منفذ على مربع واجهة ليغو يجب أن تتحدث معه. ثم، مبرمج ببساطة أنواع جرا. والمحرك يضيء. ويرد برنامج ليغو / الشعار النموذجية أدناه. تم تصميم هذا البرنامج لسيارة ليغو مع أجهزة الاستشعار التي تعمل باللمس على مصدات الأمامية والخلفية. يتحول البرنامج على محرك السيارة، ثم تحافظ على التحقق من كل أجهزة الاستشعار. كلما المطبات السيارة في شيء، يتغير برنامج اتجاه المحرك (وبالتالي اتجاه السيارة). لtalkto الوفير السيارات السيارات: منفذ على الاختيار وأجهزة الاستشعار إنهاء للتحقق أجهزة استشعار listento: الجبهة استشعار اذا الثالثة استشعار الثالث هو لعكس الاتجاه listento: عودة استشعار إذا استشعار الثالثة الاختيار وأجهزة الاستشعار نهاية / شعار لغة البرمجة ليغو هي مناسبة لمجموعة واسعة من التطبيقات - و، في الواقع، وقد استخدم الأطفال أن البرنامج العديد من أنواع مختلفة من المشاريع. ولكن بعض التطبيقات تعرض القيود المفروضة على اللغة ليغو / الشعار. تنظر، على سبيل المثال، فإن الإجراء وأجهزة الاستشعار الاختيار هو مبين أعلاه. على الرغم من أن هذا الإجراء يعمل على النحو المرغوب فيه، ويعرض بعض الصعوبات المفاهيمية للمبرمجين المبتدئين. لفهم هذا الإجراء، يجب على مبرمج يفكر بالتناوب الكمبيوتر بين أجهزة الاستشعار اثنين - أولا التحقق من أجهزة الاستشعار الأمامية، ومن ثم الاستشعار الخلفي، ثم أجهزة الاستشعار الأمامية، وهلم جرا. ومن شأن النموذج الذي يتم فحص كل أجهزة الاستشعار بشكل مستمر ومتزامن من المحتمل أن يكون أكثر بديهية بالنسبة للمستخدمين المبتدئين، لأنه نموذج أكثر عن كثب أجهزة الاستشعار الحقيقية الطريقة (مثل عيون وآذان) العمل. في الواقع، في العمل مع ليغو / الشعار، وكثير من المبتدئين ويعزو بعض نوع من التعمد لأجهزة الاستشعار. يبدو أنهم يعتقدون أن كل أجهزة الاستشعار يلعب دورا نشطا في التحقق في حد ذاته، وفي إعلام الكمبيوتر (أو المحرك) عندما تم الضغط عليه. في حالات أخرى، فإن الحاجة إلى التوافق أكثر إلحاحا. تخيل أننا نريد أن تعديل الإجراء وأجهزة الاستشعار الاختيار بحيث يومض الكمبيوتر الضوء لمدة خمس ثوان في كل مرة سيارة عكس الاتجاه. نحن يمكن أن يكتب subprocedure فلاش ضوء. ثم إجراء التعديل واضح: للتحقق أجهزة استشعار listento: الجبهة استشعار اذا الثالثة استشعار فلاش ضوء listento: عودة استشعار إذا استشعار الثالثة فلاش ضوء الاختيار وأجهزة الاستشعار في نهاية هذا الإجراء لديه علة: ماذا لو المطبات سيارة إلى شيء بينما الكمبيوتر وميض ضوء السيارة لن عكس الاتجاه حتى بعد انتهاء الكمبيوتر وامض ضوء. باختصار، لا يمكن للكمبيوتر فلاش الضوء والتحقق من أجهزة الاستشعار في نفس الوقت. نحن يمكن تعديل فلاش الضوء بحيث الوقت شرائح بين النشاطين، بالتناوب بين التحقق من أجهزة الاستشعار وامض ضوء. لكن هذا الحل لديها العديد من السلبيات. عندما تنفذ في لغة عالية المستوى، والوقت تشريح عادة ما يكون بطيئا جدا، وذلك على ضوء قد تومض بشكل غير منتظم، مع وقفة ملحوظ في كل مرة فحص جهاز الكمبيوتر جهاز استشعار. بنفس القدر من الأهمية، ويمثل هذا الإصلاح خطوة أخرى بعيدا عن نمطية وبالتالي، فإنه يجعل مهمة برمجة أكثر تعقيدا من الناحية النظرية. هذا المثال يكشف عن الحاجة إلى ما يمكن أن نسميه الاختيار والفعل التزامن: يحتاج إلى برنامج للتحقق من حالة وتنفيذ هذا العمل في الوقت نفسه. وتبرز قضايا مماثلة لو كنا في محاولة للسيطرة على اثنين (أو أكثر) أجهزة في نفس الوقت. على سبيل المثال، قد نرغب روبوت ليغو على المشي في أنحاء الغرفة بينما الضوء على ومضات رأسه باستمرار. ويدعو هذا المثال لالتزامن الفعل، والفعل: يحتاج البرنامج إلى تنفيذ إجراءين في نفس الوقت. كما هو الحال مع التزامن الاختيار والفعل، هناك في بعض الأحيان طرق لمحاكاة الفعل، والفعل التزامن في إطار النموذج متتابعة، ولكن بتكلفة نمطية انخفاض وزيادة تعقيد المفاهيمي. بعض إصدارات شعار (وغيرها من اللغات) وعرضت المبرمجين أشكال محدودة من التزامن في شكل العفاريت والشياطين (انظر ريسنيك (1988) لمزيد من التفاصيل). هذه النهج محدودة غالبا ما تكون مفيدة، ولكنها لا تذهب بعيدا بما فيه الكفاية. أنها تساعد إلا في حالات معينة المتخصصة، وأنها لا تقدم نموذجا نظيفة من الناحية المفاهيمية من التزامن. ويهدف 3. تصميم MultiLogo MultiLogo لتوفير حل أعم لمشكلة التزامن. ويوفر بنيات جديدة لمساعدة الناس على التفكير والبرنامج جميع أنواع النشاط المتزامن. يصف هذا القسم يبني الأولية من MultiLogo. وكلاء. MultiLogo يدخل كائن جديد يعرف باسم عامل. كل وكيل هو مثل إصدار منفصل من الشعار. لخلق النشاط المتزامن، وهو مبرمج MultiLogo يخلق عدة عوامل، ثم يسأل كل وكيل لتنفيذ تعليمات الشعار في نفس الوقت. 2 بالاضافة الى تنفيذ الشعار التقليدي (ويغو / الشعار) تعليمات، يمكن لكل وكيل أيضا التواصل مع غيرها من العوامل. وكلاء MultiLogo تختلف عن العمليات في لغات البرمجة المتزامنة الأخرى في أن وكلاء MultiLogo لديهم هويات أقوى. يمكن للمستخدمين إنشاء وكلاء مع الشخصيات المميزة، ولكل منها اسم خاص بها، والإجراءات الخاصة بها، والمتغيرات الخاصة بها، والسلحفاة الخاصة بها. تم تصميم وكلاء في هذه الطريقة بحيث يمكن للمبرمجين تنسيق أكثر سهولة وتتبع أنشطة (المتزامنة) من مختلف وكلاء. الاتصالات. تحتاج وكلاء MultiLogo إلى التواصل مع بعضهم البعض لتبادل البيانات ومزامنة أنشطتها. يتواصلون في المقام الأول عن طريق إرسال رسائل إلى another.3 واحدة رسائل MultiLogo هي في شكل من أشكال التعبير عن وكيل المتلقي لتقييم. على سبيل المثال، رسالة فد 40 يخبر وكيل المتلقي للتحرك السلحفاة إلى الأمام من خلال 40 وحدة. الرسالة المطبوعة: اسم يخبر وكيل المتلقي لطباعة الكائن المقترنة اسم متغير لها. وبدء رسالة يقول وكيل المتلقي لتشغيل الإجراء بدايته. يمكن للوكلاء إرسال رسائل في عدة طرق مختلفة. على سبيل المثال، يمكن للعميل مطالبة وكيل آخر لتقييم تعبير فورا، مقاطعة نشاطه الحالي إذا لزم الأمر. أو المرسل يمكن أن يطلب من وكيل آخر لتقييم التعبير كلما كان يحصل على فرصة. لفهم الفروق بين أنواع مختلفة من الاتصالات، فمن المفيد أن نتخيل كل وكيل المحافظة على طابور من التعابير التي لا بد من تقييم. في أي لحظة، وكيل وتقييم أول تعبير في قائمة الانتظار. عند انتهاء وكيل تقييم تعبير الملوثات العضوية الثابتة في التعبير خارج قائمة الانتظار ويبدأ تقييم التعبير التالي في قائمة الانتظار. إذا أصبح قائمة الانتظار فارغة، لا يزال وكيل نائمة حتى يتلقى رسالة أخرى. النظر في ما يحدث عند الطلب وكيل واحد الصورة وكيل آخر أن تفعل شيئا. على سبيل المثال، وهو مدير وكيل اسمه قد تقييم التعبير التالي: الطلب GT المدير: المتعري onfor 20 في هذه الحالة، فإن الرسالة (onfor 20) يحصل على دفع على الجزء الأمامي من طابور المتعري الصورة. إذا كان المتعري في عملية تقييم تعبير، يتم دفع ما تبقى من التقييم وصولا الى المركز الثاني على قائمة الانتظار. بعد انتهاء المتعري تنفيذ الرسالة (تحول يفترض على ضوء ل20 وحدة الزمن)، المتعري يستأنف تنفيذ التعبير توقف. نظر، من ناحية أخرى، ماذا يحدث إذا وكيل مدير يسأل الصورة (بدلا من الطلب جي) التي بدورها المتعري على ضوء: مدير GT نسأل: المتعري onfor 20 في هذه الحالة، يتم وضع الرسالة في الجزء الخلفي من طابور المتعري الصورة . المتعري ينفذ الرسالة كلما اكتمال تنفيذ جميع التعبيرات السابقة في قائمة الانتظار. لذلك نطالب الرسائل الأماكن في الجزء الأمامي من طابور المتعري الصورة، ونسأل الأماكن الرسائل في الجزء الخلفي من قائمة الانتظار. في كلتا الحالتين، مدير سلوك نفسها: انها ببساطة يرسل رسالة الى المتعري. ثم يستمر مع أي شيء آخر يفترض أن تفعله. لا ينتظر المدرب حتى انتهاء المتعري تنفيذ رسالة بالتالي، اطلب والطلب بدء النشاط الموازي (مدير افتراض والمزيد من الإرشادات لتنفيذ). عندما يتم تقييم رسالة تسأل أو الطلب من قبل وكيل المتلقي، والقيمة الناتجة من دون جدوى. على وجه الخصوص، وكيل التي أرسلت الرسالة لا يوجد لديه الوصول إلى قيمة الرسالة. وهكذا، الرسائل المرسلة مع يسأل أو الطلب يمكن اعتبار الإرسال وننسى الرسائل. MultiLogo اثنين من الأوليات الاتصالات الأخرى (الطلب والانتظار ونسأل-والانتظار) التي تتصرف بشكل مختلف. بعد إرسال الرسالة مع واحدة من هذه الأوليات، ينتظر وكيل الإرسال حتى انتهاء كيل المتلقي تقييم الرسالة. في ذلك الوقت، والمتلقي يرسل إلى الخلف قيمة الرسالة. منذ كيل إرسال ينتظر ردا على ذلك، لا يتم استخدام هذه الأنواع من الرسائل عن الشروع في إجراءات موازية. ولكن لديهم الاستخدامات الهامة. على سبيل المثال، الطلب والانتظار يمكن أن تستخدم لتفقد الحالة الراهنة من وكيل آخر، وتسأل، والانتظار يمكن أن تستخدم لمزامنة تصرفات العديد من وكلاء (انظر ريسنيك (1988) لمزيد من التفاصيل). ركزت برمجة المشاريع في هذه الدراسة على طرح شكل من أشكال الاتصال. الأوامر على مستوى ميتا. وكلاء هي دائما في واحدة من ثلاث حالات: النشطة. في سبات عميق. أو توقف. وكيل نشط إذا كان في عملية تشغيل البرنامج. وكيل نائمة إذا كان لديه حاليا أي برنامج لتشغيل. وكيل يمكن أن تؤثر على حالة وكيل آخر عن طريق تنفيذ أمر على مستوى ميتا. على سبيل المثال، ووقف قيادة يسبب عاملا نشطا لتصبح نائمة. واجهة. استخدمت هذه الدراسة نسخة مبكرة من MultiLogo مع واجهة المستخدم متواضعة جدا. تم تقسيم الشاشة إلى ثلاث نوافذ. في نافذة واحدة، يمكن للمستخدم كتابة رسائل إلى وكلاء. تنظر، على سبيل المثال، الأمر التالي: موجه إلى اسم الوكيل (مدير). يطلب هذا الأمر مدير عامل يدعى لتحريك السلحفاة إلى الأمام بنسبة 50 خطوات السلحفاة. النافذة الثانية المعروضة طباعة الإخراج من وكلاء. كانت النافذة الثالث للرسومات سلحفاة. كما ذكر سابقا، كل عامل لديه سلحفاة الخاصة بها. المثال. يتيح العودة إلى مثال السيارة ليغو مع اثنين من أجهزة الاستشعار التي تعمل باللمس. نحن يمكن أن تخلق وكيل MultiLogo لكل جهاز استشعار، واحد للmotor.4 سيارة لجعل الاتجاه عكس سيارة كلما واحد من أجهزة الاستشعار الضغط، يمكن أن نكتب: sensor1 GT listento: استشعار الجبهة sensor1 GT تكرار إلى الأبد إذا استشعار يسأل : listento الثالثة سيارة sensor2 GT: عودة استشعار sensor2 GT تكرار إلى الأبد إذا استشعار نسأل: الثالثة سيارة لنفترض (كما في المثال السابق) نريد أيضا ضوء وميض لبضع ثوان حينما يتم الضغط على استشعار. يمكننا خلق عامل جديد اسمه الضوء ليكون مسؤولا عن وميض ضوء. وبعد ذلك يمكننا تغيير تعليمات لsensor1 وsensor2 بحيث ترسل اثنين نسأل رسائل: واحدة إلى وكيل سيارات (يطلب فيها لعكس الاتجاه) واحد إلى وكيل الضوء (يسأل هو وميض لبضع ثوان). 4. دراسة ميدانية: المنهجية اختبرت MultiLogo مع الطلاب في مدرسة Hennigan الابتدائية في بوسطن. تستخدم ثمانية طلاب Hennigan النظام MultiLogo خلال شهر مايو ويونيو 1987. وفي هذه الورقة، والتركيز على أربعة من الطلاب. وتشمل هذه المجموعة اثنين من الطلاب في الصف الرابع (فتاة واحدة وولد واحد) واثنين من طلاب الصف الخامس (فتاة واحدة وولد واحد). كل من الطلاب عمل مع MultiLogo لا يقل عن أربع جلسات، مع كل دورة تستغرق ما بين 45 و 90 دقيقة. وسأشير إلى الطلاب من خلال الاحرف الاولى من اسمائهم: FB، NL، DB، وSM. مع استثناء واحد، وأنا عملت دائما مع الطلاب على أساس واحد الى واحد. (خلال الجلسة الختامية FBS، انضمت إليها زميلتها BW). وكان جميع طلاب سنة دراسية واحدة على الأقل من برمجة خبرة في الشعار، وذلك باستخدام نسخة من الشعار دعا LogoWriter. (في الواقع، كان الطلاب جزءا من بيئة الكمبيوتر المكثف الخاصة، التي طالب عمل على الكمبيوتر لنحو ساعة كل يوم.) وكان اثنان من الطلاب (وهما طلاب الصف الخامس) بعض الخبرة السابقة مع ليغو / الشعار خلال العام الدراسي السابق، وكان كل منهما أمضى نحو اثني عشر جلسات ساعة واحدة تعمل على مشاريع ليغو / الشعار. وكانت جلسات MultiLogo في شكل مقابلات شبه منظمة. في جلسة نموذجية، اقترحت مشروع معين للطالب للعمل على، وشرحت أية مفاهيم البرمجة الجديدة أو الأوليات المطلوبة في المشروع. كما عملت الطالب على المشروع، وسألت عدة أسئلة للتحقيق في الطلاب على التفكير. إذا ركض طالب صعوبات، قدمت تلميحات والاقتراحات. وجميع الدورات الشريط المسجل، وتم حفظ جميع التفاعلات الكمبيوتر في ملفات الكمبيوتر. أثناء الدراسة، وتوجيه التلاميذ من خلال سلسلة من المشاريع. يشارك كل مشروع كتابة برنامج MultiLogo للسيطرة على نموذج ليغو معين. (الطلاب لم يبني أي نماذج ليغو خلال الدراسة أعطيت لهم نماذج تشييده بشكل كامل.) تسلسل المشاريع بمثابة فقط إطارا عريضا أنا لم تتبع تسلسل عمياء. إذا اقترح أحد الطلاب فكرة جديدة لمشروع ما، لقد ساعدت عادة الطالب من خلال متابعة على فكرة (طالما بدا المشروع أن أتطرق إلى مفاهيم مثيرة للاهتمام). أيضا، إذا كان الطالب صعوبة مع مفهوم معين، وعادة ما قدم مشروع إضافي لتعزيز (والتحقيق) في فهم الطلاب لهذا المفهوم. تصف المقاطع التالية تسلسل الأساسي من المشاريع، مع برامج MultiLogo عينة لكل مشروع. مشاريع / المتعري ووكر. وشملت المجموعة الأولى من مشاريع آلة المشي ليغو مع الضوء على أنفها. وقد تم تصميم هذه المشاريع إلى تعريف الطالب MultiLogos الاستعارات المركزي (وكلاء والاتصالات). من خلال هذه المشاريع، كنت آمل أن تحليل الطلاب صعوبات في التعلم واستخدام هذه الاستعارات الأساسية. أولا، أنا يطلب من الطلاب لجعل الجهاز المشي ذهابا وإيابا. هذه المهمة لا يستخدم أي MultiLogo يتميز الطلاب يمكن أن يتصور أنهم كتابة في التقليدي مترجم ليغو / الشعار. ثم سألت الطلاب لجعل ومضة ضوء في حين كان ووكر تتحرك ذهابا وإيابا. وهذه مهمة صعبة للغاية باستخدام منهج متسلسل التقليدي. كما عملت الطلاب على هذه المشكلة، اقترحت فكرة وكلاء MultiLogo. بعد أن الطلاب قد عملت مع وكلاء لبعض الوقت، سألتهم لجعل وكر وبداية المتعري في نفس الوقت. الحل لهذه المهمة يتطلب التواصل بين وكلاء، ولذا فإنني قدم MultiLogo بدائية تسأل. هناك طريقتان الأساسية لهذه المشكلة. في النهج الهرمي، وكيل مدير يرسل رسائل إلى وكيل ووكر وكيل المتعري: وكر GT على المشي talkto السيارات: ميناء تكرار 6 onfor 30 الثالثة نهاية المتعري GT وميض talkto: تكرار خفيفة ميناء 20 onfor 4 الانتظار 2 نهاية مدير GT على المشي وفلاش نسأل: وكر المشي نسأل: المتعري فلاش تنتهي نهج بديل يستخدم اثنين فقط من وكلاء. في هذه الحالة، وكيل المتعري يرسل رسالة إلى وكيل ووكر، ثم يبدأ إجراء فلاش الخاص بها. وكر GT على المشي talkto السيارات: ميناء تكرار 6 onfor 30 الثالثة نهاية المتعري GT وميض talkto: تكرار خفيفة ميناء 20 onfor 4 الانتظار 2 نهاية المتعري GT على المشي وفلاش نسأل: وكر المشي المشاريع التي تعمل باللمس جهاز استشعار نهاية فلاش. المجموعة التالية من المشاريع شملت استخدام أجهزة الاستشعار التي تعمل باللمس ليغو للسيطرة على ووكر / المتعري. وكانت هذه المشاريع أكثر صعوبة من المشاريع ووكر / المتعري الأولية في عدة طرق. أولا، يتعين على المشاريع التي تعمل باللمس جهاز استشعار عموما تنسيق عدد كبير من وكلاء. ثانيا، تميل تحلل المشكلة أن تكون أكثر صعوبة في هذه المشاريع: كان من عادة أقل وضوحا كيف هناك حاجة إلى العديد من وكلاء وماذا يجب أن تفعل كل عامل. ثالثا، تتطلب مشاريع فهم وكلاء الطابور طريقة للرسائل الواردة. للبدء، لقد راجعت ليغو / البدائيون شعار أجهزة الاستشعار وwaituntil. وأعطى عدة أمثلة قصيرة على كيفية استخدام أجهزة الاستشعار التي تعمل باللمس. ثم طرحت مهمة تنطوي على LEGO وكر بالإضافة إلى اثنين من أجهزة الاستشعار التي تعمل باللمس. وكان الهدف هو كتابة برنامج مع السلوك التالي: إذا دفعت واحدة من أجهزة الاستشعار التي تعمل باللمس، يجب أن وكر المشي ذهابا وإيابا عدة مرات إذا أنا دفعت استشعار تعمل باللمس الأخرى، وعلى ضوء أن فلاش لفترة من الوقت. هناك حل لهذه المهمة (الاستفادة من بعض إجراءات مكتوبة في القسم السابق) قد تبدو هذه: ووكر GT listento: المشي استشعار وكر GT لاستشعار والمشي إذا listento نهاية استشعار مسافة إحساس والمشي المتعري GT: ضوء استشعار المتعري GT لاستشعار وفلاش إذا مدير نهاية استشعار فلاش الشعور وفلاش GT لاستشعار المهام نسأل: وكر الشعور والمشي نسأل: المتعري الشعور وفلاش نهاية بعد الطلاب إتمام هذه المهمة، وأنا وأضاف شرطا إضافيا: إذا كنت دفعت مشوا استشعار تعمل باللمس في حين أن ووكر كان يسير، يجب أن وكر قيام دورة المشي أخرى عندما تنتهي دورته الحالية. وهذا هو، يجب أن وكر تذكر أن استشعار تعمل باللمس لقد دفعت في حين أنه كان يسير. ضوء ليغو واستشعار المقابلة لها يجب أن تتصرف بالمثل. لحل هذه المهمة، يحتاج الطلاب نموذجا أكثر تفصيلا للاتصالات وكيل. والأهم من ذلك أنها تحتاج إلى فهم: ما ينبغي القيام به وكيلا إذا تلقت رسالة في حين كان نشطا بالفعل وأوضحت أن كل عامل لديه قائمة الانتظار الخاصة وتوضع التي تطلب رسائل جديدة في نهاية قائمة الانتظار. (وفي بعض الحالات، كما أنني قدمت الطلب الأوليات والطلب والانتظار.) المهمة استشعار جديدة يمكن حلها عن طريق تقسيم المسؤوليات بين أكثر الوكلاء. في حل لهذه المهمة السابقة، وكان وكيل ووكر مسؤولة على حد سواء لفحص جهاز استشعار ولاتخاذ هذه الخطوة ووكر. يجب تقسيم هذه الوظائف اثنين بين اثنين من وكلاء. بهذه الطريقة، يمكن أن تستمر وكيل واحد للتحقق من استشعار حتى في الوقت الذي وكر تتحرك. مشاريع السلاحف ليغو. وتقام المباراة النهائية للمشاريع ينطوي على السلاحف ليغو. في حين أن ليغو ووكر لديها محرك واحد فقط (والسماح لها للتحرك إلى الأمام أو الخلف)، والسلاحف لديها اثنين من المحركات (السماح لها يمينا أو يسارا، وكذلك تتحرك إلى الأمام والخلف). تعرفت على مشاريع سلحفاة، في جزء منه، لنلاحظ كيف تعاملت الطلاب مع تحلل المشكلة والتزامن في مشاريع مع اثنين من المحركات. وبالإضافة إلى ذلك، كانت المشاريع سلحفاة بيئة طبيعية لإدخال الأوامر على مستوى الفوقية مثل التوقف. للبدء، والتحكم الطلاب السلحفاة ليغو باستخدام الأوامر المباشرة. ثم طلبت من الطلاب أن يكتبوا إجراءات السلاحف القياسية لجعل السلحفاة تسير إلى الأمام، الى الوراء، اليسار، واليمين. على سبيل المثال، فإن الإجراء لجعل السلحفاة تذهب إلى الأمام قد تبدو مثل هذا: اليسار عجلة GT talkto: اليسار محرك الميناء بزر الماوس الأيمن عجلة GT talkto: اليمين محرك الميناء ليغو السلاحف GT ليغو-FD: الوقت نسأل: اليسار عجلة عقارب الساعة onfor: الوقت نسأل: العجلات اليمنى في اتجاه عقارب الساعة onfor: نهاية الوقت وكمهمة النهائية، وأنا طلبت من الطلاب أن يكتبوا إجراءات لتنسيق حركات السلحفاة الرسومات والسلحفاة ليغو. 5. دراسة ميدانية: تحليل النتائج بشكل عام، خصصت الطلاب فكرة وكلاء إرسال رسائل لبعضهم البعض بسهولة تامة. بحلول نهاية أربع جلسات، كل من الطلاب قد المبرمجة بنجاح المشاريع / المتعري ووكر والمشاريع التي تعمل باللمس جهاز استشعار. وعلاوة على ذلك، يبدو أنهم لفهم قوة وفائدة البرمجة المتزامنة. ووصف أحد الطلاب (FB) MultiLogo إلى زميل في هذه الطريقة: أتذكر كيف كنا نحاول أن نفعل ذلك البرنامج مع الناس يسيرون والموسيقى وتساقط الثلوج حسنا، هنا وهناك وكلاء مختلفة، ولكل عامل يمكن أن تفعل أي شيء على الشاشة في نفس الوقت. يمكنك الحصول عليه في بعض الأحيان، ومع ذلك، تم الخلط بين الطلاب من خلال نموذج البرمجة الجديد. كما أوضح NL في نهاية الدورة الأولى لها: ه أحيانا مربكة. كنت طالبا اثنين من وكلاء مختلفة لاجراء محادثات مع اثنين من أشياء مختلفة للقيام شيئين مختلفين. وهكذا كل فرد القيام بشيء آخر. ولها مربكة لمعرفة ما تقومون به وماذا كنت تفعل ذلك والذي قال لك أن تفعل ذلك. في تحليلي لنتائج، وسوف الابتعاد عن قصص النجاح والتركيز بدلا من ذلك على الأخطاء الطلاب والمفاهيم الخاطئة، أو الخلل. ويمكن لهذه الأخطاء بمثابة أدلة على عمليات التفكير والنماذج العقلية التي يستخدمها الطلاب أثناء البرمجة MultiLogo. هدفي الرئيسي في تحليل الطلاب الخلل هو الحصول على نظرة ثاقبة لطريقة الطلاب على التفكير في البرمجة المتزامنة. (تحليلي يركز حصرا على البق المتعلقة البرمجة المتزامنة في كتابة برامج MultiLogo، أدلى الطلاب بعض الأخطاء لا علاقة لها البرمجة المتزامنة أتجاهل هذه الحشرات التقليدية..) أنا تقسيم الطلاب البرمجة البق إلى ثلاث فئات رئيسية هي: الحشرات مشكلة التحلل. هذه الأخطاء تنشأ من طلاب صعوبات متحللة المشاكل إلى الإجراءات التي يتعين القيام بها في وقت واحد من قبل وكلاء متعددة. البق التزامن. هذه الأخطاء تنشأ من الطلاب صعوبة التنسيق وبتنسيق أنشطة وكلاء متعددة. البق وجوه المنحى. هذه الأخطاء تنشأ من الطلاب الخلط بين أنواع مختلفة من الكائنات (مثل وكلاء، والإجراءات، والمحركات، والموانئ) في نظام MultiLogo. هذه الفئات علة ليست متصلتين بدقة. الخلل في فئة واحدة تتفاعل مع وتؤثر الخلل في الفئات الأخرى. على سبيل المثال، وهو مبرمج لا يمكن التفكير في مشاكل المزامنة بصرف النظر عن القضايا مشكلة التحلل. ومع ذلك، فإن تقسيم الخام من البق في فئات هي خطوة أولى مفيدة نحو فهم كيف يفكر المبتدئين حول MultiLogo. لكل فئة، وسأقدم أمثلة من عمل الطلاب والتكهن لأسباب وجذور الخلل. (في تقديم برامج الطلاب، وأحيانا تنظيف رمز من أجل توضيح نقطة أكثر وضوحا. وبذلك، أنا بذل كل جهد ممكن لعدم تشويه روح رمز الأصلي.) مشكلة التحلل يلعب دورا هاما في مجال برمجة الكمبيوتر. لحل مشكلة معقدة، المبرمجين عادة تقسيم المشكلة إلى المشاكل الثانوية بساطة والكتابة إجراءات من أجل حل كل من المشاكل الثانوية. يمكن أن تتحلل كل من هذه المشاكل الثانوية إلى بعد ابسط المشاكل الثانوية الفرعية، وهلم جرا متكرر. هذا النوع من التحلل، والتي يمكن أن يطلق عليه التحليل الوظيفي. مفيد ليس فقط في مجال البرمجة، ولكن في كل أنواع من حل المشكلة. في البرمجة المتزامنة، هناك حاجة إلى شكل إضافي من التحلل المشكلة. في حين تقسيم المهمة إلى أجزاء وظيفية، يجب المبرمجين تقرر أيضا كيفية تقسيم القطع بين وكلاء لتنفيذ المتزامنة. هذا الجانب من التحلل، والتي يمكن أن يطلق عليه التحلل وكالة. لا يحل محل التحليل الوظيفي. بدلا من ذلك، النهجين متكاملان أنها تمثل بعدين مختلفين في التحلل المشكلة. ويركز التحليل الوظيفي على ما يجب القيام به يركز التحلل وكالة بشأن من الذي يجب القيام به. أمثلة من الأخطاء مشكلة التحلل. اثنين من الطلاب (FB وNL) واجهت صعوبات مشكلة التحلل على الفور، في مهمة / المتعري الأولية ووكر. تستخدم FB نهج التحليل الوظيفي القياسية: بدأت بالكتابة إجراءين دعا ضوء والحركية: وسيط 1 GT للضوء talkto الضوء موصول الميناء onfor 20 الانتظار 20 وكيل نهاية 1 GT لمحرك talkto ب محرك توصيله بمنفذ ب onfor 40 نهاية إشعار طريق أن FB تستخدم إلا عامل واحد. قبل كتابة الإجراءات، وأوضح FB نهجها: الكتابة سوء واحدة (الداخلي) للضوء واحد للمحرك ووضعها معا في برنامج واحد حتى تتمكن من استدعاء البرنامج في حد ذاته. تسبب كنت غير قادر على تكرار برنامجين وس لهم في نفس الوقت. يمكنك تكرار برنامج واحد مع اثنين من البرامج الصغيرة في ذلك. ولكن بعد كتابة هذا الإجراء، أدركت FB أنها لم تعرف كيفية الجمع بين الإجراءين بحيث أنها تنفيذ في الوقت نفسه: هل يمكن أن تفعل تكرار 200 ضوء السيارات، ولكن بعد ذلك انها لن تفعل المحرك وبعد ذلك سوف تفعل ضوء. عليك أن الجمع بينهما. إذا كيف يمكنك الجمع بينهما أريد أن أغادر هذه (subprocedures) وحدها، ولكن أريد أن أضع لهم معا. دون كتابة الإجراء، جمعهم سوية. قلت كيل واحد يفعل شيئا واحدا، ولكن إذا كان لنا أن الجمع بينهما، ثم يمكن أن (لا شيء أكثر من واحد في وقت واحد). ولكن كيف يمكن الجمع بين برنامجين دون كتابة برنامج واحد لهم جميعا في نهاية المطاف، جميع الطلاب في الدراسة نجحت في متحللة ووكر / مهمة المتعري في عمليتين المتباعدة. لكن متناول أيديهم من التحلل وكالة لا يزال هشا للغاية. وكانت هذه هشاشة واضحة عندما كانوا يعملون على المهام التي تنطوي على أجهزة استشعار ليغو التي تعمل باللمس. على المهمة التي تعمل باللمس جهاز استشعار الأكثر تقدما (التي ووكر والمتعري يجب أن يصطف الرسائل الواردة)، جميع الطلاب (في البداية على الأقل) صعوبة تحلل المهمة إلى مهام فرعية موازية. تنظر، على سبيل المثال، حالة DB، وربما مبرمج الشعار الأكثر كفاءة في المجموعة. كان DB صعوبة تذكر مع الأنشطة / المتعري ووكر، وبدأ مع نهج قائم على وكيل للمهام التي تعمل باللمس جهاز استشعار. وقدم وكيل واحد مسؤول عن جميع الأنشطة المتعلقة وكر، وقال انه وكيل مختلفة مسؤولة عن جميع الانشطة المتعلقة المتعري: وسيط 1 GT على المشي talkto ب محرك توصيله بمنفذ ب تكرار 5 onfor وكيل نهاية 30 ش 1 GT إلى onwalk listento : وكر استشعار ifelse استشعار المشي onwalk onwalk إنهاء وكيل 2 GT للضوء talkto ضوء توصيله بمنفذ تكرار 10 onfor 20 الانتظار 20 وكيل نهاية 2 GT إلى onlight listento: ضوء استشعار ifelse ضوء استشعار onlight onlight تنتهي وكيل 1 GT على الإحساس نسأل 2 onlight onwalk إنهاء هذا البرنامج يعمل بشكل جيد. تحلل إلى اثنين من وكلاء لعبت دورا هاما: ووكر يمكن تشغيلها حتى حين أن الضوء كان وميض، والعكس بالعكس. أن هذه الميزة يكون من الصعب تنفيذ مع الشعار التقليدي. ولكن بعد ذلك دفعت مشوا إحساس اللمس في حين كان ووكر تتحرك. ليس لديها أي تأثير. أنا اقترح أن DB تغيير البرنامج بحيث وكر يمكن أن تذكر إذا استشعار تعمل باللمس لقد دفعت في حين أنه كان يسير اذا كان لديه، يجب أن وكر قيام دورة المشي أخرى. DB فهم المشكلة فورا: آه. ثت صعبة. لذلك يجب أن تبقى تبحث عن ذلك (استشعار) حتى عند القيام بها سيرا على الأقدام. في بروك. التربيه. . لالمحدثة، بلد دقيق للبيانات المنشأ، فمن المستحسن أن كنت تعتمد على منتجات التعبئة والتغليف أو معلومات الشركة المصنعة. رسميا مرخصة مطبوعة هنا في الولايات المتحدة الأمريكية قبل تقلصت إلى تقليل انكماش قد يكون هناك رائحة الخل طفيفة كجزء من عملية الطباعة. وسوف تختفي بعد غسل 1ST. لالمحدثة، بلد دقيق للبيانات المنشأ، فمن المستحسن أن كنت تعتمد على منتجات التعبئة والتغليف أو معلومات الشركة المصنعة. رسميا مرخصة مطبوعة هنا في الولايات المتحدة الأمريكية قبل تقلصت إلى تقليل انكماش قد يكون هناك رائحة الخل طفيفة كجزء من عملية الطباعة. وسوف تختفي بعد غسل 1ST.


No comments:

Post a Comment