دوره ساختمان داده و الگوریتم‌ها در جاوااسکریپت

89,000 تومان

تعداد دانشجوها: 372

 

بعد از ثبت نام در دوره، برای دانلود ویدیوها وارد قسمت “حساب کاربری” شوید.

این دوره در حال برگزاری است.

توضیحات

ساختمان داده و الگوریتم‌ها یکی از مهم‌ترین مفاهیم در برنامه نویسی هستند. بیشتر شرکت‌های پیشرو فناوری در مراحل استخدام و مصاحبه، تسلط بر مباحث ساختمان داده و الگوریتم‌ها را یکی از موارد بسیار مهم در نظر می‌گیرند. همین طور زمانی که به عنوان یک توسعه دهنده قصد توسعه یک نرم افزار سطح متوسط یا بزرگ را داشته باشید، قطعا دانش این دو مفهوم بسیار کاربردی خواهد بود.

الگوریتم‌ها مجموعه‌ای از روش‌ها هستند برای حل مسائل. طبیعتا انتخاب بهترین الگوریتم بر اساس منطق توسعه نرم افزار بسیار تاثیر گذار می‌باشد. ساختمان داده نیز در علوم کامپیوتر یک روش می‌باشد برای مدیریت داده‌های نرم افزار.

ساختمان‌های داده می‌توانند به صورت Built in در یک زبان برنامه نویسی باشند. مانند آرایه‌ها، آبجکت‌ها، Map و Set در جاوااسکریپت. اما ساختارهای داده‌ای دیگری نیز وجود دارند که به عنوان مفاهیم برنامه نویسی هستند. این ساختنمان‌های داده را می‌توان با زبان‌های برنامه نویسی مختلف پیاده سازی کرد.

در دوره ساختمان داده و الگوریتم‌های فرانت کست تلاش می‌کنیم تا با یک رویکرد دقیق، تمام مفاهیم را به صورت جامع بررسی کنیم. این دوره از قسمت‌های تئوری و کد تشکیل شده. همین طور بر اساس چالش‌های برنامه نویسی متعدد پیش خواهیم رفت.

در پایان دوره شما قادر خواهید بود تا مسائل متنوع برنامه نویسی را با بهترین روش‌ها پیاده سازی کنید. هدف اصلی در این دوره تمرکز بر روی مهارت حل مسئله است.

مهم‌ترین پیش‌نیاز این دوره، درک مفاهیم برنامه نویسی در جاوااسکریپت است. برای بررسی دقیق و جامع جاوااسکریپت، دوره جامع و پیشرفته جاوااسکریپت فرانت کست را پیشنهاد می‌کنیم.

پشتیبانی این دوره مانند سایر دوره‌های فرانت کست با مدرس دوره می‌باشد. در طول فرآیند یادگیری قدم به قدم باهم پیش خواهیم رفت. با انجام چالش‌ها توانایی شما برای انجام مسائل پیچیده‌تر در برنامه نویسی بیشتر خواهد شد.

دوره ساختمان داده و الگوریتم‌ها در حال برگزار است. هر هفته ویدیوهای جدید به این دوره اضافه می‌شوند.

سرفصل‌ها:

معرفی دوره. بررسی دوره ساختمان داده و الگوریتم‌ها در جاوااسکریپت – مشاهده ویدیو

۱. پیش‌ نیازهای دوره – مشاهده ویدیو

۲. یادگیری دقیق‌تر مفاهیم و پشتیبانی دوره – مشاهده ویدیو

۳. بررسی ساختمان داده – مشاهده ویدیو

۴. آرایه‌ها – بررسی دقیق‌تر – مشاهده ویدیو

۵. استفاده از Set – مشاهده ویدیو

۶. مقایسه آرایه‌ها و Set

۷. آبجکت‌ها – بررسی دقیق‌تر

۸. استفاده از Map

۹. مقایسه آبجکت‌ها و Map

۱۰. بررسی Linked List

۱۱. افزودن مقادیر در Linked List

۱۲. دریافت خروجی از Linked List

۱۳. افزودن مقادیر به ابتدای لیست

۱۴. حذف مقادیر از لیست

۱۵. جست و جو و افزودن مقادیر در میانه لیست

۱۶. دلایل استفاده از Linked List

۱۷. بررسی پیچیدگی زمانی و Big O Notation

۱۸. پیچیدگی زمانی در آرایه‌ها و Linked List

۱۹. ساختمان داده‌های List و Table

۲۰. استفاده از List و Table در جاوااسکریپت

۲۱. بررسی ساختمان داده Stack

۲۲. پیاده سازی Stack

۲۳. استفاده از Linked List در Stack

۲۴. پیاده سازی Stack با Linked List

۲۵. بررسی ساختمان داده Queue

۲۶. پیاده سازی Queue

۲۷. استفاده از Linked List در Queue

۲۸. بررسی Hash Table

۲۹. استفاده از Hash Table برای حل مسئله

۳۰. پیاده سازی ساختمان داده Hash Table

۳۱. توسعه توابع set و get

۳۲. بررسی ساختمان داده Tree

۳۳. مفاهیم در Tree

۳۴. بررسی یک مثال از Tree

۳۵. پیاده سازی مثال Tree

۳۶. بهینه سازی کد

۳۷. حذف Nodeها از Tree

۳۸. بررسی جست و جوهای Depth-first و Breadth-first

۳۹. پیاده سازی Depth-first

۴۰. پیاده سازی Breadth-first

۴۱. بررسی درخت جست و جوی Binary

۴۲. افزودن مقادیر به BST

۴۳. توسعه تابع find در BST

۴۴. بررسی درخت AVL

۴۵. متعادل سازی درخت AVL

۴۶. فاکتورهای متعادل سازی AVL

۴۷. پیاده سازی درخت AVL

 

ویدیوهای اضافه شده:

۴۸. ساختمان داده Graph

۴۹. بررسی انواع Graph

۵۰. استفاده از Graph در کد

۵۱. بررسی Matrix و List

۵۲. پیاده سازی ساختمان داده Graph

۵۳. توسعه تابع حذف Node

46 پاسخ به “دوره ساختمان داده و الگوریتم‌ها در جاوااسکریپت”

  1. هادی گفت:

    آقای صدری ببخشید این دوره آموزش داده میشه چطور بخواهیم یه پروژه ای که قبلش میخواهیم ایجاد کنیم چه طور الگوریتم و فلوچارت اون رو رسم کنیم ؟؟؟؟

    • سلام
      این دوره از دو قسمت الگوریتم و ساختمان داده تشکیل شده که قسمت الگوریتم تا حدود دو ماه آینده شروع می‌شه.
      فلوچارت رو بررسی نمی‌کنیم.

  2. soroushbs1 گفت:

    سلام روزبخیر
    در ویدئوی شماره ۲۷ فکر کنم اشتباهی رخ داده است.
    شما فرمودید که در queue ، به ابتدا لیست اضافه میشه و از انتها حذف میشه. اما شما در این ویدئو به انتها اضافه میکنید و از ابتدا حذف میکنید.

  3. امیر گفت:

    سلام استاد صدری عزیز
    من رشته ام کامپیوتر نیست و این مباحث توی درس های رشته کامپیوتر مطرح میشه میخاستم ببینم با دیدن این دوره نیاز ام برطرف میشه یا خیر
    به جی اس مسلط هستم

    • سلام
      در این دوره تمام مباحث مربوط به ساختمان داده و الگوریتم‌ها رو بررسی می‌کنیم.
      اگر هدفتون یادگیری دقیق این مفاهیم هست قطعا می‌تونه براتون مفید باشه.
      در طول دوره اگر سوالی بود در خدمتم.

  4. caniel گفت:

    سلام
    چطور داخل سایت ثبت نام کنم

  5. Mreza گفت:

    سلام استاد خسته نباشید
    حدودا این دوره کی به اتمام میرسه

  6. مهدی گفت:

    سلام ببخشید این دوره کی تموم میشه

  7. میلاد گفت:

    سلام من جاوا و پایتون رو تا حد خیلی خوبی بلدم منتهی همیشه در شرکت های بزرگ بخاطر همین مباحث ساختمان داده رد میشم .
    میخواستم بدونم ایا با این شرایطی که گفتم میتونم در این دوره شرکت کنم ؟
    این نکته رو بگم که هیچی از جاوااسکریپت نمیدونم

    • سلام
      همون طور که می‌دونید مفاهیم مربوط به ساختمان داده و الگوریتم‌ها مربوط به یک زبان برنامه نویسی خاص نمی‌شن.
      اما برای این دوره شما باید حداقل مبانی جاوااسکریپت رو بدونید.
      اگر می‌خواید جاوااسکریپت رو به صورت دقیق یاد بگیرید، دوره جامع و پیشرفته جاوااسکریپت رو بهتون پیشنهاد می‌کنم.
      البته در کانال یوتوب یک ویدیو دو ساعته برای درک مبانی جاوااسکریپت دارم که اون هم برای شروع یادگیری جاوااسکریپت مناسب هست.

  8. ali izadi گفت:

    با سلام
    با تشکر از دوره های خوبتون
    میخواستم بدونم تصمیمی برای اضافه کردن مباحث گراف
    به این دوره رو دارین؟ بعد از avl تصمیمی بر اضافه شدن مطلب جدید هست؟
    با تشکر

  9. zari nabi گفت:

    سلام استاد
    ممنون از آموزشهای خوبتون. اگر توی این دوره حل تعدادی از مسائل codility و hackerrank که توی مصاحبه ها مطرح میشه باشه خیلی عالی میشه 🙂

    • مطالعه کردم.
      همون طور که توضیح دادم مفاهیم شی‌گرایی و بحث استفاده از prototypeها به صورت کامل در دوره جامع و پیشرفته جاوااسکریپت بررسی شدند.
      اما برای استفاده از مقدار __proto__ در یک مثال اختصاصی ویدیو نداریم.
      در صورتی که دانشجویان دوره درخواست داشته باشند به عنوان به روز رسانی دوره به مباحث اضافه می‌کنم.
      لطفا مفاهیمی که مروبط به دوره جامع و پیشرفته جاوااسکریپت هستند رو در صفحه دوره مطرح کنید.
      ممنون و موفق باشید.

  10. hmzadeh گفت:

    من مشترک دوره جاوا اسکریپت هم هستم در مورد ارث بری اشیا
    و __proto__ و رفرنسهای اون چیزی گفنه نشده

    • ممنونم که برای دوره‌ها ثبت نام کردید.
      در دوره جامع و پیشرفته جاوااسکریپت از قسمت ۶۸ تا چالش شماره ۱۶ (قسمت ۷۳) مفاهیم شی‌گرایی در جاوااسکریپت رو بررسی کردیم.
      همین طور پروژه دوم دوره که سبد خرید هست از قسمت ۹۹ تا ۱۱۶ با مفاهیم شی‌گرایی پیاده سازی شده.
      باز هم اگر سرفصل خاصی مد نظرتون هست لینک اون رو از قسمت مستندات جاوااسکریپت وب‌سایت MDN برای من بفرستید.

  11. hmzadeh گفت:

    سلام آیا این دوره تمام شده اگر نشده لطفا بحث ارث بری در اشیا جاوااسکریپت و prototype را هم اضافه کنید

    • سلام
      دوره در حال برگزاری هست.
      مباحثی که فرمودید به جاوااسکریپت مربوط می‌شه و در دوره جامع و پیشرفته جاوااسکریپت به طور کامل بررسی کردیم.
      در این دوره مفاهیم ساختمان داده و الگوریتم‌ها رو بررسی می‌کنیم.

  12. داود بهشتی گفت:

    سلام استاد امید وارم که حالتون خوب باشه و سلامت باشید.
    خیلی ممنون از آموزش خوب و قابل فهم تون .
    استاد لطفا میشه api ها و بحث لوکال استوریج هم مورد برسی قرار بدید فکر میکنم مباحث مهمی هستن برای یاد گیری بیشتر.

    خیلی ممنون از شما استاد عزیز.

    • سلام
      ممنونم از لطفتون.
      این مفاهیم رو به صورت کامل در دوره جامع و پیشرفته جاوااسکریپت بررسی کردیم.
      تمرکز ما در دوره ساختمان داده و الگوریتم‌ها بر روی درک دقیق‌ مفاهیم برنامه نویسی و روش‌های حل مسئله هست.

  13. sepezh گفت:

    سلام مجدد
    بابت سوال دوم دوباره پیام میدم
    کدهای لاین ۳۴ از ویدئوی ۱۵ نباید
    const newElement = { value: value, next: existingElement.next }
    باشه ؟!
    چون اگر وسط یک لیست بخوایم المنتی اضافه کنیم به مشکل میخوریم و بعدیش رو لینک نمیکنه.
    دقیقه ۷:۲۸ از ویدیو رو ببینید چون next شده ۲، یه المنت جدید با مقدار ۲ به آرایه اضافه کرده که مقداری برای next هم نداره و انگار پیمایش ادامه داره در حالی که با توجه به حذف آیتم های قبلی این آبجکت به ته لیست اضافه شده
    و چیزی که الان میبینیم تووی خروجی، با توجه به تعریفی که از tail داریم، این لیست tail نداره

    • کدهای قسمت ۱۵ (جست و جو و افزودن مقادیر در میانه لیست) خط ۳۴ ندارن.
      لطفا از قسمتی که براتون مبهم هست یک اسکرین شات توی واتس‌اپ یا تلگرام برای من بفرستید تا توضیح بدم خدمتتون.

  14. sepezh گفت:

    سلام، وقتتون بخیر
    ممنونم بابت آموزش خوبتون
    من دوتا سوال دارم و لطف می‌کنید اگر جواب بدید:
    ۱٫ تووی ویدئوی ۱۴ برای متد find، چرا این خط
    curElement = curElement.next
    رو نوشتید؟ ما که قرار نیست المنتی رو جا به جا کنیم و فقط قراره المنت مورد نظرمون در صورت وجود نمایش داده بشه!
    ۲٫ تووی ویدئوی ۱۵، مقدار next برای newElement رو مساوی existingElement.value قرار دادید؟ اینطوری که newElement داره به مقدار قبل از خودش، که ۲ هست اشاره می کنه!

    • سلام
      ممنون از شما.
      در صورتی که المنت مورد نظر رو در زمان پیمایش با While نتونیم پیدا کنیم، باید المنت بعدی بررسی بشه.
      اشاره گر next مقدار المنت بعدی رو در نظر می‌گیره. در نتیجه می‌تونیم برای curElement مقداردهی مجدد کنیم.
      در مورد سوال بعدیتون هم موضوع شبیه به این هست. باید دقت کنید که مقدار next زمانی که به عنوان یک Property در نظر گرفته می‌شه، به معنی مقدار بعدی لیست هست.
      البته باید توجه داشت که زمانی که value برای existingElement بررسی می‌شه، برای این هست که بدونیم المنت اصلی لیست چه مقداری هست.

  15. ashiyanehamid گفت:

    سلام. وقتتون بخیر. میشه در مورد مسائلی که میخواید در آینده بررسی کنید و الگوریتم هاتون یکم توضیح بدین؟ ممنون

    • سلام.

      بله حتما. این دوره از دو قسمت اصلی ساختمان داده و الگوریتم‌ها تشکیل شده.
      در قسمت ساختمان داده مفاهیم Linked List – Stack – Queue – Hash Table – Basic Tree – Binary Search – Heap – Graph بررسی خواهند شد.
      و در قسمت الگوریتم‌ها مفاهیم پیچیدگی زمانی و Big O Notation، الگوریتم‌های جست و جو و Sort، الگوریتم‌های آرایه‌ها و در نهایت بررسی الگوریتم‌های پیچیده‌تر رو خواهیم داشت.
      در طول دوره تمرکز ما روی مهارت حل مسئله هست.

  16. MasoudHosseini گفت:

    سلام و درود استاد
    باز هم یه حرکت خفن از شما
    ممنون که با این قیمت و کد های تخفیف به فکر ما هستین

  17. داود گفت:

    سلام استاد این دوره در کنار node js کاربردی داره؟

    • سلام
      در طول این دوره مهارت حل مسئله در برنامه نویسی رو یاد می‌گیریم.
      برای همین می‌تونم بگم به تکنولوژی خاصی محدود نیستیم، تمرکز ما روی مفاهیم برنامه نویسی هست.
      قطعا برای درک بهتر بک‌اند تسلط بر این مفاهیم کاربردی‌تر هست.

  18. داود گفت:

    سلام استاد امید وارم حالتون خوب باشه 🙂

    استاد من در حال یادگیری ریکت هستم از سایت خودتون و واقعا خیلی عالی تدریس میشه من که خیلی خیلی راضی ام 🙂

    میخواستم ببینم این دوره در کنار ریکت به دردم میخوره؟

    خیلی ممنون از شما استاد عزیز

    • سلام
      خیلی ممنونم از لطفتون و امیدوارم براتون مفید باشه.
      قطعا می‌تونه کاربردی باشه، چون تسلط بیشتر شما روی مفاهیم اصلی برنامه نویسی در جاوااسکریپت می‌تونه برای درک React کمکتون کنه.

  19. مهدی نیسی گفت:

    سلام استاد صدری وقتتون بخیر
    استاد من از امروز برنامه ریزی کردم برای یادگیری این دوره 😍

    فقط یک سوال در هفته چند قسمت قراره منتشر کنید؟

  20. amir_code گفت:

    سلام استاد صدری وقتتون بخیر
    از اسفندماه منتظر این دوره م 😁🤗

  21. نیما فیض شمس گفت:

    سلام و سپاس استاد عزیز ممنون برای این دوره خوب و کاربردی

  22. sajjadr7373 گفت:

    سلام روزتون بخیر. خسته نباشید. به نظر میرسه من اولین کامنت هستم :))
    یه سوالی که شاید اکثر دوستان بپرسن اینه که ، این دوره قراره حدودا چند قسمت باشه؟

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *