کامپیوترونیک رو معرفی کن و کسب درآمد کن!
آموزش آنلاین الگوریتم و ساختمان داده ویژه مسابقات ICPC کامپیوترونیک و انجمن علمی راه آهن دانشگاه علم و صنعت و اتحادیه انجمن های برق کشور در مدت زمان 48 ساعت آموزش خواهدید دید
48 ساعت
طبق سرفصل استاد
پرسش و پاسخ آنلاین
کامپیوترونیک
الگوریتم یک دستورالعمل گام به گام برای حل یک مسئله است. ساختمان داده یک روش برای ذخیره و سازماندهی دادهها است. هر دوی این مفاهیم در علوم کامپیوتر و برنامهنویسی از اهمیت بالایی برخوردارند.
الگوریتمها را میتوان به صورت تابعهای ریاضی، شبه کد، زبان برنامهنویسی، یا حتی زبان طبیعی نشان داد. مثلاً، الگوریتم جستجو در گوگل را میتوان به صورت زیر توصیف کرد:
گام اول: کلیدواژهای را که میخواهید جستجو کنید در نوار جستجو وارد کنید.
گام دوم: روی دکمه جستجو کلیک کنید.
گام سوم: صفحات وب مربوط به کلیدواژه شما را در نتایج جستجو مشاهده کنید.
برای ارزیابی الگوریتمها، معمولاً دو عامل را در نظر میگیرند: زمان اجرا و حافظه مصرف شده. زمان اجرا نشان میدهد که الگوریتم چقدر سرعت دارد و حافظه مصرف شده نشان میدهد که الگوریتم چقدر فضای حافظه را استفاده میکند. برای تحلیل این عاملها، از نظرات رشد تابع استفاده میشود. به عنوان مثال، الگوریتم جستجو خطّي، که هر عضو ليست را با عضو درخواستي مقایسه كند، زمان اجرای O(n) دارد، که n تعداد عضو ليست است. این بدان معنى است كه هرچقدر ليست بزرگ شود، زمان اجرای الگوريتم هم به همين نسبت بزرگ خواهد شد.
الگوریتمهای مرتبسازی: برای مرتب کردن یک لیست از دادهها بر اساس یک معیار خاص بکار میرود.
مثلاً، الگوریتم مرتبسازی حبابی، الگوریتم مرتبسازی ادغامی، و الگوریتم مرتبسازی سریع.
الگوریتمهای جستجو: برای پیدا کردن یک داده خاص در یک لیست یا یک ساختمان داده. مثلاً، الگوریتم جستجو در درخت دودوئي، الگوریتم جستجو در گراف، و الگوریتم جستجو در هش تيبل.
الگوریتمهای بازگشتی: برای حل یک مسئله با استفاده از تقسيم و حل زیر مسائل کوچک تر. مثلاً، الگوريتم بازگشتي براي بدست آوردن جمع اعداد يك ليست، الگوريتم بازگشتي براي بدست آوردن جواب يك رابطه بازگشتي و غیره.
آموزش آنلاین الگوریتم و ساختمان داده ویژه مسابقات ICPC کامپیوترونیک به مدت 48 ساعت برگزار خواهد شد
شما در این دوره با انواع الگوریتم ها و ساختمان های داده آشنا خواهید شد. همچنین تکنیک های ویژه مسابقات ICPC آشنا خواهید شد.
ساختمانهای داده را میتوان به صورت ساده و پيچیده تقسيم كرد. ساختمانهای داده ساده شامل انواع دادهای هستند که به صورت پایهای در زبانهای برنامهنویسی تعریف شدهاند. مثلاً، int, float, char, string, و boolean. ساختمانهای داده پيچیده شامل انواع دادهای هستند که با استفاده از ساختمانهای داده ساده بوجود می آید. الگوریتم و ساختمان داده دو مفهوم اساسی در علوم کامپیوتر و برنامهنویسی هستند. الگوریتم یک روش مرحله به مرحله برای حل یک مسئله یا انجام یک کار است. ساختمان داده یک روش برای ذخیره، سازماندهی و دسترسی به دادهها است. هر دو این مفاهیم برای بهبود کارایی و کارآمدی برنامههای کامپیوتری اهمیت زیادی دارند.
برخی از الگوریتمهای معروف عبارتند از: الگوریتم اقلیدس برای یافتن بزرگترین مقسومعلیه مشترک دو عدد، الگوریتم دایکسترا برای یافتن کوتاهترین مسیر در گراف، الگوریتم فوریر برای تبدیل سیگنالهای زمان-بسته به فضای فرکانس.
ساختمان دادهها را میتوان به صورت ساده و پیچیده تقسیم کرد. ساختمان دادههای ساده شامل نوعهای پایه مانند عدد صحیح، حروف، بولین و اشارهگر هستند. ساختمان دادههای پیچیده شامل نوعهای ترکیبی مانند آرایه، لیست، پشته، صف، درخت، گراف و هش هستند. ساختمان دادهها را براساس نحوه ذخیره و نحوه عملکرد روی آنها انتخاب میکنند. برخی از عملکردهای رایج بر روی ساختمان دادهها عبارتند از: درج، حذف، جستجو، مرتبسازی و بازگشت.
الگوریتم و ساختمان داده به هم وابسته هستند. الگوریتم نحوه استفاده از ساختمان داده را تعیین میکند. ساختمان داده نحوه نگهداری و بازگشت داده را تعیین میکند. هدف از تطبیق الگوریتم و ساختمان داده این است که بهینۀ از منابع کامپيوتری مانند زمان و حافظه استفاده شده باشد.
در تمام مدت آموزش شما می بایست پروژه های داده شده را تحویل دهید و گام به گام پیش بیایید.
همچنین برای دریافت مدرک پایانی کلاس می بایست تمارین و پروژه های تعریف شده را ارسال کنید و می بایست حداقل نمره 70 را کسب کنید.
این دوره نیاز به پش نیاز خاصی ندارد.
پیاده سازی و مقدمات
داده های ساختار یافته
minimum stack
minimum queue
set ها
dictionary
Disjoint Set union
گریدی
ریاضیات
غربال اراتوستن
توان
انتخاب
باینری سرچ و ترنری سرچ
مقدمات Dynamic Programming
Longest Increasing Subsequence
Longest Common Subsequence
Bit Mask
Binary dynamic Programming
آیا می خواهید برای همه فعالیت ها، اعلان های پوش نوتیفیکیشن دریافت کنید؟