❞ كتاب Programming Environments for Novices ❝

❞ كتاب Programming Environments for Novices ❝

Programming Environments for Novices
Mark Guzdial
College of Computing, Georgia Institute of Technology
guzdial@cc.gatech.edu
May 7, 2003
1 Specializing Environments for Novices
The task of specializing programming environments for novices begins with the recog-
nition that programming is a hard skill to learn. The lack of student programming
skill even after a year of undergraduate studies in computer science was noted and
measured in the early 80's [32] and again in this decade [20]. We know that students
have problems with looping constructs [31], conditionals [8], and assembling programs
out of base components [33]|and there are probably other factors, and interactions
between these factors, too.
What are the critical pieces? What pieces, if we ¯xed" them (made them better
for novice programmers), would make programming into a more manageable, learn-
able skill? If we developed a language that changed how conditionals work or loops,
or make it easier to integrate components, would programming become easier? That's
the issue that developers of educational programming environments are asking.
Each novice programming environment (or family of environments) is attempting
to answer the question, What makes programming hard?" Each answer to that
question implies a family of environments that address the concern with a set of
solutions. Each environment discussed in this chapter attempts to use several of
these answers to make programming easier for novices.
Obviously, there are a great many answers to the question What makes program-
ming hard?" For each answer, there are a great many potential environments that
act upon that answer, and then there are a great many other potential environments
that deal with multiple answers to that question. That's not surprising, since it's
almost certainly true that there is no one correct answer to the question that applies
to all people.
Not all of these potential environments have been built and explored, however.
The ¯eld of Computer Science Education Research is too new, and there are too few
people doing work in this ¯eld. We are still in the stage of the ¯eld of identifying
1
potential answers to key questions|indeed, even ¯guring out what the key questions
are!
Nonetheless, there are many novice programming environments that have been
built, and not all can be discussed in a short primer. Instead, this chapter will focus
on three families that have been particularly in°uential in the development of modern
environments and in the thinking of the CS Ed research community.
² The Logo family of programming environments, that began as an o®-shoot
of the AI-programming language Lisp and spawned a rich variety of novice
programming environments.
² The rule-based family of programming environments, that drew from both Logo
and Smalltalk-72, but even more directly, Prolog.
² The traditional programming language family of novice programming environ-
ments, which tried not to change the language, but instead provide new student-
centered supports for existing programming languages.
The audience for these environments ranges from young school children for the
Logo environments to undergraduate university students for some of the traditional
programming language environments. In this chapter, the issue of student di®erences
(e.g., age, background, motivation) is simply glossed over. Such a huge simpli¯cation
is acceptable in this situation because the problem is so hard. No matter what the age
of the students, programming is hard to learn. Whether students attempt to learn
to program at a young age or at the age of young adults, the tasks and di±culties
remain similar. The environments in the sections below are attempting to deal with
those challenges at whatever the age of the student audience.
2 Logo and its Descendants: The Goal of Compu-
tational Literacy
Logo was developed in the mid-1960's by Wally Feuzeig and Danny Bobrow at BBN
Labs, in consultation with Seymour Papert at nearby MIT. Logo was designed to be
Lisp without parentheses." Lisp was a popular programming language for arti¯cial
intelligence programming. Lisp was known for its °exibility and the ease with which
data could become program, or vice-versa, making it very easy for programs to manip-
ulate their own components. Lisp was especially good for creating and manipulating
representations of knowledge. (See Figure 1 for the family tree of this section.)
The answer to the question of What makes programming hard?" for the Logo
developers was another question. When Logo was ¯rst being developed, people didn't
know that programming was going to be so hard for so many. Programming was still
a curiosity, an activity practiced only by the few who had access to the still-rare
machines. The Logo developers asked instead Why should students program?
-
من كتب لغة السي كتب لغات البرمجة - مكتبة كتب تقنية المعلومات.

نبذة عن الكتاب:
Programming Environments for Novices

2003م - 1446هـ
Programming Environments for Novices
Mark Guzdial
College of Computing, Georgia Institute of Technology
guzdial@cc.gatech.edu
May 7, 2003
1 Specializing Environments for Novices
The task of specializing programming environments for novices begins with the recog-
nition that programming is a hard skill to learn. The lack of student programming
skill even after a year of undergraduate studies in computer science was noted and
measured in the early 80's [32] and again in this decade [20]. We know that students
have problems with looping constructs [31], conditionals [8], and assembling programs
out of base components [33]|and there are probably other factors, and interactions
between these factors, too.
What are the critical pieces? What pieces, if we ¯xed" them (made them better
for novice programmers), would make programming into a more manageable, learn-
able skill? If we developed a language that changed how conditionals work or loops,
or make it easier to integrate components, would programming become easier? That's
the issue that developers of educational programming environments are asking.
Each novice programming environment (or family of environments) is attempting
to answer the question, What makes programming hard?" Each answer to that
question implies a family of environments that address the concern with a set of
solutions. Each environment discussed in this chapter attempts to use several of
these answers to make programming easier for novices.
Obviously, there are a great many answers to the question What makes program-
ming hard?" For each answer, there are a great many potential environments that
act upon that answer, and then there are a great many other potential environments
that deal with multiple answers to that question. That's not surprising, since it's
almost certainly true that there is no one correct answer to the question that applies
to all people.
Not all of these potential environments have been built and explored, however.
The ¯eld of Computer Science Education Research is too new, and there are too few
people doing work in this ¯eld. We are still in the stage of the ¯eld of identifying
1
potential answers to key questions|indeed, even ¯guring out what the key questions
are!
Nonetheless, there are many novice programming environments that have been
built, and not all can be discussed in a short primer. Instead, this chapter will focus
on three families that have been particularly in°uential in the development of modern
environments and in the thinking of the CS Ed research community.
² The Logo family of programming environments, that began as an o®-shoot
of the AI-programming language Lisp and spawned a rich variety of novice
programming environments.
² The rule-based family of programming environments, that drew from both Logo
and Smalltalk-72, but even more directly, Prolog.
² The traditional programming language family of novice programming environ-
ments, which tried not to change the language, but instead provide new student-
centered supports for existing programming languages.
The audience for these environments ranges from young school children for the
Logo environments to undergraduate university students for some of the traditional
programming language environments. In this chapter, the issue of student di®erences
(e.g., age, background, motivation) is simply glossed over. Such a huge simpli¯cation
is acceptable in this situation because the problem is so hard. No matter what the age
of the students, programming is hard to learn. Whether students attempt to learn
to program at a young age or at the age of young adults, the tasks and di±culties
remain similar. The environments in the sections below are attempting to deal with
those challenges at whatever the age of the student audience.
2 Logo and its Descendants: The Goal of Compu-
tational Literacy
Logo was developed in the mid-1960's by Wally Feuzeig and Danny Bobrow at BBN
Labs, in consultation with Seymour Papert at nearby MIT. Logo was designed to be
Lisp without parentheses." Lisp was a popular programming language for arti¯cial
intelligence programming. Lisp was known for its °exibility and the ease with which
data could become program, or vice-versa, making it very easy for programs to manip-
ulate their own components. Lisp was especially good for creating and manipulating
representations of knowledge. (See Figure 1 for the family tree of this section.)
The answer to the question of What makes programming hard?" for the Logo
developers was another question. When Logo was ¯rst being developed, people didn't
know that programming was going to be so hard for so many. Programming was still
a curiosity, an activity practiced only by the few who had access to the still-rare
machines. The Logo developers asked instead Why should students program? .
المزيد..

تعليقات القرّاء:


بيئات البرمجة للمبتدئين
Mark Guzdial
College of Computing، Georgia Institute of Technology
guzdial@cc.gatech.edu
7 مايو 2003
1 البيئات المتخصصة للمبتدئين
تبدأ مهمة تخصيص بيئات البرمجة للمبتدئين بإدراك
أن البرمجة مهارة صعبة ليتعلم.
لوحظ نقص مهارات البرمجة لدى الطلاب حتى بعد عام من الدراسات الجامعية في علوم الكمبيوتر
وقياسها في أوائل الثمانينيات [32] ومرة ​​أخرى في هذا العقد [20]. نعلم أن الطلاب
يواجهون مشكلات في التراكيب الحلقية [31] والشرطية [8] وتجميع البرامج
من المكونات الأساسية [33] | وربما هناك عوامل وتفاعلات أخرى
بين هذه العوامل أيضًا.
ما هي القطع الحاسمة؟ ما قطع، وإذا كنا ¯xed "هم (جعلها أفضل
للمبرمجين المبتدئين)، من شأنها أن تجعل البرمجة الى أكثر قابلية للإدارة، learn-
مهارة قادرة؟ إذا وضعنا اللغة التي غيرت كيفية عمل الشرطية أو الحلقات،
أو تجعل من السهل على الاندماج المكونات ، هل تصبح البرمجة أسهل؟ هذه هي
المشكلة التي يطرحها مطورو بيئات البرمجة التعليمية. تحاول
كل بيئة برمجة مبتدئة (أو مجموعة بيئات)
الإجابة على السؤال ، ما الذي يجعل البرمجة صعبة؟ " تتضمن كل إجابة على هذا
السؤال مجموعة من البيئات التي تعالج القلق بمجموعة من
حلول. تحاول كل بيئة تمت مناقشتها في هذا الفصل استخدام العديد من
هذه الإجابات لتسهيل البرمجة على المبتدئين.
من الواضح أن هناك العديد من الإجابات على السؤال ما الذي يجعل البرمجة
صعبة؟ "لكل إجابة ، هناك العديد من البيئات المحتملة التي
تعمل على هذه الإجابة ، ومن ثم هناك العديد من البيئات المحتملة الأخرى
التي تتعامل مع إجابات على هذا السؤال. هذا ليس مفاجئًا ، لأنه من
شبه المؤكد أنه لا توجد إجابة واحدة صحيحة للسؤال الذي ينطبق
على جميع الأشخاص.
ومع ذلك ، لم يتم بناء واستكشاف كل هذه البيئات المحتملة.
مجال علوم الكمبيوتر البحث في التعليم جديد للغاية ، وهناك عدد قليل جدًا منه
الناس الذين يعملون في هذا المجال. ما زلنا في مرحلة تحديد إجابة
واحدة
محتملة للأسئلة الرئيسية | في الواقع ، حتى تحديد ماهية الأسئلة الرئيسية
!
ومع ذلك ، هناك العديد من بيئات البرمجة المبتدئة التي تم
بناؤها ، ولا يمكن مناقشتها كلها في كتاب تمهيدي قصير. بدلاً من ذلك ، سيركز هذا الفصل
على ثلاث عائلات كانت لها أهمية خاصة في تطوير
البيئات الحديثة وفي تفكير مجتمع أبحاث CS Ed.
² مجموعة لوجو لبيئات البرمجة ، التي بدأت كلغة O®-shoot
للغة البرمجة AI Lisp ونتج عنها مجموعة متنوعة غنية من
بيئات البرمجة للمبتدئين .
² عائلة بيئات البرمجة المستندة إلى القواعد ، والتي تم اشتقاقها من كل من Logo
و Smalltalk-72 ، ولكن بشكل مباشر أكثر من Prolog.
² عائلة لغات البرمجة التقليدية لبيئات البرمجة للمبتدئين
، والتي حاولت عدم تغيير اللغة ، ولكنها بدلاً من ذلك توفر دعمًا جديدًا
يركز على الطالب للغات البرمجة الحالية.
يتراوح جمهور هذه البيئات من أطفال المدارس الصغار
لبيئات Logo إلى طلاب الجامعات الجامعيين لبعض
بيئات لغات البرمجة التقليدية . في هذا الفصل ، تم تجاهل مسألة الاختلافات الطلابية
(على سبيل المثال ، العمر ، الخلفية ، الدافع). هذا تبسيط ضخم
مقبول في هذه الحالة لأن المشكلة صعبة للغاية. بغض النظر عن عمر
الطلاب ، من الصعب تعلم البرمجة. سواء حاول الطلاب تعلم
البرمجة في سن مبكرة أو في سن الشباب ، تظل المهام والصعوبات
متشابهة. تحاول البيئات الموجودة في الأقسام أدناه التعامل مع
تلك التحديات مهما كان عمر جمهور الطلاب.
2 الشعار وأحفاده: الهدف من شعار
محو الأمية الحاسوبية
تم تطويره في منتصف الستينيات من قبل والي فيوزيج وداني بوبرو في
مختبرات بي بي إن ، بالتشاور مع سيمور بابيرت في معهد ماساتشوستس للتكنولوجيا القريب. تم تصميم الشعار ليكون
Lisp بدون أقواس. "كانت Lisp لغة برمجة مشهورة للصناعة اليدوية
برمجة الذكاء. عُرفت Lisp بمرونتها وسهولة تحويل
البيانات إلى برنامج ، أو العكس ، مما يجعل من السهل جدًا على البرامج معالجة
مكوناتها. كان Lisp جيدًا بشكل خاص لإنشاء
تمثيلات المعرفة والتلاعب بها . (انظر الشكل 1 للاطلاع على شجرة العائلة في هذا القسم.)
كانت الإجابة على سؤال ما الذي يجعل البرمجة صعبة؟ "بالنسبة
لمطوري Logo ، كان سؤالًا آخر. عندما كان يتم تطوير Logo لأول مرة ، لم يكن الناس
يعرفون أن البرمجة ستبدأ أن تكون صعبًا جدًا بالنسبة للكثيرين ، كانت البرمجة لا تزال
تثير الفضول ، وهو نشاط يمارسه فقط قلة من الذين لديهم إمكانية الوصول إلى الأجهزة التي لا تزال نادرة
.



سنة النشر : 2003م / 1424هـ .
حجم الكتاب عند التحميل : 1.2 ميجا بايت .
نوع الكتاب : pdf.
عداد القراءة: عدد قراءة Programming Environments for Novices

اذا اعجبك الكتاب فضلاً اضغط على أعجبني
و يمكنك تحميله من هنا:

تحميل Programming Environments for Novices
شكرًا لمساهمتكم

شكراً لمساهمتكم معنا في الإرتقاء بمستوى المكتبة ، يمكنكم االتبليغ عن اخطاء او سوء اختيار للكتب وتصنيفها ومحتواها ، أو كتاب يُمنع نشره ، او محمي بحقوق طبع ونشر ، فضلاً قم بالتبليغ عن الكتاب المُخالف:

برنامج تشغيل ملفات pdfقبل تحميل الكتاب ..
يجب ان يتوفر لديكم برنامج تشغيل وقراءة ملفات pdf
يمكن تحميلة من هنا 'http://get.adobe.com/reader/'