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

مدرس: حمید ضرابی زاده گواهی: رسمی دوزبانه
ترم: تابستان ۱۴۰۳ پیش‌نیاز: –
زمان ارائه: شنبه ۱۷:۰۰ تا ۲۰:۰۰ محل برگزاری: کلاس مجازی

هدف کلی

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

سرفصل‌ها

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

ارزیابی

  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.