دربارهٔ این دوره
این سایت یک درسنامهٔ آزاد است که دانیال رشیدی ساخته و نگهداری میکند. هدف آن این است که هر مطلب، دقیق و با منبع کافی توضیح داده شود و بتوانید بدون حضور در کلاس هم آن را یاد بگیرید.
روش مطالعهٔ پیشنهادی
- از فهرست درسها شروع کنید و به ترتیب پیش بروید.
- پیش از هر بخش، فهرست فرمولها را مرور کنید.
- بعد از خواندن هر درس، مثالهای حلشده را خودتان از پایان حل کنید.
- در پایان هر بخش، تمرینها را انجام دهید.
- برای مرور سریع، از واژهنامه و جستوجو استفاده کنید.
ساختار دوره
- پیشنیاز و تفکر برنامهنویسی — پل ورود به دوره: تفکر الگوریتمی، توابع، ارجاعها و ساختار پروژه
- مبانی برنامهسازی شیءگرا — شیء، کلاس، کپسولهسازی و طراحی مسئولیتها
- وراثت و چندریختی — وراثت، بازنویسی، ارسال پویا، ترکیب و MRO
- طراحی پیشرفته کلاسها و مدل شیء پایتون — متدهای کلاس و ایستا، ویژگیها، متدهای جادویی و چرخهٔ عمر شیء
- ماژول، پکیج و برنامهنویسی جنریک — واردات، فضاهای نام، اعلان نوع و طراحی نوعمحور
- مدیریت خطا، اشکالزدایی و آزمون — استثناها، زمینهبانها، روش اشکالزدایی و تست واحد
- ساختمان دادهها و الگوریتمهای پایه — کالکشنهای پایتون، تکرارگرها، جستوجو، مرتبسازی و پیچیدگی
- فایل، ورودی/خروجی و سریالسازی — متن و باینری، pathlib، JSON و CSV و بار امن دادهٔ خارجی
- بازآرایی، کد تمیز و الگوهای طراحی — بوی کد، سادهسازی، انسجام و الگوهای کاربردی با جایگزین پایتونیک
- رابط گرافیکی و برنامهنویسی رویدادمحور — مدل ذهنی GUI، حلقهٔ رویداد و جدایی منطق از نما
- همروندی، موازیسازی و شبکه — ریسهها، همگامسازی، اجراکنندهها و سوکتهای TCP
- بازتاب و مباحث تکمیلی — دروننگری، تزئینکنندهها، بستارها و enum
- مرور، حل مسئله و پروژه — تمرینهای ترکیبی، ردیابی کد و پروژهٔ پایانی
یادداشتهایی دربارهٔ محتوا
ارتباط
پرسش، پیشنهاد یا گزارش اشتباه را میتوانید از طریق تلگرام بفرستید: t.me/imdanialrashidi. وبسایت شخصی: imdanialrashidi.github.io.
دیگر ساختهها
پروژهها و وبسایتهای آموزشی جدید برای درس در کانال تلگرام قرار میگیره: t.me/danialrashidi_projects. فهرست همهٔ وبسایتهای آموزشی: study.danialrashidi.ir.