درباره دوره:
دوره آموزش جاوا مقدماتی با متد حرفهای و روش تدریس خاص خود به آموزش جاوا میپردازد. در این دوره به طور کامل و از صفر زبان جاوا را خواهید آموخت. زبان برنامه نویسی جاوا (Java)، زبانی شاخص، سطح بالا و همه منظوره است که در سیستمعاملهای مختلفی قابل اجرا است. جاوا را میتوان زبان مادر سیستمعامل سولاریس نامید. اصلیترین خصوصیت زبان برنامه نویسی جاوا شیءگرایی آن است و این یعنی امکان استفاده دوباره از کدهای از پیش نوشته شده، در این زبان وجود دارد. در همینباره، شعار اصلی جاوا يعنی: "يکبار بنويس و هر جا استفاده کن"، موضوعی بسيار حائز اهميت است. از دیگر نکات مثبت این زبان برنامه نویسی این است که افراد آشنا با زبان C++، آسانتر و سریعتر میتوانند زبان JAVA را فرا بگیرند.
در دوره آموزش جاوا مقدماتی ابتدا به شرح مفاهیم پایهای برنامه نویسی جاوا و مبانی تئوری آن پرداخته میشود و در ادامه با نحوه کدنویسی در این زبان آشنا میشوید. همچنین، از طریق آشنایی با مثالهای کاربردی و انجام تمرینات، به توانایی لازم برای انجام پروژههای واقعی دست پیدا خواهید کرد.
در طی دوره آموزش مقدماتی جاوا، ابتدا با نحوه نصب ابزارها و نرمافزارهای مورد نیاز برای برنامه نویسی جاوا آشنا میشوید. سپس تمامی مفاهیم مختلف برنامهنویسی جاوا را گام به گام و به صورت عملی فرا میگیرید و دوره تا انجام یک پروژه کامل ادامه خواهد داشت. علاوه بر این، در طول دوره با دیگر پروژههای جذاب و واقعی سر و کار خواهید داشت تا این زبان را به صورت عملی فرا گیرید و برای ورود به بازار کار آمادهتر شوید.
افراد علاقهمند به برنامه نویسی با زبان جاوا با پشت سر گذاشتن این دوره، دانش لازم برای شروع کار و وارد شدن به دنیای برنامهنویسی را به طور کامل آموخته و در مسیر تسلط بر زبان مورد علاقه خود قرار بگیرند.
تمامی افرادی که به برنامه نویسی در زبان جاوا و اندروید علاقه دارند، میتوانند در این دوره شرکت کنند. از ویژگیهای بارز این دوره این است که بدون هیچ پیشنیازی از صفر شروع کرده، مفاهیم، اصطلاحات و دانش لازم برای برنامه نویسی را به شما میآموزد و از طرفی شما نیز میتوانید به صورت کاربردی و کامل خودتان به انجام پروژه بپردازید و از زبان برنامه نویسی جاوا (که در ساخت برنامههای کاربردی و مهم دنیا کاربرد دارد) استفاده کنید.
علاوه بر کار با زبان جاوا و حل مثالها و تمرینهای مرتبط با این زبان، شما دانشجویان گرامی با اصول کلی زبان های برنامه نویسی در قالب زبان جاوا آشنا شده و در زمینههای مختلفی که از زبان جاوا استفاده میشود، بهره ببرید. پس از پایان دوره آموزش مقدماتی جاوا شما نه تنها میتوانید به طراحی پروژههای جاوا بپردازید، بلکه آمادگی یادگیری دیگر زبانهای برنامهنویسی را نیز به دست میآورید.
لازم به ذکر است که یکی از اصلیترین زبانهای برنامه نویسی بهکار رفته در زبان برنامهنویسی اندروید، زبان جاوا است. بنابراین، اگر شما به ساخت اپلیکیشنهای موبایل علاقه دارید، راه رسیدن به آن از یادگیری زبان برنامه نویسی جاوا میگذرد.
در پایان و پس از آموختن این دوره آموزش جاوا مکتب خونه و گرفتن مدرک این دوره شما به راحتی میتوانید با جاوا برنامه نویسی کنید یا شروع به یادگیری دورههای تخصصیتر کنید تا از فرصتهای شغلی که در انتظار شماست، بهرهمند شوید.
برای آن که دانش عمیقی در زبان برنامهنویسی جاوا بهدست آورده و با موضوعاتی مثل برنامهنویسی شیءگرا، برنامهنویسی گرافیکی و کدنویسی به طور حرفهای آشنا شوید. پیشنهاد ما به شما عزیزان شرکت در دوره آموزش برنامه نویسی جاوا مقدماتی است.
آموزش جاوا مقدماتی، سطح اولی است که برای یادگیری زبان برنامه نویسی جاوا نیاز دارید. جاوا از قدرتمندترین و محبوبترین زبانهای برنامه نویسی دنیا است. بسیاری از شرکتهای محبوب و برند در سراسر جهان، از این زبان برای تولید محصولات خود استفاده میکنند. آموزش جاوا به شما کمک میکند تا به این دنیای عظیم بپیوندید و توان نوشتن برنامههای حرفهای، امن و قدرتمند را بهدست آورید.
جاوا (Java) یک زبان برنامه نویسی شیءگرا است. ساختار این زبان شباهت زیادی به زبانهای C و C++ دارد. البته جاوا، سادهتر و قویتر از این زبانهاست. این زبان برنامه نویسی، جزو سه زبان برتر و محبوبتر در سراسر دنیا شناخته میشود.
زبان برنامه نویسی جاوا، کمک میکند تا هر برنامهای برای هر پلتفرم (انواع گوشی، تبلت، کنسول بازی، خودپرداز، تلویزیون هوشمند و غیره) را بنویسیم. زبان جاوا امکان طراحی و پیادهسازی برنامههای مختلف از جمله نرم افزارهای هوش مصنوعی را فراهم میآورد. ویژگیهای این زبان، سبب شده است تا کاربردهای مختلفی از آن بهوجود آید.
جاوا با جاوااسکریپت، دو زبان متفاوت هستند. وجه تشابه این دو زبان تنها به نام آنها محدود میشود. البته هم زبان جاوا و هم Javascript ساختار خود را از زبان برنامهنویسی C گرفتهاند و به همین دلیل یادگیری یکی از این دو زبان، آموزش زبان دیگر را سادهتر میکند.
بهعنوان یک برنامهنویس، زبانها و نکات بسیاری وجود دارد که باید آنها را یاد بگیرید. با این حال، هیچیک از این زبانها به اندازهی جاوا کاربردی و مهم نیستند. در فهرست زیر، مهمترین عناوینی که شما را برای یادگیری java مجاب خواهد کرد، نشان داده شده است.
• جاوا بسیار محبوب است.
• جاوا بهطور مرتب بهروزرسانی میشود.
• با جاوا میتوانید تقریباً در تمام سیستم عاملها، برنامه نویسی کنید.
• شرکتهای محبوب و معتبر دنیا، جاوا را بهعنوان زبان اصلی خود قرار میدهند.
• یادگیری جاوا آسان است.
• منابع زیادی برای آموزش JAVA مقدماتی و آموزش جاوا پیشرفته وجود دارد.
• آموزش جاوا کمک میکند تا دیگر زبانهای برنامهنویسی را درک کنید.
• جاوا مقیاس پذیر است.
• امنیت برنامههای جاوا بالا است.
• جاوا قابلیت حمل دارد و روی هر پلتفرمی اجرا میشود.
• انجمنهای برنامهنویسی جاوا بسیار قوی است.
• دستمزد کاری برنامهنویسان جاوا بسیار ایدهآل است.
• جاوا کاربردهای زیادی دارد.
• جایگاه جاوا بهنسبت دیگر زبانهای برنامهنویسی، بسیار محکم است.
• امکان کسب درآمد خوب از زبان جاوا وجود دارد.
برای ورود به دنیای جاوا، باید آموزش صفر تا صد برنامه نویسی با جاوا را دنبال کنید. آموزشهای این زبان اغلب در دو سطح آموزش مقدماتی جاوا و آموزشهای پیشرفته ارائه میشوند. روشن است که برای هر تازهوارد به دنیای جاوا، باید ابتدا مباحث آموزش java مقدماتی، دنبال شود.
آموزش مقدماتی زبان جاوا، شما را با اصول کلی این زبان آشنا میکند. برنامه نویسی شیءگرا با زبان برنامه نویسی جاوا از مهمترین سرفصلهایی است که در دوره مقدماتی ارائه میشود. بعد از تسلط بر مبانی پایه، شما قادر خواهید بود تا برنامه نویسی جاوا را شروع کنید. سپس میتوانید مباحص تخصصیتر را در دورههای پیشرفته دنبال کرده تا به سطح حرفهای برسید.
تمام افرادی که میخواهند وارد حوزهی برنامه نویسی جاوا شوند، باید آموزش مقدماتی java را دنبال کنند. حتی اگر میخواهید در حوزهی برنامه نویسی موبایل فعالیت داشته باشید، ضروری است تا مسیر حرفهای را با یادگیری جاوا آغاز کنید.
یادگیری زبان جاوا ساده است و زمان خیلی زیادی برای دورهی آموزشی آن گرفته نمیشود. دورهی مقدماتی زبان جاوا، در حدود ۶ هفته (یک ماه و نیم) قابل اتمام خواهد بود. البته زمان نهایی آموزش را باید برحسب تمرین و پشتکار داوطلب، سنجید.
برای شرکت در دورهی آموزش مقدماتی جاوا، شما به پیشنیازی احتیاج نخواهید داشت. این دوره، مباحث را از صفر شروع میکند. بنابراین استفاده از این دورهی آموزشی، حتی برای آن دسته از افرادی که هیچگونه آشنایی با اصطلاحات برنامه نویسی ندارند، مناسب خواهد بود.
لازم به ذکر است که به دلیل شباهت ساختاری زبان جاوا با زبانهایی نظیر سی و سی پلاس پلاس، آشنایی با قواعد زبان C++ به شما کمک میکند تا سریعتر و آسانتر نکات آموزشی جاوا را یاد بگیرید. البته هیچ الزامی وجود ندارد و شما میتوانید جاوا را بهعنوان بیس آموزشی خود انتخاب کنید.
دورهی آموزش مقدماتی جاوا، اولین چیزی است که برای کار با این زبان برنامه نویسی، نیاز خواهید داشت. این دوره به شما کمک میکند تا ساختار و کلیات زبان برنامه نویسی جاوا را یاد بگیرید. آموزش برنامه نویسی جاوا، هم برای نوشتن برنامههایی به زبان جاوا و هم برای یادگیری دیگر زبانهای برنامه نویسی، کاربرد دارد.
در این دورهی آموزشی، ابتدا تمام ابزارها و نرم افزارهایی که برای برنامه نویسی جاوا مورد نیاز است را یاد میگیرید. سپس با نحوهی نصب و طرز کار آنها آشنا میشوید. در مراحل بعد، مفاهیم مختلف برنامه نویسی جاوا بهصورت گام به گام ارائه میشود. این آموزشها کاملاً عملی بوده و با انجام تمارین و پروژههای متعدد، سبب تسلط شما روی کار با جاوا خواهد شد.
بنابراین میتوان گفت که بعد از اتمام دورهی آموزشی جاوا مقدماتی، شما میتوانید توانایی لازم برای نوشتن برنامههای مختلف با این زبان را بهدست آورید. عبور از مسیر حرفهای نوشتن اپلیکیشنهای موبایل و دیگر انواع نرم افزارهای مشابه نیز بعد از یادگیری جاوا مقدور خواهد بود.
برای آموزش جاوا، منابع بسیار زیادی وجود دارد. شما میتوانید این آموزشها را از طریق مطالعهی منابع آموزش جاوا pdf یا ویدیویی دنبال کنید. خبر خوش اینکه بسیاری از منابع آموزش جاوا رایگان هستند و شما نیازی به پرداخت هزینه نخواهید داشت.
شرکت در دورههای آموزش جاوا مقدماتی، گزینهی دیگری است که میتوانید برای یادگیری این زبان، دنبال کنید. دورههای آنلاین، عموماً به دلیل انعطاف زمانی بالایی که دارند، بیشتر مورد استقبال قرار میگیرند. شما با شرکت در این دورهها، از طریق تماشای ویدیوهای آموزشی و دسترسی به جزوات جلسه، میتوانید سطح خوبی از یادگیری جاوا را بگذرانید.
آنچه اهمیت دارد این است که منابع آموزشی خود را از انواع آموزش جاوا پروژه محور و با تمرینهای عملی انتخاب کنید. هرچقدر بیشتر تمرین کنید، تسلط بهتری روی موضوعات جاوا بهدست میآورید.
بعد از اتمام آموزش، میبایست انجمنهای مختلف جاوا را پیدا کنید. اگر به زبان انگلیسی مسلط هستید، انجمنهای انگلیسی زبان گزینهی ایدهآلی خواهد بود. شرکت در این انجمنها برای پرسش و پاسخ دربارهی جاوا، رفع اشکالات برنامه نویسی و غیره، حائز اهمیت است.
فریمورکها نرم افزارهایی هستند که بهمنظور سهولت در کدنویسی و توسعهی برنامههای نرم افزاری بهوجود آمدهاند. این فریمورکها شما را از نوشتن کدهای تکراری نجات میدهند. خوشبختانه فریمورکهای زیادی برای زبان جاوا ایجاد شده است.
بعد از یادگیری مباحث مقدماتی جاوا، شما میتوانید یکی از فریمورکهای جاوا را انتخاب و آموزش آن را دنبال کنید. فریمورکهای جاوا امکانات خوبی برای مدیریت خطا در جاوا و ایجاد اتصال به پایگاه داده در اختیار برنامهنویس میگذارند.
فریمورکهای BLADE، dropwizard، grails، GWT، hibernate و JFS از محبوبترین فریم ورک های جاوا بهشمار میآیند. توصیه میکنیم بعد از اتمام دورهی مقدماتی و پیشرفتهی جاوا، با تسلط بر یکی از این فریمورکها، راحتتر و حرفهایتر کدنویسی جاوا را آغاز کنید.
گرچه زبان جاوا به نسبت سال تولد خود (۱۹۹۵) تقریباً قدیمی به شمار میآید، اما هنوز هم در شمار محبوبترین زبانهای برنامه نویسی قرار گرفته است. محبوبیت جاوا سبب شده است تا پروژههای زیادی با این زبان برنامهنویسی ایجاد شوند. این موضوع در کشور ایران نیز صدق میکند. به عبارت بهتر، اگر جاوا را یاد بگیرید، پروژههای زیادی برای کسب درآمد وجود دارد.
کسب درآمد با جاوا، تنها محدود به پروژههای جاوا نخواهد شد. شما میتوانید با تسلط بر مفاهیم طراحی اپلیکیشنهای اندروید، حوزهی فعالیت خود را گسترش دهید. همچنین در صورتی که به آموزش علاقهمند هستید، میتوانید دورهها و pdfهای آموزشی خود را ایجاد و در اختیار علاقهمندان قرار دهید.
برای انتخاب منبع آموزشی، باید به سرفصلهای آن توجه داشته باشید. یک منبع آموزشی قوی، سرفصلهای کامل را پوششدهی میکند. از سوی دیگر، تمرینات عملی و پروژه در لیست سرفصلها نشان میدهد که منبع معتبر است. مهمترین مباحث آموزش مقدماتی زبان جاوا، در فهرست زیر عنوان شده است.
• معرفی دورهی آموزشی، جاوا و اهداف
• نصب جاوا و ابزارهای مورد نیاز
• بیان مفهوم متغیرها
• کار با متغیر در جاوا
• اعمال اصلی ریاضی
• عملگرهای رابطهای
• عملگرهای شرطی
• عملگرهای منطقی
• حلقههای تکرار
• آرایهها
• خطایابی در برنامه
• متد
• ورودی و خروجی در متدها
• مفهوم شیءگرایی (OOP) در برنامه نویسی
• پیادهسازی شیء گرایی با جاوا
• ساخت کلاس
• خصوصیات اشیاء
• کپسولهسازی
• ارثبری
• چند ریختی
• انتزاع
• اینترفیسها
• داده کلاس
• استاتیک
• پکیجینگ در جاوا
• اسکوپ
• کلاسهای null
• POJO
• پروژه عملی با جاوا
• نحوهی پیاده سازی گرافیک برنامه
برای یادگیری صفر تا صد جاوا میتوانید از دورههای آموزش جاوا مکتب خونه استفاده کنید. شما میبایست در ابتدا آموزش جاوا مقدماتی مکتب خونه را دنبال کنید. بعد از تسلط بر مباحث مقدماتی، میتوانید از دورههای پیشرفته، سطح یادگیری خود را ارتقا دهید. آموزش جاوا مکتب خونه به طور کاملاً عملی برنامهریزی شده است و شما برای تسلط روی هر مبحث، تمارین متعددی را پشت سر خواهید گذاشت.
آموزش جاوا مقدماتی، گام اولی است که برای یادگیری زبان برنامه نویسی JAVA نیاز داریم. در این آموزشها، مباحث مقدماتی برنامه نویسی شیءگرا و ساختار کلی زبان جاوا مورد بحث قرار میگیرد. همچنین در مکتب خونه آموزش برنامه نویسی برای انواع و اقسام زبانهای برنامه نویسی موجود است که میتوانید از آنها نیز دیدن کنید.
فصل اول: مقدمات برنامهنویسی:
1 - نصب ابزار
2 - اولین برنامه خودمون رو بنویسیم و با غول چراغ جادو آشنا بشیم!
3 - چرا باید یه چیزی رو ذخیره بکنیم؟ متغیر چیه؟
4 - انواع متغیرها
5 - کوییز- انواع متغیرها
6 - ذخیره اطلاعات شخصی با استفاده از انواع متغیرها
7 - کار با متغیرها
8 - اولین حساب و کتاب با کامپیوتر
9 - استفاده از چهار عمل اصلی ریاضی
10 - محاسبه درآمد سالانه افراد شاغل خانواده
11 - چطوری مقایسه کنیم؟ عملگرهای رابطه ای یا Relational Operators
12 - کوییز-عملگرها
13 - بسته به شرایط خاص کدمون رو اجرا کنیم (control flow with if)
14 - مقایسه درآمد سالانه
15 - چطوری به بهترین شکل شرط و قرار کنیم با کامپیوتر؟
16 - تبدیل عدد به روزهای هفته
17 - ادغام شرطها با هم دیگه (عملگرهای منطقی)
18 - کوییز: عبارت شرطی با if
19 - پیادهسازی کارنامه دبستان
20 - انجام دادن کارهای پر تکرار در برنامهنویسی
21 - حل تمرین چاپ عددهای زوج و فرد بین 1 تا 10
22 - تکرار کارهای پرتکرار با استفاده از حلقه For
23 - چاپ اعداد فرد
24 - کنترل برنامه در زمانی که حالتهای متفاوت زیادی وجود داره!
25 - کوییز: حلقههای تکرار
26 - چطوری اطلاعات زیاد رو توی برنامه خودمون ذخیره بکنیم؟ (آرایهها)
27 - بیاید کار با آرایهها راحت تر کنیم! (تلفیق آرایهها با حلقهها)
28 - چاپ معکوس یک آرایه
29 - انتخاب برنده ماراتون!
30 - مسابقه ماراتون
31 - ساخت بازی هوپ
32 - نصب یک ابزار برای حرفهایتر شدن
33 - مهاجرت از bluej به intellijIdea
34 - چاپ ستارهها
35 - چاپ جدول ضرب
36 - درخت کریسمس
37 - چطوری بفهمیم برنامهمون چرا خطا داره؟ (انواع خطاها)
38 - خطایابی و رفع اشکال در برنامهنویس
39 - کوییز: خطایابی
40 - آموزش متدها در جاوا (فرایندها و قسمت کردن برنامه)
41 - چطوری به متدهامون اطلاعات ورودی بدیم؟
42 - چطوری از متدهامون انتظار خروجی داشته باشیم؟
43 - یک متد با بار اضافی (method overloading)
44 - یک حلقه مخصوص آرایهها و زمانی که ورودی با تعداد نامشخص داریم؟
45 - کوییز: متدها
46 - معدل دانشآموزان کلاس
فصل دوم: شیءگرایی (OOP) در جاوا:
1 - چرا شیءگرایی؟ این مفهوم oop به چه معناست؟
2 - اولین بار شیءگرایی رو با جاوا پیاده کنیم
3 - حل تمرین یک محیط عملیاتی (کتابخانه) و ساخت کلاس
4 - کوییز - مفهموم شی گرایی و ساخت کلاس
5 - فراهم کردن نیازهای اساسی برای اشیاء (متد سازنده Constructor)
6 - کوییز- متد سازنده Constructor
7 - اشاره به بازیکن حال حاضر (کلمه کلیدی this)
8 - راه و روش دسترسی به خصوصیات اشیاء
9 - کوییز - دستور this
10 - شیءگرایی
11 - اولین قاعده شیءگرایی: کپسوله سازی (encapsulation)
12 - کپسولهسازی
13 - دومین قاعده: شیءگرایی ارثبری (Inheritance)
14 - ارثبری
15 - سومین قاعده: شیءگرایی چند ریختی (Polymorphism)
16 - کوییز - قواعد ارثبری چندریختی کپسولهسازی
17 - آشنایی بیشتر با چندریختی
18 - چندریختی
19 - چهارمین قاعده: شیءگرایی انتزاع (Abstraction)
20 - تمرین با انتزاع یا Abstraction
21 - کوییز- قاعده انتزاع Abstraction
22 - مفهوم انتزاع با استفاده از interface ها
23 - انتزاع
24 - حل تمرین با اینترفیسها و آشنایی بیشتر با کلاسها
25 - کوییز - رابطکاربری interface
26 - کلاسها یک نوع داده هستند
27 - بیشتر در مورد متدهای سازنده بدونیم
28 - آشنایی با استاتیکها در جاوا
29 - پکیجینگ در جاوا و Access Modifiers
30 - کوییز - استاتیک و پکیچینگ
31 - مفهوم کلاسهای POJO و تفکر طراحی کلاس
32 - Scope ها
33 - مفهوم NULL یا پوچی در جاوا؟
34 - Enum کلاسها در جاوا
35 - کوییز- scope , Enum , Null
36 - آشنایی با ArrayList
37 - کوییز- ArrayList
فصل سوم: پروژه ساخت ماشین حساب:
1 - اولین اپلیکیشن خودمون رو با ظاهر گرافیکی بسازیم (GUI)
2 - کوییز - ظاهر گرافیکی
3 - ساخت اولین لایه برای عددهای ماشین حساب
4 - کوییز-ساخت button
5 - پیادهسازی کامل رابط کاربری اپلیکیشن ماشین حساب
6 - استفاده عملی از interface ها و هندل کردن کلیک کاربر
7 - نمایش ورودی انتخابی کاربر
8 - انجام تمامی عملیات ریاضی و تغییر ورودی کاربر
9 - ساخت فرم ثبتنام
درباره دوره:
در درس برنامهنویسی وب از مجموعه دورههای آموزش برنامه نویسی و آموزش طراحی سایت مکتب خونه سعی شده با یک دید کاربردی، مفاهیم، روش ها، استانداردها و تکنولوژیهای موجود در زمینهی برنامه نویسی وب معرفی شده و آموزش داده شود.
در ابتدای درس مفاهیم مقدماتی وب و استانداردهای HTML، CSS و زبان Java Script معرفی میشوند. در ادامه درس در کنار آموزش الگوهای برنامه نویسی وب و معماریهای برنامه نویسی Enterprise، زبان PHP آموزش داده میشود. در ادامه معرفی کوتاهی از مفهوم پایگاه دادههای رابطهای و زبان SQL گفته شده و سپس مفاهیم پیشرفتهتر در زمینهی برنامهنویسی وب به همراه فریمورک Symfony2 ارايه میشود.
زبان برنامه نویسی وب مانند سایر زبانهای برنامه نویسی دارای دو بخش اصلی دارد:
برنامه نویسی سروربرنامه نویسی Clientمعمولا زبانهایی که بیشتر در زبان برنامه نویسی وب و در بخش سرور قرار دارند شامل:
XMLHTMLJavaScriptPHPPerl 5این نکته را فراموش نکنید که برنامه نویسی وب با برنامه نویسی کاملا متفاوت است. در بخش کلاینت (Client) زبانهای اسکریپت شده نقش برنامهنویسی را برعهده دارند.
برنامه نویسی وب جزء رشتههایی است که طرفداران زیادی را به خود جذب کرده است زیرا این برنامه نه تنها درآمد مناسبی دارد بلکه جزء یکی از پر درآمدترین شغلها، در سراسر جهان است. برنامهنویسان بخصوص برنامه نویسان وب هرچه سابقه کاری بیشتری داشته باشند میتوانند در این رشته بیشتر رشد کنند و خدمات بهتری را به دیگران ارائه دهند.
امروزه در جامعه ما برنامه نویسی وب دارای ارزش بسیاری است زیرا افراد و شرکتهای زیادی خواهان افرادی هستند که در این رشته تخصص داشته باشند به همین خاطر میگوییم که یادگیری برنامه نویسی تحت وب از اهمیت قابل توجهی برخوردار است.
طراحی وب سایتبگذارید کمی با شما در رابطه با طراحی وب سایت سخن بگوییم. تا حالا شده وارد یک وب سایت بشوید و این پرسش برایتان به وجود بیاید که چگونه این وب سایت طراحی شده و چه کسی توانسته آن را به این صورت طراحی کند؟!
اگر بخواهیم مختصر تعریفی برای طراحی وب سایت بیاوریم باید بگوییم که تمامی بخشهایی که کاربر بعد از ورود به سایت میتواند آن را مشاهده کند، به عنوان طراحی وب سایت شناخته میشود. یادتان است در مطالب فوق اشاره کردیم در بخش کلاینت زبانهای اسکریپت شده نقش مهمی را در این بخش دارند!
در این بخش نیز میخواهیم بگوییم که تمامی زبانهای برنامه نویسی که با طراحی وب سایت صورت میگیرد با استفاده از Html ,Css,Javascript که اصطلاحا فرانت اند (front end) نام دارد طراحی میشوند.
طراح وب سایت هم با استفاده از همین زبانهای برنامه نویسی ظاهر سایت را طراحی میکند ناگفته نماند که ظاهر سایت نقش مهمی در جذب مخاطب دارد.
آموزش طراحی سایتاگر قصد دارید طراحی وب سایت را آموزش ببینید اول بهتر است مشخص کنید که هدفتان از آموزش طراحی وب سایت چیست؟
حال که هدفتان از آموزش طراحی وب سایت مشخص کردید بهتر است برویم سراغ زبانهایی که باید برای طراحی وب سایت یاد بگیرید. اولین زبانی که باید یاد بگیرید زبان HTML است بعد از زبان برنامه نویسی HTML به سراغ زبان برنامه نویسی CSS و در آخر زبان برنامه نویسی جاوا اسکریپت (Java Script) باید بیاموزید.
آموزش HTMLزبان برنامه نویسی HTML به نوعی چارچوب و اسکلت سایت است و قسمت ظاهری وب سایت با نشانه گذاری HTML به وجود میآید. برای مثال تصور کنید شما معمار هستید و میخواهید خانه درست کنید به نظرتون برای ثابت نگه داشتن خانه اگر از آهن و بتن استفاده نکنیم چه اتفاقی میافتد؟ بله درسته خانهای درست نمیشود چون چارچوب و اسکلت اصلی خانه اصلا وجود ندارد.
آموزش زبان برنامه نویسی HTML هم به همین شکل است. اگر شما بهترین طراح وب سایت هم باشید و با زبان برنامه نویسی HTML آشنا نباشید، نمیتوانید سایتی را طراحی کنید. برای یادگیری این زبان نگرانی وجود ندارد زیرا میتوانید به راحتی با توجه به علاقهای که دارید مدت یادگیری آن را مشخص کنید.
آموزش CSSیادتان باشد فقط زیبایی ظاهر وب سایت مهم نیست بلکه باید صفحات وب هم زیبایی منحصر به فرد خود را داشته باشد از این رو برای طراحی صفحات وب از زبان CSS استفاده میکنند. ممکن است زبان CSS کمی شما را گیج کند اما نگران نباشید زیرا این حالت گیجی به زودی از بین میرود و وقتی اولین کد خود را با استفاده از CSS نوشتید میتوانید از آنچه که به وجود آوردهاید (زیبایی صفحات وب سایت) لذت ببرید.
مدت زمان یادگیری زبان CSS نیز به خود شما و علاقهای که از خود نشان میدهید بستگی دارد.
آموزش زبان جاوا اسکریپتخب تا اینجای کار توانستید هم ظاهر سایت را زیبا کنید و هم صفحات آن را براساس سلیقه خود شخصی سازی کنید حال اگر بخواهیم امکانات دیگری مانند تاریخ، ساعت ، انیمیشنهای مختلف و ... به آن اضافه کنیم باید زبان Java Script یاد بگیریم.
میتوان گفت برخلاف HTML و CSS که جزء زبانهای نشانه گذاری بودند، جاوا اسکریپت زبان برنامه نویسی اسکریپت شده است و برای یادگیری آن نیاز به زمان بیشتری پیدا خواهید کرد.
اینجاست که دیگر شما نحوه طراحی سایت را تا حدودی شناختهاید و میتوانید ساختار ظاهری سایت (فرانت اند) را براساس معیارهای خود طراحی کنید.
شاید برای خیلی از افراد اتفاق افتاده باشد که دقیق ندانند که برنامه نویسی وب با طراح وب چه تفاوتی دارد و کار هر کدام به چه صورت است؟!
تفاوتی که میان برنامه نویس وب و طراح وب وجود دارد این است که برنامه نویس وب همانطور که از نامش پیداست کدهای base را تحت سرویسهای وب مینویسد. اما طراح وب سایت ظاهر و رابط کاربری، وب سایت را طراحی میکند.
در واقع میتوانیم بگوییم که فردی که ظاهر سایت را طراحی میکند، طراح سایت یا Web designer نام دارد و فردی که کدها را براساس برنامه نویسی سرور مینویسد برنامه نویس وب نام دارد. البته ناگفته نماند افرادی هم هستند که علاوه بر طراح وب سایت، برنامه نویسی وب هم بلد هستند و میتوانند هر دو کار را باهم انجام دهد.
همانطور که پیش تر در رابطه با برنامه نویسی تحت وب صحبت کردیم در این بخش میخواهیم در رابطه با انواع آن سخن بگوییم. برنامه نویسی وب به دو بخش اصلی تقسیم میشود که عبارت اند از:
برنامه نویسی فرانت اند (Front End)برنامه نویسی در بخش Front End میتواند با کاربر ارتباط برقرار کند و به نوعی کاربر میتواند کارهایی که برنامه نویس بر روی سایت انجام داده است را مشاهده کند. به طور کلی این نوع برنامه نویسی سمت کاربر را میگیرد و بیشتر با کاربر تعامل دارد.
نکته: برنامه نویسی فرانت اند در بخش برنامه نویسی Client قرار دارد.
زبانهای مورد نیاز برای برنامه نویسی Front End شامل:
زبان برنامه نویسی Htmlزبان برنامه نویسی Cssزبان جاوا اسکریپت (Java Script)برنامه نویسی بک اند (Back End)در برنامه نویسی Back End کاربر دیگر قادر نیست تا کارهایی که برنامه نویس بر روی سایت انجام داده است را مشاهده کند. برنامه نویس Back End وظیفه دارد که این بخش از وب سایت را توسعه دهد و باعث رشد بیشتر وب سایت شود.
نکته: برنامه نویسی Back End در بخش برنامه نویسی سرور قرار میگیرد.
زبانهای مورد نیاز برای برنامه نویسی Back End شامل:
زبان برنامه نویسی phpزبان برنامه نویسی aspزبان برنامه نویسی پایتون (Python)اگر یادتان باشد در مطالب فوق اشاره کردیم افرادی در این میان هستند که هم میتوانند وب سایت را طراحی و هم کدنویسیهای آن را بنویسند به این افراد به اصطلاح FULL STACK میگویند. این افراد به راحتی این قابلیت را دارند که پروژههای مستقل را قبول کنند و صفر تا صد آن را خودشان انجام دهند.
برای اینکه بتوانید برنامه نویسی وب را انجام دهید نیاز به ابزارهایی دارید که کار را برای شما راحتتر کنند. برای اینکه دستورات php و asp به راحتی بتوانند در کامپیوتر اجرا شوند کامپیوتر باید به یک local host یا همان سرور محلی تبدیل شود. برای نوشتن دستورات و کدها نیز به یک ویرایشگر نیاز دارید.
نصب نرم افزارهای XAMPP یا WAMP با این نرم افزارها میتوانید کامپیوتر خود را به local host یا همان سرور محلی تبدیل کنید و این نرم افزارها میتوانند کدهای سرور را به راحتی در رایانه شما اجرا کنند.
نصب نرم افزار ویرایشگر متن شما میتوانید نرم افزار ویرایشگر متن مانند Adobe Dreamweaver را بر روی رایانه خود نصب کنید تا این نرم افزار با توجه به قابلیتهایی که دارد، بستر کدنویسی را برای شما فراهم کند.
مختصر آموزش UI و UXشاید اتفاق افتاده باشد که در مجلات و گزارشات روزانه دیجیتالی با رابط کاربری و تجربه کاربری برخورد کرده باشید و ندانید این دو چه تفاوتی با یکدیگر دارند؟! اگر بخواهیم یک تعریف کلی برای این دو رابط داشته باشیم باید بگوییم که به رابط کاربری UI و به تجربه کاربری UX میگویند.
فیلم های آموزشی:
1 - جلسه اول - اهداف درس، مفاهیم اولیه وشروع html
2 - جلسه دوم - ادامه html
3 - جلسه سوم - آشنایی با style ها و شروع css
4 - جلسه چهارم - ادامه css و مقدمهی javascript
5 - جلسه پنجم - ادامهی javascript
6 - جلسه ششم - ادامهی javascript
7 - جلسه هفتم - جمع بندی javascript و شروع مبحث http protocol
8 - جلسه هشتم - شروع php
9 - جلسه نهم - ادامهی php و آشنایی با چند مفهوم
10 - جلسه دهم - شروع برنامه نویسی شیگرا، آشنایی با namespace
11 - جلسه یازدهم - اتمام مفاهیم حول php و برنامه نویسی شیگرا
12 - جلسه دوازدهم - شروع پایگاههای داده
13 - جلسه سیزدهم - ادامهی مبحث پایگاههای داده
14 - جلسه چهاردهم - برنامههای سازمانی - Enterprise - لایه ها در برنامه
15 - جلسه پانزدهم - ادامهی لایه ها
16 - جلسه شانزدهم - ادامه معماری برنامه وب - الگوی mvc
17 - جلسه هفدهم - مبحث کنترلرها - symfony و routing همراه با چند مثال
18 - جلسه هجدهم - ادامهی مبحث کنترلر ها و تکمیل مطالب جلسهی قبل
19 - جلسه نوزدهم - ادامهی domain model و مطالب پیرامون doctrine، مقادیر داده
20 - جلسه بیستم - تکمیل مبحث doctrine و repository، کار با reference، معرفی Query builder، مبحث concurrency
21 - جلسه بیست و یکم - مبحث Transaction و Transaction در Doctrine، کلیات مسیریابی (Routing)
22 - جلسه بیست و دوم - ادامه ی مبحث مسیر یابی، ساختن URL، قالب ها در سیمفونی2 ، امنیت در سیمفونی 2، روش تصدیق، دادن اجازه
23 - جلسه بیست و سوم - معرفی کاربرها، service container، مبحث Inversion of control، مبحث dependency injection
24 - جلسه بیست و چهارم - تکمیل بحث dependency injection، مبحث تست، فرم ها، ابزارهای کلاس controller
25 - جلسه بیست و پنجم - اتمام بحث ابزارهای کلاس controller، بحث cache و Performance
درباره دوره:
جاوا اسکریپت نوعی زبان برنامه نویسی تکرشتهای است که در یک زمان تنها یک اتفاق میتواند در آن رخ بدهد. این بدان معناست که موتور جاوا اسکریپت فقط میتواند یک جمله را در زمانی معین در یکرشته اجرایی واحد پردازش کند. مزیت زبانهای تکرشتهای این است که نوشتن کد را سادهتر میکنند. به این پدیده ناهمگامی (Asynchronous) میگویند؛ که دوره آموزش Asynchronous در جاوا اسکریپت با هدف آموزش این ترند جذاب در برنامه نویسی ارائه شده است. در برنامههای ناهمگام اگر یک تابع برای اجرا به نتیجه تابع دیگری نیاز داشته باشد، باید ابتدا منتظر بماند که آن تابع کار خود را انجام دهد، سپس بعد از دریافت نتیجه کار خود را شروع کند. در این زمان برنامه برای کاربر کاملاً متوقف میشود.
این ناهمگامی باعث هدر رفتن زمان و استفاده نامناسب از قدرت پردازش کامپیوتر میشود؛ بنابراین روشی ایجاد شد که با کمک آن میتوان کار را به هسته پردازش دیگری واگذار کرد و کارها را به صورت همزمان پیش برد. در ادامه به معرفی دوره آموزش Asynchronous در جاوا اسکریپت خواهیم پرداخت و در ادامه کمی در رابطه با ناهمگامی (Asynchronous) و همگامی (Synchronous) در جاوا اسکریپت صحبت خواهیم کرد.
برنامه نویسی ناهمگام (Asynchronous) و همگام (Synchronous) از مباحث فوقالعاده مهم در آموزش برنامه نویسی جاوا اسکریپت هستند که در این دوره به آن میپردازیم. دوره آموزش Asynchronous در جاوا اسکریپت یک دوره پروژه محور با هدف آموزش ناهمگامی در جاوا اسکریپت است که توسط استاد علی شیخ در قالب ٤ ساعت محتوای ویدیویی به کاربران ارائه خواهد شد.
از مهمترین نکاتی که برای آموزش زبان جاوا اسکریپت باید مدنظر قرار دهید، تکنیکهای ناهمگامی در برنامهنویسی مخصوصاً برنامهنویسی وب است. تصور کنید یک وب اپلیکیشن در مرورگر در حال اجرا شدن است. زمانی که کدهای سنگین بدون بازگرداندن کنترل به مرورگر اجرا میشوند، از دید کاربر ممکنه اینگونه به نظر برسد که مرورگر مسدود شده است.
در چنین حالتی مرورگر قادر به مدیریت ورودی کاربر و سایر وظایف نیست. این وضعیت تا وقتیکه کنترل از پردازنده به مرورگر برنگردد، ادامه خواهد داشت. از همین رو هدف از یادگیری دوره آموزش javascript ناهمگام این است که شما بتوانید این قبیل مشکلات را با استفاده از تکنیکهای مربوطه برطرف کنید.
این دوره آموزش Asynchronous در جاوا اسکریپت برای افراد زیر بسیار مناسب است:
افراد با شرکت در این دوره آموزش ناهمگامی در جاوا اسکریپت مهارتهای زیر را کسب خواهند کرد:
دوره آموزش Asynchronous در جاوا اسکریپت بهصورت پروژه محور تهیه شده است؛ یعنی شما مباحث فوقالعاده کاربردی و مهم را گامبهگام همراه با مشاهده پروژههایی که توسط استاد انجام میشود، یاد میگیرید و درنهایت میتوانید آموختههای خود را در قالب پروژههای متنوع پیاده کنید. مکتبخونه برای سهولت در امر یادگیری شما عزیزان امکان تالار گفتگو را برایتان فراهم کرده است. در این تالار میتوانید سؤالات خود را مطرح کنید و با دیگران به اشتراک بگذارید.
مبحث Synchronous و Asynchronous از مهمترین مباحث موجود در برنامه نویسی جاوا اسکریپت است که در این دوره آموزش Asynchronous در جاوا اسکریپت بهخوبی به آن میپردازیم. در ابتدا با این دو مفهوم بهخوبی آشنا میشوید و تفاوت آنها را درک میکنید. در ادامه به مباحث مرتبط با APIها، AJAX ها و متدهای مرتبط با آن و همچنین استاندارد جدید Fetch API که یک جایگزین خوب برای AJAX محسوب میشود، میپردازیم. در انتهای دوره یک پروژه وضعیت آبوهوا باهم پیاده میکنیم.
همزمان (Asynchronous) که گاهی اوقات بهعنوان «همگام» نیز از آن یاد میشود و ناهمزمان (Synchronous)، همچنین بهعنوان «ناهمگام» شناخته میشود، دو نوع از مدلهای برنامه نویسی هستند. همچنین درک تفاوت این دو مدل در ساخت رابطهای برنامه نویسی کاربردی (API)، ایجاد معماریهای مبتنی بر رویداد و تصمیمگیری در مورد نحوه رسیدگی به وظایف طولانیمدت بسیار حائز اهمیت خواهد بود. در انتخاب روش و زمان استفاده از آن، دانستن چند نکته کلیدی در مورد برنامه نویسی همزمان و برنامه نویسی ناهمزمان مهم است. در دوره آموزش Asynchronous در جاوا اسکریپت با تفاوت این دو نوع برنامه نویسی آشنا خواهیم شد.
برنامه نویسی ناهمزمان (Asynchronous) یک مدل چند رشتهای است که بیشترین کاربرد را در شبکه و ارتباطات دارد. Asynchronous یک معماری غیر مسدودکننده است، به این معنی که اجرای بیشتر را در زمانی که یک یا چند عملیات در حال انجام است مسدود نمیکند.
با برنامه نویسی ناهمزمان، چندین عملیات مرتبط میتوانند بهطور همزمان بدون انتظار برای تکمیل سایر وظایف اجرا شوند. در طول ارتباط ناهمزمان، طرفین بهجای پاسخ دادن بلافاصله پس از دریافت، پیامها را در زمانی که راحت یا ممکن است، دریافت و پردازش میکنند.
ارسال پیامک یک روش ارتباطی ناهمزمان است. یک نفر میتواند یک پیام متنی ارسال کند و گیرنده میتواند در اوقات فراغت خود پاسخ دهد. در این بین، فرستنده ممکنه در حالی که منتظر پاسخ است، کارهای دیگری انجام دهد. تمرکز اصلی دوره آموزش Asynchronous در جاوا اسکریپت روی این مبحث است که با گذراندن آن به مفاهیم آن پی خواهیم برد.
Synchronous بهعنوان یک معماری مسدودکننده شناخته میشود و برای برنامه نویسی سیستمهای واکنشی ایده آل است. این مدل بهعنوان یک مدل تکرشتهای، از مجموعهای دقیق از توالیها پیروی میکند، به این معنی که عملیات در یک زمان و با نظم کامل انجام میشوند. در حالی که یک عملیات در حال انجام است، دستورالعملهای عملیات دیگر مسدود میشوند. تکمیل اولین کار، کار بعدی را تحریک میکند.
برای نشان دادن نحوه عملکرد برنامه نویسی همزمان، یک تلفن را در نظر بگیرید. در طول یک تماس تلفنی، در حالی که یک نفر صحبت میکند، دیگری گوش میدهد. وقتی نفر اول صحبتش را تمام میکند، نفر دوم تمایل دارد بلافاصله به آن پاسخ دهد.
در رابطه با برنامه نویسی همزمان و ناهمزمان، جاوا اسکریپت همیشه میدرخشد. جاوا اسکریپت یک زبان برنامه نویسی رایج که برای تعاملی کردن وبسایتها استفاده میشود. همچنین جاوا اسکریپت تکرشتهای بوده و دارای قابلیت همگامسازی و همچنین در عین حال غیر مسدودکننده است. جاوا اسکریپت یک زبان برنامه نویسی ناهمزمان و همزمان محسوب میشود که انعطافپذیری زیادی را ارائه میدهد اما بهطور همزمان تکرشتهای و غیر مسدودکننده نیز بهحساب میآید.
اگرچه جاوا اسکریپت طبیعتاً همزمان است، اما میتواند از کدهای ناهمزمان بهره ببرد. زیبایی جاوا اسکریپت این است که بهترینهای هر دو جهان ناهمگامی و همگامی، تکرشتهای و چند رشتهای، مسدودکننده و غیر مسدودکننده را ارائه میدهد. با این انعطاف، برنامه نویسان میتوانند بهجای دو زبان برنامه نویسی در یک زبان برنامه نویسی واحد بنویسند، یکی برای عملیات همزمان و دیگری برای عملیات ناهمزمان. در دوره آموزش Asynchronous در جاوا اسکریپت کاربران با نوشتن اینگونه برنامه نویسی در جاوا اسکریپت آشنا خواهند شد.
درنهایت انتخاب بین این دو رویکرد، به وابستگیهای عملیاتی بستگی دارد. آیا میخواهید شروع یک عملیات به تکمیل یک عملیات دیگر وابسته باشد یا میخواهید بهطور مستقل اجرا شود؟
Asynchronous یک معماری غیر مسدودکننده است، بنابراین اجرای یک کار به دیگری وابسته نیست و وظایف در آن میتوانند بهطور همزمان اجرا شوند. همزمان یک معماری مسدودکننده است، بنابراین اجرای هر عملیات به تکمیل عملیات قبل از آن بستگی دارد. در واقع در این رویکرد هر کار قبل از رفتن به تکرار بعدی نیاز به پاسخ دارد.
به صورت کلی تفاوت بین ناهمزمان و همزمانی عبارتاند از:
جدای از تفاوتها، روشهای ناهمزمان و همزمان هر دو مزیتهایی را ارائه میدهند، اما برای ذینفعان مختلف: برای مثال Async برای کاربران، Sync برای توسعهدهندگان مفید خواهد بود.
برنامه نویسی ناهمزمان با کاهش زمان تأخیر بین فراخوانی یک تابع و بازگشت مقدار آن تابع، تجربه کاربر را افزایش میدهد. در دنیای واقعی، این به یک جریان سریعتر و بدون درز ترجمه میشود. برای مثال، کاربران میخواهند برنامههایشان سریع اجرا شود، اما واکشی دادهها از رابط برنامهنویسی برنامه (API) به زمان نیاز دارد. در این موارد، برنامهنویسی ناهمزمان به بارگذاری سریعتر صفحههای برنامه کمک میکند و تجربه کاربر را بهبود میبخشد.
از طرف دیگر برنامه نویسی همزمان برای توسعهدهندگان سودمند خواهد بود زیرا کد نویسی برنامه نویسی همزمان بسیار سادهتر است. همچنین در بین همه زبانهای برنامهنویسی بهخوبی پشتیبانی میشود و بهعنوان روش برنامهنویسی پیشفرض، توسعهدهندگان نیازی به صرف زمان برای یادگیری چیز جدیدی ندارند که میتواند راه را برای باگها باز کند.
برنامه نویسی ناهمزمان فقط باید در برنامه نویسی کارهای مستقل و در جایی که نقش مهمی ایفا میکند، اجرا شود. بهعنوان مثال، برنامههای ناهمزمان برای پروژههای توسعه با تعداد زیادی تکرار ایده آل هستند. ازآنجاییکه مراحل لازم نیست دنبالهای ثابت را دنبال کنند، برنامه نویسی ناهمزمان توسعه را به جلو نگه میدارد.
UI پاسخگو یک مورد استفاده عالی برای برنامهریزی ناهمزمان است. بهعنوان مثال، یک برنامه خرید را در نظر بگیرید. هنگامی که یک کاربر سفارش خود را ثبت میکند، اندازه فونت باید افزایش یابد. بهجای اینکه ابتدا منتظر بارگذاری تاریخچه و بهروزرسانی اندازه فونت باشید، برنامه نویسی ناهمزمان میتواند هر دو عمل را بهطور همزمان انجام دهد. در دوره آموزش Asynchronous ما با ابعاد بیشتری از این زبان برنامه نویسی آشنا خواهیم شد.
برنامه نویسی ناهمزمان نسبتاً پیچیده است. میتواند مسائل را بیش از حد پیچیده کند و خواندن کد را دشوار کند. از سوی دیگر، برنامه نویسی همزمان، نسبتاً ساده است. نوشتن کد آن آسانتر و نیازی به ردیابی و اندازهگیری جریان فرآیند ندارد (همانطور که async انجام میدهد). ازآنجاییکه وظایف به یکدیگر وابسته هستند، باید بدانیم که آیا آنها میتوانند بهطور مستقل بدون ایجاد وقفه در یکدیگر اجرا شوند یا خیر.
بهعنوان مثال، برنامه نویسی همزمان میتواند برای یک برنامه خرید مناسب باشد. هنگام بررسی آنلاین، کاربر میخواهد همه اقلام خود را باهم بخرد، نه به صورت جداگانه. بهجای تکمیل سفارش هر بار که کاربر چیزی را به سبد خرید خود اضافه میکند، برنامه نویسی همزمان تضمین میکند که روش پرداخت و مقصد ارسال برای همه موارد بهطور همزمان انتخاب شده است.
هنگام تصمیمگیری برای اتخاذ رویکرد، بهتر است که برنامه نویسی ناهمزمان را سازگار و برنامه نویسی همزمان را سختگیرانه در نظر بگیرید. برنامه نویسی ناهمزمان یک کار چندوظیفهای است که از یک کار به کار دیگر منتقل میشود و پس از اتمام هر یک به سیستم هشدار میدهد. برنامه نویسی همزمان بهعنوان مسیری مستقل عمل میکند و کاری را در زمانی معین در یک توالی سفتوسخت بررسی میکند.
برنامه نویسی ناهمزمان اجازه میدهد تا کارهای بیشتری بهطور همزمان انجام شود و معمولاً برای بهبود تجربه کاربر با ارائه یک جریان بارگذاری سریع و بیدردسر استفاده میشود. برنامه نویسی همزمان به بهترین وجه در سیستمهای واکنشی استفاده خواهد شد. کد نویسی با این رویکرد برای توسعهدهندگان سادهتر است و توسط هر زبان برنامهنویسی شناسایی میشود. همچنین همگامسازی دارای منابع فشرده است و میتواند سرعت کار را کاهش دهد.
ناهمگامی و همگامی از مباحث مهم برنامه نویسی در جاوا اسکریپت بهحساب میآیند. یادگیری این مفاهیم بسیار ساده است و به کاربران کمک میکنند که پروژههای جاوا اسکریپت خود به نحو احسن پیادهسازی کنند. اگر به فکر یادگیری برنامه نویسی ناهمگام و همگام هستید هماکنون با ثبتنام در دوره آموزش Asynchronous در جاوا اسکریپت، اولین و مهمترین قدم در این مسیر را بردارید.
همچنین پیشنیاز این دوره مفاهیم مقدماتی زبان برنامه نویسی جاوا اسکریپت است که میتوانید از منابع و دورههای آموزش جاوا اسکریپت مکتب خونه برای این هدف استفاده کنید.
فصل اول: برنامهنویسی ناهمگام (Asynchronous):
1 - مفهوم برنامهنویسی ناهمگام (Asynchronous) و همگام (synchronous)
2 - حلقه رویداد (Event Loop)
3 - مفهوم Callback
4 - مفهوم Promise
5 - مفهوم Async/Await
فصل دوم: API) Application Programming Interface):
1 - معرفی API
2 - آشنایی با REST API
فصل سوم: AJAX) Asynchronous JavaScript and XML):
1 - معرفی AJAX
2 - متد GET - متن ساده (Text Plain)
3 - متد GET - فایل JSON
4 - متد API - GET
5 - متد Post
فصل چهارم: Fetch API:
1 - معرفی Fetch
2 - متد GET - متن ساده (Text Plain)
3 - متد Get - فایل JSON
4 - متد API - GET
5 - متد Post
6 - متد PUT
7 - متد حذف (Delete Method)
فصل پنجم : پروژه وضعیت آب و هوا:
1 - معرفی پروژه
2 - UI پروژه
3 - کلاس Weather
4 - کلاس UI
5 - تغییر Location
6 - Local Storage
درباره دوره:
در دنیای مدرن برنامهنویسی، کارایی و سرعت اجرای برنامهها به یکی از مهمترین نیازها تبدیل شده است. با افزایش حجم دادهها و پیچیدگی محاسبات، انجام عملیات بهصورت خطی و تکتردی دیگر نمیتواند پاسخگوی نیازهای ما باشد. اینجاست که پردازش موازی وارد میدان میشود. پردازش موازی به شما این امکان را میدهد که چندین عملیات را بهطور همزمان انجام دهید، بدون اینکه زمان اجرای برنامهها به شدت افزایش یابد. در پایتون، به دلیل ماهیت دینامیک و انعطافپذیر آن، امکان پیادهسازی پردازش موازی وجود دارد که این امر اهمیت بسیاری دارد، خصوصاً در پروژههایی که نیاز به عملکرد بالا دارند، مثل دادهکاوی، هوش مصنوعی و تحلیلهای پیچیده.
یادگیری پردازش موازی در پایتون برای هر برنامهنویسی که به بهبود عملکرد کدها و زمان اجرای برنامهها علاقه دارد، بسیار حیاتی است. این مهارت به شما کمک میکند تا برنامههایی بنویسید که نه تنها سریعتر اجرا میشوند، بلکه قادرند تا از تمامی منابع سختافزاری سیستم به بهترین نحو استفاده کنند. این دقیقاً همان چیزی است که شما را از دیگر برنامهنویسان متمایز میکند و به شما مزیتی بزرگ در بازار کار میدهد. در ادامه به عنوان یکی از بهترین دورههای آموزشی برای این مبحث، دوره آموزش پردازش موازی در پایتون را معرفی خواهیم کرد.
دوره آموزشی پردازش موازی در پایتون شما را با یکی از پیشرفتهترین تکنیکهای برنامهنویسی آشنا میکند که میتواند کارایی برنامههای شما را به شدت افزایش دهد. این دوره به شما نشان میدهد که چگونه از قدرت پردازش چند هستهای سیستمها استفاده کنید و برنامههایی با عملکرد بالا طراحی کنید. با بهرهگیری از مفاهیم پایه مانند تردها (Threads) و مدیریت آنها، شما خواهید آموخت که چگونه کدهای پیچیده خود را بهینهتر کنید و از منابع سختافزاری بیشتری بهره ببرید.
این دوره از مفاهیم ابتدایی ترد شروع میکند و تا مدیریت پیشرفته تردها و استفاده از قابلیتهای Async در پایتون پیش میرود. با هر جلسه از این دوره، شما به یک درک عمیقتر از پردازش موازی و چگونگی پیادهسازی آن در پایتون خواهید رسید. این دوره نه تنها برای کسانی که در زمینه برنامهنویسی حرفهای فعالیت دارند مناسب است، بلکه برای افرادی که به دنبال بهبود و بهینهسازی کدهای خود هستند نیز بسیار مفید خواهد بود.
دوره آموزش پردازش موازی در پایتون بهطور جامع به مباحث پردازش موازی میپردازد و به صورت گامبهگام شما را از مباحث پایه به مفاهیم پیشرفته میرساند. این دوره با مقدمهای بر ترد آغاز میشود که شما را با مبانی ترد و نحوه استفاده از آن در برنامهها آشنا میکند. سپس در فصل دوم با چالشهای ترد و مشکلاتی که ممکن است هنگام کار با تردها پیش بیاید، روبرو میشوید. این فصل به شما کمک میکند تا بهترین روشها برای مدیریت این چالشها را بیاموزید.
در ادامه، فصلهای سوم و چهارم به ترد در پایتون و مدیریت پیشرفته تردها اختصاص داده شده است که به شما تکنیکهای پیشرفتهای برای بهینهسازی و استفاده بهتر از تردها را آموزش میدهد. در نهایت، با مفهوم Async در پایتون آشنا میشوید که یکی از جدیدترین و موثرترین ابزارها برای مدیریت پردازشهای همزمان است. این سرفصلها به شما امکان میدهند تا با هر جلسه، دانش عمیقتری از پردازش موازی کسب کنید.
هدف این دوره آموزش پردازش موازی در پایتون، آموزش مهارتهایی است که شما را قادر میسازد تا برنامههایی با عملکرد بسیار بالا بنویسید. یکی از بزرگترین چالشهای برنامهنویسی در دنیای امروز، بهینهسازی کدها برای اجرای سریعتر و استفاده بهتر از منابع سیستم است. این دوره به شما ابزارها و تکنیکهای لازم برای نوشتن کدهای موازی و بهینهسازی آنها را میدهد.
با یادگیری این دوره، شما قادر خواهید بود که نه تنها از تمامی قابلیتهای چند هستهای سیستم خود استفاده کنید، بلکه در پروژههای پیچیده مانند هوش مصنوعی، پردازش دادههای بزرگ و تحلیلهای آماری نیز برنامههایی بنویسید که به بهترین شکل از منابع سختافزاری بهرهبرداری کنند. این توانایی به شما امکان میدهد تا در دنیای برنامهنویسی حرفهای رقابت کنید و پروژههایی با کارایی بالا ارائه دهید.
این دوره آموزش Parallel Processing برای برنامهنویسانی طراحی شده است که به دنبال ارتقاء مهارتهای خود در حوزه بهینهسازی و افزایش عملکرد کدها هستند. اگر شما یک برنامهنویس هستید که با حجم زیادی از دادهها سروکار دارید و میخواهید برنامههای خود را سریعتر و بهینهتر اجرا کنید، این دوره مناسب شماست. همچنین برای افرادی که در زمینههایی مانند تحلیل دادهها، هوش مصنوعی و پردازشهای پیچیده فعالیت میکنند، این دوره یک نیاز ضروری است.
از سوی دیگر، اگر شما یک دانشجو یا فرد تازهکار در حوزه برنامهنویسی هستید که به دنبال یادگیری مفاهیم پیشرفته و تکنیکهای بهینهسازی در پایتون هستید، این دوره میتواند یک نقطه شروع عالی برای شما باشد. پردازش موازی یکی از مفاهیمی است که در پروژههای بزرگ و صنعتی بسیار کاربرد دارد و یادگیری آن میتواند در آینده شغلی شما تاثیرگذار باشد.
در این دوره، شما ابتدا با مفاهیم پایهای ترد و پردازشهای همزمان آشنا میشوید. سپس یاد میگیرید که چگونه از تردها در پایتون استفاده کنید و آنها را بهطور بهینه مدیریت کنید. با آشنایی با چالشهای ترد و روشهای حل آنها، شما توانایی لازم برای مواجهه با مشکلات رایج در پردازش موازی را به دست میآورید.
در بخشهای پیشرفتهتر، شما به مدیریت پیشرفته تردها و همچنین مفهوم Async در پایتون میپردازید. این بخشها به شما کمک میکند که برنامههایی را طراحی کنید که بتوانند با حداکثر کارایی و حداقل زمان ممکن اجرا شوند. همچنین با پروژههای عملی که در انتهای دوره وجود دارد، میتوانید آموختههای خود را در دنیای واقعی به کار بگیرید و تجربهای عملی از پردازش موازی در پایتون کسب کنید.
دوره آموزش پردازش موازی در پایتون یک دوره نسبتاً پیشرفته است که به درک عمیقتری از مفاهیم برنامهنویسی و نحوه مدیریت تردها و پردازشهای همزمان در پایتون میپردازد. به همین دلیل، برای افرادی که هیچگونه پیشزمینهای از زبان پایتون ندارند، شرکت در این دوره ممکن است کمی چالشبرانگیز باشد.
به همین خاطر، دوره آموزش مقدماتی پایتون مکتبخونه بهعنوان پیشنیاز این دوره توصیه میشود. این دوره مقدماتی به شما کمک میکند تا مفاهیم اولیه پایتون، مانند متغیرها، توابع و ساختارهای داده را بهخوبی یاد بگیرید و آمادگی لازم را برای ورود به مباحث پیشرفتهتر مثل پردازش موازی بهدست آورید. علاوه بر این، به عنوان مکمل، میتوانید از دوره آموزش پیشرفته پایتون استفاده کنید تا تسلط بیشتری بر مفاهیم پیشرفته این زبان برنامهنویسی پیدا کنید و بهرهوری بیشتری از دوره پردازش موازی کسب کنید.
در دنیای دیجیتال امروز، برنامهنویسی به یکی از مهارتهای کلیدی برای موفقیت شغلی تبدیل شده است. با توجه به افزایش تقاضا برای توسعهدهندگان نرمافزار و متخصصین داده، یادگیری پایتون، یکی از محبوبترین زبانهای برنامهنویسی جهان، میتواند شما را به فرصتهای شغلی بینظیری هدایت کند. تسلط بر پایتون، نهتنها به شما کمک میکند که در صنایع مختلف مانند هوش مصنوعی، دادهکاوی و توسعه وب بهکار گرفته شوید، بلکه درآمد بالاتری نسبت به بسیاری از حرفههای دیگر کسب کنید.
حالا فرصت در دستان شماست! با شرکت در دورههای آموزش برنامه نویسی و آموزش پایتون مکتبخونه، به دنیای شگفتانگیز کدنویسی قدم بگذارید و مهارتهای خود را بهروز کنید. با آموزشهای جامع و عملی ما، از مبتدی تا پیشرفته میتوانید قدم بردارید و مسیر شغلی موفق خود را شکل دهید. همین حالا اقدام کنید و آینده شغلی درخشان خود را با مکتبخونه رقم بزنید!
در ادامه به عنوان مکمل دوره آموزش پردازش موازی با پایتون، اطلاعاتی تکمیلی و جذابی در رابطه با پرازش موازی در پایتون ارائه شده است که میتواند چاشنی خوبی برای شروع این دوره آموزشی باشد.
پردازش موازی یا Parallel Processing روشی است که در آن چندین عملیات بهطور همزمان انجام میشوند. این تکنیک با استفاده از چندین واحد پردازشی، وظایف را تقسیم کرده و بهطور همزمان روی دادهها کار میکند. در مقابل پردازش سریال که عملیات را یک به یک انجام میدهد، پردازش موازی به بهبود سرعت و کارایی برنامهها کمک میکند.
در سیستمهای بزرگ و پیچیده مانند تحلیل دادههای بزرگ، پردازش موازی اهمیت زیادی پیدا میکند، زیرا به سیستمها اجازه میدهد تا بهجای پردازش تکتک وظایف، بهصورت همزمان به دادههای بزرگتر دسترسی داشته باشند و زمان اجرا را بهطور چشمگیری کاهش دهند.
پردازش موازی در بسیاری از حوزهها و صنایع به کار میرود. از جمله مهمترین کاربردهای آن میتوان به موارد زیر اشاره کرد:
پردازش موازی با تقسیم یک کار بزرگ به بخشهای کوچکتر آغاز میشود. این بخشها به واحدهای مختلف پردازش (مانند پردازندههای چند هستهای) تخصیص داده میشوند و بهطور همزمان پردازش میشوند. هر واحد پردازشی مسئولیت پردازش یک بخش خاص از دادهها را بر عهده دارد و نتیجه نهایی با ترکیب نتایج بهدست میآید.
این روش زمانی مؤثر است که کارها مستقل از یکدیگر باشند و بتوان آنها را بدون نیاز به انتظار برای نتایج کارهای دیگر انجام داد. همچنین مدیریت تداخلات بین تردها و استفاده بهینه از منابع، از جمله چالشهای مهم در این حوزه است. در دوره آموزش پردازش موازی در پایتون با نحوه کار پردازش موازی به صورت عملی و حرفهای آشنا خواهیم شد.
استفاده از پردازش موازی در پایتون، مزایای متعددی دارد، از جمله موارد زیر:
پایتون با ارائه ابزارها و کتابخانههای مناسب، امکان بهرهبرداری آسان از پردازش موازی را فراهم کرده و به توسعهدهندگان اجازه میدهد تا پروژههای پیچیده و محاسبات سنگین خود را بهبود دهند.
پردازش موازی در پایتون شامل چند مفهوم کلیدی است که باید با آنها آشنا شد:
هرکدام از این مفاهیم در پیادهسازی پردازش موازی بهطور گسترده استفاده میشوند و هر یک از مزایا و معایب خاص خود برخوردارند. در دوره آموزش پردازش موازی در پایتون، بهصورت عملی و دقیق با این مفاهیم آشنا میشوید.
پردازش موازی شامل مفاهیم و اصطلاحات مختلفی است که درک آنها برای پیادهسازی و استفاده بهینه از این روش بسیار ضروری است. در ادامه به مهمترین اصطلاحات پردازش موازی اشاره میکنیم:
ترد یک واحد اجرایی مستقل است که بخشی از یک فرآیند بزرگتر محسوب میشود. در پردازش موازی، چندین ترد بهطور همزمان اجرا میشوند تا کارها بهصورت موازی انجام شوند. در زبانهایی مانند پایتون، ایجاد تردها برای انجام کارهای مستقل میتواند زمان اجرای برنامه را بهبود بخشد. با استفاده از ماژولهای threading و concurrent.futures در پایتون، میتوان به سادگی تردها را مدیریت کرد.
فرآیندها (Processes) واحدهای مستقل اجرایی در سیستمعامل هستند که هر کدام حافظه و منابع خاص خود را دارند. پردازش موازی با استفاده از چندین فرآیند امکانپذیر است و هر فرآیند میتواند وظایف جداگانهای را انجام دهد. در پایتون، با استفاده از کتابخانهی multiprocessing میتوان چندین فرآیند موازی را ایجاد کرد.
همزمانی به اجرای چندین کار در یک بازه زمانی واحد اشاره دارد، اما لزوماً این کارها بهطور دقیق همزمان انجام نمیشوند. به بیان دیگر، در همزمانی، چندین کار به نوبت و پشت سر هم اجرا میشوند، اما در این روند همچنان کاربر این تصور را دارد که کارها بهصورت همزمان انجام میشوند. در پایتون، میتوان از asyncio برای مدیریت همزمانی استفاده کرد.
موازیسازی به اجرای چندین کار بهطور واقعی و همزمان اشاره دارد. برخلاف همزمانی که تردها یا فرآیندها بهصورت متوالی اجرا میشوند، در موازیسازی چندین ترد یا فرآیند بهطور همزمان و مستقل کار میکنند. پردازش موازی باعث افزایش کارایی برنامههایی میشود که نیاز به اجرای سریع و بهینه دارند.
قفلها ابزارهایی هستند که در پردازش موازی برای مدیریت دسترسی به منابع مشترک استفاده میشوند. اگر چندین ترد یا فرآیند به یک منبع مشترک دسترسی داشته باشند، احتمال تداخل یا ایجاد مشکلات دادهای وجود دارد. با استفاده از قفلها، میتوان از دسترسی همزمان به منابع جلوگیری کرد و اطمینان حاصل کرد که دادهها بهدرستی بهروزرسانی میشوند.
شرایط رقابتی زمانی اتفاق میافتد که دو یا چند ترد بهطور همزمان به یک منبع مشترک دسترسی پیدا میکنند و ترتیب اجرای آنها باعث نتایج ناخواسته میشود. این مشکل میتواند باعث بروز خطاهای اجرایی شود. استفاده از قفلها و سایر مکانیسمهای همزمانی میتواند از وقوع شرایط رقابتی جلوگیری کند.
بنبست زمانی رخ میدهد که دو یا چند ترد یا فرآیند منتظر هستند تا منابعی که در اختیار یکدیگر است آزاد شوند و در نتیجه هیچکدام نمیتوانند پیشروی کنند. برای جلوگیری از بنبستها در پردازش موازی، میتوان از تکنیکهای مدیریت منابع مانند قفلهای زماندار (timeout) استفاده کرد.
برنامهنویسی غیرهمزمان به نوعی از برنامهنویسی اشاره دارد که وظایف بدون نیاز به انتظار برای پایان یافتن یک وظیفه دیگر اجرا میشوند. در پایتون، با استفاده از کلمات کلیدی async و await میتوان عملیاتهای غیرهمزمان را مدیریت کرد. این روش به بهبود کارایی برنامههایی که نیاز به مدیریت عملیاتهای ورودی/خروجی (I/O) دارند کمک میکند.
زمانبند یک سیستم یا الگوریتم است که وظایف مختلف را در سیستمعامل یا برنامهها مدیریت میکند و مشخص میکند که کدام ترد یا فرآیند باید در چه زمانی اجرا شود. هدف از زمانبندی این است که منابع سیستم بهطور بهینه مدیریت شوند و کارایی کل برنامه افزایش یابد.
در پردازش موازی، وظیفه به یک واحد کار اشاره دارد که میتواند توسط یک ترد یا فرآیند بهطور مستقل انجام شود. تقسیم کردن یک برنامه به وظایف کوچکتر به توسعهدهندگان این امکان را میدهد تا بخشهای مختلف برنامه را بهطور همزمان و بهینه اجرا کنند.
تعویض زمینه زمانی رخ میدهد که سیستم بین تردها یا فرآیندها جابجا میشود تا همه وظایف بهطور مساوی اجرا شوند. اگرچه این روش بهظاهر باعث همزمانی وظایف میشود، اما تعویض مکرر زمینه ممکن است کارایی کلی سیستم را کاهش دهد.
مجموعه ترد یا Thread Pool، مجموعهای از تردهای از پیش ایجاد شده است که برای اجرای وظایف بهصورت موازی مورد استفاده قرار میگیرند. این تکنیک باعث کاهش هزینههای ایجاد و مدیریت تردهای جدید میشود و به بهینهسازی منابع کمک میکند.
با استفاده از تکنیک پردازش موازی در Payton، میتوانید وظایف برنامهها را بین چندین هسته CPU تقسیم کنید و بدین ترتیب، زمان پردازش کد و برنامه را کاهش دهید. انتخاب کتابخانه مناسب برای پردازش موازی در پایتون به نیازها و الزامات خاص شما بستگی دارد. در اینجا برخی از محبوبترین و بهترین کتابخانههای موجود در این زمینه را به شما معرفی میکنیم:
داسک یک کتابخانه قدرتمند برای محاسبات موازی توزیع شده است. این کتابخانه به شما امکان میدهد تا مجموعه دادههای بزرگ را به طور کارآمد پردازش کنید و از آنها برای یادگیری ماشین، تجزیه و تحلیل دادهها و سایر وظایف محاسباتی فشرده استفاده کنید. Dask با NumPy، Pandas و Scikit-learn به خوبی ادغام میشود و به شما امکان میدهد از کد موجود خود با حداقل تغییرات استفاده کنید.
ری یک چارچوب منبع باز برای اجرای برنامه های موازی و توزیع شده با پایتون است. این چارچوب از مدل بازیگر استفاده میکند که به شما امکان میدهد وظایف را به عنوان اشیاء مستقل تعریف و اجرا کنید. Ray برای یادگیری تقویتی، رباتیک و شبیه سازی های پیچیده بسیار مناسب است.
در دورههای مربوط به آموزش پردازش موازی در پایتون ممکن است با کتابخانۀ جابلیب مواجه شوید، Joblib یک کتابخانه ساده و کاربردی برای موازیسازی وظایف در پایتون است. این کتابخانه از تکنیکهای مختلفی مانند multiprocessing و threading برای توزیع وظایف بین هستههای مختلف پردازنده استفاده میکند. Joblib برای کارهای ساده پردازش موازی مانند پیش پردازش دادهها و تجزیه و تحلیل آماری بسیار مناسب است.
ایپیپارالل یک کتابخانه برای موازیسازی کد Jupyter Notebook در خوشههای محاسباتی است. این کتابخانه به شما امکان میدهد تا سلولهای کد را به طور همزمان در چندین هسته اجرا کنید و بدین ترتیب، سرعت تجزیه و تحلیل دادهها و محاسبات خود را افزایش دهید. Ipyparallel برای دانشمندان داده و محققانی که از Jupyter Notebook برای کارهای تحلیلی خود استفاده میکنند، بسیار مناسب است.
مالتی پراسسینگ کتابخانه استاندارد پایتون برای پردازش موازی است. این کتابخانه به شما امکان میدهد تا فرآیندهای جداگانه را ایجاد و مدیریت کنید و وظایف را بین آنها توزیع کنید. Multiprocessing برای کارهای ساده پردازش موازی مانند I/O و عملیات عددی مناسب است.
امروزه پردازش موازی به یکی از نیازهای اساسی برنامهنویسان تبدیل شده است، بهویژه برای کسانی که با دادههای حجیم و الگوریتمهای پیچیده سروکار دارند. یادگیری پردازش موازی به شما این امکان را میدهد تا برنامههای خود را بهینهتر کنید و از منابع سختافزاری بهطور کامل بهرهبرداری کنید.
اگر قصد دارید مهارتهای خود را در زمینه برنامهنویسی به سطح بالاتری برسانید و از عملکرد بهتری در پروژههای واقعی بهرهمند شوید، شرکت در دوره آموزش پردازش موازی در پایتون مکتبخونه یک انتخاب ضروری است. این دوره تمامی مفاهیم و تکنیکهای لازم برای پیادهسازی پردازش موازی را به شما آموزش میدهد و باعث میشود در مسیر شغلی خود پیشرفت قابل توجهی داشته باشید.
حالا که با اهمیت و مزایای پردازش موازی آشنا شدید، چرا این فرصت را از دست بدهید؟ پردازش موازی یکی از کلیدیترین مهارتهایی است که میتواند در بهبود کارایی پروژهها و حل مسائل پیچیده کمک کند. با شرکت در دوره آموزش پردازش موازی در پایتون، شما میتوانید به یکی از بهترین و کارآمدترین برنامهنویسان تبدیل شوید. همین امروز ثبتنام کنید و مهارتهای خود را به سطحی بالاتر ببرید!
مقدمهای بر ترد:
1 - thread چیست؟
2 - چرا و چه موقع از thread استفاده میکنیم؟
3 - ساختار ترد و ترد در بازی Fifa21
4 - کوییز فصل مقدمهای بر ترد
چالشهای ترد:
1 - چالش ارسال ایمیل
2 - چالش ایجاد فایلهای متنی
3 - چالش آپلود فایل در وبسایت
4 - پروژه کپی فایلهای ویدیویی
ترد در پایتون:
1 - مقدمهای بر کتابخانه threading
2 - ساختن اولین تردها
3 - آرگومان دادن به تابع هدف یک ترد
4 - تردهای daemon
5 - اجرا کردن تردها به صورت موازی و متوالی
6 - حل سوال تردکاری وبسایت Quera
7 - مفهوم Race Condition چیست؟
8 - کوییز فصل ترد در پایتون
9 - پروژه مهمانی
مدیریت پیشرفته تردها:
1 - مقدمهای بر Event در ترد
2 - گذر از Race Condition با استفاده از Lock
3 - حل چالش PrintOrder
4 - حل چالش FooBar
5 - کوییز مدیریت پیشرفته تردها
6 - پروژه احوالپرسی
مفهوم Async در پایتون:
1 - مقدمهای بر Asnyc و تفاوت آن با ترد
2 - ساخت Decorator برای Sync کردن یک تابع
3 - کار به صورت موازی با کتابخانه asyncio
4 - کپی کردن فایلهای سنگین به صورت موازی
5 - کوییز مفهوم Async در پایتون
6 - پروژه «چقدر فایل»
درباره دوره:
علم ترکیبیات یا ریاضیات گسسته در مقابل ریاضیات پیوسته قرار دارد. هر شی در ساختمان گسسته بهطور مجزا در نظر گرفته میشود، به عبارتی قابل شمارش است، درحالیکه در ریاضیات پیوسته اشیاء در ارتباط با هم هستند و مفاهیمی مانند حد و پیوستگی مطرح است. ریاضیات گسسته قسمتی از ریاضیات است که با معادله اشیاء گسسته سر و کار دارد. منظور از اشیاء گسسته، اشیاء و المنتهایی مجزا یا غیرپیوسته است.
ریاضیات گسسته به عنوان یکی از علوم رو به رشد چشمگیر در سالهای اخیر به شمار میرود. شاید یکی از دلایل این رشد، آمیختگی این علم با حقایق ملموس دنیای اطراف ماست. غیرممکن است که کسی ادعا کند در حال حاضر روزانه از این علم استفاده نمیکند. ریاضیات گسسته به دلایل کاربردهای فراوانی که در سایر علوم، به ویژه در علم کامپیوتر، ساختار دادهها، تحلیل الگوریتمها و غیره دارد، دارای اهمیت است. از طرف دیگر ابزاری قوی برای تکنیکهای حل مساله و استراتژی حل مساله به ما یاد میدهد.
این دوره با عنوان ریاضیات گسسته در نیمسال دوم سال تحصیلی 00-99 در دانشکده علوم ریاضی دانشگاه صنعتی اصفهان برای دانشجویان کارشناسی ارائه شده است. در این دوره مسایلی چون تکنیکهای شمارش، روابط بازگشتی، گراف و ... به دانشجویان آموزش داده میشود.
هدف از این درس آشنایی با مفاهیم ریاضیات گسسته است. ترکیبیات یا ریاضیات گسسته علم مرتبط با چیدن اشیاء یک مجموعه است که با وجود شرط یا شرایط مشخصی صدق کند. معمولاً در ریاضیات گسسته به سوالاتی با پرسشواژههای «چگونه...؟»، «به چند طریق ...؟»، «چند تا...؟» و... پاسخ داده میشود. مهمترین مسائل ترکیبیاتی، مطالعه وجود یک ساختار ترکیبیاتی، شمارش تعداد ساختار ترکیبیاتی، تحلیل (مطالعه خواص) یک ساختار ترکیبیاتی، بهینهسازی و یافتن ساختار ترکیبیاتی بهینه است.
بنابراین میتوان گفت هدف از درس ریاضیات گسسته این است که دانشجویان با حقایق و اصولی از ریاضیات آشنا شوند و مهمتر از آن یاد بگیرند که چگونه آن را به کار بگیرند. به عبارت دیگر ما در این درس دوست داریم یاد بگیریم که چگونه ریاضیوار فکر کنیم.
برای استفاده از این دوره پیش نیاز خاصی وجود ندارد. آگاهی از ریاضی یک و آشنایی با ریاضی دبیرستان برای فرا گرفتن آن کافی است. بنابراین همه علاقهمندان با پایه مبانی علوم ریاضی میتوانند این درس را دنبال کنند و پیشنیاز دیگری لازم نیست.
از آنجا که ایدهها و تکنیکهای ترکیبیاتی نهتنها در شاخههای سنتی کاربرد ریاضی، مانند فیزیک، بلکه در علوم جدید مانند علوم کامپیوتر، بیولوژی، نظریه اطلاعات و... کاربرد دارند، این دوره علاوه بر دانشجویان ریاضی محض و کاربردی، میتواند برای دانشجویان سایر رشتههای علوم پایه و همچنین دانشجویان مهندسی نیز مفید و آموزنده باشد.
از طرفی به دلیل اینکه مسائل ترکیبیات غالباً ریشه در بازی و تفریحات ریاضیوار دارد، شرکت در این دوره میتواند برای هر شخص کنجکاو و علاقهمند به تفکر نظمبنیاد و ریاضیوار مفید باشد.
سرفصلهای این دوره عبارتاند از:
ریاضیات گسسته:
1 - جلسه 1: تکنیکهای اثبات 1
2 - جلسه 2: تکنیکهای اثبات 2
3 - جلسه 3: اصل لانه کبوتری
4 - جلسه 4: اصول شمارش
5 - جلسه 5: جایگشت
6 - جلسه 6: ترکیب
7 - جلسه 7: ضرائب دوجملهای
8 - جلسه 8: قضیه دوجملهای
9 - جلسه 9: اصل شمول و عدم شمول
10 - جلسه 10: کاربردهای اصل شمول و عدم شمول
11 - جلسه 11: روابط بازگشتی
12 - جلسه 12: حل روابط بازگشتی - قسمت اول
13 - جلسه 13: حل روابط بازگشتی - قسمت دوم
14 - جلسه 14: تابع مولد
15 - جلسه 15: کاربردهای تابع مولد
16 - جلسه 16: حل رابطه بازگشتی با استفاده از تابع مولد
17 - جلسه 17: تابع مولد نمایی
18 - جلسه 18: مفاهیم پایه گراف
19 - جلسه 19: نمایش ماتریسی و یکریختی
20 - جلسه 20: دنباله درجات
21 - جلسه 21: مسیرها و همبندی
22 - جلسه 22: اعمال روی گرافها
23 - جلسه 23: گراف یالی - حاصلضرب گرافها
24 - جلسه 24: درختها و خواص آن
25 - جلسه 25: الگوریتم یافتن درخت فراگیر
26 - جلسه 26: الگوریتم یافتن کوتاهترین مسیر
27 - جلسه 27: گرافهای اویلری
28 - جلسه 28: گرافهای هامیلتونی
29 - جلسه 29: رنگآمیزی رأسی 1 و 2
30 - جلسه 30: گراف مسطح - فرمول اویلر
31 - جلسه 31: مربع لاتین
درباره دوره:
پایگاه دادهها (دادگان یا بانک اطّلاعاتی) به مجموعهای از اطّلاعات با ساختار منظم و سامانمند گفته میشود. پایگاههای دادهها معمولاً در قالبی که برای دستگاهها و رایانهها قابل خواندن و دسترسی باشد ذخیره میشوند. البته چنین شیوه ذخیرهسازی اطلاعات تنها روش موجود نیست و شیوههای دیگری مانند ذخیرهسازی ساده در پروندهها نیز استفاده میگردد. آنچه ذخیرهسازی دادهها در پایگاههای دادهها را مؤثر میسازد وجود یک ساختار مفهومی برای ذخیرهسازی و روابط بین دادهها است. پایگاه داده در اصل مجموعهای سازمان یافته از اطلاعات است.این واژه از دانش رایانه سرچشمه میگیرد، اما کاربرد وسیع و عمومی نیز دارد، این وسعت به اندازهای است که مرکز اروپایی پایگاه داده (که تعاریف خردمندانهای برای پایگاه داده ایجاد میکند) شامل تعاریف غیر الکترونیکی برای پایگاه داده میباشد.
در این نوشتار به کاربردهای تکنیکی برای این اصطلاح محدود میشود. یک تعریف ممکن این است که: پایگاه داده مجموعهای از رکوردهای ذخیره شده در رایانه با یک روش سیستماتیک (اصولی) مثل یک برنامه رایانهای است که میتواند به سؤالات کاربر پاسخ دهد. برای ذخیره و بازیابی بهتر، هر رکورد معمولاً به صورت مجموعهای از اجزای دادهای یا رویدادها سازماندهی میگردد. بخشهای بازیابی شده در هر پرسش به اطلاعاتی تبدیل میشود که برای اتخاذ یک تصمیم کاربرد دارد. برنامه رایانهای که برای مدیریت و پرسش و پاسخ بین پایگاههای دادهای استفاده میشود را مدیر سیستم پایگاه دادهای یا بهاختصار (DBMS) مینامیم. خصوصیات و طراحی سیستمهای پایگاه دادهای در علم اطلاعات مطالعه میشود.
برای یادگیری بیشتر در این زمینه میتوانید، دورههای آموزش پایگاه داده را مشاهده کنید.
فیلم های آموزشی:
1 - جلسه اول - مقدمه
2 - جلسه دوم - مقدمه
3 - جلسه سوم - ادامه مقدمه
4 - جلسه چهارم - مدل سازی معنایی داده ها
5 - جلسه پنجم - ادامه مدل سازی معنایی داده ها
6 - جلسه ششم - ادامه مدل سازی معنایی داده ها
7 - جلسه هفتم - ادامه مدل سازی معنایی داده ها
8 - جلسه هشتم - جمع بندی مدلسازی داده ، مبانی طراحی منطقی
9 - جلسه نهم - ادامه طراحی منطقی
10 - جلسه دهم - ادامه طراحی منطقی ، مقدمات پیاده سازی و SQL
11 - جلسه یازدهم - ادامه مقدمات پیاده سازی و SQL
12 - جلسه دوازدهم - ادامه مقدمات پیاده سازی و SQL
13 - جلسه سیزدهم - معماری پایگاه داده
14 - جلسه چهاردهم - ادامه معماری پایگاه داده
15 - جلسه پانزدهم - ادامه معماری پایگاه داده ، مقدمه ای بر مدل داده رابطه ای
16 - جلسه شانزدهم - ادامه مدل داده رابطه ای
17 - جلسه هفدهم - ادامه مدل داده رابطه ای
18 - جلسه هیجدهم - ادامه مدل داده رابطه ای
19 - جلسه نوزدهم - عملیات در پایگاه داده رابطه ای(جبر رابطه ای)
20 - جلسه بیستم - ادامه عملیات در پایگاه داده رابطه ای(جبر رابطه ای)
21 - جلسه بیست و یکم - مثال هایی از حساب و جبر رابطه ای
22 - جلسه بیست و دوم - طراحی پایگاه داده رابطه ای(روش بالا و پایین)
23 - جلسه بیست و سوم - طراحی پایگاه داده رابطه ای(ادامه طراحی بالا به پایین-تئوری وابستگی)
24 - جلسه بیست و چهارم - طراحی پایگاه داده رابطه ای(سطوح نرمال 1NF تا 3NF)
25 - جلسه بیست و پنجم - طراحی پایگاه داده رابطه ای(سطح نرمال BCNF)
26 - جلسه بیست و ششم - طراحی پایگاه داده رابطه ای (فرم 5NFو6NF)
27 - جلسه بیست و هفتم - طراحی پایگاه داده رابطه ای (سطح نرمال 5NFو6NF)
درباره دوره:
دوره آموزش مقدماتی جمعبندی C++، به شرکتکنندگان این امکان را میدهد تا با اصول اولیه و مفاهیم پایهای این زبان برنامهنویسی آشنا شوند. C++ یکی از قدرتمندترین و پرکاربردترین زبانهای برنامهنویسی است که برای توسعه انواع نرمافزارها و سیستمهای مختلف استفاده میشود.
موضوع: در این دوره، مفاهیم پایهای C++ از جمله متغیرها، عملگرها، شرطها، حلقهها، توابع، آرایهها و ساختارهای داده ابتدایی بررسی میشود. شرکتکنندگان با استفاده از مثالها و تمرینها، این مفاهیم را درک و به کاربردهای واقعی آنها پی برده و توانایی برنامهنویسی ابتدایی خود را با C++ بهبود میبخشند.
کاربردها: آشنایی با C++ اساسیترین قدم برای ورود به صنعت برنامهنویسی است. این زبان به دلیل کاربردهای گستردهای که دارد، از توسعه نرمافزارهای سیستمی گرفته تا برنامههای کاربردی و بازیها، در انواع پروژههای برنامهنویسی مورداستفاده قرار میگیرد. ازآنجاکه C++ امکاناتی مانند مدیریت حافظه، کار با سیستمهای پیچیده و کنترل دقیق برنامهها را فراهم میکند، برای پروژههایی که نیاز به کارایی و کنترل بالا دارند، بسیار مناسب است.
پیشنیازها: برای شرکت در این دوره، دانشپایهای از مفاهیم برنامهنویسی و زبانهای برنامهنویسی مانند ساختارهای شرطی، حلقهها و توابع موردنیاز است. همچنین، آشنایی با مفاهیم اولیه ریاضیات و علوم کامپیوتر میتواند به درک بهتر مطالب دوره کمک کند.
مطالب دوره: این دوره با مباحث ساده شروع شده و بهتدریج به مباحث پیشرفتهتر پرداخته میشود. شامل تعریف متغیرها، عملگرها، شرطها، حلقهها، توابع، آرایهها و ساختارهای داده ابتدایی است. شرکتکنندگان با حل تمرینها و پروژههای عملی، مهارتهای خود را تقویت کرده و بهمرور به برنامهنویسان ماهرتری تبدیل میشوند.
به طور خلاصه، دوره آموزش مقدماتی جمعبندی C++ با ارائه اصول اولیه و عملی زبان برنامهنویسی C++، شرکتکنندگان را برای ورود به عرصه برنامهنویسی آماده میسازد و امکان توسعه نرمافزارهای متنوع را فراهم میکند.
مقدمه:
1 - مقدمه
انواع دادهها - انواع عملگرها - دستورات ورودی و خروجی:
1 - انواع دادهها
2 - عملگرها، کوتاه نویسی و دستورات ورودی و خروجی
دستورات شرطی و تکرار:
1 - دستورات شرطی
2 - دستورات تکرار
آرایه - رشته:
1 - آرایههای دو بعدی - بخش اول
2 - آرایههای دو بعدی - بخش دوم
3 - آرایههای رشتهای
نوع شمارشی - استراکچر - یونیون:
1 - استراکچرها
2 - یونیونها
اشارهگر:
1 - معرفی اشارهگرها
2 - رابطهی اشارهگر با آرایه
3 - اشارهگر به استراکچر و اشارهگر به اشارهگر
تابع:
1 - معرفی توابع
2 - انواع نحوههای فراخوانی
3 - متغیرهای سراسری و محلی
درباره دوره:
درس الگوریتمهای بیوانفورماتیک در نیم سال اول سال تحصیلی 99-98 ضبط شده است.
تا قبل از این، سه درس در زمینهی مباحث عملی و کاربردی بیوانفورماتیک ضبط و در سایت مکتبخونه به اشتراک گذاشته شده بود:
درس الگوریتمهای بیوانفورماتیک رویکردی عمیق به مباحث الگوریتمی و نظری بیوانفورماتیک دارد. این درس که در دورهی کارشناسی ارشد بیوانفورماتیک دانشگاه صنعتی شریف ارائه گردیده است به شما میآموزد که چطور با مسالههای چالشبرانگیز تحلیل ژنوم، ترانسکریپتوم و پروتئوم روبرو شوید، چطور آنها را به زبان علوم رایانه درآورید و سپس با طراحی الگوریتمهای خلاقانه، آن را حل کنید.
*****اسلایدهای درس را از اینجا دانلود کنید.*****
با سپاس فراوان از دکتر شریفی زارچی که با وجود مشکل قلبی پیش آمده برای ایشان و بستری شدن در بیمارستان، متعهدانه و به بهترین شکل این درس را به پایان رساندند.
الگوریتمهای بیوانفورماتیک:
1 - جلسه اول: الگوریتم شار بیشینه و کاربرد آن در RNAseq Isoform Quantification
2 - جلسه دوم: مسأله شار بیشینه (Maximum Network Flow Problem) - بخش اول
3 - جلسه سوم: مسأله شار بیشینه (Maximum Network Flow Problem) - بخش دوم
4 - جلسه چهارم: تطابق دو بخشی (Maximum Bipartite Matching)
5 - جلسه پنجم: اسمبل کردن ژنوم (De Novo Genome Assembly)
6 - جلسه ششم: بلوم فیلتر (Bloom Filter)
7 - جلسه هفتم: درخت پسوندی، ترای پسوندی (Trie, Suffix Trie & Suffix Tree)
8 - جلسه هشتم: کاربردها و نحوهی ساختن درخت پسوندی (Suffix tree applications and creation)
9 - جلسه نهم: برنامهنویسی خطی (Linear Programming) - بخش اول
10 - جلسه دهم: برنامهنویسی خطی (Linear Programming) - بخش دوم
11 - جلسه یازدهم: آنالیز شبکه متابولیک
12 - جلسه دوازدهم: الگوریتمهای تقریبی (Approximation) - بخش اول
13 - جلسه سیزدهم: الگوریتمهای تقریبی (Approximation) - بخش دوم
14 - جلسه چهاردهم: تطابق چند رشته (Multiple Sequence Alignment)
15 - جلسه پانزدهم: الگوریتمهای همسایگی تقریبی (Approximate Nearest Neighbors & MinHash)
16 - جلسه شانزدهم: پیادهسازی و بکارگیری MinHash
17 - جلسه هفدهم: متاژنومیکس و مینیمایزرها (Metagenomics & Minimizers)
18 - جلسه هجدهم: ادامه ی Minimizers و الگوریتم Kraken
19 - جلسه نوزدهم: تطابق ژنوم (Genome Alignment) - بخش اول
20 - جلسه بیستم: تطابق ژنوم (Genome Alignment) - بخش دوم
21 - جلسه بیست و یکم: ژنومیک مقایسهای (Comparative Genomics)
22 - جلسه بیست و دوم: الگوریتم Kallisto برای تحلیل RNA-Seq و روش Bootstrapping
23 - جلسه بیست و سوم: تحلیل دادههای پروتئومیک
24 - جلسه بیست و چهارم: تحلیل دادههای پروتئومیک: Non-ribosomal peptides, Dereplicator
درباره دوره:
درس طراحی و تحلیل الگوریتمها یکی از مهمترین و پایهایترین دروس در رشتههای علوم کامپیوتر و همچنین مهندسی کامپیوتر است. هدف از این درس، مطالعه و بررسی روشهای طراحی الگوریتمها برای حل مسائل مختلف و چگونگی تحلیل و اثبات درستی الگوریتمهای ارائه شده برای حل آنها است. آشنایی هرچه بیشتر با مسائل در حوزههای مختلف علمی باعث افزایش توانایی افراد در ارائه راهحلهای الگوریتمی برای مسائل جدید خواهد شد. همچنین بسیاری از مسائل محاسباتی مطرح در حوزههای مختلف علم جزء مسائلی هستند که حل الگوریتمی آنها در زمان قابلقبول بهراحتی امکانپذیر نمیباشد، در نتیجه دستهبندی مسائل و شناسایی مسائل محاسباتی سخت که در زمان قابلقبول نمیتوان جواب آنها را به دست آورد، نیز از اهمیت ویژهای برخوردار است. در این دوره آموزشی، ابتدا به مفاهیم مقدماتی در حوزه طراحی و تحلیل الگوریتمها پرداخته شده و روشهای کلاسیک برای حل مسائل مختلف به همراه مثالهای متنوع ارائه میشود. برای این منظور روشهایی همچون روش تقسیم و غلبه، برنامهریزی پویا، روش حریصانه، بازگشت به عقب و روش شاخه و تحدید موردبحث قرار میگیرند. به شکل ویژه، الگوریتمهای مطرح در حوزه نظریه گراف و همچنین تطابق رشتهها مورد بررسی قرار میگیرند. پس از آن، به بررسی سختی مسائل با استفاده از نظریههای موجود پرداخته میشود. سپس روشهای الگوریتمی موجود برای حل مسائل سخت معرفی و در مورد هر یک از روشها نمونههایی نیز موردبحث قرار میگیرند، از جمله این روشها میتوان به الگوریتمهای قطعی، الگوریتمهای تقریبی، الگوریتمهای تصادفی، روشهای مکاشفهای و روشهای محاسباتی نوین اشاره کرد. در بسیاری از این روشها، درستی الگوریتمهای ارائه شده اثبات و منابع موردنیاز برای اجرای این الگوریتمها بهصورت دقیق تحلیل میشوند.
این درس برای تمامی علاقهمندان به کامپیوتر، مخصوصاً حوزه طراحی و تحلیل الگوریتمها، میتواند مفید باشد. آشنایی با ریاضیات، برنامهنویسی و داده ساختارها میتواند در درک بهتر مفاهیم این درس کمککننده باشد. محتوای این دوره در نیمسال اول سال تحصیلی ۰۱-۱۴۰۰ در گروه علوم کامپیوتر دانشگاه تهران ارائه شده است.
***این دوره درحال تکمیل است***
فصل اول: مفاهیم مقدماتی:
1 - جلسه 0 - بخش اول: مقدمهای بر درس و سرفصلها
2 - جلسه 0 - بخش دوم: مقدمهای بر درس و سرفصلها
3 - جلسه 1: مقدمهای بر الگوریتمها
4 - جلسه 2: تحلیل الگوریتمها
5 - اسلایدهای طراحی و تحلیل الگوریتم
فصل دوم: روشهای کلاسیک طراحی الگوریتمها:
1 - جلسه 3: روش تقسیم و غلبه
2 - جلسه 4: حل معادلات بازگشتی
3 - جلسه 5: توابع مولد
4 - جلسه 6: ضرب سریعتر اعداد
5 - جلسه 7: ضرب سریعتر ماتریسها (روش استراسن)
6 - جلسه 8: مرتبسازی سریع
7 - جلسه 9: حد پایین برای مسئله مرتبسازی
8 - جلسه 10: مسئله انتخاب کوچکترین عدد
9 - جلسه 11: برنامهریزی پویا
10 - جلسه 12: ضرب دنبالهای از ماتریسها
11 - جلسه 13: درخت جستجوی دودویی بهینه
12 - جلسه 14: طولانیترین زیررشته مشترک (LCS)
13 - جلسه 15: روش حریصانه
14 - جلسه 16: مسئله انتخاب فعالیتها
15 - جلسه 17: مسئله کولهپشتی
16 - جلسه 18: کدگذاری هافمن
17 - جلسه 19: روش بازگشت به عقب
18 - جلسه 20: الگوریتم بازگشت به عقب برای مسئله کوله پشتی
19 - جلسه 21: روش شاخه و تحدید
فصل سوم: نظریه گراف و الگوریتمهای آن:
1 - جلسه 22: مفاهیم اولیه گرافها
2 - جلسه 23: پیمایش سطحی گراف (BFS)
3 - جلسه 24: پیمایش عمقی گراف (DFS)
4 - جلسه 25: مرتبسازی توپولوژیکی
5 - جلسه 26: مؤلفههای همبند گراف
6 - جلسه 27: کوتاهترین مسیر در گراف
7 - جلسه 28: الگوریتم دایکسترا
8 - جلسه 29: الگوریتم بلمن-فورد
9 - جلسه 30: کوتاهترین مسیر بین همه رئوس با ضرب ماتریسها
10 - جلسه 31: کوتاهترین مسیر بین همه رئوس با روش فلوید-وارشال
11 - جلسه 32: درخت پوشای کمینه
12 - جلسه 33: الگوریتمهای درخت پوشای کمینه
فصل چهارم: تطابق رشتهها:
1 - جلسه 34: تطابق دقیق رشتهها
2 - جلسه 35: تطابق رشتهها به کمک همنهشتی (الگوریتم رابین-کارپ)
3 - جلسه 36: تطابق رشتهها به کمک اتوماتا
4 - جلسه 37: تطابق رشتهها به روش KMP
فصل پنجم: نظریه NP-Completeness و شناسایی مسائل سخت:
1 - جلسه 38: الگوریتمهای غیرقطعی
2 - جلسه 39: نظریه NP-Completeness
3 - جلسه 40: اثبات سختی مسئله k-Clique
4 - جلسه 41: اثبات سختی مسئله k-Vertex-Cover
5 - جلسه 42: اثبات سختی مسئله Subset-Sum
6 - جلسه 43: اثبات سختی مسئله دور همیلتونی
7 - جلسه 44: اثبات سختی مسئله Coloring
فصل ششم: روشهای قطعی برای حل مسائل سخت:
1 - جلسه 45: الگوریتمهای شبهچندجملهای
2 - جلسه 46: روش پارامتری
3 - جلسه 47: روش شاخه و تحدید
4 - جلسه 48: روش کاهش نرخ رشد پیچیدگی الگوریتمها
5 - جلسه 49: جستجوی محلی
6 - جلسه 50: جستجوی محلی با عمق متغیر
7 - جلسه 51: دستهبندی مسائل از دیدگاه روشهای جستجوی محلی
فصل هفتم: الگوریتمهای تقریبی:
1 - جلسه 52: مقدمهای بر الگوریتمهای تقریبی
2 - جلسه 53: الگوریتم تقریبی برای مسئله Makespan Scheduling
3 - جلسه 54: الگوریتم تقریبی برای مسئله Vertex Cover
4 - جلسه 55: الگوریتم تقریبی برای مسئله Set Cover
5 - جلسه 56: الگوریتم تقریبی برای مسئله Subset Sum
6 - جلسه 57: مفهوم پایداری الگوریتمهای تقریبی
7 - جلسه 58: الگوریتم تقریبی برای مسئله کولهپشتی ساده
8 - جلسه 59: الگوریتمهای تقریبی برای مسئله کولهپشتی و پایداری آنها
9 - جلسه 60: مفهوم L-Reduction و دستهبندی مسائل از دیدگاه الگوریتمهای تقریبی
فصل هشتم: الگوریتمهای تصادفی:
1 - جلسه 61: مقدمهای بر الگوریتمهای تصادفی
2 - جلسه 62: الگوریتم تصادفی لاسوگاس برای مرتبسازی سریع
3 - جلسه 63: الگوریتم تصادفی لاسوگاس برای انتخاب کوچکترین عدد
4 - جلسه 64: الگوریتم تصادفی لاسوگاس برای Choice روی ماشین ارتباطی
5 - جلسه 65: الگوریتم تصادفی مونتکارلو با خطای یکطرفه
6 - جلسه 66: الگوریتم تصادفی مونتکارلو با خطای دوطرفه
7 - جلسه 67: الگوریتم تصادفی مونتکارلو با خطای نامحدود
8 - جلسه 68: الگوریتمهای تصادفی برای مسائل بهینهسازی
9 - جلسه 69: الگوریتم تصادفی برای مسئله Max-kSAT
10 - جلسه 70: الگوریتم تصادفی برای مسئله Max-Cut
فصل نهم: سایر روشها:
1 - جلسه 71: روش Simulated Annealing
2 - جلسه 72: روش Tabu Search
3 - جلسه 73: الگوریتم ژنتیک
4 - جلسه 74: مقدمهای بر محاسبات مولکولی
5 - جلسه 75: الگوریتم مولکولی یافتن مسیر همیلتونی
درباره دوره:
در دوره Data Analysis with R Programming، شما با زبان برنامهنویسی R آشنا خواهید شد. شما یاد خواهید گرفت چگونه از RStudio، محیطی که به شما اجازه میدهد با R کار کنید، استفاده کنید و با نرمافزارها و ابزارهای منحصر به فرد R، مانند بستههای R آشنا خواهید شد. شما کشف خواهید کرد که چگونه R به شما امکان میدهد دادهها را پاکسازی، سازماندهی، تحلیل، تجسم و گزارش کنید به روشهای جدید و قدرتمندتر.
تحلیلگران داده فعلی گوگل به آموزش و ارائه روشهای عملی برای انجام وظایف رایج تحلیلگر داده با بهترین ابزارها و منابع ادامه خواهند داد.
یادگیرندگانی که این برنامه گواهینامه را به پایان میرسانند، آماده خواهند بود تا برای مشاغل سطح مقدماتی به عنوان تحلیلگر داده اقدام کنند. هیچ تجربه قبلی لازم نیست.
در پایان این دوره، یادگیرندگان خواهند توانست:
برنامهنویسی و تحلیل دادهها:
1 - مقدمهای به دنیای هیجانانگیز برنامهنویسی
2 - تفریح با R
3 - Carrie: شروع کار با R
4 - زبانهای برنامهنویسی
5 - مقدمهای بر R
6 - مقدمهای بر RStudio
برنامهنویسی با استفاده از RStudio:
1 - برنامهنویسی با استفاده از RStudio
2 - اصول برنامهنویسی
3 - عملگرها و محاسبات
4 - هدیهای که همچنان به کار میآید
5 - خوشآمدید به دنیای Tidyverse
6 - بیشتر درباره Tidyverse
7 - استفاده از پایپها برای تو در تو کردن کد
8 - Connor: نکات برنامهنویسی
کار با دادهها در R:
1 - دادهها در R
2 - دادهفریمهای R
3 - کار با دادهفریمها
4 - پاکسازی با اصول اولیه
5 - سازماندهی دادههای شما
6 - تبدیل دادهها
7 - دادههای مشابه، نتایج متفاوت
8 - تابع bias
بیشتر درباره تجسمها، زیباییشناسی و حاشیهنویسیها:
1 - تجسمها در R
2 - اصول تجسم در R و Tidyverse
3 - شروع کار با ggplot()
4 - جوزف: مسیر شغلی به سوی تحلیل افراد
5 - بهبود تجسمها در R
6 - کار بیشتر با ggplot
7 - زیباییشناسی و Facetها
8 - لایه حاشیهنویسی
9 - ذخیره تجسمهای خود
مستندسازی و گزارشها:
1 - مستندسازی و گزارشها
2 - مروری بر R Markdown
3 - استفاده از R Markdown در RStudio
4 - ساختار اسناد Markdown
5 - مگ: برنامهنویسی توانمندساز است
6 - عناصر بیشتری از مستندات
7 - بخشهای کد
8 - صادرات مستندات