مبانی برنامهسازی (پایتون)
Fundamentals of Programming (Python)
شماره درس: ۴۰۱۵۳ | تعداد واحد: ۳ |
مقطع: کارشناسی | نوع درس: نظری |
پیشنیاز: – | همنیاز: – |
اهداف درس
هدف از این درس، آشنایی دانشجویان رشتههای علوم و مهندسی با مبانی برنامهسازی کامپیوتر، ایجاد تفکر الگوریتمی در حل مسائل، کسب توانایی پیادهسازی الگوریتمهای متداول به وسیلهی کامپیوتر، و نیز آشنایی با اصول اولیهی نوشتن برنامههای ساختیافته و مهندسیساز است. در این درس از زبان برنامهسازی پایتون برای آموزش و ایجاد مهارتهای فوق استفاده خواهد شد.
ریز مواد
- مفاهیم اولیه (۱ جلسه)
- تعاریف اولیه: الگوریتم، برنامه، حل مسئله
- معرفی اجزای اصلی کامپیوتر
- تاریخچهی رشد زبانهای برنامهسازی
- آشنایی با زبان پایتون
- مراحل ساخت و اجرای یک برنامه
- مقدمات برنامهسازی (۱ جلسه)
- مقادیر، متغیرها و انواع دادهها
- عملگرها و تقدم عملیات
- تبدیل دادهها
- دستورات ورودی و خروجی
- آشنایی با کدنویسی خوانا (توضیحگذاری، جدانویسی)
- ساختار انتخاب (۱ جلسه)
- عبارات بولی
- عملگرهای مقایسهای و منطقی
- دستور if-else
- انتخابهای چندگانه و تودرتو
- ماژولها (۱ جلسه)
- ماژولها و نحوهی استفاده از آنها
- آشنایی با گرافیک لاکپشتی
- دستورات اولیه برای رسم اشکال
- تکرار با حلقهی for
- تعریف توابع
- نحوهی ایجاد یک ماژول
- توابع (۲ جلسه)
- جریان اجرا
- پارامترها و آرگومانها
- حوزهی تعریف متغیرها
- توابع خروجیدار
- مستندسازی توابع
- نمونههایی از توابع عددی
- ساختارهای تکرار (۱ جلسه)
- حلقههای شرطی و شمارشی
- حلقهی while
- دستورات break و continue
- انواع حلقههای شرطی
- حلقههای تودرتو
- آزمون و خطایابی (۱ جلسه)
- دنبال کردن برنامه
- کشف خطا با دستورات خروجی
- استفاده از امکانات IDE برای خطایابی
- آزمون واحد
- محاسبات اعشاری (۱ جلسه)
- سیستمهای عددی (دودویی و دهدهی)
- اعداد اعشاری ممیز ثابت و ممیز شناور
- خطا در محاسبات اعشاری
- پیدا کردن ریشه به روش پالایش متوالی
- محاسبهی سریها
- رشتهها (۱ جلسه)
- عملگرهای رشتهای
- مقایسهی رشتهها
- پیمایش رشتهها
- توابع و متدهای رشتهای
- فرمتبندی رشتهها
- لیستها (۱ جلسه)
- آدرسدهی و برش لیستها
- تغییر لیستها
- توابع و متدهای لیستی
- چندتاییها
- لیستهای تودرتو
- الگوریتمهای بازگشتی (۲ جلسه)
- توابع بازگشتی
- جریان اجرای توابع بازگشتی
- حل مسئله به روش بازگشتی
- فراکتالها
- مقادیر پیشفرض پارامترها
- الگوریتمهای جستوجو و مرتبسازی (۲ جلسه)
- جستوجوی خطی و دودویی
- الگوریتمهای مرتبسازی (انتخابی، حبابی)
- روش تقسیم و حل: مرتبسازی ادغامی
- آشنایی با پیچیدگی الگوریتمها
- توابع تصادفی و شبیهسازی (۲ جلسه)
- تولید اعداد تصادفی
- روش مونت کارلو: (تخمین عدد π، هشت وزیر)
- توزیع رخدادها
- نمونهگیری تصادفی
- گشت تصادفی
- پروندهها (۱ جلسه)
- باز کردن پروندههای متنی
- روشهای خواندن از پرونده
- نوشتن در پروندهها
- پروندههای دودویی
- خواندن صفحات وب
- فرهنگهای دادهای و مجموعهها (۱ جلسه)
- کاربرد فرهنگهای دادهای
- نمایش ماتریسهای تنک
- برنامهریزی پویا
- مجموعهها و عملگرهای مجموعهای
- برنامهسازی شیءگرا (۲ جلسه)
- آشنایی با ردهها و اشیاء
- نحوهی تعریف یک رده
- متدها و ویژگیها
- سازندهها
- مثالهایی از ردهها
- برنامهسازی رویدادرانه (۱ جلسه)
- رویدادها و گردانندهها
- رویدادهای صفحهکلید
- رویدادهای ماوس
- رویدادهای زمانی
- محاسبات عددی (۲ جلسه)
- آشنایی با کتابخانههای NumPy و SciPy
- آرایهها و عملگرهای آرایهای
- ثابتها و توابع ویژه
- چندجملهایها
- انتگرال، انتگرال دوگانه
- یافتن ریشهی معادلات
- درونیابی
- ماتریسها و توابع جبر خطی
- حل معادلات خطی
- نمایش نمودار (۱ جلسه)
- آشنایی با کتابخانهی matplotlib
- رسم نمودار
- رسم هیستوگرام
- نمودارهای چندگانه
- واسط کاربر گرافیکی (۱ جلسه)
- آشنایی با ماژول Tkinter
- ساخت واسط کاربر ساده
- افزودن عناصر
- افزودن گردانندهها
- مدیریت استثناها (۱ جلسه)
- کارکرد استثناها
- مدیریت استثناها
- دستور try-except
- دستور finally
- پردازش متن (۱ جلسه - اختیاری)
- آشنایی با ماژول re
- عبارات منظم
- تطبیق الگوها
- جستوجو و جایگزینی متون
- شیءگرایی پیشرفته (۱ جلسه - اختیاری)
- وراثت
- چندریختی
- بارگذاری عملگرها
ارزیابی
- تمرینهای برنامهسازی و پروژه: ۶ نمره
- آزمونکها: ۲ نمره
- آزمونها (میانترم و پایانترم): ۱۲ نمره
- مسابقهی برنامهنویسی: ۱ نمره اضافی
مراجع
- 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.
- J. Campbell, P. Gries, J. Montojo, G. Wilson. Practical Programming: An Introduction to Computer Science Using Python. The Pragmatic Bookshelf, 2009.
- J. M. Zelle. Python Programming: An Introduction to Computer Science. Franklin, Beedle & Associates, 2004.