برنامه‌سازی پایتون

مدرس: دکتر حمید ضرابی زاده پیش‌نیاز: –
ترم: پاییز ۱۴۰۵ محل برگزاری: کلاس مجازی
زمان ارائه: شنبه ۱۸:۰۰ تا ۱۹:۳۰ مشاهده: دریافت لایسنس

معرفی درس

برنامه‌سازی پایتون؛ از مبانی برنامه‌نویسی تا حل مسئله با کد

برنامه‌نویسی تنها نوشتن دستورهایی به زبان کامپیوتر نیست؛ بلکه روشی برای تحلیل مسائل، طراحی راه‌حل‌های گام‌به‌گام و تبدیل آن‌ها به برنامه‌هایی قابل اجراست. یادگیری اصول برنامه‌نویسی، پایه‌ای ضروری برای فعالیت در حوزه‌هایی مانند مهندسی نرم‌افزار، علم داده، هوش مصنوعی و توسعه نرم‌افزارهای کاربردی به شمار می‌رود.

درس برنامه‌سازی پایتون با هدف آموزش مبانی برنامه‌نویسی و تقویت تفکر الگوریتمی طراحی شده است. در این درس، زبان پایتون به‌عنوان ابزاری برای یادگیری مفاهیم اصلی برنامه‌سازی به کار گرفته می‌شود. از متغیرها، انواع داده و ساختارهای شرطی و تکرار شروع می‌کنید و به‌تدریج با توابع، ماژول‌ها، ساختارهای داده، کار با پرونده‌ها، الگوریتم‌های بازگشتی و برنامه‌سازی شیءگرا آشنا می‌شوید.

در کنار یادگیری دستورها و قابلیت‌های زبان، بر طراحی راه‌حل، شکستن مسائل به بخش‌های کوچک‌تر، نوشتن کد خوانا و سازمان‌یافته و استفاده از توابع و ماژول‌ها برای ساخت برنامه‌های ساخت‌یافته تأکید می‌شود. مثال‌ها و تمرین‌های برنامه‌نویسی به شما کمک می‌کنند مفاهیم را در عمل به کار بگیرید و به‌تدریج برای حل مسائل متنوع با استفاده از کامپیوتر آماده شوید.

در پایان این درس چه توانایی‌هایی کسب می‌کنید؟

  • تبدیل مسائل ساده به الگوریتم‌های گام‌به‌گام و پیاده‌سازی آن‌ها با پایتون
  • استفاده از متغیرها، انواع داده، عملگرها، دستورات شرطی و حلقه‌ها
  • طراحی و استفاده از توابع برای سازمان‌دهی و استفاده مجدد از کد
  • کار با ساختارهای داده‌ای مانند رشته‌ها، لیست‌ها، واژه‌نامه‌ها و چندتایی‌ها
  • خواندن و نوشتن پرونده‌ها و استفاده از ماژول‌ها و کتابخانه‌های پایتون
  • درک الگوریتم‌های بازگشتی و آشنایی با اصول برنامه‌سازی شیءگرا
  • نوشتن کد خوانا، ساخت‌یافته و قابل نگهداری
  • ایجاد پایه‌ای مناسب برای یادگیری زبان‌ها، ابزارها و مباحث پیشرفته‌تر برنامه‌نویسی

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

پیش‌نیاز

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

سرفصل‌ها

  1. مفاهیم اولیه (۱ جلسه)
    • تعاریف اولیه: الگوریتم، ‌برنامه، حل مسئله
    • معرفی اجزای اصلی کامپیوتر
    • آشنایی با زبان پایتون
    • مراحل ساخت و اجرای یک برنامه
  2. مقدمات برنامه‌سازی (۱ جلسه)
    • مقادیر، متغیرها و انواع داده‌‌ها
    • عملگرها و تقدم عملیات
    • تبدیل داده‌ها
    • دستورات ورودی و خروجی
    • آشنایی با کدنویسی خوانا
  3. ساختارهای انتخاب (۱ جلسه)
    • عبارات منطقی
    • عملگرهای مقایسه‌ای
    • دستور if-else
    • انتخاب‌های چندگانه و تودرتو
  4. ساختارهای تکرار (۲ جلسه)
    • حلقه‌های شرطی و شمارشی
    • دستور while
    • خاتمه حلقه با break و continue
    • حلقه‌ی معین for
    • حلقه‌های تودرتو
    • یافتن ریشه و محاسبه‌ی سری‌ها
  5. توابع (۱ جلسه)
    • جریان اجرا
    • پارامترها و آرگومان‌ها
    • حوزه‌ی تعریف متغیرها
    • توابع خروجی‌دار
    • نمونه‌هایی از توابع عددی
  6. ماژول‌ها (۱ جلسه)
    • آشنایی با ماژول‌ها
    • نحوه‌ی استفاده از ماژول‌ها
    • آشنایی با ماژول‌های ریاضی و تصادفی
    • آشنایی با گرافیک لاک‌پشتی
    • نحوه‌ی ایجاد یک ماژول
  7. رشته‌ها (۱ جلسه)
    • عملگرهای رشته‌ای
    • مقایسه‌ی رشته‌ها
    • پیمایش رشته‌ها
    • توابع و متدهای رشته‌ای
    • فرمت‌بندی رشته‌ها
  8. لیست‌ها (۱ جلسه)
    • آدرس‌دهی و برش لیست‌ها
    • تغییر لیست‌ها
    • توابع و متدهای لیستی
    • لیست‌های تودرتو
  9. پرونده‌ها (۱ جلسه)
    • باز کردن پرونده‌های متنی
    • روش‌های خواندن از پرونده
    • نوشتن در پرونده‌ها
    • پرونده‌های دودویی
    • خواندن صفحات وب
  10. واژه‌نامه‌ها (۱ جلسه)
    • نحوه‌ی تعریف
    • کاربردهای واژه‌نامه‌
    • ذخیره و بازیابی سریع
    • شمارش حروف و کلمات
  11. چندتایی‌ها (۱ جلسه)
    • توابع و متدها
    • کاربردهای چندتایی
    • مرتب‌سازی واژه‌نامه
    • ایجاد فشرده لیست‌ها
  12. الگوریتم‌های بازگشتی (۱ جلسه)
    • توابع بازگشتی
    • جریان اجرای توابع بازگشتی
    • حل مسئله به روش بازگشتی
    • نمونه مسائل بازگشتی
  13. برنامه‌سازی شیءگرا (۱ جلسه)
    • آشنایی با رده‌ها و اشیاء
    • نحوه‌ی تعریف یک رده
    • متدها و ویژگی‌ها
    • سازنده‌ها
    • مثال‌هایی از رده‌ها
    • بارگذاری عملگرها
  14. پردازش متن (۱ جلسه - اختیاری)
    • آشنایی با ماژول re
    • عبارات منظم
    • تطبیق الگو‌ها
    • جست‌وجو و جای‌گزینی متون
  1. محاسبات علمی (۱ جلسه - اختیاری)
    • آشنایی با کتابخانه‌های NumPy و SciPy
    • آرایه‌ها و ماتریس‌ها
    • یافتن ریشه‌ی معادلات
    • بهینه‌سازی
    • رسم نمودار

ارزیابی

  1. تمرین‌های برنامه‌سازی و پروژه: ۱۰ نمره
  2. آزمون‌ پایانی: ۱۰ نمره
  3. چالش‌های برنامه‌سازی: ۱ نمره اضافی

منابع

  1. C. R. Severance. Python for Everybody: Exploring Data in Python 3. CreateSpace Independent Publishing Platform, 2016.
  2. P. Wentworth, J. Elkner, A. B. Downey, C. Meyers. How to Think Like a Computer Scientist: Learning with Python. 3rd Edition, Open Book Project, 2011.