كيفية تصميم البرامج

كتاب "كيفية تصميم البرامج " ( HtDP ) هو كتابٌ دراسيٌّ من تأليف ماتياس فيليسين ، وروبرت بروس فيندلر ، وماثيو فلات ، وشري رام كريشنامورثي، يتناول التصميم المنهجي لبرامج الحاسوب . نشرت مطبعة معهد ماساتشوستس للتكنولوجيا الطبعة الأولى عام ٢٠٠١، والطبعة الثانية عام ٢٠١٨، وهي متاحةٌ مجانًا على الإنترنت ومطبوعة. يُقدّم الكتاب مفهوم "وصفة التصميم" ، وهي عمليةٌ من ست خطوات لإنشاء برامج انطلاقًا من بيان المشكلة. مع أن الكتاب استُخدم في الأصل مع مشروع "TeachScheme!" التعليمي (الذي أُعيدت تسميته إلى "ProgramByDesign ")، فقد اعتُمد في العديد من الكليات والجامعات لتدريس مبادئ تصميم البرامج.

وفقًا لمنهجية HtDP، تبدأ عملية التصميم بتحليل دقيق لبيان المشكلة بهدف استخلاص وصف دقيق لأنواع البيانات التي يستهلكها البرنامج المطلوب وينتجها. ويحدد هيكل هذه الأوصاف تنظيم البرنامج.

ثم يُقدّم الكتاب بعناية أشكال البيانات ذات التعقيد المتزايد تدريجيًا. يبدأ بالبيانات ذات الأشكال الذرية ، ثم ينتقل إلى الأشكال المركبة ، بما في ذلك البيانات التي قد تكون كبيرة جدًا. يشرح الكتاب، لكل نوع من أنواع تعريف البيانات، كيفية تنظيم البرنامج من حيث المبدأ، مما يُمكّن المبرمج الذي يواجه شكلًا جديدًا من البيانات من بناء برنامج منهجي.

على غرار كتاب "بنية وتفسير برامج الحاسوب " (SICP)، يعتمد برنامج HtDP على نسخة معدلة من لغة البرمجة Scheme . ويتضمن بيئة تطوير متكاملة خاصة به (IDE) تُسمى DrRacket ، والتي توفر مجموعة من لغات البرمجة. تدعم اللغة الأولى الدوال والبيانات الذرية والهياكل البسيطة فقط. وتُضيف كل لغة قدرة تعبيرية إلى اللغة السابقة. باستثناء لغة التدريس الرئيسية، فإن جميع لغات HtDP هي لغات برمجة وظيفية .

الأساس التربوي

في ورقة بحثية نُشرت عام ٢٠٠٤ بعنوان "بنية وتفسير مناهج علوم الحاسوب" [ ١ ] ، قارن المؤلفون أنفسهم بين التركيز التربوي لكتاب " كيفية تصميم البرامج " (HtDP) والتركيز التربوي لكتاب " بنية وتفسير برامج الحاسوب" (SICP). وفي هذه الورقة المكونة من ١٤ صفحة، ميّز المؤلفون بين التركيز التربوي لكل منهما، وبيّنوا كيف صُمم كتاب "كيفية تصميم البرامج" ككتاب دراسي لمعالجة بعض المشكلات التي واجهها بعض الطلاب والمعلمين مع كتاب "بنية وتفسير برامج الحاسوب".

تُقدّم هذه الورقة البحثية الإطار التربوي المحيط بنشر كتاب "بنية وتفسير برامج الحاسوب" (SICP). تبدأ الورقة بتاريخ الكتاب ونقده، ثم تصف هدف منهج علوم الحاسوب . بعد ذلك، تُبيّن مبادئ التدريس التي يقوم عليها برنامج "التعلم من خلال التصميم" (HtDP)، ولا سيما الفرق بين التدريس الضمني والتدريس الصريح لمبادئ التصميم. ثم تُواصل الورقة وصف دور لغة البرمجة "سكيم" (Scheme ) وأهمية بيئة البرمجة المثالية ، وتختتم بتقييم شامل للمحتوى وردود فعل الطلاب وأعضاء هيئة التدريس على تجربة استخدام كتاب "بنية وتفسير برامج الحاسوب" (SICP) مقارنةً ببرنامج "التعلم من خلال التصميم" (HtDP).

يركز هذا البحث بشكل أساسي على الفرق في المعرفة المطلوبة في مجال تخصص كل من كتاب "بنية وتفسير برامج الحاسوب" (SICP) وكتاب "التعلم من خلال تصميم البرامج" (HtDP). ويُقارن جدولٌ في البحث التمارين الرئيسية في كلا الكتابين، ويشرح النص المصاحب كيف تتطلب تمارين الكتاب الأول معرفةً أكثر تعقيدًا في مجال التخصص مقارنةً بتمارين كتاب "التعلم من خلال تصميم البرامج". ويستمر البحث في شرح سبب خلط بعض الطلاب بين المعرفة في مجال التخصص ومعرفة تصميم البرامج نتيجةً لهذا الفرق في المعرفة المطلوبة.

تزعم الورقة البحثية الجهود الرئيسية الأربعة التالية التي بذلها مؤلفو HtDP لمعالجة المشكلات المتصورة في SICP:

  1. يتناول HtDP بشكل صريح، وليس ضمنيًا، كيفية بناء البرامج.
  2. ولتسهيل عملية البرمجة، يرشد الكتاب الطلاب عبر خمسة مستويات معرفية مختلفة تتوافق مع مستويات تعقيد تعريف البيانات.
  3. تركز تمارين الكتاب على إرشادات تصميم البرامج، بدلاً من المعرفة المتخصصة.
  4. يفترض الكتاب معرفة أقل بالمجال مقارنةً بكتاب SICP.

ثم تميز الورقة بين التكرار الهيكلي ، حيث يكون تعريف البيانات ذات الصلة مرجعيًا ذاتيًا ، مما يتطلب عادةً عملية تصميم مباشرة، والتكرار التوليدي، حيث يتم إنشاء بيانات مشكلة جديدة في منتصف عملية حل المشكلة ويتم إعادة استخدام طريقة حل المشكلة، مما يتطلب غالبًا رؤية رياضية مخصصة ، وتؤكد على كيف أن هذا التمييز يجعل نهجهم قابلاً للتوسع إلى عالم البرمجة الكائنية (OO).

وأخيراً، تختتم الورقة بوصف ردود الفعل من مختلف أعضاء هيئة التدريس والطلاب بعد استخدامهم برنامج HtDP في الفصل الدراسي.

مراجع

  1. بنية وتفسير مناهج علوم الحاسوب. مجلة البرمجة الوظيفية، المجلد 14، العدد 4 (يوليو 2004)، الصفحات: 365-378 (ملف PDF) ، جامعة شمال شرق، 2004، مؤرشف (ملف PDF) من النسخة الأصلية في 11 مايو 2008ورقة بحثية يقارن فيها المؤلفون بين HtDP و SICP ويقارنون بينهما.