برنامهسازی پایتون
| مدرس: دکتر حمید ضرابی زاده | پیشنیاز: – |
| ترم: پاییز ۱۴۰۵ | محل برگزاری: کلاس مجازی |
| زمان ارائه: شنبه ۱۸:۰۰ تا ۱۹:۳۰ | مشاهده: دریافت لایسنس |
معرفی درس
برنامهسازی پایتون؛ از مبانی برنامهنویسی تا حل مسئله با کد
برنامهنویسی تنها نوشتن دستورهایی به زبان کامپیوتر نیست؛ بلکه روشی برای تحلیل مسائل، طراحی راهحلهای گامبهگام و تبدیل آنها به برنامههایی قابل اجراست. یادگیری اصول برنامهنویسی، پایهای ضروری برای فعالیت در حوزههایی مانند مهندسی نرمافزار، علم داده، هوش مصنوعی و توسعه نرمافزارهای کاربردی به شمار میرود.
درس برنامهسازی پایتون با هدف آموزش مبانی برنامهنویسی و تقویت تفکر الگوریتمی طراحی شده است. در این درس، زبان پایتون بهعنوان ابزاری برای یادگیری مفاهیم اصلی برنامهسازی به کار گرفته میشود. از متغیرها، انواع داده و ساختارهای شرطی و تکرار شروع میکنید و بهتدریج با توابع، ماژولها، ساختارهای داده، کار با پروندهها، الگوریتمهای بازگشتی و برنامهسازی شیءگرا آشنا میشوید.
در کنار یادگیری دستورها و قابلیتهای زبان، بر طراحی راهحل، شکستن مسائل به بخشهای کوچکتر، نوشتن کد خوانا و سازمانیافته و استفاده از توابع و ماژولها برای ساخت برنامههای ساختیافته تأکید میشود. مثالها و تمرینهای برنامهنویسی به شما کمک میکنند مفاهیم را در عمل به کار بگیرید و بهتدریج برای حل مسائل متنوع با استفاده از کامپیوتر آماده شوید.
در پایان این درس چه تواناییهایی کسب میکنید؟
- تبدیل مسائل ساده به الگوریتمهای گامبهگام و پیادهسازی آنها با پایتون
- استفاده از متغیرها، انواع داده، عملگرها، دستورات شرطی و حلقهها
- طراحی و استفاده از توابع برای سازماندهی و استفاده مجدد از کد
- کار با ساختارهای دادهای مانند رشتهها، لیستها، واژهنامهها و چندتاییها
- خواندن و نوشتن پروندهها و استفاده از ماژولها و کتابخانههای پایتون
- درک الگوریتمهای بازگشتی و آشنایی با اصول برنامهسازی شیءگرا
- نوشتن کد خوانا، ساختیافته و قابل نگهداری
- ایجاد پایهای مناسب برای یادگیری زبانها، ابزارها و مباحث پیشرفتهتر برنامهنویسی
این درس برای دانشجویان، دانشآموزان، دانشآموختگان و علاقهمندانی مناسب است که میخواهند برنامهنویسی را بهصورت اصولی آغاز کنند یا دانش مقدماتی خود را منسجمتر کنند. آموختههای آن میتواند نقطه شروعی برای ادامه مسیر در حوزههایی مانند الگوریتمها و ساختمان دادهها، مهندسی نرمافزار، علم داده و هوش مصنوعی باشد.
پیشنیاز
این درس برای شروع برنامهنویسی طراحی شده است و آشنایی قبلی با یک زبان برنامهنویسی الزامی نیست. آشنایی مقدماتی با کار با رایانه و مفاهیم پایه ریاضی میتواند به یادگیری بهتر مطالب کمک کند.
سرفصلها
- مفاهیم اولیه (۱ جلسه)
- تعاریف اولیه: الگوریتم، برنامه، حل مسئله
- معرفی اجزای اصلی کامپیوتر
- آشنایی با زبان پایتون
- مراحل ساخت و اجرای یک برنامه
- مقدمات برنامهسازی (۱ جلسه)
- مقادیر، متغیرها و انواع دادهها
- عملگرها و تقدم عملیات
- تبدیل دادهها
- دستورات ورودی و خروجی
- آشنایی با کدنویسی خوانا
- ساختارهای انتخاب (۱ جلسه)
- عبارات منطقی
- عملگرهای مقایسهای
- دستور if-else
- انتخابهای چندگانه و تودرتو
- ساختارهای تکرار (۲ جلسه)
- حلقههای شرطی و شمارشی
- دستور while
- خاتمه حلقه با break و continue
- حلقهی معین for
- حلقههای تودرتو
- یافتن ریشه و محاسبهی سریها
- توابع (۱ جلسه)
- جریان اجرا
- پارامترها و آرگومانها
- حوزهی تعریف متغیرها
- توابع خروجیدار
- نمونههایی از توابع عددی
- ماژولها (۱ جلسه)
- آشنایی با ماژولها
- نحوهی استفاده از ماژولها
- آشنایی با ماژولهای ریاضی و تصادفی
- آشنایی با گرافیک لاکپشتی
- نحوهی ایجاد یک ماژول
- رشتهها (۱ جلسه)
- عملگرهای رشتهای
- مقایسهی رشتهها
- پیمایش رشتهها
- توابع و متدهای رشتهای
- فرمتبندی رشتهها
- لیستها (۱ جلسه)
- آدرسدهی و برش لیستها
- تغییر لیستها
- توابع و متدهای لیستی
- لیستهای تودرتو
- پروندهها (۱ جلسه)
- باز کردن پروندههای متنی
- روشهای خواندن از پرونده
- نوشتن در پروندهها
- پروندههای دودویی
- خواندن صفحات وب
- واژهنامهها (۱ جلسه)
- نحوهی تعریف
- کاربردهای واژهنامه
- ذخیره و بازیابی سریع
- شمارش حروف و کلمات
- چندتاییها (۱ جلسه)
- توابع و متدها
- کاربردهای چندتایی
- مرتبسازی واژهنامه
- ایجاد فشرده لیستها
- الگوریتمهای بازگشتی (۱ جلسه)
- توابع بازگشتی
- جریان اجرای توابع بازگشتی
- حل مسئله به روش بازگشتی
- نمونه مسائل بازگشتی
- برنامهسازی شیءگرا (۱ جلسه)
- آشنایی با ردهها و اشیاء
- نحوهی تعریف یک رده
- متدها و ویژگیها
- سازندهها
- مثالهایی از ردهها
- بارگذاری عملگرها
- پردازش متن (۱ جلسه - اختیاری)
- آشنایی با ماژول re
- عبارات منظم
- تطبیق الگوها
- جستوجو و جایگزینی متون
- محاسبات علمی (۱ جلسه - اختیاری)
- آشنایی با کتابخانههای NumPy و SciPy
- آرایهها و ماتریسها
- یافتن ریشهی معادلات
- بهینهسازی
- رسم نمودار
ارزیابی
- تمرینهای برنامهسازی و پروژه: ۱۰ نمره
- آزمون پایانی: ۱۰ نمره
- چالشهای برنامهسازی: ۱ نمره اضافی
منابع
- 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.