رفتن به محتوای اصلی
برنامه‌سازی پیشرفته با پایتون درس‌نامهٔ آزاد

دربارهٔ این دوره

این سایت یک درس‌نامهٔ آزاد است که دانیال رشیدی ساخته و نگهداری می‌کند. هدف آن این است که هر مطلب، دقیق و با منبع کافی توضیح داده شود و بتوانید بدون حضور در کلاس هم آن را یاد بگیرید.

روش مطالعهٔ پیشنهادی

  1. از فهرست درس‌ها شروع کنید و به ترتیب پیش بروید.
  2. پیش از هر بخش، فهرست فرمول‌ها را مرور کنید.
  3. بعد از خواندن هر درس، مثال‌های حل‌شده را خودتان از پایان حل کنید.
  4. در پایان هر بخش، تمرین‌ها را انجام دهید.
  5. برای مرور سریع، از واژه‌نامه و جست‌وجو استفاده کنید.

ساختار دوره

  • پیش‌نیاز و تفکر برنامه‌نویسی — پل ورود به دوره: تفکر الگوریتمی، توابع، ارجاع‌ها و ساختار پروژه
  • مبانی برنامه‌سازی شیءگرا — شیء، کلاس، کپسوله‌سازی و طراحی مسئولیت‌ها
  • وراثت و چندریختی — وراثت، بازنویسی، ارسال پویا، ترکیب و MRO
  • طراحی پیشرفته کلاس‌ها و مدل شیء پایتون — متدهای کلاس و ایستا، ویژگی‌ها، متدهای جادویی و چرخهٔ عمر شیء
  • ماژول، پکیج و برنامه‌نویسی جنریک — واردات، فضاهای نام، اعلان نوع و طراحی نوع‌محور
  • مدیریت خطا، اشکال‌زدایی و آزمون — استثناها، زمینه‌بان‌ها، روش اشکال‌زدایی و تست واحد
  • ساختمان داده‌ها و الگوریتم‌های پایه — کالکشن‌های پایتون، تکرارگرها، جست‌وجو، مرتب‌سازی و پیچیدگی
  • فایل، ورودی/خروجی و سریال‌سازی — متن و باینری، pathlib، JSON و CSV و بار امن دادهٔ خارجی
  • بازآرایی، کد تمیز و الگوهای طراحی — بوی کد، ساده‌سازی، انسجام و الگوهای کاربردی با جایگزین پایتونیک
  • رابط گرافیکی و برنامه‌نویسی رویدادمحور — مدل ذهنی GUI، حلقهٔ رویداد و جدایی منطق از نما
  • هم‌روندی، موازی‌سازی و شبکه — ریسه‌ها، همگام‌سازی، اجراکننده‌ها و سوکت‌های TCP
  • بازتاب و مباحث تکمیلی — درون‌نگری، تزئین‌کننده‌ها، بستارها و enum
  • مرور، حل مسئله و پروژه — تمرین‌های ترکیبی، ردیابی کد و پروژهٔ پایانی

یادداشت‌هایی دربارهٔ محتوا

ارتباط

پرسش، پیشنهاد یا گزارش اشتباه را می‌توانید از طریق تلگرام بفرستید: t.me/imdanialrashidi. وب‌سایت شخصی: imdanialrashidi.github.io.

دیگر ساخته‌ها

پروژه‌ها و وب‌سایت‌های آموزشی جدید برای درس در کانال تلگرام قرار می‌گیره: t.me/danialrashidi_projects. فهرست همهٔ وب‌سایت‌های آموزشی: study.danialrashidi.ir.