مقدمة في علوم الحاسوب والبرمجة باستخدام Python
مقرر MIT التمهيدي في البرمجة بلغة Python 3: من المعرفة والأنواع والمتغيّرات، إلى النصوص والتفرّع والتكرار، ثم الدوال والتجريد، والاستدعاء الذاتي، والأصناف والوراثة، وصولًا إلى تعقيد الخوارزميات (O الكبير) وخوارزميات الترتيب. يضم 26 محاضرة مسجّلة، وتمارين الإصبع، و6 مجموعات مسائل، و10 جلسات تطبيقية.
ترجمة عربية غير رسمية وغير تجارية، بإسناد إلى MIT OpenCourseWare تحت رخصة CC BY-NC-SA 4.0. الفيديوهات روابط ومضمّنات إلى النسخة الرسمية على YouTube، ولم تُرفع من جديد. حالة الترجمة حتى الآن: مكتملة في النشرة (Syllabus)، والجدول الزمني، والقراءات، وحوار المدرّسة؛ وفي صفحات المحاضرات الست والعشرين وملاحظات الشرائح لكلٍّ منها؛ وفي مجموعات المسائل الست؛ وجلسات التطبيق العشر؛ وتمارين الإصبع في كل محاضرة نشرتها MIT. وفي التفريغات الرسمية (Transcript) للمحاضرات الست والعشرين كلها، صفحةً بصفحة. لم تُنشر الأشكال والصور ذات التراخيص المستقلة (صور من استوديوهات سينمائية، وصور من ويكيبيديا برخصة CC BY-SA مستقلة، ولقطات شاشة لأجهزة)، ولم يُنسخ ملفّا اختبار مشتقّان من Stack Overflow في المجموعتين 2 و3، ولم يُنسخ الكتاب الدراسي المرجعي.
نشرة المقرر والجدول والقراءات
03كلمة المدرّسة
01المحاضرة 1: مقدمة
04المحاضرة 2: النصوص، والإدخال/الإخراج، والتفرّع
04المحاضرة 3: التكرار (Iteration)
04المحاضرة 4: التكرارات على النصوص، والتخمين والتحقّق، والأعداد الثنائية
04المحاضرة 5: الأعداد العشرية العائمة وطرق التقريب
04المحاضرة 6: البحث بالتنصيف (Bisection Search)
04المحاضرة 7: التفكيك والتجريد والدوال
04المحاضرة 8: الدوال ككائنات
04المحاضرة 9: دوال Lambda، والصفوف (Tuples)، والقوائم (Lists)
04المحاضرة 10: القوائم وقابلية التغيير (Mutability)
04المحاضرة 11: الأسماء المستعارة (Aliasing) والاستنساخ (Cloning)
04المحاضرة 12: فهم القوائم، والدوال ككائنات، والاختبار، وتصحيح الأخطاء
04المحاضرة 13: الاستثناءات (Exceptions) والتأكيدات (Assertions)
04المحاضرة 14: القواميس (Dictionaries)
04المحاضرة 15: الاستدعاء الذاتي (Recursion)
04المحاضرة 16: الاستدعاء الذاتي على غير الأعداد
04المحاضرة 17: الأصناف في بايثون (Python Classes)
04المحاضرة 18: المزيد من طرائق الأصناف في بايثون
04المحاضرة 19: الوراثة (Inheritance)
04المحاضرة 20: مثال البرمجة كائنية التوجه: متتبّع اللياقة
04المحاضرة 21: قياس زمن البرامج وعدّ العمليات
03المحاضرة 22: الصنف O الكبير (Big Oh) والصنف ثيتا (Theta)
04المحاضرة 23: أمثلة على أصناف التعقيد (Complexity Classes)
04المحاضرة 24: خوارزميات الترتيب (Sorting Algorithms)
03المحاضرة 25: الرسم البياني (Plotting)
03المحاضرة 26: الوصول إلى عناصر القائمة، والتجزئة، والمحاكاة، والختام
03مجموعات المسائل
06الجلسات التطبيقية
10- 01 جلسات التمارين — الجلسة الأولى
- 02 الجلسة التطبيقية 2: النصوص، والتكرار
- 03 الجلسة التطبيقية 3: الأعداد الثنائية، والتقريب، والدوال
- 04 الجلسة التطبيقية 4: الدوال والنطاق، ودوال Lambda
- 05 الجلسة التطبيقية 5: القوائم وقابلية التغيير
- 06 الجلسة التطبيقية 6: التشارك بالاسم والاستنساخ، وقوائم الفهم
- 07 الجلسة التطبيقية 7: الاستثناءات والتأكيدات، والقواميس
- 08 الجلسة التطبيقية 8: الاستدعاء الذاتي (Recursion)
- 09 الجلسة التطبيقية 9: البرمجة الكائنية والوراثة
- 10 الجلسة التطبيقية 10: كفاءة البرامج والتعقيد