برنامهسازی پایتون
مدرس: حمید ضرابی زاده | گواهی: رسمی دوزبانه |
ترم: زمستان ۱۴۰۳ | پیشنیاز: – |
زمان ارائه: شنبه ۱۷:۰۰ تا ۲۰:۰۰ | محل برگزاری: کلاس مجازی |
هدف کلی
هدف از این درس، آشنایی دانشجویان با مبانی برنامهسازی کامپیوتر، ایجاد تفکر الگوریتمی در حل مسائل، کسب توانایی پیادهسازی الگوریتمهای متداول به وسیلهی کامپیوتر، و نیز آشنایی با اصول اولیهی نوشتن برنامههای ساختیافته و مهندسیساز است. در این درس از زبان برنامهسازی پایتون برای آموزش و ایجاد مهارتهای فوق استفاده خواهد شد.
سرفصلها
- مفاهیم اولیه (۱ جلسه)
- تعاریف اولیه: الگوریتم، برنامه، حل مسئله
- معرفی اجزای اصلی کامپیوتر
- آشنایی با زبان پایتون
- مراحل ساخت و اجرای یک برنامه
- مقدمات برنامهسازی (۱ جلسه)
- مقادیر، متغیرها و انواع دادهها
- عملگرها و تقدم عملیات
- تبدیل دادهها
- دستورات ورودی و خروجی
- آشنایی با کدنویسی خوانا
- ساختار انتخاب (۱ جلسه)
- عبارات منطقی
- عملگرهای مقایسهای
- دستور if-else
- انتخابهای چندگانه و تودرتو
- ساختارهای تکرار (۱ جلسه)
- حلقههای شرطی و شمارشی
- دستورات while و for
- خاتمه حلقه با break و continue
- حلقههای تودرتو
- توابع (۱ جلسه)
- جریان اجرا
- پارامترها و آرگومانها
- حوزهی تعریف متغیرها
- توابع خروجیدار
- نمونههایی از توابع عددی
- ماژولها (۱ جلسه)
- ماژولها و نحوهی استفاده از آنها
- آشنایی با گرافیک لاکپشتی
- دستورات اولیه برای رسم اشکال
- نحوهی ایجاد یک ماژول
- رشتهها (۱ جلسه)
- عملگرهای رشتهای
- مقایسهی رشتهها
- پیمایش رشتهها
- توابع و متدهای رشتهای
- فرمتبندی رشتهها
- لیستها (۱ جلسه)
- آدرسدهی و برش لیستها
- تغییر لیستها
- توابع و متدهای لیستی
- لیستهای تودرتو
- پروندهها (۱ جلسه)
- باز کردن پروندههای متنی
- روشهای خواندن از پرونده
- نوشتن در پروندهها
- پروندههای دودویی
- خواندن صفحات وب
- واژهنامهها (۱ جلسه)
- نحوهی تعریف
- کاربردهای واژهنامه
- شمارش حروف و کلمات
- بهخاطرسپاری
- چندتاییها (۱ جلسه)
- توابع و متدها
- کاربردهای چندتاییها
- نمایش واژهنامه
- ذخیرهی ماتریسهای تنک
- پردازش متن (۱ جلسه)
- آشنایی با ماژول re
- عبارات منظم
- تطبیق الگوها
- جستوجو و جایگزینی متون
- الگوریتمهای بازگشتی (۱ جلسه)
- توابع بازگشتی
- جریان اجرای توابع بازگشتی
- حل مسئله به روش بازگشتی
- نمونه مسائل بازگشتی
- جستوجو و مرتبسازی (۱ جلسه)
- جستوجوی خطی
- جستوجوی دودویی
- مرتبسازی انتخابی
- مرتبسازی ادغامی
- برنامهسازی شیءگرا (۱ جلسه)
- آشنایی با ردهها و اشیاء
- متدها و ویژگیها
- سازندهها
- مثالهایی از ردهها
- وراثت
- بارگذاری عملگرها
- برنامهسازی وب (۱ جلسه)
- ساختار برنامههای تحت وب
- آشنایی با چارچوب Flask
- راهاندازی وب سرور
- پردازش ورودی کاربر
- محاسبات علمی (۱ جلسه)
- آشنایی با کتابخانههای NumPy و SciPy
- آرایهها و عملگرهای آرایهای
- یافتن ریشهی معادلات
- بهینهسازی
- درونیابی
- ماتریسها و توابع جبر خطی
- رسم نمودار (۱ جلسه)
- آشنایی با کتابخانهی Matplotlib
- رسم نمودار
- رسم هیستوگرام
- نمودارهای چندگانه
ارزیابی
- تمرینهای برنامهسازی و پروژه: ۱۰ نمره
- آزمون پایانی: ۱۰ نمره
- چالشهای برنامهسازی: ۱ نمره اضافی
منابع
- C. R. Severance. Python for Everybody: Exploring Data in Python 3. CreateSpace Independent Publishing Platform, 2016.
- 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.