مجموعات المسائل — المقدمة والتثبيت (PS 0)
مجموعات المسائل (Problem Sets)
تُكلَّف مجموعات المسائل وحلولها ضمن التقييم، وفق صفحة المواد الرسمية. يستثني الجدول PS 0 من الدرجة. تتناول المجموعات المنشورة: المقدمة والتثبيت (0)، الفائدة المركبة (1)، لعبة تخمين الكلمة Hangman (2)، المسافة بين المستندات (3)، العودية والتشفير (4)، واستخدام المكتبات (5).
ملاحظة المترجم: المواعيد ونماذج التسليم والسياسات أدناه من مقرر خريف 2022، وليست خدمة تسليم تعمل في هذه المكتبة. تظهر في المصدر أزرار «إرسال» (Submit) ورسالة «لديك عدد غير محدود من التسليمات المتبقية» بعد أسئلة الاستبيانات وحقول رفع الملفات؛ جميعها ممثلة نصيًا هنا. الروابط إلى المصادر الرسمية لا تمنح إذنًا لإعادة نشر كل محتويات حزمها. ملفا الاختبار test_ps2_student.py وtest_ps3_student.py يتضمنان مساعدات من Stack Overflow؛ لم يُنسخا أو يُعاد ترخيصهما. كما لم تُنسخ صور PS5 المستثناة أو الكتاب الدراسي.
مجموعة المسائل 0: المقدمة والتثبيت (Introduction & Installation)
موعد تسليم الأسئلة أدناه: الجمعة 9 سبتمبر 2022، الساعة 09:00 مساءً.
1) استبيان الخلفية (Background Survey)
ما سنتك الدراسية؟
- السنة الأولى (Freshman).
- السنة الثانية (Sophomore).
- السنة الثالثة (Junior).
- السنة الرابعة (Senior).
- طالب دراسات عليا، غير ماجستير إدارة الأعمال (Graduate Student — Non MBA).
- طالب ماجستير إدارة الأعمال (MBA Student).
إرسال. لديك عدد غير محدود من التسليمات المتبقية.
ما تخصصك الأول؟
إذا كنت في السنة الأولى، فاختر «السنة الأولى» (Freshman). حقل اختيار، قيمته الابتدائية --.
إرسال. لديك عدد غير محدود من التسليمات المتبقية.
ما تخصصك الثاني؟
إذا لم تكن تدرس تخصصين أو لم تقرر بعد، فلا تجب عن هذا السؤال. حقل اختيار، قيمته الابتدائية --.
إرسال. لديك عدد غير محدود من التسليمات المتبقية.
ما العدد التقريبي لأسطر الكود التي كتبتها قبل التسجيل في 6.100L؟
حقل إجابة، قيمته الابتدائية --. إرسال. لديك عدد غير محدود من التسليمات المتبقية.
ما خبرتك السابقة بالبرمجة؟
- لا توجد.
- HTML.
- مقرر AP Computer Science.
- دورة برمجة عبر الإنترنت، مثل Code Academy وغيرها.
- خبرة برمجية بلغة غير بايثون.
- خبرة برمجية ببايثون.
- سبق أن درست 6.0001 أو 6.100A أو 6.100L.
- سبق أن درست مقرر بايثون في MIT أثناء فترة الأنشطة المستقلة (IAP)، مثل 6.145.
- شاهدت مقرر برمجة على OCW أو edX، أو شاركت فيه.
- مقرر جامعي يستخدم لغة برمجة غير بايثون.
- مقرر جامعي يستخدم بايثون.
إرسال. لديك عدد غير محدود من التسليمات المتبقية.
لماذا سجلت في 6.100A؟
- لتعلم البرمجة.
- لاستيفاء متطلب دراسي.
- للحصول على درجة جيدة.
- سبب آخر.
ملاحظة المترجم: يظهر الرقم 6.100A في السؤال الأصلي، وقد أُبقي كما هو.
إرسال. لديك عدد غير محدود من التسليمات المتبقية.
اختر كل الموارد التي تعرفها أو استخدمتها للمساعدة في تعلم البرمجة
- Google.
- دورات البرمجة عبر الإنترنت.
- Stack Overflow.
- أصدقاء يعرفون البرمجة.
إرسال. لديك عدد غير محدود من التسليمات المتبقية.
2) زميل مجموعة المسائل (Pset Buddy)
هل تريد التسجيل في نظام زملاء مجموعات المسائل؟ في كل أسبوع سيُعيَّن لك شخص جديد تتعاون معه في المجموعة. ستُطابق أنت وزميلك بناء على المنطقة الزمنية والخبرة والسنة الدراسية، ويمكنكما التعاون بالقدر الذي تريدانه دون عقوبة على تشابه الكود. يمكنك تغيير اختياراتك لكل مجموعة حتى التاسعة مساء الليلة السابقة لإتاحتها.
3) تقييم معلومات المقرر (Class Info Assessment)
أي مما يلي يدخل في درجتك؟
- مجموعات المسائل.
- التمارين الإلزامية.
- التمارين الاختيارية على MITx.
- الامتحانات.
- حضور المحاضرات والمشاركة فيها.
- حضور جلسات التمارين والمشاركة فيها.
إرسال. لديك عدد غير محدود من التسليمات المتبقية.
متى يحين موعد تسليم مجموعات المسائل؟
- كل يوم اثنين.
- كل يوم أربعاء.
- بحسب مجموعة المسائل؛ راجع الجدول.
إرسال. لديك عدد غير محدود من التسليمات المتبقية.
متى يحين موعد التمارين القصيرة الإلزامية (Mandatory Finger Exercises)؟
- تُتاح عمومًا مع مجموعة المسائل، وتُسلَّم معها.
- تُتاح عمومًا مع محاضرة، ويحين موعدها عند بداية المحاضرة التالية.
- ليس لكل تمرين موعد نهائي، لكن يجب إكمالها جميعًا بنهاية المقرر.
إرسال. لديك عدد غير محدود من التسليمات المتبقية.
تُعقد الاختبارات المصغرة في آخر 20–45 دقيقة من محاضرات محددة في الجدول. ماذا يحدث إذا لم تستطع حضور اختبار مصغر؟
- تراسل
S^3بالبريد وتنشر في المنتدى لترتيب اختبار بديل لتعارض الموعد (Conflict Microquiz). - لا تُعقد اختبارات بديلة، لكن تُستبعد أدنى درجة اختبار.
إرسال. لديك عدد غير محدود من التسليمات المتبقية.
تعمل مع صديق، وليس زميلك المعين، في مجموعة المسائل. يخبرك باستخدام نوع محدد من الحلقات لحل جزء منها. هل هذه مخالفة لسياسة التعاون؟
- نعم، لك ولصديقك.
- نعم، لصديقك فقط.
- نعم، لك فقط.
- لا.
إرسال. لديك عدد غير محدود من التسليمات المتبقية.
توقفت عند خطأ في مجموعة المسائل. صديقك، وليس زميلك المعين، أنهى المجموعة لكنه لم يعد يستطيع البقاء لمساعدتك، فأرسل كوده إليك بالبريد. تنظر في الجزء الذي توقفت عنده، لكن تكتب كودك بنفسك. هل هذه مخالفة لسياسة التعاون؟
- نعم، لك ولصديقك.
- نعم، لصديقك فقط.
- نعم، لك فقط.
- لا.
إرسال. لديك عدد غير محدود من التسليمات المتبقية.
4) مقدمة إلى بايثون وSpyder
تعرّفك هذه المجموعة إلى بيئة البرمجة Spyder من توزيعة أناكوندا (Anaconda Distribution) لبايثون، وإلى البرمجة ببايثون، وإلى البنية العامة لمجموعات المسائل. ستتحقق من تثبيت بايثون، وتكتب برنامجًا بسيطًا، وتسلّمه. اقرأ هذه المجموعة بعناية، وخصوصًا قسمي التعاون وإجراءات التسليم.
4.1) التعاون (Collaboration)
يمكنك العمل مع طلاب آخرين. ومع ذلك، يجب أن يكتب كل طالب تكليفه ويسلّمه على نحو منفصل. احرص على ذكر من عملت معهم في تعليقات تسليمك.
4.2) تثبيت بايثون وSpyder
اتبع خطوات نشرة البدء (Getting Started) لتثبيت توزيعة أناكوندا لبايثون وSpyder على الجهاز الذي تنوي استخدامه هذا الفصل. ينبغي أن تأتي حزمتا numpy وmatplotlib، اللتان ستُستخدمان أساسًا في 6.0002، مع التثبيت. تعرّف إلى بايثون وSpyder باستخدام تمارين النشرة. عندما تكون جاهزًا، انتقل إلى الجزء البرمجي من هذا التكليف.
يستخدم هذا المقرر بايثون الإصدار 3.0 أو أحدث. عندما تبدأ استخدام نظامك، تأكد أن رقم الإصدار المعروض 3.0 أو أحدث. بايثون 3 ليست متوافقة رجعيًا مع الإصدارات التي تبدأ بـ 2.x.
4.3) برنامجك الأول: رفع عدد إلى قوة وأخذ لوغاريتم
هدف التمرين البرمجي هو التأكد من صحة تثبيت بايثون وNumPy، وزيادة راحتك في استخدام Spyder، والبدء باستخدام عناصر بسيطة من بايثون. تشمل العناصر القياسية للبرنامج القدرة على طباعة النتائج باستخدام print، وقراءة إدخال المستخدم من نافذة الأوامر، مثلًا بالدالة input، وتخزين القيم في متغير كي يستطيع البرنامج الوصول إليها عند الحاجة.
4.3.1) التكليف (Assignment)
اكتب برنامجًا ينفّذ ما يلي بالترتيب:
- في أعلى الملف، اكتب
import numpy. - اكتب سطرًا يسند القيمة
5إلى متغير اسمهx. - اكتب سطرًا يسند القيمة
8إلى متغير اسمهy. - اجمع المتغيرين
xوy، واحفظ النتيجة في متغير اسمهz. - احفظ نتيجة الأمر
numpy.log2(z)في متغير اسمهa.
استخدم Spyder لإنشاء البرنامج، واحفظ الكود في ملف اسمه ps0.py.
تلميح: تذكر أنه إذا أردت الاحتفاظ بقيمة فعليك تخزينها في متغير؛ أي إعطاؤها اسمًا تستطيع الإشارة إليه عندما تحتاجها. قد يفيدك الاطلاع على قسم المتغيرات والسلاسل النصية في Python Wikibook.
ملاحظة المترجم: رغم عنوان القسم الذي يشير إلى رفع عدد إلى قوة، تنص خطوات التكليف المنشورة هنا على الجمع. لم تُغيَّر الخطوات لتوافق العنوان.
5) إجراءات التسليم (Hand-in Procedure)
5.1) الحفظ
احفظ الكود في ps0.py. لا تتجاهل هذه الخطوة، ولا تحفظ ملفاتك بأسماء مختلفة.
5.2) معلومات الوقت والتعاون
في بداية كل ملف، اكتب في تعليق العدد التقريبي للساعات التي قضيتها في مسائل ذلك الجزء، وأسماء من تعاونوا معك. مثال:
# Problem Set 0
# Name: Jane Lee
# Collaborators: John Doe
# Time Spent: 3:30
ثم يأتي كودك.
5.3) الإرسال
بعد إكمال الخطوات في ملف Getting Started من الملفات المحملة والمسألة 3 أعلاه، ارفع ملفك هنا. يمكنك رفع إصدارات جديدة من كل ملف حتى موعد التاسعة مساءً، لكن أي رفع بعد ذلك يُحتسب من أيام التأخير إذا بقي لديك رصيد. إذا لم يتبق لديك أي يوم تأخير، فلن تحصل على درجة للتسليم المتأخر.
عندما ترفع ملفًا جديدًا، يُستبدل ملفك القديم.
واجهة المصدر: «اختيار ملف» (Select File)، «لم يُختَر ملف» (No file selected)، «إرسال» (Submit). لديك عدد غير محدود من التسليمات المتبقية.
المصدر والنَّسب والترخيص
المصادر: قائمة مجموعات المسائل الرسمية، PS 0، وحزمة PS 0 الرسمية. المدخل المؤرشف: extracted/mit6_100l_f22_ps0.layout.txt، ووصف مجموعات المسائل من extracted/pages/materials-by-type/index.txt. ترجمة عربية للتعليمات كاملة؛ لم تُنسخ الحزم الأصلية إلى الملفات العامة.
النَّسب: Ana Bell. 6.100L Introduction to CS and Programming using Python, Fall 2022. Massachusetts Institute of Technology: MIT OpenCourseWare. المقرر الأصلي. المواد المملوكة لـ MIT وهذه الترجمة بموجب CC BY-NC-SA 4.0، مع النَّسب، والاستخدام غير التجاري، والمشاركة بالمثل. ترجمة غير رسمية لا تعني اعتماد MIT. مواد الأطراف الثالثة ليست مشمولة تلقائيًا؛ شروط الاستخدام.