طرح درس دورهٔ برنامهنویسی مقدماتی تا پیشرفته با پایتون ۳ (Python 3 Programming) | ||
روز | سرفصل | زمان (ساعت) |
---|---|---|
جلسهٔ اول: معرفی، راهاندازی، نصب و نوشتن اولین برنامهٔ پایتون و آشنایی با عملگرها و ساختمانهای دادهٔ ابتدایی | چیستی و چرایی پایتون، فلسفهٔ پایتون، تفاوتهای نسخههای ۲ و ۳ زبان پایتون | ۱ |
نصب ابزارهای مورد نیاز و نصب و فعالسازی پایچارم و کار با محیط یکپارچهٔ برنامهنویسی پایچارم، کار با shell پایتون و تفاوتهای آنها، بررسی محل شروع اجرای برنامهها در پایتون | ۰.۵ | |
نحو سادهٔ زبان پایتون و تفاوتهای آن با سایر زبانها، معرفی برخی از پروپوزالهای پایتون | ۰.۵ | |
انواع ارورها در زبانهای برنامهنویسی، مفاهیم زبانهای برنامهنویسی سطح بالا و سطح پایین، تفاوت فرایند ترجمه و تفسیر، تفاوت تایپسیستمهای پویا و ایستا | ۰.۵ | |
متغیرها و انواع ابتدایی داده، انواع عملگرها، نکات مرتبط با تعریف رشتههای متنی | ۱.۵ | |
جلسهٔ دوم: ساختارهای کنترلی و ساختمانهای دادهٔ کامپازیت و تابع در پایتون | کار با سیکوئنسها شامل استرینگ و لیست و تاپل، فرمتینگ رشتههای متنی، ارزشگذاریهای بولین، ساخت لیست از روی یک لیست دیگر، روشهای اسلایسینگ لیستها | ۱ |
ساختارهای کنترلی شامل if و for و while و متعلقات آنها، تابع range()، استفاده از break و continue و else در حلقهها، عبارت pass | ۱ | |
ساختارهای دادهٔ ست و دیکشنری و تکنیکهای استفاده از حلقه روی آنها، مقایسهٔ بین ساختمانهای داده و دیدن نمونههایی از هر کدام در عمل | ۱ | |
مفاهیم تابع و انواع حالتهای آرگومانها، کار با docstring، مثالهایی از توابع بازگشتی | ۱ | |
جلسهٔ سوم: ماژول، پکیج و مدیریت و نصب آنها | حل تمرینها و آشنایی مقدماتی با مفاهیم طراحی الگوریتم | ۱ |
مفاهیم ماژول و نحوهٔ ایجاد یا استفاده از آنها، تابع dir() | ۱ | |
معرفی ماژولهای time و random و math از کتابخانهٔ استاندارد پایتون | ۱ | |
پکیجها در پایتون، کار با مدیر پکیجهای pip در پایتون و VirtualEnv | ۱ | |
جلسهٔ چهارم: مرور مطالب گفته شده و استفاده از یکی از کتابخانههای سطح بالاتر پایتون برای نوشتن یک برنامهٔ کاربردی، آشنایی با برخی توابع built-in، آشنایی با stackoverflow و نحوهٔ هوشمندانه سوال پرسیدن | حل تمرینها | ۱ |
مرور مطالب بیان شده در این دوره و آشنایی با توابع built-in بیشتر در پایتون | ۰.۷۵ | |
بررسی و کار با یکی از کتابخانههای سطح بالاتر زبان پایتون برای نوشتن یک برنامهٔ کاربردی | ۱.۵ | |
توضیح موضوع پروژه، نحوهٔ هوشمندانه سوال پرسیدن در اینترنت و آشنایی با stackoverflow | ۰.۷۵ | |
جلسهٔ پنجم: شیگرایی در پایتون | حل تمرینها | ۰.۵ |
مفاهیم شیگرایی | ۰.۵ | |
کلاس و آبجکت در پایتون، کار با Instance Objects و Method Objects در پایتون، کار با متغیرها در سطح کلاس یا Instance، ارثبری و وراثت چندگانه، توابع خاص | ۲.۵ | |
دستهبندی و معرفی کاربردهای underscore در پایتون و کانونشنهای مرتبط با آن | ۰.۵ | |
جلسهٔ ششم: عبارات منظم و نحوهٔ کار با آنها در پایتون، مدیریت حالات استثنا، قابلیتهای پیشرفتهتر پایتون در حوزهٔ شیگرا | حل تمرینها | ۰.۷۵ |
عبارات منظم و کار با آنها در پایتون | ۰.۷۵ | |
انواع، روشهای هندل کردن، تولید و تعریف اکسپشنها، تعریف clean-up و clean-upهای از پیش تعریف شده | ۱.۲۵ | |
نگاه دقیقتر به scopeها در پایتون، متغیرهای پرایوت، iteratorها و generatorها، متغیرها و توابع static، دکوراتورها | ۱.۲۵ | |
جلسهٔ هفتم: ورژن کنترل | مفاهیم سیستمهای ورژن کنترل | ۰.۵ |
آموزش کار با ورژن کنترل در محیط متنی و وب | ۲ | |
طریقهٔ ایجاد پول ریکوئست | ۰.۲۵ | |
ابزارهای گرافیکی کار با ورژن کنترل | ۰.۷۵ | |
ویژگیهای Commit Message خوب | ۰.۵ | |
جلسهٔ هشتم: مفاهیم پیشرفته در ورژن کنترل و آشنایی با مفاهیم مهندسی نرمافزار و سطوح کوهیشن و کاپلینگ | کار با ابزارها و امکانات پیشرفتهتر ابزارهای ورژن کنترل مانند حرکت در تاریخچهٔ پروژه و fork و hook و tag و … در عمل | ۱ |
آشنایی با کانونشن SemVer برای ورژن محصولات نرمافزاری | ۰.۷۵ | |
آشنایی با کانونشن GitFlow برای نامگذاری برنچها و ورکفلو ایجاد نرمافزار | ۰.۷۵ | |
مفاهیم و واژگان پرکاربرد در مهندسی نرمافزار | ۱ | |
مشخص کردن کیفیت ماژولهای نرمافزاری به کمک سطوح کوهیشن و کاپلینگ | ۰.۵ | |
جلسهٔ نهم: آشنایی با مفاهیم شیگرا | آشنایی اجمالی با قواعد ترسیم نمودارهای UML | ۱.۵ |
آشنایی با الگوهای شیگرای GRASP | ۱/۲۵ | |
آشنایی با اصول شیگرای SOLID | ۱.۲۵ | |
جلسهٔ دهم: الگوهای Refactoring و Big Refactoring و آنتیپترنها در پایتون | حل تمرین | ۰.۷۵ |
آموزش الگوهای Refactoring و الگوهای Big Refactoring فاولر | ۲.۷۵ | |
آنتی پترنها در زبان پایتون | ۰.۵ | |
جلسهٔ یازدهم: تست نرمافزار در پایتون | حل تمرین | ۰.۷۵ |
مفاهیم و انواع روشهای تست نرمافزار | ۰.۷۵ | |
کنترل کیفیت و تست نرمافزار در پایتون و یونیت تستینگ | ۱.۵ | |
مفاهیم و ابزارهای تست خودکار نرمافزار | ۱ | |
جلسهٔ دوازدهم: برنامهنویسی پیشرفته در پایتون و آشنایی با برخی از کتابخانههای استاندارد آن | توابع Lambda در پایتون | ۰.۵ |
آشنایی با کتابخانهٔ استاندارد پایتون شامل ماژولهای os و glob و sys و statistics و ماژولهای دسترسی به شبکه و فشردهسازی و اندازهگیری پرفرمنس نرمافزار | ۱.۵ | |
آشنایی با کتابخانههای استاندارد پایتون در زمینهٔ کار با فایل و فرمتینگ خروجی و کار با ورودی و خروجی و کار با فایلهای زیپ و باینری | ۱ | |
آشنایی با کتابخانههای استاندارد پایتون در زمینهٔ تولید لاگ و کار با داده ساختارهای دیگر پیشرفتهتر از لیست مانند آرایه و کالکشن و صف و استک و نسخههای پیشرفتهتر داده ساختار اعداد Decimal | ۱ | |
جلسهٔ سیزدهم: مفاهیم شبکه و وب، مفاهیم مولتیتردینگ و پاراللپراسسینگ، برنامهنویسی مولتیترد و برنامهنویسی سوکت (شبکه) و کار با وب در پایتون | برنامهنویسی مولتیترد در پایتون | ۱.۵ |
آشنایی با مفاهیم شبکه و برنامهنویسی سوکت (شبکه) در پایتون | ۱.۵ | |
آشنایی با سازوکار وب و فرمت Request و Response و پروتوکل HTTP و معماری کلاینت سرور و کتابخانهٔ Requests پایتون | ۱ | |
جلسهٔ چهاردهم: تولید و مدیریت لاگها در پایتون و برنامهنویسی گرافیک با استفاده از کتابخانهٔ TkInter | تولید و مدیریت لاگها در پایتون | ۱ |
برنامهنویسی رابط کاربری گرافیکی با استفاده از کتابخانهٔ TkInter | ۳ | |
جلسهٔ پانزدهم: تحلیل سیستم و پادالگوها در مهندسی نرمافزار | تحلیل سیستم و نرمافزار و جزئیات قواعد نوشتاری آن | ۲ |
پادالگوها در حوزهٔ معماری و ایجاد نرمافزار و مدیریت پروژههای نرمافزاری | ۲ |
طرح درس کارگاه نصب و آشنایی با گنو/لینوکس (GNU/Linux) - پیشنیاز: همراه داشتن لپتاپ | ||
روز | سرفصل | زمان (ساعت) |
---|---|---|
جلسهٔ اول: آشنایی با تاریخچه، مفاهیم کلیدی، ساختار، دستورات و نصب گنو/لینوکس | تاریخچه و فلسفهٔ گنو/لینوکس، آشنایی با واژگان مهم در این حوزه شامل سیستمعامل گنو، لینوکس، نرمافزار آزاد، متنباز، مجوزهای آزاد، کپیلفت، توزیعهای گنو/لینوکس، اشخاص حقیقی و حقوقی مرتبط با نرمافزار آزاد در داخل یا خارج از ایران | ۱.۲۵ |
آشنایی با محیط خط فرمان، ساختار فایلها، دستورات پایهای کار با فایلها و دایرکتوریها شامل pwd و ls و mkdir و cd و rm و cp و mv | ۱ | |
نصب و پارتیشنبندی گنو/لینوکس | ۱ | |
دستورات help، کار با ویرایشگرهای متنی vim و nano، دستورات نمایش محتوای فایلها شامل cat، tail و head، دستور جستجو و کار با تاریخچه محیط متنی | ۰.۵ | |
مدیریت مالکیت و سطوح دسترسی فایلها و دایرکتوریها در محیط متنی، دستورات مرتبط با مدیریت کاربران شامل whoami و who و passwd و su و sudo | ۰.۷۵ | |
جلسهٔ دوم: نصب و آشنایی با نرمافزارها و برنامهنویسی شل اسکریپت | روشهای نصب نرمافزار در گنو/لینوکس، مفاهیم مرتبط با مخازن، سیستمهای مدیریت پکیج YUM و RPM و DPKG در توزیعهای گوناگون | ۱ |
آشنایی با محیط کاربری گنوم و برخی از نرمافزارهای کاربردی آزاد در گنو/لینوکس | ۰.۷۵ | |
آشنایی با راهنماها و دستور man | ۰.۲۵ | |
آشنایی با پردازهها و نحوهٔ مدیریت آنها به کمک دستورهای ps و top و سایر انواع آن | ۰.۷۵ | |
برنامهنویسی مقدماتی در محیط شل اسکریپت گنو/لینوکس و آشنایی با برخی مفاهیم پایهٔ آن | ۱.۲۵ | |
نتیجهگیری و بررسی دلایل استفاده از نرمافزارهای آزاد و گنو/لینوکس و پرسش و پاسخ | ۰.۵ |
طرح درس دورهٔ برنامهنویسی پیشرفته با پایتون ۳ (Python 3 Programming) - پیشنیاز: گذراندن دورهٔ برنامهنویسی مقدماتی با پایتون | ||
روز | سرفصل | زمان (ساعت) |
---|---|---|
جلسهٔ اول: مرور مفاهیم برنامهنویسی مقدماتی با پایتون | مرور مفاهیم مقدماتی برنامهنویسی مانند انواع ارورها در زبانهای برنامهنویسی، مفاهیم زبانهای برنامهنویسی سطح بالا و سطح پایین، تفاوت فرایند ترجمه و تفسیر، تفاوت تایپسیستمهای پویا و ایستا، مرور مطالب مربوط به فلسفهٔ پایتون، چیستی و تفاوتهای زبان پایتون با سایر زبانها، تفاوتهای نسخههای ۲ و ۳ زبان پایتون، تنظیم محیط برنامهنویسی، کنسول پایتون و محیطهای یکپارچهٔ برنامهنویسی و نحو سادهٔ زبان پایتون، معرفی برخی از پروپوزالهای پایتون، بررسی محل شروع اجرای برنامهها در پایتون | ۱ |
مرور مبحث متغیرها و انواع ابتدایی داده، معرفی سیکوئنسها شامل استرینگ و لیست و تاپل و ساختمانهای دادهٔ دیکشنری و ست و تکنیکهای استفاده از حلقه روی آنها، انواع عملگرها، نکات مرتبط با تعریف رشتههای متنی، فرمتینگ رشتههای متنی، ارزشگذاریهای بولین، ساخت لیست از روی یک لیست دیگر، روشهای اسلایسینگ لیستها | ۱ | |
مرور ساختارهای کنترلی شامل if و for و while و متعلقات آنها، تابع range()، استفاده از break و continue و else در حلقهها، عبارت pass، مفاهیم تابع و انواع حالتهای آرگومانها، کار با docstring، مثالهایی از توابع بازگشتی | ۱ | |
مرور مفاهیم ماژول و نحوهٔ ایجاد یا استفاده از آنها، تابع dir()، پکیجها در پایتون، کار با مدیر پکیجهای pip در پایتون و VirtualEnv، آشنایی با توابع پرکاربرد و رایج built-in در پایتون | ۱ | |
جلسهٔ دوم: لامبدا فانکشن و مرور برخی مهارتهای عملی و الگوریتمی مورد نیاز برنامهنویسان و آنتیپترنها در پایتون | حل چند سری تمرین با هدف مرور مفاهیم مقدماتی طراحی الگوریتم و مطالب مقدماتی زبان پایتون | ۲ |
نحوهٔ هوشمندانه سوال پرسیدن در اینترنت و آشنایی با stackoverflow | ۰.۵ | |
لامبدا فانکشن | ۰.۵ | |
بررسی و کار با یکی از کتابخانههای سطح بالاتر زبان پایتون برای نوشتن یک برنامهٔ کاربردی و بررسی برخی آنتیپترنها در پایتون ضمن آن | ۱ | |
جلسهٔ سوم: شیگرایی در پایتون | مفاهیم شیگرایی | ۰.۷۵ |
کلاس و آبجکت در پایتون، کار با Instance Objects و Method Objects در پایتون، کار با متغیرها در سطح کلاس یا Instance، ارثبری و وراثت چندگانه، توابع خاص | ۱.۲۵ | |
مفاهیم scope و namespace در پایتون، متغیرهای private و iteretorها و generatorها در پایتون، متغیرها و توابع static و class methodها، دکوراتورها | ۱.۵ | |
دستهبندی و معرفی کاربردهای underscore در پایتون و کانونشنهای مرتبط با آن | ۰.۵ | |
جلسهٔ چهارم: عبارات منظم و نحوهٔ کار با آنها در پایتون، مدیریت حالات استثنا و آشنایی با کتابخانهٔ استاندارد پایتون | انجام تمرینهای بیشتر از شیگرایی در پایتون | ۰.۵ |
عبارات منظم و کار با آنها در پایتون | ۰.۷۵ | |
انواع، روشهای هندل کردن، تولید و تعریف اکسپشنها، تعریف clean-up و clean-upهای از پیش تعریف شده | ۱.۵ | |
معرفی ماژولهای time و random و math از کتابخانهٔ استاندارد پایتون | ۱.۲۵ | |
جلسهٔ پنجم: ادامهٔ آشنایی با کتابخانهٔ استاندارد پایتون شامل دسترسی به سیستمعامل، مدیریت لاگها، کار با ورودی و خروجی و دادهساختارهای پیشرفتهتر در پایتون | آشنایی با ماژولهای os و glob و sys و statistics | ۱ |
ماژولهای دسترسی به شبکه و فشردهسازی و اندازهگیری پرفرمنس نرمافزار و پروفایلینگ | ۱ | |
کتابخانههای استاندارد پایتون در زمینهٔ کار با فایل و فرمتینگ خروجی و کار با ورودی و خروجی و کار با فایلهای زیپ و باینری | ۱ | |
کتابخانههای استاندارد پایتون در زمینهٔ تولید و مدیریت لاگها و کار با داده ساختارهای دیگر پیشرفتهتر از لیست مانند آرایه و کالکشن و صف و استک و نسخههای پیشرفتهتر داده ساختار اعداد Decimal | ۱ | |
جلسهٔ ششم: تست نرمافزار در پایتون، مفاهیم برنامهنویسی شبکه و سوکت در پایتون، مفاهیم مولتیتردینگ و پاراللپراسسینگ، برنامهنویسی مولتیترد، و کار با وب در پایتون | برنامهنویسی مولتیترد در پایتون | ۱ |
آشنایی با مفاهیم شبکه و برنامهنویسی سوکت (شبکه) در پایتون | ۱ | |
آشنایی با سازوکار وب و فرمت Request و Response و پروتوکل HTTP و معماری کلاینت سرور و کتابخانهٔ Requests پایتون | ۱ | |
یونیت تستینگ در پایتون | ۱ | |
جلسهٔ هفتم: مفاهیم ورژن کنترل | چیستی ورژن کنترل، مقایسهٔ سیستمهای ورژنکنترل Distributed و Centralized، معرفی سیستمهای ورژنکنترل پراستفاده، سایتهای میزبان ورژن کنترل، چیستی گیت، ویژگیهایی که گیت را متفاوت میکند (مفهوم snapshot و local بودن در گیت) | ۱ |
شخصیسازی تنظیمات محیطی گیت، سطوح تنظیمات گیت، متغیرهای قابل تنظیم در گیت، دیدن تنظیمات محیطی گیت، تفاوت وضعیت Tracked و Untracked در گیت، انواع وضعیتهای Tracked در گیت، چرخهٔ عمر وضعیتها در گیت، دیدن وضعیتها در گیت، SHA-1 Checksum در گیت، انواع تغییر در گیت، تغییر دادن روی یک کامیت مشخص، پوینتر HEAD، گراف تاریخچهٔ گیت، آناتومی کامیتها در گیت، کامیت مسیجهای چند خطی، ایگنور کردن فایلها در گیت و پترنهای نوشتاری آن، دیدن تغییرات انجام شده در وضعیتهای مختلف، پاک کردن و تغییر نام فایلها در گیت، کار با لاگ گیت به انواع اشکال مختلف | ۲ | |
برنچینگ در گیت، انواع روشهای مرج کردن در گیت، مقایسهٔ مرجهای اتوماتیک و دستی، رفع conflict در محیط متنی | ۱ | |
جلسهٔ هشتم: ادامهٔ مفاهیم ورژن کنترل | کار با ریموتها در گیت، URLهای HTTP و SSH، ساخت برنچهای ریموت روی local | ۰.۵ |
استفاده از گیت در IDE، برطرف کردن Conflictها در IDE، مرج Squash، دستور Rebase، مشکلات Rebase کردن برنچهای پابلیک | ۰.۷۵ | |
اصلاح کامیت قبل، برگرداندن تغییرات در گیت، انواع تگها در گیت و روشهای استفاده از آنها | ۰.۷۵ | |
آشنایی با کانونشن SemVer برای ورژن محصولات نرمافزاری | ۰.۷۵ | |
آشنایی با کانونشن GitFlow برای نامگذاری برنچها و ورکفلو ایجاد نرمافزار | ۰.۷۵ | |
ویژگیهای Commit Message خوب | ۰.۵ |
وب اسکرپینگ در پایتون (Web Scraping in Python) - پیشنیاز: گذراندن دورهٔ برنامهنویسی مقدماتی با پایتون | ||
روز | سرفصل | زمان (ساعت) |
---|---|---|
جلسهٔ اول: مفاهیم وب و برنامهنویسی HTML و CSS | آشنایی با تاریخچهٔ وب و اتفاقات مهم آن از ابتدای پیدایش اینترنت تاکنون | ۰٫۵ |
آشنایی با مراحل باز شدن و طرز کار صفحات وب، ساختار URLهای وب، معماری کلاینت سرور و نقش CSS و HTML و برنامهٔ سمت سرور در آن | ۰٫۷۵ | |
برنامهنویسی مقدماتی HTML | ۰٫۷۵ | |
برنامهنویسی مقدماتی CSS | ۱ | |
نوشتن مرحله به مرحلهٔ تعدادی صفحهٔ وب ساده و معرفی موضوعات مورد بحث در جلسات بعدی | ۰٫۵ | |
جلسهٔ دوم: آشنایی با متدهای ارسال درخواست و Status Code های Response در پروتوکل HTTP، آشنایی و کار با کتابخانهٔ Requests و آشنایی مقدماتی با ابزار BeautifulSoup | آشنایی با Methodهای ارسال درخواست در پروتوکل HTTP | ۰٫۵ |
آشنایی با Status Codeهای Response در پروتوکل HTTP | ۰٫۲۵ | |
معرفی، نصب و استفادهٔ مقدماتی از کتابخانهٔ requests در پایتون | ۰٫۵ | |
ایجاد انواع Requestها در پایتون، رد کردن پارامتر به Requestها، خواندن محتوا و باینری و Status Code و Header پاسخ دریافت شده از سمت سرور در پایتون | ۰٫۷۵ | |
دسترسی به اطلاعات ریدایرکتها و مدیریت وضعیت Timeout در پایتون | ۰٫۵ | |
معرفی و نصب پکیج BeautifulSoup در پایتون | ۱ | |
جلسهٔ سوم: انواع شی و پیمایش درخت در BeautifulSoup | ساخت شی در BeautifulSoup و انواع اشیا در آن | ۱ |
پیمایش درخت با BeautifulSoup | ۲.۵ | |
جلسهٔ چهارم: کار با عبارات منظم و فیلترها و جستجو و دستکاری درخت و تولید خروجی در BeautifulSoup | کار با regular expression | ۰.۷۵ |
فیلترها در BeautifulSoup | ۰.۷۵ | |
جستجو در درخت با BeautifulSoup | ۰.۵ | |
دستکاری درخت با BeautifulSoup | ۰٫۷۵ | |
تولید خروجی در BeautifulSoup | ۰٫۷۵ | |
جلسهٔ پنجم: آشنایی با انواع دادهٔ XML و JSON و CSV و پردازش آنها در پایتون و مقایسهٔ پارسرهای BeautifulSoup، ذخیرهسازی و نگهداری داده در پایگاه داده | آشنایی با XML و پردازش آن با lxml در پایتون | ۰٫۷۵ |
آشنایی با JSON و پردازش آن در پایتون | ۰٫۷۵ | |
آشنایی با CSV و پردازش آن در پایتون | ۰.۷۵ | |
انواع و تفاوتهای میان parserها و استفاده از آنها در BeautifulSoup | ۰/۵ | |
آشنایی با پایگاه داده MongoDB و ذخیرهسازی دادهٔ به دست آمده در این پایگاه داده و مدیریت خط لوله | ۰.۷۵ | |
جلسهٔ ششم: مشخصههای وب و دادههای موجود در آن، تئوریهای crawling و index وب و آموزش کار با ابزار Scrapy و انجام پروژهٔ استخراج اطلاعات از ویکیپدیا، آشنایی با برخی معماریهای پیچیدهتر در وب | مشخصههای وب و دادههای موجود در آن | ۰٫۵ |
آشنایی با طرز کار و تئوریهای crawlerهای وب | ۰٫۵ | |
نصب و آشنایی با Scrapy و آشنایی با ساختار فایلها در پروژهٔ Scrapy | ۰٫۵ | |
تنظیمات مهمتر Scrapy و آشنایی با رابط کاربری متنی آن | ۰٫۵ | |
انجام یک پروژه با استفاده از Scrapy و BeautilfulSoup برای Crawl و استخراج داده از ویکیپدیا | ۱ | |
آشنایی بسیار کلی و مقدماتی با معماریهای پیچیدهتر در وب مانند AJAX و SPA و WebSocket | ۰.۵ | |
جلسهٔ هفتم: آموزش کار با APIهای وب با مثالهای کاربردی از گوگل و توییتر | مرور مفاهیم مطرح شده در جلسات قبل | ۰٫۵ |
آشنایی با APIهای وب توییتر و گوگل برای نمونه و آشنایی بیشتر با JSON | ۱ | |
پیادهسازی مثالی کاربردی با مطالب آموزش داده شده در دوره | ۲ | |
جلسهٔ هشتم: جستجو و بازیابی اطلاعات به کمک Elasticsearch | مفاهیم بازیابی اطلاعات | ۱ |
آموزش کار با برنامهٔ Elasticsearch | ۲.۵ |
طرح درس دورهٔ برنامهنویسی مقدماتی با پایتون ۳ (Python 3 Programming) | ||
روز | سرفصل | زمان (ساعت) |
---|---|---|
جلسهٔ اول: معرفی، راهاندازی، نصب و نوشتن اولین برنامهٔ پایتون و آشنایی با عملگرها و ساختمانهای دادهٔ ابتدایی | چیستی و چرایی پایتون، فلسفهٔ پایتون، تفاوتهای نسخههای ۲ و ۳ زبان پایتون | ۱ |
نصب ابزارهای مورد نیاز و نصب و فعالسازی پایچارم و کار با محیط یکپارچهٔ برنامهنویسی پایچارم، کار با shell پایتون و تفاوتهای آنها، بررسی محل شروع اجرای برنامهها در پایتون | ۰.۵ | |
نحو سادهٔ زبان پایتون و تفاوتهای آن با سایر زبانها، معرفی برخی از پروپوزالهای پایتون | ۰.۵ | |
انواع ارورها در زبانهای برنامهنویسی، مفاهیم زبانهای برنامهنویسی سطح بالا و سطح پایین، تفاوت فرایند ترجمه و تفسیر، تفاوت تایپسیستمهای پویا و ایستا | ۰.۵ | |
متغیرها و انواع ابتدایی داده، انواع عملگرها، نکات مرتبط با تعریف رشتههای متنی | ۱.۵ | |
جلسهٔ دوم: ساختارهای کنترلی و ساختمانهای دادهٔ کامپازیت در پایتون | کار با سیکوئنسها شامل استرینگ و لیست و تاپل، فرمتینگ رشتههای متنی، ارزشگذاریهای بولین، ساخت لیست از روی یک لیست دیگر، روشهای اسلایسینگ لیستها | ۱ |
ساختارهای کنترلی شامل if و for و while و متعلقات آنها، تابع range()، استفاده از break و continue و else در حلقهها، عبارت pass | ۱ | |
ساختارهای دادهٔ ست و دیکشنری و تکنیکهای استفاده از حلقه روی آنها، مقایسهٔ بین ساختمانهای داده و دیدن نمونههایی از هر کدام در عمل | ۱ | |
مفاهیم تابع و انواع حالتهای آرگومانها، کار با docstring، مثالهایی از توابع بازگشتی | ۱ | |
جلسهٔ سوم: ماژول، پکیج و مدیریت و نصب آنها | حل تمرینها و آشنایی مقدماتی با مفاهیم طراحی الگوریتم | ۱ |
مفاهیم ماژول و نحوهٔ ایجاد یا استفاده از آنها، تابع dir() و scopeها در پایتون و متغیر __name__ | ۱ | |
معرفی ماژولهای time و random و math از کتابخانهٔ استاندارد پایتون | ۱ | |
پکیجها در پایتون، کار با مدیر پکیجهای pip در پایتون و VirtualEnv | ۱ | |
جلسهٔ چهارم: مرور مطالب گفته شده، آشنایی با برخی مفاهیم سطح پایین و مفاهیم طراحی زبان پایتون، استفاده از یکی از کتابخانههای سطح بالاتر پایتون برای نوشتن یک برنامهٔ کاربردی، آنتیپترنها در پایتون | حل تمرینها | ۱ |
مرور مطالب بیان شده و آشنایی با سایر توابع built-in در پایتون | ۱ | |
آشنایی با برخی مفاهیم سطح پایین و مفاهیم طراحی زبان پایتون به کمک بررسی pywatها | ۱.۵ | |
آنتیپترنها در پایتون | ۰.۵ | |
جلسهٔ پنجم: شیگرایی در پایتون | حل تمرینها | ۰.۵ |
مفاهیم شیگرایی | ۰.۵ | |
کلاس و آبجکت در پایتون، کار با Instance Objects و Method Objects در پایتون، کار با متغیرها در سطح کلاس یا Instance، تابع constructor و متغیر self، متغیر __dict__، دکوراتورهای classmethod و staticmethod، ارثبری و وراثت چندگانه، تابع help، توابع خاص، متغیرهای پرایوت، معرفی iteratorها و generatorها | ۲.۵ | |
دستهبندی و معرفی کاربردهای underscore در پایتون و کانونشنهای مرتبط با آن | ۰.۵ | |
جلسهٔ ششم: مدیریت حالات استثنا و نوشتن یک برنامهٔ کاربردی با استفاده از کتابخانههای سطح بالا | حل تمرینها | ۱ |
انواع، روشهای هندل کردن، تولید و تعریف اکسپشنها، تعریف clean-up و clean-upهای از پیش تعریف شده | ۱.۷۵ | |
بررسی و کار با یکی از کتابخانههای سطح بالاتر زبان پایتون برای نوشتن یک برنامهٔ کاربردی | ۱.۲۵ | |
جلسهٔ هفتم: عبارات منظم و نحوهٔ کار با آنها در پایتون، آشنایی با SDLC و برخی مفاهیم اولیه در مهندسی نرمافزار و معرفی سطوح کوهیشن و کاپلینگ | عبارات منظم و کار با آنها در پایتون | ۱ |
معرفی چرخهٔ عمر ایجاد نرمافزار (SDLC) و برخی مفاهیم و واژگان پرکاربرد در مهندسی نرمافزار | ۲.۲۵ | |
مشخص کردن کیفیت ماژولهای نرمافزاری به کمک سطوح کوهیشن و کاپلینگ | ۰.۷۵ | |
جلسهٔ هشتم: ورژن کنترل و گیت | معرفی ورژن کنترل، مقایسهٔ سیستمهای ورژن کنترل متمرکز و توزیعشده، معرفی و مقایسهٔ سیستمهای مورد استفادهٔ رایج برای ورژن کنترل، معرفی و مقایسهٔ سرویسهای میزبانی ورژن کنترل در اینترنت، معرفی گیت و تفاوتهای آن با سایر سیستمهای موجود (مفهوم Snapshot و Local بودن در گیت) | ۱ |
معرفی وضعیتها در گیت (Modified, Staged, Committed)، نحوهٔ استفادهٔ گیت از SHA-1 Checksum، انواع تغییرات در گیت، دستورات سادهٔ گیت، ایجاد تغییر در یک کامیت مشخص، پوینتر HEAD، رسم گراف تاریخچهٔ گیت، آناتومی یک کامیت در گیت، برنچینگ در گیت، روشهای Merge در گیت (Fast-forward, Recursive)، روش Merge خودکار، رفع کردن تداخل هنگام Merge کردن در محیط متنی، معرفی Squash Merge، معرفی Git Rebase، کار با Remoteها در گیت، پروتوکلهای SSH and HTTPS در گیت، ایجاد برنچهای ریموت روی لوکال، نوشتن Commit Message های چند خطی | ۱.۲۵ | |
ابزارهای گرافیکی کار با ورژن کنترل در PyCharm و رفع Conflict در آنها | ۰.۵ | |
ویژگیهای Commit Message خوب | ۰.۵ | |
معرفی انواع workflowها در پروژههای نرمافزاری | ۰.۷۵ |
طرح درس دورهٔ برنامهنویسی سمت سرور با جنگو (Backend Web Development with Django) - پیشنیاز: آشنایی با برنامهنویسی پایتون و برنامهنویسی سمت کاربر (زبانهای CSS و JS و HTML) | ||
روز | سرفصل | زمان (ساعت) |
---|---|---|
جلسهٔ اول: مرور مطالب اصلی دورهٔ برنامهنویسی مقدماتی با پایتون | مرور مطالب مربوط به فلسفهٔ پایتون، تنظیم محیط برنامهنویسی، کنسول پایتون و محیطهای یکپارچهٔ برنامهنویسی و نحو سادهٔ زبان پایتون، مفاهیم شرط، حلقه، انواع دادهها، سیکوعنسها شامل استرینگ و لیست و تاپل و ساختمانهای دادهٔ دیکشنری و ست | ۲ |
مرور مفاهیم تابع و ماژول و پکیج و pip و VirtualEnv و شیگرایی در پایتون و مفاهیم عبارات منظم و مدیریت اکسپشنها در پایتون | ۲ | |
جلسهٔ دوم: مرور مطالب اصلی دورهٔ برنامهنویس فرانتاند | آشنایی با تاریخچهٔ وب و اتفاقات مهم آن از ابتدای پیدایش اینترنت تاکنون | ۰٫۵ |
آشنایی با مراحل باز شدن و طرز کار صفحات وب، ساختار URLهای وب، معماری کلاینت سرور و نقش CSS و HTML و برنامهٔ سمت سرور در آن | ۱ | |
مرور برنامهنویسی مقدماتی HTML و CSS | ۱.۷۵ | |
مرور برنامهنویسی JS | ۰.۷۵ | |
جلسهٔ سوم: مفاهیم پایهٔ برنامهنویسی سمت سرور | مفاهیم برنامهنویسی سمت سرور | ۱ |
مفاهیم Common Gateway Interface | ۱ | |
مفاهیم معماری اپلیکیشنهای وب (Web Application Architucture) | ۲ | |
جلسهٔ چهارم: معرفی فریمورک جنگو و نصب آن و مفاهیم دیتابیس | معرفی فریمورک جنگو و نصب آن | ۲ |
سیستمهای مدیریت دیتابیس (Database Management Systems) و مفاهیم ORM | ۱ | |
مدل در جنگو | ۱ | |
جلسهٔ پنجم: تمپلیت و view و فرم و ادمین جنگو | تمپلیت و view در جنگو | ۲ |
فرمها در جنگو | ۱ | |
ادمین جنگو | ۱ | |
جلسهٔ ششم: اعتبارسنجی و نشست کاری، فایلهای استاتیک و Middleware و AJAX در جنگو | اعتبارسنجی و نشست کاری (Sessions & Authentication) در جنگو | ۱.۵ |
مفاهیم Static Files و MiddleWare در جنگو | ۱.۵ | |
پیادهسازی کد ایجکس (AJAX) در جنگو | ۱ | |
جلسهٔ هفتم: جنگو پیشرفته (الگوها، تجارب موفق و ابزارهای جنگو) | معرفی django-hijack و django-compressor | ۱ |
استفاده از class-based view در جنگو | ۱ | |
کتابخانهٔ django-rest-framework | ۱ | |
دیپلویمنت و استقرار پروژههای جنگو در محیط پروداکشن | ۱ |
طرح درس دورهٔ سامانهٔ کنترل ورژن گیت (GIT Version Control System) - پیشنیاز:برنامهنویسی مقدماتی در یکی از زبانهای برنامهنویسی | ||
روز | سرفصل | زمان (ساعت) |
---|---|---|
جلسهٔ اول: مفاهیم ورژن کنترل و مقدمات گیت | امکانات و دلایل استفاده از ورژن کنترل | ۱ |
انواع سیستمهای ورژن کنترل و مقایسهٔ آنها | ||
نحوهٔ کار کردن سیستمهای کنترل ورژن | ||
معرفی سایتهای معروف ارائهدهندهٔ خدمات کنترل ورژن | ||
نصب گیت و اولین قدمها در استفاده از گیت، تنظیمات محیطی گیت | ۱.۵ | |
ایجاد و دریافت مخازن گیت | ||
ثبت تغییرات در مخزن گیت و سطوح Stage در گیت | ||
دیدن تاریخچهٔ تغییرات | ||
برگرداندن تغییرات | ||
کار با remote در گیت | ||
ایجاد tag در گیت | ||
کار با aliasها در گیت | ||
مفاهیم branch در گیت | ۱.۲۵ | |
دستورات اولیهٔ کار با branchها و انواع روشهای merge کردن آنها | ||
مدیریت branchها | ||
انواع workflow ها در گیت | ||
برنچهای remote | ||
کار با rebase | ||
سناریوهای ایجاد و رفع conflict | ||
تنظیمات gitignore | ۰.۲۵ | |
جلسهٔ دوم: امکانات محیطهای گرافیکی کار با گیت، گیت روی سرور و نحوهٔ مشارکت در پروژهها | پروتوکلهای ارتباطی گیت با سرور | ۰.۵ |
ایجاد کلیدهای SSH | ۰.۵ | |
مشارکت در پروژههای روی گیت | ۱ | |
نصب و راهاندازی GitLab و آموزش امکانات آن | ۱ | |
نمایش امکانات گرافیکی محیطهای ایجاد نرمافزار JetBrains برای کار با گیت | ۱ |
ادامهٔ جلسهٔ اول: گیت حرفهای و اکوسیستم آن | نمایش با جزئیات بیشتر امکانات سایتهای ارائهدهنده خدمات کنترل ورژن و مفاهیم merge و workflowها و ابزارهای محیطهای توسعه | ۲.۵ |
معرفی روشها و انواع بازگشت به نسخههای پیشین (Undoing) در گیت و مفاهیم Stashing | ||
مفهوم و دلایل استفاده از fork در گیت | ||
روشهای Semantic Versioning و | ||
مراحل Pull Request | ||
کار با برخی از سیستمهای Continous Integration و تست خودکار کد | ||
ساخت کلید و رمزنگاری ارتباط با مخازن گیت | ||
تنظیم Deploy On Push و Git Hook در گیت | ||
تمرین مطالب گفته شده در قالب کارگاه |
طرح درس دورهٔ سیستم مدیریت محتوای جوملا (Joomla Content Management System) - پیشنیاز: آشنایی با مبانی کامپیوتر و اینترنت | ||
روز | سرفصل | زمان (ساعت) |
---|---|---|
جلسهٔ اول: مقدمات نصب و کار با جوملا | معرفی و تعریف سیستمهای مدیریت محتوا و دلایل استفاده از آنها | ۰.۵ |
نیازمندیهای سیستمی و مراحل نصب، بکآپگیری و جابجایی جوملا | ۰.۵ | |
بخش content در جوملا | ۰.۵ | |
منوها | ۰.۵ | |
مدیریت کاربران و تنظیمات سیستمی | ۰.۵ | |
ماژول، پلاگین، زبان و تمپلیت | ۱ | |
افزونهٔ نقشه سایت و فرمساز | ۰.۵ |
طرح درس دورهٔ سیستمعامل گنو/لینوکس (GNU/Linux Operating System) - پیشنیاز: آشنایی با مبانی کامپیوتر و اینترنت | ||
روز | سرفصل | زمان (ساعت) |
---|---|---|
جلسهٔ اول: مفاهیم، نصب و استفاده از نسخههای رومیزی گنو/لینوکس | ۱.۵ | |
جلسهٔ دوم: شل اسکریپتینگ پیشرفته و مدیریت سختافزار، پردازهها و فایلسیستم | شناسایی سختافزار در گنو/لینوکس، بوت کردن سیستم، تغییر ران لولها و شات داون و ریبوت سیستم | ۱ |
طراحی لیاوت هارددیسک، کار با بوت لودر و گراب، مدیریت کتابخانهها | ۱ | |
پردازش متون با فیلترها، استفاده از استریمها، پایپها و ریدایرکتها، ساخت و دیدهبانی و کشتن پروسهها، تغییر اولویت اجرای پروسهها، جستجوی فایلهای متنی با استفاده از رگولار اکسپرشنها، دستورات کنترلی if و while، کار با اسکرین | ۲ | |
ساخت پارتیشنها و فایل سیستمها، حفظ سلامت فایل سیستمها، کنترل ماونت کردن و آنماونت کردن فایلسیستمها، مدیریت سهمیه دیسک، ایجاد و تغییر لینکهای سخت و سمبلیک، پیدا کردن فایلهای سیستمی و محل قرارگیری صحیح فایلها | ۱.۵ | |
محیطهای متنی و تنظیمات آنها، متغیرهای محلی | ۰.۵ | |
جلسهٔ سوم: شبکه و سرویسهای سیستمی در گنو/لینوکس | مرور مباحث گفته شده در جلسات قبل در قالب سرفصلهای LPIC 1، بحث راجع به تجربیات فردی افراد شرکتکننده و بررسی یک مثال کاربردی از شل اسکریپتینگ در گنو/لینوکس | ۱ |
کار با سرویس زمان و تاریخ در گنو/لینوکس | ۰.۵ | |
کار با لاگهای سیستمی در گنو/لینوکس | ۰.۵ | |
مفاهیم مقدماتی شبکه | ۰.۵ | |
تنظیم پایهای شبکه در توزیعهای گوناگون و سرور | ۱ | |
رفع اشکالات شبکه و ابزارهای آن | ۱.۵ | |
امنیت داده از طریق رمزنگاری در گنو/لینوکس | ۱ |
طرح درس دورهٔ آشنایی با مفاهیم ضروری در خدمات زیرساخت ابری آمازون (AWS) - پیشنیاز: آشنایی با فعالیتها و مسیر ایجاد محصول نرمافزاری تا تحویل آن به کاربر | ||
روز | سرفصل | زمان (ساعت) |
---|---|---|
جلسهٔ اول: آشنایی با رایانش ابری، اصطلاحات فنی و تجاری در AWS و گامهای اولیه برای کار با خدمات ابری آمازون | مفهوم رایانش ابری، دلایل استفاده از آن و اصطلاحات XaaS و خلاصه و معرفی سرویسهای مشهورتر آمازون | ۰.۲۵ |
مفاهیم Instance و انواع آن، AMIها و مفاهیم Region و Availability Zoneها در آمازون، قیمتها و تعدادی از راهکارهای کاهش هزینهها و موارد Free Tier آمازون | ۰.۵ | |
معرفی امکانات Elastic آمازون و مفاهیم VPC و CloudWatch و Auto Scaling و HPC و VM Import و Export و APIهای آمازون، مدلهای مدیریت امنیت شبکه در آمازون و روشهای مدیریت کلید در آمازون | ۰.۵ | |
نمایش دمو از مراحل لانچ کردن، ترمینیت کردن و Query زدن روی اطلاعات نمونههای ec2 آمازون و کلیهٔ مفاهیم معرفی شده به صورت عملی در Console وب مدیریت آمازون | ۰.۷۵ | |
نصب و آمادهسازی AWS Command Line Interface | ۰.۷۵ | |
نمایش دمو از فعالیتهای مدیریتی روی نمونههای ec2 آمازون به صورت عملی در ابزارهای متنی و از طریق نوشتن اسکریپت | ۰.۵ | |
معرفی و آموزش مراحل ایجاد، بهروزرسانی، اسکیل کردن و حذف نمونهها از طریق پشتهٔ CloudFormation | ۱.۲۵ | |
جمعبندی متدهای معرفی شده برای کار با نمونهها و نتیجهگیری | ۰.۲۵ | |
آموزش ایجاد و نامعتبرسازی AMI | ۱.۲۵ | |
جلسهٔ دوم: آشنایی با مفاهیم دوآپس و مدیریت سطوح دسترسی، گروههای امنیتی، مدیریت تنظیمات و استقرار خودکار برنامه | مفهوم DevOps و دلایل آن | ۰.۵ |
مدیریت دسترسی و هویت، اسامی منابع، پالیسیها، کاربران و گروههای IAM | ۱ | |
مدیریت نقشها و استفاده از IAM در پشتههای CloudFormation | ۱.۵ | |
گروههای امنیتی و حفاظت از نمونهها از طریق فهرستهای SSH | ۰.۲۵ | |
شبکههای خصوصی مجازی و گروههای امنیتی و جمعبندی بحث مدیریت دسترسی و امنیت در آمازون | ۱ | |
چرایی و مقدمات راهکارهای مدیریت تنظیمات در آمازون | ۰.۷۵ | |
معرفی puppet و استفاده از آن در آمازون برای نصب خودکار و مدیریت تنظیمات | ۱ |
طرح درس دورهٔ تخصصی طراحی و معماری خدمات زیرساخت ابری آمازون (AWS) - پیشنیاز: شرکت در دورهٔ «آشنایی با مفاهیم ضروری در خدمات زیرساخت ابری آمازون» | ||
روز | سرفصل | زمان (ساعت) |
---|---|---|
جلسهٔ اول: ساخت و تنظیم دیتابیس با سرویس RDS و مقیاسپذیری سیستمهای نرمافزاری | خلاصه و مقدمات مولفههای نرمافزاری | ۰.۲۵ |
نصب اپلیکیشنهای وب | ۰.۵ | |
آمادهسازی Puppet و CloudFormation و ساخت دیتابیس RDS | ۱ | |
ساخت و استفاده از ElastiCache | ۰.۷۵ | |
نصب Celery و سرویس صف ساده، ساخت AMI و ساخت پشته با CloudFormation | ۰.۷۵ | |
مفهوم Auto Scaling | ۰.۲۵ | |
ایجاد و تنظیم گروههای Auto Scaling و اطلاعرسانی در زمان فعالیتهای Scaling | ۰.۷۵ | |
پالیسیهای Scaling | ۰.۵ | |
Elastic Load Balancing و Auto Scaling Groups | ۰.۵ | |
جلسهٔ دوم: مدیریت لاگها، مانیتورینگ و بکآپگیری | تولید لاگ مرکزی | ۰.۷۵ |
لاگهای سرویس AWS و مدیریت لاگهای دیتابیس | ۰.۵ | |
دلایل مانیتورینگ، ابزارهای آن و سرویس CloudWatch | ۰.۷۵ | |
بکآپگیری فایلهای استاتیک روی S3 و برگرداندن بکآپها | ۰.۵ | |
بکآپگیری دیتابیس | ۰.۵ | |
جمعبندی مطالب مطرح شده در این دوره و بررسی تعدادی از practice های رایج و الگوهای عملیاتی در طراحی معماری خدمات آمازون | ۳ |
طرح درس دورهٔ نرمافزار حروفچینی Tex و XePersian - پیشنیاز: ندارد | ||
روز | سرفصل | زمان (ساعت) |
---|---|---|
جلسهٔ اول: حروفچینی در نرمافزار لتکس | معرفی مفاهیم و نصب لتکس و زیپرشین و موتورهای رندر متن | ۰.۷۵ |
نگارش در محیطهای شمارشی و موردی | ۰.۵ | |
ریاضیات و فرمولنویسی | ۰.۵ | |
محیطهای شناور (کار با تصویر و جدول و …) | ۰.۵ | |
تنظیمات صفحه و متن | ۰.۷۵ | |
نگارش متون فارسی و مسائل آن | ۰.۵ | |
انواع روشهای تولید نمایه | ۰.۵ | |
تولید مراجع به صورت استاندارد | ۰.۵ | |
کتابخانهها و ساخت قالب و نکات تکمیلی در تکس | ۱ |