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

149,000 تومان
507 دانشجو
آخرین به روز رسانی: ۲۵ اردیبهشت ۱۴۰۱
این دوره تکمیل شده است
ثبت نام در دوره

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

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

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

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

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

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

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

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

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

مدرس دوره

مسعود صدری مدرس و توسعه دهنده نرم افزار، فارغ‌ التحصیل از رشته مهندسی نرم‌افزار، برنامه نویسی را از سال ۱۳۹۱ به شکل حرفه‌ای شروع کرده است. او در سال‌هایی که در حوزه برنامه نویسی حرفه‌ای فعالیت داشته، با شرکت های نرم افزاری و تیم‌های استارتاپی همکاری داشته و بیشتر بر روی فریلنسیگ تمرکز کرده است. او سال‌ها به عنوان برنامه نویس فریلنسر مشغول به کار بوده و همین امر باعث شده تا نیازهای بازار کار را به خوبی بشناسد و تجربه‌های زیادی در این زمینه کسب کند.

مسعود صدری تدریس را از سال ۱۳۹۴ به شکل حرفه‌ای، با آموزشگاه مجتمع فنی تهران شروع کرده و همیشه جزء یکی از برترین مدرسان برنامه نویسی بوده است. سپس تصمیم به برگزاری دوره‌های برنامه نویسی در دانشکده مهندسی برق و کامپیوتر دانشگاه تبریز گرفته که مورد استقبال بسیار خوب دانشجویان قرار گرفت. فعالیت‌های او در دانشگاه تبریز، به عنوان مدرس دانشگاه ادامه داشته و اکنون تدریس کارگاه‌های مبانی برنامه سازی و برنامه سازی پیشرفته را برعهده دارد. نهایتا از سال ۱۳۹۷ تدریس آنلاین هم به لیست فعالیت‌های آموزشی او اضافه شده است.

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

پشتیبانی دوره

یکی از موضوعات بسیار مهم در فرانت کست پشتیبانی دوره‌ها می‌باشد که برعهده مدرس دوره است. مدرس به عنوان یک منتور از ابتدای مسیر قدم به قدم، تا زمانی که دانشجو تمامی مطالب را بصورت کامل یاد بگیرد، همراه اوست. ما بر این باور هستیم که هیچ شخصی بهتر از مدرس دوره نمی‌تواند پاسخگوی سوالات دانشجویان باشد. از این رو، در فرانت کست مدرس خود را موظف می‌داند تا در تمامی روزهای هفته، به جز روزهای تعطیل، سوالات دانشجویان را بررسی کند. این ارتباط مستقیم از طریق شماره واتس‌اپ ۰۹۳۵۵۴۹۱۴۸۱ و یا اکانت اینستاگرام @masoodsadri انجام می‌گیرد.

گارانتی بازگشت وجه

ما در فرانت کست به دوره‌ها و محتوایی که آماده شده است ایمان کامل داریم و معتقد هستیم اگر دانشجویان براساس مسیر یادگیری که آماده کرده‌ایم پیش بروند قطعا به هدفی که دارند دست پیدا می‌کنند. مهم‌ترین هدف ما این است که دانشجویان در کمال آرامش و بدون کوچکترین استرسی یادگیری را شروع کنند. به همین جهت، گارانتی بازگشت وجه برای تمامی دوره‌های غیررایگان درنظر گرفته‌ایم. اگر شما به هر دلیل از ادامه دادن مسیر منصرف شوید، می‌توانید تا ۳۰ روز بعد از ثبت‌ نام برای بازگشت وجه درخواست بدهید. ما بدون هیچ سوالی تمام هزینه‌ای که برای یادگیری خود سرمایه‌گذاری کرده بودید را عیناً به حساب شما بازمی‌گردانیم.

سرفصل‌ها:

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

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

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

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

۵. استفاده از 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

۵۴. بررسی الگوریتم در برنامه نویسی

۵۵. چالش حل مسئله

۵۶. الگوریتم فیبوناچی

۵۷. پیاده سازی الگوریتم فیبوناچی

۵۸. پیاده سازی الگوریتم اعداد اول

۵۹. چالش کوچک‌ترین المنت آرایه

۶۰. چالش بررسی اعداد زوج و فرد

۶۱. چالش اعداد به توان دو

۶۲. پیاده سازی الگوریتم Factorial

۶۳. بررسی الگوریتم‌های جست و جو

۶۴. پیاده سازی Linear Search

۶۵. پیاده سازی Binary Search

۶۶. بررسی الگوریتم Bubble Sort

دیدگاه‌ها:

داود بهشتی

بهمن 19, 1400  در  11:16 ب.ظ

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

مسعود صدری

بهمن 19, 1400  در  11:34 ب.ظ

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

Mohsen

دی 23, 1400  در  10:50 ب.ظ

سلام استاد
قسمت الگوریتم این دوره قراره کی تکمیل بشه؟

مسعود صدری

دی 25, 1400  در  12:20 ق.ظ

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

فروغ

آبان 17, 1400  در  12:54 ب.ظ

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

مسعود صدری

آبان 17, 1400  در  2:56 ب.ظ

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

Araman bahramii

آبان 3, 1400  در  8:51 ب.ظ

سلام این دوره تموم شده یا همچنان در حال برگزاریه؟

مسعود صدری

آبان 5, 1400  در  12:19 ق.ظ

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

ART

مهر 11, 1400  در  8:47 ق.ظ

سلام امیدوارم حالتون خوب باشه
خواستم بپرسم سلامتی جسمی تون چطوریه ؟
واقعا نگرانتون شدیم استاد

مسعود صدری

مهر 11, 1400  در  2:09 ب.ظ

سلام
ممنونم از لطفتون.
خدا رو شکر بهترم، ولی فعلا باید تحت درمان باشم.

هادی

مرداد 31, 1400  در  8:59 ق.ظ

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

مسعود صدری

شهریور 2, 1400  در  9:42 ب.ظ

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

soroushbs1

خرداد 18, 1400  در  1:07 ب.ظ

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

مسعود صدری

خرداد 18, 1400  در  3:18 ب.ظ

سلام
خیلی ممنونم که اطلاع دادید.
توابع enqueue و dequeue جا به جا مقداردهی شدند.
در اولین آپدیت اصلاح می‌شه.

امیر

خرداد 5, 1400  در  4:37 ب.ظ

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

مسعود صدری

خرداد 5, 1400  در  5:03 ب.ظ

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

افزودن دیدگاه جدید